桂林電子科技大學信息科技學院 孫天一 蒙煌昌 江素婷 黃金海
機器視覺系統在國內外都已經有所應用,它可以被用于:分析圖像,并且生成一個對被成像物體的描述。這些描述必須包含:關于被成像物體的某些方面的信息,而這些信息將被用于:實現某些特殊的任務。機器視覺可以使用在社會生產和人們生活的各個方面,在替代人的勞動方面,需要用人眼觀察、判斷的事物,都可以用機器視覺來完成,最適合用于大量重復動作(例如工件質量檢測)和眼睛容易疲勞的判斷等。
HALCON能夠讓使用者在最短時間里開發出視覺系統,包含了一套交互式的程序設計界面HDevelop,可在其中以HALCON程序代碼直接撰寫,修改,執行程序。通過利用halcon軟件中的多種算法對計算機所采集到的零件圖像進行處理,最終確認其是否符合使用或生產等條件。
系統硬件整體由工作臺、支架、傳送帶、工業相機、計算機等設備組成。在電機的驅動下,滾輪勻速運轉,帶動傳送帶轉動;工業相機獲取電機驅動的傳送帶上零件的圖像,再將圖像傳遞給計算機進行圖像處理,通過一系列的處理與分析來判斷其是否符合工業生產標準。若符合,則將其直接傳送至下一流程;若不符合,則通過計算機向在旁的檢驗人員報告。由圖1所示,為系統整體設計。

圖1 系統整體設計
在硬件系統模塊中的電機驅動電路控制下,傳送帶勻速轉動,將待檢測零件傳送至工業相機鏡頭正下方,工業相機與計算機相連接,相機獲取傳送帶上的零件圖象,將其傳送給計算機,利用HALCON軟件進行計算,在圖像采集中為防止外部光源對檢測結果的影響,通常在相機上方添加遮光板,能有效增加檢測精準度。
HALCON是一套完善的標準的機器視覺算法包,擁有應用廣泛的機器視覺集成開發環境; HALCON靈活的架構便于機器視覺,醫學圖像和圖像分析應用的快速開發。使用HALCON機器視覺圖像軟件對采集到的圖像先進行預處理:二值化、特征提取、開運算、區分連通域,使所要獲取的目標圖像更清晰并將需要檢測的工業零件與無關背景雜質進行區分,需要進行多次反復腐蝕和膨脹,最終獲得所能夠判斷的目標圖像的輪廓。
用halcon采集圖片代碼:grab_image_async (Image, AcqHandle, -1)
3.2.1 二值化
圖像的二值化可以使圖像中數據量大大地減少,將整個圖像呈現出明顯的黑白效果,從而能凸顯圖像中目標的輪廓。這一步即可采用圖像分割,其公式如下。其中,T為閾值,對于物體的圖像元素g(i,j)=1,對于背景的圖像元素g(i,j)=0。即此時g(i,j)=1為元器件部分,g(i,j)=0為背景部分。

下圖是相機獲取到的一個六邊螺母零件,左邊是采集到的初始圖像,右邊是經過二值化處理后的圖像。
對圖片進行二值化代碼:threshold (Image, Regions, 203, 255)

圖2 初始圖

圖3 經過二值化的圖
3.2.2 開運算
在二值形態學圖像處理中,除了腐蝕和膨脹這兩種一次運算外,還有二次運算操作,開運算就是其中一種。開運算處理,是對圖像先進行腐蝕然后再膨脹。腐蝕,是刪除對象邊界某些像素,具有收縮圖像作用;膨脹則是添加對象邊界某些像素,具有擴大圖像作用。
膨脹是求局部最大值的操作,核B與圖形卷積,即計算核B覆蓋的區域的像素點的最大值,并把這個最大值賦值給參考點指定的像素。這樣就會使圖像中的高亮區域逐漸增長。在經過二值化的圖像中存在較多干擾,如背景材料的大面積反光,背景表面的不平整,待檢測工業零件表面的反光,嚴重影響檢測的精確性,經過膨脹處理可以填充因反光問題所產生的器件內部空隙,并放大背景材料產生的干擾。與之相反的腐蝕就是求局部最小值的操作。并把這個值賦給參考點的指定像素,將較小的干擾去除。
下圖是通過相機攝取到的圖像傳遞給計算機,在halcon軟件中對該零件進行開運算處理的部分程序。
膨脹:dilation_circle (Regions, Region Dilation, 3.5)
腐蝕:erosion_circle (Region Erosion, Region Erosion1, 3.5)
區分連通域: connection (Region Dilation2, Connected Regions)
在經過多次的腐蝕及膨脹后區域中只存在待檢測器件及較大的背景反光區域,無法通過腐蝕進行去除,此時就需要將各個區域進行連通域的劃分,如圖6中所示在進行區分連通域后圖像中將各個連通域用不同顏色來區別表示。

圖4 膨脹處理的圖

圖5 腐蝕處理的圖
最后使用HALCON中的區域選擇算子選取需要的連通域。
連通域選擇算子:select_shape (ConnectedRegions, SelectedRegions, ‘column’, ‘and’, 437.96, 721.3)

圖6 區分連通域

圖7 最后結果
計算機檢測零件的規格,判斷是否在標準零件的數值范圍內,若在該范圍內,則該零件符合工業生產標準;若不符合,則將其淘汰。
檢測零件的面積的代碼如下:
disp_message(Window Handle,’面積’+Area+’坐標:’+Column,’Window’ ,0,0,’white’,’false’)
如上圖7中檢測出的該零件面積數值,完全在標準范圍內,所以最終得出結果,該零件符合標準。
在本次實驗中,分別對100個工業零件進行了檢測,其中符合要求的有92個,占總體的92%,絕大多數零件均符合工業標準。
該基于halcon的工業零件檢測系統在時間和經濟等各方面都比人工檢測要實用得多,而且最后的檢測結果也更加準確,更符合現在化工業生產。機器視覺的運用在當代還在不斷發展,多年來的增長速度均高于工業平均增長速度,目前機器視覺已是許多機器和生產線中不可或缺的一部分。
[1]Carsten Steger , Markus Ulrich ,Christian Wiedemann.Machine Vision Algorithms and Applications,2008.
[2]Benhold Klaus Paul Horn.Robot Vision[M].中國青年出版社.2014,3.
[3]陳兵旗.機器視覺技術及應用實例詳解[M].化學工業出版社,2014,4.
[4]張錚.數字圖像處理與機器視覺——Visual C++與Matlab實現[M].人名郵電出版社.2014,5.
[5]Milan Sonka,Vaclav Hlavac.圖像處理分析與機器視覺[M].清華大學出版社,2016,6.