利用圖像處理技術,在50*50CM的區域內識別出5枚硬幣(硬幣位置任意),并且控制機械手逐一拾取5枚硬幣,然后把5枚硬幣逐一疊放到指定位置(指定位置隨機)。
圖像處理過程詳解
——LabVIEWVision Assistant
硬幣位置識別算法分析與設計
硬幣的識別是本系統軟件設計最為關鍵的一步,只有識別的穩定、精確才能控制機械手拾取硬幣。硬幣的最主要特征為圓形、銀白色、直徑約為25mm。設計識別算法時也是主要依據這幾個特征進行選擇相應的算法模塊,才能很好的區分周圍環境的雜物。處理的總思想:先采集含硬幣的圖片,進行一系列的濾波、分割、填補后把除圓形外的雜物排除,再用硬幣模版搜索整幅圖像來確定是否有和硬幣一樣大小的圓形。找到圓形后選擇輸出其中心坐標。下面詳細介紹利用Vision Assistant來快速搭建識別硬幣的算法,并輸出像素坐標。
1.1導入圖片
打開Vision Assistant并單擊左上角的圖片按鈕,導入一幅圖片。
在圖中我們可以看到五枚硬幣,并且還有坐標軸、圓圈等雜物,總之現在的圖像是雜亂的,如果用當前的圖像直接去搜索硬幣無法做到穩定,因為當光照等外部條件改變時背景的白色和硬幣的白色在像素值上非常接近很難進行識別。為此在搜索硬幣前必須進行一定的閥值濾波。把硬幣外形顯示出來,也就是靠顏色去匹配較難,但靠外形匹配容易而且穩定。
1.2轉換RGB
圖片中的圖像是RGB的,要先把圖片轉成單色的,這樣更利于識別和后續算法的處理。在軟件界面的左下部分的Processing Functions中單擊選擇Color。再選擇Color Plane Extraction這一函數模塊。
處理后我們看到硬幣暗淡了許多,這樣更有利于下一步的分割。
1.3閥值濾波
在Processing Functions中選擇Groyscale,再選擇Threhold。該函數的功能是選擇閥值以內的圖像并且用紅色表示出來。如下圖所示。
在look for選擇,默認是Bright Object,所以白色的背景變成了紅色,也就是白色為選擇處理的內容。硬幣相對背景而言是較黑的,所以應該在此項選擇Dark Object。
可以看到較黑的硬幣變成了紅色被選中,同時可以調節Threhold Range這一滑調控件來調節閥值,直到滿足硬幣被選中變紅色這一要求為止。然后點擊OK完成本步驟。這是點擊OK后的效果圖,
圖中除硬幣外還有很多的雜物也被標注紅色了,這是不希望看到的。
1.4移除小雜物
在processing function中選中Binary,再繼續選中ADV.Morphology這一函數模塊。這一函數包含移除小物體、大物體、補全圖像漏缺等功能。進入界面后選中Remove small things ,選中后可以看到圖中軸坐標上的阿拉伯數字被移除了。
1.5移除邊緣雜物
再選擇一次ADV.Morphology這一函數模塊,再點擊Remove border object。把圖像中的邊緣去掉,去掉后的效果如下圖所示。
1.6補漏洞
再選擇一次ADV.Morphology這一函數模塊,再點擊Full holes,從下圖中可以看到,五枚硬幣全部變為無漏洞的紅色。至此五枚硬幣的外形已經很完整的提取出來,下一步就是要判斷這五個外形是不是要找的硬幣。
1.7二值化圖像
在processing function中選擇grayscale中的lookup table這一函數模塊。該函數的功能為把圖像進行二值化處理,最后輸出像素為0或1的圖像,便于后續處理。在彈出的界面中選擇equalize這一選項,可以看到圖像立即變成了黑白圖像。白色部分即為剛剛被紅色標出來的硬幣輪廓。
1.8查找圓形
這是整個圖像處理中最為關鍵的一步,LabVIEW vision提供了很多方法來查找具有一定外形的物體,比如shape detection、pattern matching等函數。而本系統采用的是share matching這一函數,因為顧名思義這個函數的功能是根據給定外形去查找圖像中是否有相同外形的物體。它的適應性更強更穩定。在processing functionz中選擇share matching這一函數模塊。
進入界面后單擊create template,彈出選擇界面,選擇圖中任意一個圓形作為識別的模版即可。然后單擊finish,即可完成識別模版選擇。
模版選擇好后,自動識別出五枚硬幣,并且用綠色方框標注出來,下方顯示的是對應的硬幣的中心坐標。例如第一枚硬幣的中心坐標在圖中藍色方形取閱,它的中心x坐標為235,中心y軸坐標是94。如下圖所示。
到這一步硬幣識別已經成功了,但是坐標還沒有輸出給LabVIEW程序框圖,后續的電機控制也就無法進行。為此必須選擇坐標輸出給后續的VI。
1.9坐標輸出
在右下方單擊select controls這一控件,
進入界面后,再在Number of matchings和Shape report前打勾表示這兩項內容為輸出內容。最后電機Finish。
在程序框圖中的最后為輸出兩個控件,一個是硬幣數目,另一個是包含坐標信息的簇。至此,硬幣識別的圖像處理部分全部完成。
2.目標點識別算法分析與設計
目標點為一紅色的長方塊,它的識別與上一節介紹的硬幣識別方法類似,只是第8步稍微有些差異,即把匹配的圓形改為方形即可。如下圖所示。
3.利用圖像閉環控制機械手算法設計
之前介紹的圖像處理算法最后輸出的坐標為像素坐標并不是真實的物理坐標,這樣對于后面的電機控制非常不方便,因此在設計控制算法前先要進行坐標換算。考慮到圖像的長寬像素不一樣(長為720,寬576,從圖像的左下角處可以讀出),因此必須分開單獨標定,先標定x軸方向再標定y軸方向。分以下步驟進行。
1)x軸像素標定。
打開overlay這個函數模塊,該模塊的功能為文字標注并且自動顯示出文字所在的像素坐標位置。任取尺子上的兩點A、B,記下A在尺子上的刻度(選擇110MM),從圖中左下角位置直接讀出像素坐標(690,286) (這個坐標是可以改變的,當這個坐標改變時圖像中的文字的位置也會改變。為了便于計算,同時為了刻度的均勻性減少圖像畸變帶來的誤差,在選點時盡量選擇靠近圖像左右邊緣的點,如圖中的A點很靠近右邊而且剛好是整數110MM的刻度);再記下B在尺子上的刻度(250MM),從圖中左下角讀出像素坐標(53,286)。
計算AB兩點真實長度Lx=250-110=240mm,對應的像素坐標長度Lp=690-53=637。則可計算在x軸方向,每兩個像素點的對應的實際長度Lpx=240/637=0.3767 mm/pix。
2)y軸的像素標定。
與x軸標定類似記錄下y軸上的兩點C、D坐標。如下面兩張圖所示,分別為C點刻度175mm,C像素坐標(284,27);D點刻度100mm,D點像素坐標(284,407)。
計算CD兩點真實長度Ly=175-100=75mm,對應的像素坐標長度Lp=407-27=380pix。則可計算在y軸方向,每兩個像素點的對應的實際長度Lpy=75/380=0.197 mm/pix。
3)建立坐標系。
以像素中心O(720/2,576/2)=(360,288)為原點,以x軸方向向右為正,以y軸方向向上為正建立xoy坐標系。則從圖像處理后出來的像素坐標即可轉換成真實的坐標。例如Z(x,y),則z的真實坐標Zx=(x-360)×Lpx=(x-360)×0.3767mm;Zy=(y-288)×0.197mm。
建立好坐標系后,在分析機械手的控制算法前,先分析下機械手控制模型。在下圖中假設機械手平臺上有一枚硬幣A(x,y),則對應的在攝像頭圖像中的坐標為A’(x’,y’)。而當前時刻機械手上的電磁鐵的位置在O’點。O’A’的距離即為要機械手與硬幣的距離,也是要控制電機所走的距離,關于高度Z可暫時忽略。為了讓機械手從O’點走到A’可以先把R軸伸長,再使θ軸轉過一定的角度即可。
在之前寫的硬件設計(長著眼睛的機械手(六))中可以知道R軸上的步進電機的步距為0.01mm,則R軸步進電機脈沖數n=x’/0.01;但在實際調試中并不止控制一次電機,而是把x’作為反饋控制量去控制R軸的電機,只要x’>2mm,就一直輸出脈沖n給步進電機,直到x’<2mm。
在控制地盤θ軸上與R軸不相同,因為底盤為直流電機控制。想直接通過控制直流電機來使轉盤轉到一定的位置是不可能,而且還有考慮到轉盤齒輪的行程差。為此必須采用實時閉環的方法而且要用脈寬的長短來控制電機的轉速。在小區域內可以用y’近似去代替O’與A’的角度差,再用y’去控制直流電機的驅動時間。Y’有正負電機也能正反轉。直到y’<5為止。
整個控制方法的核心在于,不管x’和y’具體值是多少,只要機械手不在硬幣的正上方(也就是x’y’大于某個值)就不斷去驅動電機,直到機械手很接近硬幣的正上方為止。在機械手走到硬幣的上方后,再控制Z軸的步進電機使之下降一定的距離,再使電磁鐵得電即可把硬幣拾取。
控制機械手到目標方塊的上方也是類似的思路,根據圖像中方塊的位置坐標進行反饋控制電機,直到坐標在一定的范圍內。再控制Z軸下降,下降到一定的高度后再釋放電磁鐵使硬幣放下。
-
軟件
+關注
關注
69文章
5117瀏覽量
88923 -
圖像處理技術
+關注
關注
0文章
33瀏覽量
10139 -
算法分析
+關注
關注
0文章
9瀏覽量
7678
原文標題:圖像處理——過程全解析,配圖超詳細!
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
硬幣算法怎么寫
帶有3D手勢識別和手部位置追蹤系統
基于Qualcomm DSP算法集成分析與案例分享三
LabVIEW使用Vision視覺識別硬幣
基于二級互補算法的硬幣鑒別系統
星座圖聚類分析的QAM信號調制識別算法及DSP實現

人臉識別算法分析
改進的HMAX算法應用與車型識別

基于數字特征的識別算法設計實現

評論