陳宇昊,彭 力,朱良俊
(物聯(lián)網(wǎng)應用技術教育部工程中心 江南大學物聯(lián)網(wǎng)工程學院,無錫 214122)
機器視覺,是機器通過視覺傳感器將目標物體的形狀、大小、顏色等信息處理成數(shù)字信號,再發(fā)送給專用的圖像處理系統(tǒng)的過程。在該過程中,視覺傳感器擔任著信息源的角色,圖像處理系統(tǒng)中的算法將圖像信息綜合并提取出具有應用價值的特征,并能反過來調(diào)整視覺傳感器的參數(shù)以達到更好的圖像效果。在中小汽車配件制造企業(yè)中,對成品使用人工檢測的情況依舊很多,人工檢測效率低,準確性差,存在著不小的隱患,本文旨在設計一種針對汽車塑料緊固組件的檢測與分揀裝置,基于機器視覺,實現(xiàn)對傳統(tǒng)人工檢測手段的改進甚至取締。
現(xiàn)代制造業(yè)的生產(chǎn)速度快,物流吞吐量大,如果沒有機器視覺,那么勢必會在產(chǎn)品質(zhì)量檢測這一環(huán)節(jié)中投入大量的人力,消耗大量的時間。機器視覺能實現(xiàn)實時和非接觸式檢測,保證每個環(huán)節(jié)中產(chǎn)品的狀態(tài)和質(zhì)量,并及時的將不合格的過程件去除,提高了整體效率,也可以通過研究瑕疵件的共性從而反推出生產(chǎn)流程中的某個不合理的流程,幫助優(yōu)化生產(chǎn)流程[1]。
另外,由于汽車制造業(yè)中塑料組件種類眾多,這要求視覺檢測程序擁有一定的泛用性,能被用于對不同種類的塑料緊固組件的判斷與分揀。
本文的主要工作和貢獻如下:
1)本文討論了目前廣泛運用的幾種圖像處理與定位方法,分析各種方法的優(yōu)劣。
2)分析所檢測汽車塑料緊固組件的外形特點,提出可以追蹤其位置的方法。
3)實現(xiàn)對汽車塑料緊固組件上的緊固卡扣的識別,判斷其是否有緊固卡扣缺裝,并指出缺裝的位置與數(shù)量。
4)通過理論分析和實驗,驗證該汽車塑料緊固組件檢測程序的可行性與有效性。
關于機器視覺,文獻[1]總結(jié)了以下4種視覺檢測方法:基于手工特征的檢測方法、機器學習方法、改進Feature-Based方法與R-CNN方法?;谑止さ奶卣鞣椒ǚ磻氖蔷植繀^(qū)域的明暗關系,被廣泛用于人臉與非人臉的區(qū)分中;機器學習方法涵蓋多種算法,其在圖像處理中的運用多為查找對象并進行分類或判斷;改進Featured-Based方法結(jié)合Haar特征與AdaBoost算法,可看作是手工特征方法與機器學習方法的結(jié)合,提高了面部識別的精度;R-CNN方法受遺傳算法啟發(fā),使用網(wǎng)格訓練方式,用于圖片中對象的判斷與分類。以上的四種檢測方法用于判斷檢測目標形狀時效果良好,但并不適合用于判斷檢測目標是否存在。本文在文獻[2]基礎上,使用OPENCV庫中的相關函數(shù)從圖片中提取汽車塑料緊固組件的外圍輪廓,由輪廓推導出當前汽車塑料緊固組件的偏轉(zhuǎn)角度、相對大小和所處位置等信息。
本文的研究對象是汽車塑料組合件上的緊固卡扣,緊固卡扣分布在汽車塑料緊固組件上,且位置相對固定,因此可以將緊固卡扣的位置以相對坐標的形式儲存在計算機中。緊固卡扣的顏色與汽車塑料緊固組件呈反色差,因此可以準確的與背景區(qū)分,為了最大化檢測速度使其符合生產(chǎn)線標準,設計了一種計算量較少的緊固卡扣存在判斷算法。最后,通過理論分析和實驗,驗證了緊固卡扣定位策略與緊固卡扣存在判斷算法的可行性和有效性。
隨著研究的不斷深入,程序?qū)崿F(xiàn)的功能也越來越復雜,由一開始識別固定坐標位置的緊固卡扣是否存在,到追蹤緊固卡扣的固定位置并判斷,最后可以自定義緊固卡扣在汽車塑料緊固組件上的相對位置。為了能取得更好的識別效果,環(huán)境影響與計算量過大導致運行速度偏慢成了需要考慮的因素。文獻[3]指出多種提高視覺識別程序運行速度的方法,本文在文獻[3]基礎上通過設置多個ROI區(qū)域的方法來減少整體運算量,使得計算速度在計算普通的設備上也滿足需求。
在中小汽車配件制造企業(yè)中,對成品使用人工檢測的情況依舊很多,人工檢測效率低,準確性差,存在著不小的隱患,人工檢測的汽車塑料緊固組件如圖1所示。
圖1 汽車塑料緊固組件
該汽車塑料緊固組件除一邊略微彎曲大致呈矩形外,其兩寬長度也有略微差異。長約110厘米,寬25厘米。其顏色主要呈黑色,上有紅色雙面膠布涂層與黃色裝飾。八個緊固卡扣呈白色,與汽車塑料緊固組件顏色為反色差。
本文符號說明如下:
灰度(Gray scale)用于描述黑白圖像中像素點從最黑的黑色到最亮的白色的具體數(shù)值,記為字母G,灰度可用于表示像素點能量的大小,由0表示能量最低的黑色,255表示能量最大的白色。
θ0表示作為標準模板的汽車塑料緊固組件的實際偏轉(zhuǎn)角度,θ1表示之后被測件的實際偏轉(zhuǎn)角度,θ表示被測件與標準模板的相對偏差角度,由式(1)可得:
本文的檢測過程原理框圖如圖2所示,具體步驟為:
1)汽車塑料緊固組件的標準模板,放在待檢測位置,啟動計算機視覺系統(tǒng),自動識別汽車塑料緊固組件幾何中心坐標、組合件偏移θ0角(其識別方法同步驟2),技術人員操作鼠標引導確認各緊固卡扣的中心坐標點,上述的信息將作為該類標準模板組合件的標準信息儲存在計算機中。
2)傳輸帶上的接近開關傳感器,一旦檢測到汽車塑料緊固組件,自動啟動計算機視覺識別系統(tǒng),獲取被測汽車塑料緊固組件的外框信息四個邊角點坐標、塑料組合件幾何中心坐標及組合件偏移θ1角。
3)將步驟1所得的各緊固卡扣的中心坐標點,圍繞汽車塑料緊固組件的幾何中心旋轉(zhuǎn)θ1-θ0度,與被測件上的緊固卡扣位置重合,接著在緊固卡扣位置上使用計算機視覺識別算法判斷是否存在緊固卡扣。
本文致力于設計汽車塑料緊固組件檢測與分揀系統(tǒng),并使該系統(tǒng)在準確穩(wěn)定的前提下具有較小的性能指標。為此,我們在檢測開始前由人工操作鼠標的方式來確認各緊固卡扣的中心坐標點,相比由計算機根據(jù)緊固卡扣特征來定位緊固卡扣,這樣節(jié)省了處理時間,且人工初次定位完成后就不需要后續(xù)操作,一切將自動完成。人工定位質(zhì)量會對檢測質(zhì)量有一定影響,但只要定位時稍加注意,該影響便可降至最低。
圖2 檢測過程原理框圖
計算機視覺識別算法可分為三大部分:汽車塑料緊固組件的定位;緊固卡扣位置的定位;緊固卡扣是否存在的判斷。
步驟1:灰度與模糊化灰度化是將三通道的RGB圖像轉(zhuǎn)換為單通道的灰度圖像,其方法為計算一個像素RGB三通道的算術平均值,設RGB三通道值為R、G、B,計算后灰度值為G,使用下面公式計算出灰度值G。
按照該計算方式遍歷圖像內(nèi)所有的像素點,便可將一副RGB圖像轉(zhuǎn)換為灰度圖像。
模糊化顧名思義,建立一個模糊的內(nèi)核,可對圖像進行模糊處理,這樣能有利于邊緣處理。這里使用高斯模糊內(nèi)核,內(nèi)核計算方式如下:
計算得出的高斯內(nèi)核矩陣需要歸一化,歸一化后整個矩陣的和為1,這樣卷積后的圖像與原圖像相比就不會出現(xiàn)整體變亮或變暗的情況。σ的大小代表著離散程度的高低,本文中取1.5。
設圖像矩陣為h,原圖像矩陣為x,結(jié)果為Y。卷積的結(jié)果發(fā)送給中心像素,遍歷整幅原圖像,便可以得到模糊后圖像Y:
i,j,為任何可能的圖像坐標點。
圖3 灰度化與模糊化處理后
步驟2:二值化二值化作用是大致區(qū)分出圖像的輪廓。這里使得超過門限的值為最大值,其他值為0。設門限為thresh,輸出圖片為dst,輸入圖片為src。
thresh值的大小會影響二值化后的圖像質(zhì)量,一般取60~100。
圖4 二值化后圖像(thresh=70)
圖5 二值化后圖像(thresh=40)
步驟3:開運算與fillHole算法開運算其實就是先腐蝕后膨脹的操作。其作用是去除噪聲,平滑較大物體的邊界的同時并不明顯改變其面積。膨脹的數(shù)學表達如下:
將結(jié)構(gòu)元素B按照z進行平移,B對A的膨脹是所有位移z的集合。
腐蝕的數(shù)學表達如下:
B對A的腐蝕是一個用z平移的B包含在A中所有點z的集合。
fillHole算法[4]用于填充開運算后圖像中的孔洞,設原圖像為A。
1)將圖像A的外邊緣向四周擴展1或2個像素,如100×100的圖片延展后為102×102或104×104,對擴展出的額外像素賦值,其值大小與背景色保持一致,本文研究的背景色為白色,故將額外像素值賦值為0,為之后取反相加操作做鋪墊,標記為B。
2)使用Opencv中自帶的floodFill函數(shù),該函數(shù)類似畫圖工具中的油漆桶,可將顏色相近的區(qū)域填充為指定顏色或標識出該區(qū)域,填充的起始點選為(0,0)即可,由于第一步步驟,該(0,0)點為擴展出的新像素,填充灰度值為前景色灰度值,即白色(255),標記為C。
3)將floodFill后的圖像進行裁剪處理,裁剪回原來的大小,標記為D。
4)將D整體取反,此時原先的白色區(qū)域便反為黑色,黑色反為白色,取反后圖像記為~D,將~D與原圖像A的每個像素值對應相加,即E=A|(~D)。
圖6 fillHole算法后二值化圖像
步驟4:提取邊緣首先使用Canny算法提取二值化圖像的邊緣,其算法邏輯為:
1)設置兩個閾值,分別命名為閾值1與閾值2,其中閾值1的值小于閾值2;
2)遍歷圖像中的所有像素,低于閾值1的像素不會被標記為可能的邊緣,高于閾值2的值會被標記為邊緣。
3)若檢測到1像素點大小在閾值1與閾值2之間,則對該像素周圍的像素點進行判斷,若該像素點與大于閾值2的像素點相鄰,則被認定為邊緣,否則不被標記為可能的邊緣。
圖7 Canny算法提取輪廓
接著使用FindContour算法與DrawContour算法,前者用于尋找閉合的邊緣,后者用于繪制出尋找到的邊緣圖像,F(xiàn)indContour用來對數(shù)字二值圖像進行拓撲分析。該算法是在確定二值圖像邊界的圍繞關系,即確定外邊界、孔邊界以及他們的層次關系,由于這些邊界和原圖的區(qū)域具有一一對應關系(外邊界對應像素值為1的連通區(qū)域,孔邊界對應像素值為0的區(qū)域),因此我們就可以用邊界來表示原圖。該算法可以選擇性的繪制圖像的輪廓,將一些不符合條件(不閉合,或不是最外側(cè)輪廓)的輪廓剔除。
步驟1:對緊固組件位置的定位需要從輪廓中提取兩個位置相關的信息,汽車塑料緊固組件的幾何中心點與偏轉(zhuǎn)角度。
使用空間矩的一階矩來計算二值化后輪廓的幾何中心點,圖像由一個個像素構(gòu)成,這一個個像素組成的圖像可看成是一個大矩陣,矩陣中每一個元素也可視作一個二維變量,令該二維變量為(x,y),若圖像為灰度圖像,其灰度圖可抽象為二維灰度密度函數(shù)來表示,因此可以用矩來描述灰度圖像的特征,當該灰度圖像經(jīng)過二值化處理,其密度處處相等。
大小為M×N的數(shù)字圖像f(x,y)的二維(p+1)階定義為:
對應的中心矩為:
空間矩的實質(zhì)為面積或者質(zhì)量,可以通過一階矩計算重心:
重心:
由于該圖像已經(jīng)被二值化過,所以計算所得的重心(x,y)就是組合件幾何中心點。
圖8 組合件幾何中心點(紅色圓點)
步驟2:計算緊固組件的偏轉(zhuǎn)角度為計算汽車塑料緊固組件的偏轉(zhuǎn)角度,需要獲取4個邊角點的位置信息,findHarris算法[5]:該算法用于尋找輪廓的特征邊角點,根據(jù)該組合件的特征,選擇它的四個邊角作為特征點,擁有了這四個邊角的坐標數(shù)據(jù),就可以繼續(xù)下一步計算。
關于邊角點的具體描述可以有幾種:
1)對圖像邊緣做偏導的一階導數(shù)的極大值點所對應的像素點。
2)邊角點處的一階導數(shù)極大,二階導數(shù)為0,說明物體的邊緣變化方向不連續(xù)。
3)兩條及以上邊緣的交點。
4)圖像中一階偏導變化速率很快的點。
圖像像素點上值的變化,即圖像灰度梯度的變化與邊角點的判斷息息相關,考慮到一個灰度圖像I。劃動窗口w(x,y)計算像素灰度變化。
其中,w(x,y)是窗口所在坐標,I(x,y)是圖像上坐標點的灰度強度,I(x+u,y+v)是窗口上變化的坐標點上的灰度強度。
為了在圖像中精準的識別出邊緣圖像的邊角點,需要對像素灰度值梯度較大的窗口進行定位,于是有以下期望最大化公式:
使用泰勒展開式:
式子展開為:
將上式表達為矩陣的形式,表達式寫為:
表示為:
可得等式:
每個窗口中計算一個值,這個值決定了這個窗口中是否包含了邊角點。
其中:
一個窗口,它的分數(shù)R大于一個特定值,這個窗口就可以被認為是“邊角點”。上面E(u,v)可以看出,無論u,v取何值,我們需要E盡可能的大。
圖9 邊角點(藍色圓點)
由4個邊角點的坐標確定組合件的水平偏移角度,圖10中水平線段的端點為短邊兩側(cè)的兩個邊角點的中點。
如圖,藍色的線便是相對于組合件的水平線,設其左側(cè)點為(xl,yl),右側(cè)點為(xr,yr)。
圖10 移角度為9°
斜率計算:
圖片中組合件實際偏移角度計算:θ1=tan-1k。
要注意的是,相對偏移θ角度是當前被測組合件的角度θ1減去標準件所測角度θ1,即:
(在實際工程中,汽車塑料組合件的偏移θ1角度不會過大,最多為15°)。
計算機視覺系統(tǒng)自動計算被測汽車塑料組合件與標準位置的偏移θ角,θ=θ1-θ0。
步驟3:追蹤緊固卡扣位置設標準汽車塑料組合件緊固卡扣坐標為(x',y'),變換后坐標為(x,y),旋轉(zhuǎn)中心為(x0,y0),旋轉(zhuǎn)角度為θ,標準模板幾何中心與被測組合件幾何中心的坐標差值為(xa,ya)。
通過以上變換,緊固卡扣坐標便能跟著組合件一起偏移,實現(xiàn)了對組合件緊固卡扣位置的重新定位。
步驟1:構(gòu)建正方形檢測區(qū)域以旋轉(zhuǎn)偏移θ角后的各緊固卡扣的位置坐標作為中心點,計算該中心點周圍正方形小區(qū)域的圖像像素累加和。通過所求得的各緊固卡扣的中心位置周圍正方形小區(qū)域的圖像像素累加和的值,判斷緊固卡扣是否缺裝。
設正方形小區(qū)域邊長為L,緊固卡扣的中心位置為(x0,y0),則正方形左上角坐標P為:
步驟2:在正方形區(qū)域中進行判斷由左上角坐標P和邊長L,便可構(gòu)建此正方形小區(qū)域。該正方形小區(qū)域可看作L×L的矩陣,并計算所有像素點累加和S:
S≥Thresh,則該區(qū)城有緊固卡扣;S<Thresh,則該區(qū)城無緊固卡扣;
如圖11所示,分別是安裝了卡扣的與未安裝卡扣處理后的對比圖。
圖11 卡扣有無對比圖
判斷后,有卡扣的位置用綠框表示,無卡扣的位置變成紅框。
圖12 有卡扣無卡扣
該算法主要內(nèi)容集中在對汽車塑料緊固組件上緊固卡扣位置的定位上,計算機會將第一個檢測的緊固組件作為標準模板,標準模板的信息將一直保存在計算機中,通過旋轉(zhuǎn)、平移標準模板的緊固卡扣位置坐標,就可以使之與之后被測件的緊固卡扣位置重合,然后在被測件的緊固卡扣位置上進行緊固卡扣的存在判斷,圖片在算法運行中的流程圖如圖13所示。
為了驗證檢測方法的有效性,本小節(jié)給出相應的運行實例與結(jié)果分析。
圖14展示了視覺程序?qū)?個汽車塑料緊固組件的檢測,其中第一幅圖片為標準模板。
圖13 檢測流程圖
首先用藍色方框框選需要檢測的范圍,這個步驟可以減少運算總量,提高程序的運行速度,接著用鼠標點擊白色緊固卡扣的所在位置,確保緊固卡扣在生成的方框內(nèi),就可對接下來的被測件進行檢測。
圖14 運行示例圖
該檢測方法在實際應用中表現(xiàn)出色,在光照不穩(wěn)定的非工廠條件下也能完成對緊固卡扣的識別。
圖15 測試時畫面
表1為總數(shù)為100次的檢測實驗,將現(xiàn)有的幾個被測件亂序循環(huán)放入檢測區(qū)域檢測。
表1 檢測結(jié)果
其中兩次不準確的原因為光照條件不足導致的定位不準確,該檢測方法在光照良好情況下將有最好表現(xiàn)。
目前該檢測方法已被相關企業(yè)采用,檢測速度與精度都滿足生產(chǎn)要求。
本文設計了對汽車塑料緊固組件上緊固卡扣的一種檢測方法,通過比較各種檢測策略,選擇適合本文的最優(yōu)檢測方法,設計出緊固卡扣位置追蹤算法。最后通過理論分析和實際測試,驗證了本文檢測方法的有效性,該檢測方法最終被采用。