蔡建武,吳平,吳自然
(溫州大學(xué)物理與電子信息工程學(xué)院,浙江溫州325000)
隨著科技的日益進步,各個產(chǎn)品的生產(chǎn)都趨于自動化以此節(jié)約人力資源。印刷品因為自動化印刷可能會產(chǎn)生各種缺陷,導(dǎo)致產(chǎn)品的說明不再精確,而人們對于說明書的質(zhì)量要求越來越高,因此這部分有缺陷的電器應(yīng)當(dāng)需要被歸于不合格產(chǎn)品,人工檢測所有產(chǎn)品浪費了過多的人力資源,我們需要自動檢測系統(tǒng)來代替這部分的人力資源以實現(xiàn)生產(chǎn)線的自動化。
在目前的印刷工業(yè)環(huán)境下采用CCD等圖像采集設(shè)備中由于受到光照的影響,圖像的像素會有偏差,灰度不一。也因為機器的震動,流水線的抖動,圖像可能會出現(xiàn)偏轉(zhuǎn)。使得后續(xù)的工作難以順利完成,因此必須對經(jīng)過采集的待處理圖像進行預(yù)處理,其中預(yù)處理部分由于龐大的像素點,會對算法的效率有著巨大的要求,同時物體的旋轉(zhuǎn)匹配的準(zhǔn)確率也會直接影響到整個系統(tǒng)的誤判率,如果簡單的對于采樣圖像進行多次旋轉(zhuǎn)匹配無疑會減小整個系統(tǒng)的效率,而遍歷的本身的精度更是取決于系統(tǒng)逐次遍歷的角度,精度的提升都會降低系統(tǒng)效率。本文提出了采用ORB[1]算法去匹配偏差角度角度,解決圖像配準(zhǔn)時的角度精度矯正并提高系統(tǒng)效率。
目前圖像采集的光照影響我們可以采取非自然光來保證24小時的統(tǒng)一光照元素,以此來保證灰度圖的統(tǒng)一。借此一個高效的旋轉(zhuǎn)匹配策略就成了系統(tǒng)的核心問題。
為了滿足實時性的要求,因此采用了ORB[1]算法。ORB[1]算法是構(gòu)建在Fast以及BRIEF[2]算法基礎(chǔ)之上。Fast特征點不具有尺度不變性和方向,所以通過構(gòu)造了具有尺度不變性的高斯金字塔,在每一層金字塔圖像上檢測角點,以此來實現(xiàn)尺度不變性。同時ORB[1]的論文中提出了一種利用灰度質(zhì)心法來解決這個問題,灰度質(zhì)心法假設(shè)角點的灰度與質(zhì)心之間存在一個偏移,這個向量可以用于表示一個方向。ORB[1]選擇了BRIEF[2]作為特征描述方法,BRIEF[2]不具有旋轉(zhuǎn)不變性,因此需要使用鄰域方向θ和對應(yīng)的旋轉(zhuǎn)矩陣R,構(gòu)建矩陣,鄰域方向即為我們在Fast上所求得的主方向。
對已經(jīng)進行過裁剪,配準(zhǔn)后的圖像進行差分圖像二值化進行區(qū)域劃分,由于單個不具有連續(xù)性質(zhì)的像素點不會對產(chǎn)品說明產(chǎn)生偏差,因此需要對拍攝圖像進行鄰域檢測,根據(jù)最大鄰域所占圖像百分比進行誤差判斷。根據(jù)情況采用了八鄰域的檢測方法即該點周圍正方形8個像素點統(tǒng)一為同一鄰域并以此連接。基于對效率和通用性的考慮參考了文獻[3]提出了基于遞歸的二值圖像連通域像素標(biāo)記算法[3],對圖像從整體進行掃描標(biāo)記并且得到等價表,從而得到一份圖像的鄰域值。
低壓移印檢測即將每次通過攝像頭的圖像進行采樣,通過ORB[1]算法檢測出圖像由于在流水線運輸中而產(chǎn)生的角度偏差,通過旋轉(zhuǎn)角度的計算,雙線性插值和歸一化,校正圖像角度以及減小采樣圖像和模板的光照差異。由于觀察移印的誤差,需要通過模板匹配算法剪裁出重點圖像減少后續(xù)處理時間,最后通過差分以及連通域檢測得出移印部分的鄰域大小判斷采樣產(chǎn)品是否標(biāo)準(zhǔn),這種方法的參考了OpenCV[4]的處理代碼。
檢測具體步驟參考圖如圖1所示。
圖1 低壓移印檢測總體步驟圖
圖像的采樣時間通過傳感器控制CCD攝像頭拍攝傳輸至電腦,將采樣圖像進行ORB[1]算法檢測,圖2中圓環(huán)所經(jīng)過的點即為采樣點。
圖2 ORB描述示意圖
檢測步驟如下:
1)從采樣圖像的左上角(3,3)開始,將該點轉(zhuǎn)換為灰度值,考慮周圍16個點,如果改點與周圍16個有連續(xù)N個點差值大于一定閾值就認為該點為一個角點;
2)如果該點為角點則采取BRIEF[2]算法描述該點特征即將該點周圍R內(nèi)為一圈,選擇N對作為該特征點的描述,描述見公式(1);
3)由于BRIEF[2]算法描述特征時不具有旋轉(zhuǎn)不變性因此無法單純的選取N個固定點作為該點的描述,此處描述點采取特殊方法,先求出質(zhì)點Q,再以該點為圓心建立坐標(biāo)軸,對于整個圓的整體進行整體的描述見公式(2),(3);
4)重復(fù) 1)~3)步直到輸入圖像的右下角,獲取圖像角點;
5)獲取角點后與樣本角點進行匹配,特征點對比結(jié)果如圖3所示(右側(cè)為樣本點)。
圖3 特征點對比結(jié)果圖
由于圖像是離散的點,若想求得旋轉(zhuǎn)后圖像的像素值,可以利用雙線性插值方法,最大程度還原圖像像素。
取出對應(yīng)像素點最鄰近的左下,左上,右下,右上像素點值分別為W11,W21,W12,W22。X1,X2為左右坐標(biāo),Y1,Y2為下上坐標(biāo)。
計算X方向的插值:
然后利用X方向插值計算Y方向的插值:
求得的Q即為新圖像的該坐標(biāo)點的像素點,以此填充旋轉(zhuǎn)后圖像的所有的坐標(biāo)的像素點得到旋轉(zhuǎn)圖像。
由于圖像并不關(guān)心除產(chǎn)品說明部分的其他區(qū)域,因此需要把產(chǎn)品說明單獨提取出來,根據(jù)OpenCV[4]提出的6種方式進行了實驗比較,采取TM_CCOEFF_NORMED。
1)作為最后的算法公式(7)其中T為模板圖像,I為樣本圖像,x,y為樣本匹配起始點,X',Y'為采樣圖像偏移值且匹配步驟如下:
2)從采樣圖像的左上角(0,0)開始,切割一塊標(biāo)準(zhǔn)模板的臨時圖像;
用臨時圖像和模板圖像進行對比,對比結(jié)果公式(7)記為C(匹配度);
3)切割輸入圖像從(0,1)處開始切割一塊標(biāo)準(zhǔn)模板的臨時圖像再次對比,與記錄匹配度的最大值比較,大則取代并記錄該坐標(biāo)作為最佳匹配點;
4)重復(fù)1)~4)步直到輸入圖像的右下角;
5)將匹配度最高部分切開進行灰度化然后二值化進行比較(采樣圖及切割灰度采樣圖見圖4,圖5)。
圖4 采樣圖片
圖5 切割結(jié)果圖
將已經(jīng)灰度化的采樣圖片與樣本圖做差并且二值化可以得到二值圖,并對二值圖進行連通域檢測。連通域檢測步驟如下:
1)第一行掃描時只關(guān)注是否與左邊有白塊若有白塊則與白塊標(biāo)記相同,若無白塊則為新的標(biāo)記;
2)下行掃描時先關(guān)注白塊的左側(cè)是否有白塊,若有則改點白塊標(biāo)記值與左側(cè)相同,依次檢測該白塊的左上,上,右上若有相同的模塊則檢測是否已經(jīng)記錄這兩個標(biāo)記值為連通域,否則記錄這兩個標(biāo)記值為連通域,直至圖像右下角;
3)處理記錄兩個標(biāo)記值為連通域的數(shù)組,將所有連通數(shù)組標(biāo)記為一個數(shù)組(參考動態(tài)規(guī)劃,或者迭代處理,本算法使用了迭代處理);
4)將所有一個連通域內(nèi)的像素點相加,按照最大值排序??紤]到圖像對人體視覺影響的差別,我們對于一張待處理圖像連通域最大值在閾值以上的標(biāo)記為不合格產(chǎn)品;
5)考慮到對于后續(xù)的檢測,因此所有處理的數(shù)據(jù)通過python的xlrd庫和xlwt庫將所有的數(shù)據(jù)處理入EXCEL表格中。
處理后差分二值圖詳見圖6。
圖6 圖像差分二值圖
為了驗證算法的可行性,利用實際物體進行旋轉(zhuǎn)每0.1°拍攝一張圖片且考慮到工業(yè)中產(chǎn)品在運輸線上產(chǎn)生的偏差角度在-2°至2°之間在且工業(yè)條件下光照基本一致,由于圖像手動進行旋轉(zhuǎn)所以拍攝的圖像有一定的誤差性,同時將采樣樣本備份再隨機在移印位置進行涂抹或增加污漬以此模擬負樣本。將處理好的正負樣本輸入至算法中與標(biāo)準(zhǔn)樣本匹配檢測算法可行性,將實驗結(jié)果以及處理時間輸入至表格中。
圖7 正樣本最大連通域檢測結(jié)果圖
正負樣本的誤判率基本保持在98.4%,且每張采樣圖片判斷的運行時間成本保持在2 s以內(nèi),因此可以提高系統(tǒng)效率以及系統(tǒng)整體的準(zhǔn)確性。
圖8 負樣本最大連通域檢測結(jié)果圖
本文提出一種基于OpenCV[4]開源庫開發(fā)一套基于嵌入式系統(tǒng)的低壓電器移印檢驗算法,借鑒OpenCV編程入門[5]以及python核心編程[6]入門并參考了文獻[7]中對于圖像匹配提出的見解開發(fā)一套算法,并對大量采樣樣本進行配準(zhǔn)平均每個采樣圖片的配準(zhǔn)檢測只需要耗時3 s以內(nèi)且在偏轉(zhuǎn)角度較小時正確率可以達到97%以上。由于ORB算法的開源節(jié)約了為ORB算法支出的成本,實現(xiàn)了一套低成本的算法開發(fā),為低壓電器制造行業(yè)提供技術(shù)服務(wù),為自動化和智能化的做出貢獻。