任楷飛, 孟令軍, 顧澤凌
(中北大學 電子測試技術國家重點實驗室,山西 太原 030051)
零件的識別是工業自動化檢測中的重要環節[1]。對于不同形狀的零件,人工檢測效率低、工作量大[2]。機器視覺技術具有效率高、非接觸式測量的優點[3-4],開發機器視覺系統可以準確識別和定位目標。目前神經網絡在零件識別上的優勢在于具有學習能力,但神經元數目多,計算量大并且需要樣本訓練[5]。零件的輪廓特征利用傅里葉變換轉換為頻域特性,互相關系數作為識別依據[6]。基于曲率和Hough變換的平面輪廓圖元方法識別零件[7]。利用Harris 角點檢測,根據零件的特殊點進行識別匹配[8]。在Matlab上使用連通域標識法識別目標,不適用于零件發生遮擋的情況[9]。基于LabVIEW的模板匹配能夠實現模糊情況的識別[10]。在滾動體反裝軸承件識別中,以LabVIEW為開發平臺區分正反面[11]。以LabVIEW和Vision的虛擬儀器,從圖像中建立模板,通過模板匹配對金剛石晶體類型分類與數目統計[12]。當前機器視覺系統基于halcon、opencv等軟件較多,LabVIEW的機器視覺檢測研究處于發展階段。
本文提出基于LabVIEW的零件識別方法,該方法中灰度值金字塔算法既可以利用灰度值歸一化的抗干擾性,又可以利用金字塔算法從頂層運算減小運算量的優勢,提高匹配速度。在設計模板匹配過程中使能亞像素精度,有效提高零件識別的精度。在不同條件進行零件識別測試,準確識別目標個數并框選目標進行標識,識別匹配結果給出像素坐標,尤其在部分遮擋的情況下,系統識別的準確性高、抗干擾性強。
系統軟件采用LabVIEW結合IMAQ Vision視覺工具包進行開發,通過虛擬儀器LabVIEW的模塊化設計,將各個功能模塊實現并整合,實現系統設計功能。硬件搭建采用USB高級工業相機、環形LED光源。系統實現過程:通過采集圖像并緩存,預處理后選定目標ROI區域進行模板的創建與學習,選用灰度值金字塔算法并設置參數,模式匹配完成后進行結果顯示。系統處理結構如圖1所示。
模式匹配是根據計算模板與被測目標的相似度來判別目標[13],本文采用灰度值金字塔算法,該算法使用灰度值歸一化特性和金字塔算法結合的原理,適合邊緣復雜或模板包含大量相似灰度信息的情況。
對于發生旋轉的目標,需要將搜索空間進行離散化。圖像金字塔增加一層時旋轉角度步幅可以增大兩倍,因此在圖像金字塔的最高層進行所有角度旋轉,在底層創建搜索區域能有效降低計算量。對于識別旋轉目標應使用亞像素精度[14]進行處理,提高識別精度。

圖1 系統處理結構
該算法通過計算模板與圖像的相似度,利用模板圖像可以在感興趣區域T內進行平移,移動模板至某一位置的相似性度量s:

其中T為感興趣區域,f(r+u,c+v)為移動至模板區域的灰度值。將計算相似性度量具體化,引入模板與圖像之間差的絕對值求和sad、差的平方求和ssd:

其中n為模板感興趣區域像素點的數量。
相似性度量大說明與模板差別大。當光線發生線性變化時,同樣會引起灰度值的變化,導致識別出錯。為防止線性光照變化的影響,采用歸一化互相關函數ncc,表達式為

復雜度與模板中像素點的數量有關,將圖像與模板縮小多次,圖像的上一層的長寬均減小一半,形似金字塔形狀的算法稱為金字塔算法[15]。圖像金字塔經過低通濾波,對圖像進行縮小比例的抽樣,得到分辨率和尺寸不同的圖像。分辨率最高的圖像在金字塔的底部,向上是分辨率逐漸變低的圖像。
圖像金字塔模型如圖2所示,每個level代表每一層,圖像金字塔中如果每增加一層,圖像的邊長始終為下一層邊長的一半,像素點數均為原來的1/4。圖像金字塔算法將頂層的結果映射到底層,在匹配分值較高的區域搜索,可以縮小匹配范圍。

圖2 圖像金字塔模型
NI公司的LabVIEW軟件使用圖形化G語言開發,可以降低開發難度、縮短開發周期[16],IMAQ Vison視覺模塊提供完善的機器視覺算法,能夠實現圖像處理與視覺檢測任務。
圖像采集過程:首先創建會話句柄選擇攝像頭,打開并配置USB相機,調用IMAQ Create.vi創建數據緩沖區,配置Grab采集圖像并創建圖像顯示控件,調用Imaq Write File.vi將圖片保存。
采集圖像過程中會受到干擾,預處理可以抑制噪聲和去除干擾,使得處理后的圖像更適合機器視覺系統。彩色經過灰度化,提高處理速度,抽取單個顏色平面,減小計算量又能保留圖像特征,本文抽取圖像的Green顏色分量,灰度化如圖3 (a)所示。采用高斯濾波,鄰域內像素的加權平均值代替該點像素的值,抑制噪聲且保護邊緣,效果如圖3 (b)所示。

圖3 預處理效果
基于圖像化編程的LabVIEW是計算機和儀器的緊密結合。前面板實現人機交互,界面包括:圖像采集、模板創建、執行匹配、匹配結果顯示部分。界面左側為原始圖像采集、模板創建的操作控件及顯示;右側為識別結果顯示,識別的零件會進行框選,產生的匹配數據通過表格顯示;右下側為參數設置部分及系統運行操作控件,界面如圖4所示。

圖4 界面設計
軟件使用模塊化設計,便于測試,依據功能需求,通過IMAQ ConstructROI模塊構建ROI區域,Extract模塊完成模板的抽取,將模板輸入IMAQ LearnPattern模塊進行學習。設置匹配的最大個數、最低匹配分數、角度范圍,最低匹配分數太高會出現目標遺漏,太低會引起錯誤檢測,最低匹配分數設置為600分。
亞像素是將相鄰的兩個像素進行細分,每個像素被分為更小的單元。如圖5為對比像素和亞像素精度處理零件細節,圖5 (a)為像素精度,在處理邊緣最大間距時受到ROI框右邊界干擾,起始點Start Point和結束點End Point計算不準;圖5 (b)為亞像素精度,在最大間距中起始與結束點位置準確。模板匹配中使能亞像素精度,在細節方面處理更好,提高識別零件的準確性。程序面板的高級選項模塊中亞像素精度布爾控件為True,圖4前面板右下方的高級選項控件,顯示Enable-Subpixel。

圖5 亞像素處理對比
選用灰度值金字塔算法,使能亞像素精度;調用IMAQ Match實現模式匹配。結果利用“按名稱解除捆綁”控件,創建表格對像素坐標、旋轉角度、匹配分數等顯示。
針對生產中對不同零件進行學習并識別的需求,本文選取3種不同零件分別編號為A、B、C,在目標發生旋轉、光照變化、部分遮擋的條件下進行3組實驗。選定待識別零件目標區域進行模板創建,零件A、B、C創建的模板圖像分別如圖6 (a)、圖6 (b)、圖6 (c)所示。

圖6 模板圖像
實驗1:針對零件旋轉的情況,選取3個零件A進行實驗,識別效果如圖7所示。

圖7 旋轉識別結果
圖中檢測到目標數量為3,識別效果良好,對識別與定位的目標進行框選。目標A匹配結果如表1所示,坐標(x,y)為對應像素位置,目標零件相對于模板發生旋轉時產生旋轉角度,匹配分數越高,目標與模板相似程度越高。

表1 目標A匹配結果
表1中坐標為(321.50,644.00)的目標匹配分數為1 000分,該目標為模板圖像,像素坐標為(837.61,634.28)、(1 350.87,640.77)的目標旋轉角度分別為70.10°、154.74°,不同旋轉角度時均可以很好地識別與定位。
實驗2:選取5個零件B在照明發生變化的情況下進行測試,從左至右分別進行編號,識別效果如圖 8所示。

圖8 不同亮度識別結果
圖8(a)為較暗光照1的識別效果,較亮光照2識別效果如圖8 (b)所示,均可以有效識別。結果如表2所示,可以看出,較暗光照1匹配分數較低于光照2的分數。采用歸一化互相關處理,在光照變化時仍然可以識別,但合適的光照更有利于突出目標特征并獲得更高的相似度。

表2 目標B匹配結果
實驗3:對零件C受到部分遮擋的情況進行測試,識別效果如圖9所示。左邊第1個目標未發生遮擋,第2、3、4、5、6目標發生不同程度的遮擋,識別結果數據見表3所示。

圖9 遮擋匹配結果

表3 目標C匹配結果
由圖可以看出,目標6遮擋較少,同時表3中目標6的匹配分數為878.28,相似度較高。目標2、5遮擋較多,對應的匹配分數分別為645.79、733.21,與模板相似度程度差異較大,但仍能正確識別。目標3、4匹配分數分別為792.56、825.83,可以準確識別。在實驗3中目標發生部分遮擋,系統可準確地識別零件。
本文基于灰度值金字塔算法進行模式匹配,有效減小運算量,增強對不同條件的適應性,提高匹配性能。同時使能亞像素精度,更精確地實現零件的識別,通過匹配結果中的像素坐標實現目標定位。經過試驗測試,不同旋轉角度的目標可以準確識別與定位;光照不同,識別結果匹配分數有差異,說明合適的光照可以更好地突出目標的特征;在測試零件發生不同程度部分遮擋時,系統識別定位準確。通過LabVIEW設計人機交互界面和程序功能,實現了對不同零件的識別與定位,圖像化編程開發周期短、效率高。文中識別系統針對常規生產應用,面對高速生產、零件復雜的情況有待進一步研究。