任楷飛, 孟令軍, 顧澤凌
(中北大學(xué) 電子測試技術(shù)國家重點實驗室,山西 太原 030051)
零件的識別是工業(yè)自動化檢測中的重要環(huán)節(jié)[1]。對于不同形狀的零件,人工檢測效率低、工作量大[2]。機器視覺技術(shù)具有效率高、非接觸式測量的優(yōu)點[3-4],開發(fā)機器視覺系統(tǒng)可以準確識別和定位目標。目前神經(jīng)網(wǎng)絡(luò)在零件識別上的優(yōu)勢在于具有學(xué)習(xí)能力,但神經(jīng)元數(shù)目多,計算量大并且需要樣本訓(xùn)練[5]。零件的輪廓特征利用傅里葉變換轉(zhuǎn)換為頻域特性,互相關(guān)系數(shù)作為識別依據(jù)[6]?;谇屎虷ough變換的平面輪廓圖元方法識別零件[7]。利用Harris 角點檢測,根據(jù)零件的特殊點進行識別匹配[8]。在Matlab上使用連通域標識法識別目標,不適用于零件發(fā)生遮擋的情況[9]。基于LabVIEW的模板匹配能夠?qū)崿F(xiàn)模糊情況的識別[10]。在滾動體反裝軸承件識別中,以LabVIEW為開發(fā)平臺區(qū)分正反面[11]。以LabVIEW和Vision的虛擬儀器,從圖像中建立模板,通過模板匹配對金剛石晶體類型分類與數(shù)目統(tǒng)計[12]。當前機器視覺系統(tǒng)基于halcon、opencv等軟件較多,LabVIEW的機器視覺檢測研究處于發(fā)展階段。
本文提出基于LabVIEW的零件識別方法,該方法中灰度值金字塔算法既可以利用灰度值歸一化的抗干擾性,又可以利用金字塔算法從頂層運算減小運算量的優(yōu)勢,提高匹配速度。在設(shè)計模板匹配過程中使能亞像素精度,有效提高零件識別的精度。在不同條件進行零件識別測試,準確識別目標個數(shù)并框選目標進行標識,識別匹配結(jié)果給出像素坐標,尤其在部分遮擋的情況下,系統(tǒng)識別的準確性高、抗干擾性強。
系統(tǒng)軟件采用LabVIEW結(jié)合IMAQ Vision視覺工具包進行開發(fā),通過虛擬儀器LabVIEW的模塊化設(shè)計,將各個功能模塊實現(xiàn)并整合,實現(xiàn)系統(tǒng)設(shè)計功能。硬件搭建采用USB高級工業(yè)相機、環(huán)形LED光源。系統(tǒng)實現(xiàn)過程:通過采集圖像并緩存,預(yù)處理后選定目標ROI區(qū)域進行模板的創(chuàng)建與學(xué)習(xí),選用灰度值金字塔算法并設(shè)置參數(shù),模式匹配完成后進行結(jié)果顯示。系統(tǒng)處理結(jié)構(gòu)如圖1所示。
模式匹配是根據(jù)計算模板與被測目標的相似度來判別目標[13],本文采用灰度值金字塔算法,該算法使用灰度值歸一化特性和金字塔算法結(jié)合的原理,適合邊緣復(fù)雜或模板包含大量相似灰度信息的情況。
對于發(fā)生旋轉(zhuǎn)的目標,需要將搜索空間進行離散化。圖像金字塔增加一層時旋轉(zhuǎn)角度步幅可以增大兩倍,因此在圖像金字塔的最高層進行所有角度旋轉(zhuǎn),在底層創(chuàng)建搜索區(qū)域能有效降低計算量。對于識別旋轉(zhuǎn)目標應(yīng)使用亞像素精度[14]進行處理,提高識別精度。
圖1 系統(tǒng)處理結(jié)構(gòu)
該算法通過計算模板與圖像的相似度,利用模板圖像可以在感興趣區(qū)域T內(nèi)進行平移,移動模板至某一位置的相似性度量s:
其中T為感興趣區(qū)域,f(r+u,c+v)為移動至模板區(qū)域的灰度值。將計算相似性度量具體化,引入模板與圖像之間差的絕對值求和sad、差的平方求和ssd:
其中n為模板感興趣區(qū)域像素點的數(shù)量。
相似性度量大說明與模板差別大。當光線發(fā)生線性變化時,同樣會引起灰度值的變化,導(dǎo)致識別出錯。為防止線性光照變化的影響,采用歸一化互相關(guān)函數(shù)ncc,表達式為
復(fù)雜度與模板中像素點的數(shù)量有關(guān),將圖像與模板縮小多次,圖像的上一層的長寬均減小一半,形似金字塔形狀的算法稱為金字塔算法[15]。圖像金字塔經(jīng)過低通濾波,對圖像進行縮小比例的抽樣,得到分辨率和尺寸不同的圖像。分辨率最高的圖像在金字塔的底部,向上是分辨率逐漸變低的圖像。
圖像金字塔模型如圖2所示,每個level代表每一層,圖像金字塔中如果每增加一層,圖像的邊長始終為下一層邊長的一半,像素點數(shù)均為原來的1/4。圖像金字塔算法將頂層的結(jié)果映射到底層,在匹配分值較高的區(qū)域搜索,可以縮小匹配范圍。
圖2 圖像金字塔模型
NI公司的LabVIEW軟件使用圖形化G語言開發(fā),可以降低開發(fā)難度、縮短開發(fā)周期[16],IMAQ Vison視覺模塊提供完善的機器視覺算法,能夠?qū)崿F(xiàn)圖像處理與視覺檢測任務(wù)。
圖像采集過程:首先創(chuàng)建會話句柄選擇攝像頭,打開并配置USB相機,調(diào)用IMAQ Create.vi創(chuàng)建數(shù)據(jù)緩沖區(qū),配置Grab采集圖像并創(chuàng)建圖像顯示控件,調(diào)用Imaq Write File.vi將圖片保存。
采集圖像過程中會受到干擾,預(yù)處理可以抑制噪聲和去除干擾,使得處理后的圖像更適合機器視覺系統(tǒng)。彩色經(jīng)過灰度化,提高處理速度,抽取單個顏色平面,減小計算量又能保留圖像特征,本文抽取圖像的Green顏色分量,灰度化如圖3 (a)所示。采用高斯濾波,鄰域內(nèi)像素的加權(quán)平均值代替該點像素的值,抑制噪聲且保護邊緣,效果如圖3 (b)所示。
圖3 預(yù)處理效果
基于圖像化編程的LabVIEW是計算機和儀器的緊密結(jié)合。前面板實現(xiàn)人機交互,界面包括:圖像采集、模板創(chuàng)建、執(zhí)行匹配、匹配結(jié)果顯示部分。界面左側(cè)為原始圖像采集、模板創(chuàng)建的操作控件及顯示;右側(cè)為識別結(jié)果顯示,識別的零件會進行框選,產(chǎn)生的匹配數(shù)據(jù)通過表格顯示;右下側(cè)為參數(shù)設(shè)置部分及系統(tǒng)運行操作控件,界面如圖4所示。
圖4 界面設(shè)計
軟件使用模塊化設(shè)計,便于測試,依據(jù)功能需求,通過IMAQ ConstructROI模塊構(gòu)建ROI區(qū)域,Extract模塊完成模板的抽取,將模板輸入IMAQ LearnPattern模塊進行學(xué)習(xí)。設(shè)置匹配的最大個數(shù)、最低匹配分數(shù)、角度范圍,最低匹配分數(shù)太高會出現(xiàn)目標遺漏,太低會引起錯誤檢測,最低匹配分數(shù)設(shè)置為600分。
亞像素是將相鄰的兩個像素進行細分,每個像素被分為更小的單元。如圖5為對比像素和亞像素精度處理零件細節(jié),圖5 (a)為像素精度,在處理邊緣最大間距時受到ROI框右邊界干擾,起始點Start Point和結(jié)束點End Point計算不準;圖5 (b)為亞像素精度,在最大間距中起始與結(jié)束點位置準確。模板匹配中使能亞像素精度,在細節(jié)方面處理更好,提高識別零件的準確性。程序面板的高級選項模塊中亞像素精度布爾控件為True,圖4前面板右下方的高級選項控件,顯示Enable-Subpixel。
圖5 亞像素處理對比
選用灰度值金字塔算法,使能亞像素精度;調(diào)用IMAQ Match實現(xiàn)模式匹配。結(jié)果利用“按名稱解除捆綁”控件,創(chuàng)建表格對像素坐標、旋轉(zhuǎn)角度、匹配分數(shù)等顯示。
針對生產(chǎn)中對不同零件進行學(xué)習(xí)并識別的需求,本文選取3種不同零件分別編號為A、B、C,在目標發(fā)生旋轉(zhuǎn)、光照變化、部分遮擋的條件下進行3組實驗。選定待識別零件目標區(qū)域進行模板創(chuàng)建,零件A、B、C創(chuàng)建的模板圖像分別如圖6 (a)、圖6 (b)、圖6 (c)所示。
圖6 模板圖像
實驗1:針對零件旋轉(zhuǎn)的情況,選取3個零件A進行實驗,識別效果如圖7所示。
圖7 旋轉(zhuǎn)識別結(jié)果
圖中檢測到目標數(shù)量為3,識別效果良好,對識別與定位的目標進行框選。目標A匹配結(jié)果如表1所示,坐標(x,y)為對應(yīng)像素位置,目標零件相對于模板發(fā)生旋轉(zhuǎn)時產(chǎn)生旋轉(zhuǎn)角度,匹配分數(shù)越高,目標與模板相似程度越高。
表1 目標A匹配結(jié)果
表1中坐標為(321.50,644.00)的目標匹配分數(shù)為1 000分,該目標為模板圖像,像素坐標為(837.61,634.28)、(1 350.87,640.77)的目標旋轉(zhuǎn)角度分別為70.10°、154.74°,不同旋轉(zhuǎn)角度時均可以很好地識別與定位。
實驗2:選取5個零件B在照明發(fā)生變化的情況下進行測試,從左至右分別進行編號,識別效果如圖 8所示。
圖8 不同亮度識別結(jié)果
圖8(a)為較暗光照1的識別效果,較亮光照2識別效果如圖8 (b)所示,均可以有效識別。結(jié)果如表2所示,可以看出,較暗光照1匹配分數(shù)較低于光照2的分數(shù)。采用歸一化互相關(guān)處理,在光照變化時仍然可以識別,但合適的光照更有利于突出目標特征并獲得更高的相似度。
表2 目標B匹配結(jié)果
實驗3:對零件C受到部分遮擋的情況進行測試,識別效果如圖9所示。左邊第1個目標未發(fā)生遮擋,第2、3、4、5、6目標發(fā)生不同程度的遮擋,識別結(jié)果數(shù)據(jù)見表3所示。
圖9 遮擋匹配結(jié)果
表3 目標C匹配結(jié)果
由圖可以看出,目標6遮擋較少,同時表3中目標6的匹配分數(shù)為878.28,相似度較高。目標2、5遮擋較多,對應(yīng)的匹配分數(shù)分別為645.79、733.21,與模板相似度程度差異較大,但仍能正確識別。目標3、4匹配分數(shù)分別為792.56、825.83,可以準確識別。在實驗3中目標發(fā)生部分遮擋,系統(tǒng)可準確地識別零件。
本文基于灰度值金字塔算法進行模式匹配,有效減小運算量,增強對不同條件的適應(yīng)性,提高匹配性能。同時使能亞像素精度,更精確地實現(xiàn)零件的識別,通過匹配結(jié)果中的像素坐標實現(xiàn)目標定位。經(jīng)過試驗測試,不同旋轉(zhuǎn)角度的目標可以準確識別與定位;光照不同,識別結(jié)果匹配分數(shù)有差異,說明合適的光照可以更好地突出目標的特征;在測試零件發(fā)生不同程度部分遮擋時,系統(tǒng)識別定位準確。通過LabVIEW設(shè)計人機交互界面和程序功能,實現(xiàn)了對不同零件的識別與定位,圖像化編程開發(fā)周期短、效率高。文中識別系統(tǒng)針對常規(guī)生產(chǎn)應(yīng)用,面對高速生產(chǎn)、零件復(fù)雜的情況有待進一步研究。