方志強,肖書浩,熊禾根,李公法
(1.武漢科技大學(xué) 機械自動化學(xué)院,武漢 430081;2.武昌首義學(xué)院 機電與自動化學(xué)院,武漢 430064)
目前國內(nèi)有一些針對鋼管、煙支等基于圖像的軟件計數(shù)方法[1,2]進行研究。如王昱棠[3]實現(xiàn)對倉庫物料的計數(shù),再如苗嬌嬌等[4]實現(xiàn)對螺絲釘?shù)挠嫈?shù),但對零件產(chǎn)品計數(shù)系統(tǒng)開發(fā)的相關(guān)文獻偏少。然而實際應(yīng)用場景卻很多,比如在線對一箱箱零件產(chǎn)品,對一板板膠囊藥片等進行計數(shù),或通過計數(shù)判斷是否裝滿,有沒有漏裝等情況。
考察到這些問題以及滿足工業(yè)工廠在生產(chǎn)線上對某些小型零件統(tǒng)計計數(shù)的需要,并替代以前出錯率高、效率低、強度大的人工計數(shù)方式。本文設(shè)計一種通用的計數(shù)檢測系統(tǒng),即基于機器視覺及支持向量機,通過人機交互,對生產(chǎn)線上擺放無規(guī)律但不重疊的零件產(chǎn)品利用機器學(xué)習(xí)和圖像處理實現(xiàn)對零件自動計數(shù)。
圖1 計數(shù)系統(tǒng)組成部分
本文計數(shù)系統(tǒng)結(jié)構(gòu)主要由圖像采集模塊、圖像分割模塊、計數(shù)模塊組成。硬件結(jié)構(gòu)運行流程如圖1(a)所示;其中圖像采集模塊包括光源、工業(yè)相機、鏡頭等硬件設(shè)備。相機采用Basler工業(yè)相機獲取檢測目標(biāo)的二維圖像,使用接口連接到計算機,通過I/O(輸入/輸出)線材觸發(fā),通過相機標(biāo)定獲得內(nèi)外參數(shù)進行畸變校正提高拍攝精度;軟件部分:基于visual studio 2013平臺、運用Qt設(shè)計界面、利用OpenCV視覺庫開發(fā)系統(tǒng)軟件如圖1(b)所示。
計數(shù)系統(tǒng)首先通過圖像采集模塊在線拍攝送料盒中的零件產(chǎn)品獲得第一張圖片,作為原始圖像。通過機器學(xué)習(xí)對樣本數(shù)據(jù)進行采集和訓(xùn)練以及圖像填充處理,得到合適的模型和相關(guān)閾值參數(shù),并進行設(shè)定。其工作流程如圖2所示。
圖2 計數(shù)設(shè)定工作流程
計數(shù)任務(wù)設(shè)定好之后開始運行,其運行流程如圖3所示。計數(shù)系統(tǒng)可以對同種類型產(chǎn)品在線進行自動計數(shù),隨著送料盒不斷地投送零件產(chǎn)品,采集模塊對圖像不斷的采集和更新,產(chǎn)品計數(shù)也在不斷的循環(huán)累加。
圖3 計數(shù)運行流程
本文使用的是SVM的分類功能。數(shù)據(jù)集只有兩類,即是二維的,因此選取線性內(nèi)核K(xi,xj)=xixj是最合理的。假設(shè)兩類的訓(xùn)練樣本集為(xi,xj),i=1,2,3,…,n輸入樣本xi對應(yīng)標(biāo)記為yi={-1,1},當(dāng)xi屬于前景目標(biāo)時,yi=1,當(dāng)xi屬于背景時,yi=-1。則分類超平面可以表示為:
將超平面方程歸一化,使得判斷函數(shù):
其中β為權(quán)重向量,β0為偏置,利用Lagrange將優(yōu)化求最優(yōu)分類問題變成求解極值問題,在和aj≥0情況下,求得:
其中αi為拉格朗日系數(shù),求解Q(α)的最大值,得到最優(yōu)解αi?,則SVM最優(yōu)分類判斷表達式為:
圖像分割,是利用SVM對圖像中的每一個像素進行分類來實現(xiàn)的[5]。采用圖像像素點的顏色特征來描述樣本的信息,用圖像的顏色特征作為訓(xùn)練樣本的特征屬性。提取每個像素點在對應(yīng)的R、G、B三個通道的特征值[6]。其SVM實現(xiàn)圖像分割流程如圖4所示。
圖4 SVM分割流程
SVM算法是一種有監(jiān)督的分類算法,在應(yīng)用于圖像分割時需要人工為SVM模型選取少量訓(xùn)練樣本,通過人為地判斷目標(biāo)和背景區(qū)域,隨機在圖像中任意目標(biāo)區(qū)域上選取n≥1樣本點代表正樣本,在背景上取n≥1個樣本點代表負樣本。
正樣本label=1,負樣本label=-1。將采樣中提取的特征向量和對應(yīng)的類別標(biāo)記作為訓(xùn)練樣本進行訓(xùn)練,獲得SVM分類器[7]。使用核函數(shù)對分類器進行訓(xùn)練,對整幅待分割圖像中的像素點進行分類預(yù)測。每個像素點三通道的特征值可表示:
其中i,j=1,2,3,…,n,根據(jù)分類器預(yù)測結(jié)果,重新對前景目標(biāo)(response=1)和背景(response=-1)的像素點賦值,即:
將分割后的圖像二值化,其主要作用是為接下來圖像處理做準(zhǔn)備;因SVM分割后的圖像前景像素點C(i,j)=255,背景像素點C(i,j)=0,其二值化閾值在0~255區(qū)間任取一值即可,將三通道變?yōu)閱瓮ǖ缊D像可以進一步減少圖像數(shù)據(jù)量,提高處理效率。
基于二值圖像對目標(biāo)標(biāo)記最重要的方法就是連通區(qū)域標(biāo)記算法[8]。通過遍歷,對二值圖像中白色像素(目標(biāo))進行標(biāo)記,讓每個獨立的連通區(qū)域形成一個被標(biāo)識的塊。本文使用漫水填充法[9,10]對連通域顏色標(biāo)記。其算法過程為:
1)指定種子點Point(x,y)。
2)比較與種子相連通像素點的灰度值,若滿足:|v-v0|≤d0,則將其填充。其中v0為種子點灰度值,v為領(lǐng)域點的像素灰度值;本文選用四鄰域?qū)Χ祷瘓D像目標(biāo)填充,當(dāng)d0=0,即v=v0時,進行顏色填充。
3)將已填充的點作為新種子點,重復(fù)1)、2)步驟直到白色目標(biāo)區(qū)域像素全部找出為止。
受成像設(shè)備與外部環(huán)境等因素干擾會使圖片上出現(xiàn)一些隨機的、離散的、孤立的噪聲點。通常高斯濾波、中值濾波、均值濾波等模板是常用的圖像去噪方法[11]。但本文方法無需對圖像進行預(yù)處理。
本文將所組成連通域面積(像素點數(shù)和)作為篩選閾值。漫水填充法通過遍歷將每個連通域已標(biāo)記,因此前景上的每個連通域所包含像素面積可知。對于噪聲,其像素面積與檢測目標(biāo)像素面積相比,顯然不在同一個數(shù)量級上[12];同時為嚴(yán)格控制由于人工選點的隨機性以及圖像前、背景色差不大或兩者小面積區(qū)域顏色相同時,可能造成SVM分割模型模糊,最后帶來的計數(shù)偏差,因此通過統(tǒng)計確定合理的篩選閾值。假設(shè)獲取第一張原始圖像分割后前景上連通區(qū)域的像素面積為Ti,i=1,2,3,…,n。即:
實驗檢測所用操作系統(tǒng)為Windows 10,并在Intel i5-2520M、2.50GHz主頻的CPU,4GB內(nèi)存的64位操作系統(tǒng)平臺上運行。以常見易得的圓形飲料瓶蓋為實物檢測對象,實驗測試設(shè)備如圖5(a)所示;圖5(b)所示檢測類型1(圖像大?。?02×281)的樣本圖;由于圖5(b)中目標(biāo)單一,故圖5(c)所示檢測類型2的圖像(圖像大?。?02×281)中包含有2類多彩目標(biāo)。
圖5 攝取圖像設(shè)備+檢測類型
第一組實驗測試環(huán)境相對理想,即類型1圖片中零件產(chǎn)品數(shù)比較少量,零散且原始圖像中不存在較大噪聲。利用產(chǎn)生的分割模型對圖中只有1個、3個、5個、10個零件產(chǎn)品進行分割并自動計數(shù);主要目的是測試算法準(zhǔn)確率和分割時間。分割所用時間和計數(shù)準(zhǔn)確率如表1所示,在零件少量時準(zhǔn)確率達到100%,效率也較高。
表1 SVM分割時間和準(zhǔn)確率
4.2.1 目標(biāo)相互緊貼
第二組實驗主要針對當(dāng)類型1的零件產(chǎn)品在清點平臺上緊密連在一起的情況。由于該計數(shù)目標(biāo)自身的結(jié)構(gòu)特點,人為將零件互相貼在一起時并不影響分割。為便于觀察,采用Scharr算子對該檢測圖進行邊緣檢測,發(fā)現(xiàn)目標(biāo)邊緣互相貼在一起,如圖6(a)所示。從圖6(b)SVM分割效果和圖6(c)最后標(biāo)記篩選效果來看,當(dāng)目標(biāo)之間相互貼在一起時,同樣可以計數(shù)。經(jīng)過20次分割測試,最快一次分割時間210ms,平均分割時間617ms,計數(shù)準(zhǔn)確率100%。
圖6 復(fù)雜環(huán)境下測試
4.2.2 不同程度噪聲
第三組實驗分別對類型1的檢測圖像加入典型的斑點噪聲、高斯噪聲、彩色椒鹽噪聲進行試驗。為保證零件圖有特征可提取,在對應(yīng)方差范圍下,所添加噪聲的方差分別為0.1(0.01~1.0)、0.5(0.001~0.5)、0.1(0.001~0.8),其效果圖分別如圖7(a)、(b)、(c)所示。然后分別進行分割訓(xùn)練測試30次,得到對應(yīng)具有代表性的SVM分割效果模型如圖7(d)、(e)、(f)所示。最后計數(shù)結(jié)果如表2所示。
圖7 噪聲環(huán)境下測試
經(jīng)測試,該系統(tǒng)計數(shù)方法在不同程度噪聲的影響下具有一定的魯棒性。
表2 不同類型噪聲條件下檢測結(jié)果
第四組實驗為了測試類型2,當(dāng)檢測目標(biāo)本身顏色多彩化需分類計數(shù)。
圖8 不同方法的分割效果
在對多彩化圖像進行分割時,對比幾種分割效果較好的算法。從圖8中分割效果對比不難發(fā)現(xiàn),圖8(c)所示的采用人工選取樣本點實現(xiàn)svm分割效果明顯比圖8(a)、(b)分割效果要好。為便于觀察,svm圖像分割保留前景目標(biāo)原來顏色,將背景設(shè)置為C(i,j)=0。其中三種典型的分割效果分別如圖9(a)、(b)、(c)所示;經(jīng)填充、確定合適的閾值篩選,最后分別得到如圖9(e)、(d)、(f)所示的計數(shù)效果??梢钥闯?,對多彩化目標(biāo)或其中某一目標(biāo)計數(shù)時,通過人工選取樣本、機器訓(xùn)練學(xué)習(xí),得到合適分割模型情況下,分割和計數(shù)效果也很好。
圖9 不同顏色目標(biāo)分類和計數(shù)
本文設(shè)計開發(fā)的基于機器視覺及SVM的零件計數(shù)系統(tǒng)。一方面可以充分利用零件產(chǎn)品自身特征(顏色)信息,選取少量樣本通過機器學(xué)習(xí)得到訓(xùn)練好的分割模型并保存后,可以對大量同類型圖像進行分割,優(yōu)化了圖像處理過程;另一方面系統(tǒng)采用連通域標(biāo)記計數(shù)的辦法,將像素面積作為篩選閾值進行去噪篩選,很大程度上提高計數(shù)的精度。經(jīng)實驗驗證,本文系統(tǒng)計數(shù)方法對某些零件產(chǎn)品在不同噪聲影響下,以及當(dāng)目標(biāo)多彩化情況下分類計數(shù),其計數(shù)準(zhǔn)確率好且穩(wěn)定。該系統(tǒng)對工業(yè)上利用機器視覺來對零件產(chǎn)品等計數(shù)具有參考價值。