摘要:針對小型零件產(chǎn)品計數(shù)問題,設計一套基于機器視覺及SVM,通過機器學習,利用圖像實現(xiàn)零件自動計數(shù)的通用系統(tǒng)。以Opencv庫函數(shù)為基礎,采用SVM實現(xiàn)圖像中目標與背景分割得到并保存分割模型,將分割圖像二值化處理后并基于漫水填充法對前景的連通域進行標記計數(shù),再以各個目標連通域所組成像素點數(shù)和,所確定的閾值進行篩選過濾,最后剩下連通域即為零件個數(shù)。實驗測試結果表明:該系統(tǒng)計數(shù)方法在不同類型噪聲干擾下計數(shù)以及在目標顏色多彩化情況下進行分類計數(shù),都有很好的效率和準確率。
關鍵詞:機器視覺;支持向量機;連通域;計數(shù);篩選過濾
引言
目前國內(nèi)有一些針對鋼管、煙支等基于圖像的軟件計數(shù)方法進行研究。如王昱棠實現(xiàn)對倉庫物料的計數(shù),再如苗嬌嬌等實現(xiàn)對螺絲釘?shù)挠嫈?shù),但對零件產(chǎn)品計數(shù)系統(tǒng)開發(fā)的相關文獻偏少。然而實際應用場景卻很多,比如在線對一箱箱零件產(chǎn)品,對一板板膠囊藥片等進行計數(shù),或通過計數(shù)判斷是否裝滿,有沒有漏裝等情況。
考察到這些問題以及滿足工業(yè)工廠在生產(chǎn)線上對某些小型零件統(tǒng)計計數(shù)的需要,并替代以前出錯率高、效率低、強度大的人工計數(shù)方式。本文設計一種通用的計數(shù)檢測系統(tǒng),即基于機器視覺及支持向量機,通過人機交互,對生產(chǎn)線上擺放無規(guī)律但不重疊的零件產(chǎn)品利用機器學習和圖像處理實現(xiàn)對零件自動計數(shù)。
1 系統(tǒng)方案設計
本文計數(shù)系統(tǒng)結構主要由圖像采集模塊、圖像分割模塊、計數(shù)模塊組成。硬件結構運行流程如圖1(a)所示;其中圖像采集模塊包括光源、工業(yè)相機、鏡頭等硬件設備。相機采用Basler工業(yè)相機獲取檢測目標的二維圖像,使用接口連接到計算機,通過I/O(輸入/輸出)線材觸發(fā),通過相機標定獲得內(nèi)外參數(shù)進行畸變校正提高拍攝精度;軟件部分:基于visual studio 2013平臺、運用Qt設計界面、利用OpenCV視覺庫開發(fā)系統(tǒng)軟件如圖1(b)所示。

圖1 計數(shù)系統(tǒng)組成部分
1.1 計數(shù)任務設定
計數(shù)系統(tǒng)首先通過圖像采集模塊在線拍攝送料盒中的零件產(chǎn)品獲得第一張圖片,作為原始圖像。通過機器學習對樣本數(shù)據(jù)進行采集和訓練以及圖像填充處理,得到合適的模型和相關閾值參數(shù),并進行設定。其工作流程如圖2所示。

1.2 自動計數(shù)運行
計數(shù)任務設定好之后開始運行,其運行流程如圖3所示。計數(shù)系統(tǒng)可以對同種類型產(chǎn)品在線進行自動計數(shù),隨著送料盒不斷地投送零件產(chǎn)品,采集模塊對圖像不斷的采集和更新,產(chǎn)品計數(shù)也在不斷的循環(huán)累加。

2 圖像分割模塊
2.1 SVM理論
本文使用的是SVM的分類功能。數(shù)據(jù)集只有兩類,即是二維的,因此選取線性內(nèi)核K(xi,xj)=xixj是最合理的。假設兩類的訓練樣本集為(xi,xj),i=1,2,3,…,n輸入樣本xi對應標記為yi={-1,1},當xi屬于前景目標時,yi=1,當xi屬于背景時,yi=-1。則分類超平面可以表示為:
βTx+β0 (1)
將超平面方程歸一化,使得判斷函數(shù):
Yi(βTxi+β0)≥1 (2)
其中β為權重向量,β0為偏置,利用Lagrange將優(yōu)化求最優(yōu)分類問題變成求解極值問題,在
和aj≥0情況下,求得:


其中ai為拉格朗日系數(shù),求解Q(α)的最大值,得到最優(yōu)解ai ,則SVM最優(yōu)分類判斷表達式為:


2.2 圖像分割
圖像分割,是利用SVM對圖像中的每一個像素進行分類來實現(xiàn)的。采用圖像像素點的顏色特征來描述樣本的信息,用圖像的顏色特征作為訓練樣本的特征屬性。提取每個像素點在對應的R、G、B三個通道的特征值。其SVM實現(xiàn)圖像分割流程如圖4所示。

SVM算法是一種有監(jiān)督的分類算法,在應用于圖像分割時需要人工為SVM模型選取少量訓練樣本,通過人為地判斷目標和背景區(qū)域,隨機在圖像中任意目標區(qū)域上選取n≥1樣本點代表正樣本,在背景上取n≥1個樣本點代表負樣本。
正樣本label=1,負樣本label=-1。將采樣中提取的特征向量和對應的類別標記作為訓練樣本進行訓練,獲得SVM分類器。使用核函數(shù)對分類器進行訓練,對整幅待分割圖像中的像素點進行分類預測。每個像素點三通道的特征值可表示:


其中i,j=1,2,3,…,n,根據(jù)分類器預測結果,重新對前景目標(response=1)和背景(response=-1)的像素點賦值,即:


2.3 圖像二值化處理
將分割后的圖像二值化,其主要作用是為接下來圖像處理做準備;因SVM分割后的圖像前景像素點C(i,j)=255,背景像素點C(i,j)=0,其二值化閾值在0~255區(qū)間任取一值即可,將三通道變?yōu)閱瓮ǖ缊D像可以進一步減少圖像數(shù)據(jù)量,提高處理效率。
3 計數(shù)模塊
3.1 連通域標記計數(shù)
基于二值圖像對目標標記最重要的方法就是連通區(qū)域標記算法。通過遍歷,對二值圖像中白色像素(目標)進行標記,讓每個獨立的連通區(qū)域形成一個被標識的塊。本文使用漫水填充法對連通域顏色標記。其算法過程為:
1)指定種子點Point(x,y)。
2)比較與種子相連通像素點的灰度值,若滿足:|v-v0|≤d0,則將其填充。其中v0為種子點灰度值,v為領域點的像素灰度值;本文選用四鄰域?qū)Χ祷瘓D像目標填充,當d0=0,即v=v0時,進行顏色填充。
3)將已填充的點作為新種子點,重復1)、2)步驟直到白色目標區(qū)域像素全部找出為止。
3.2 連通域篩選閾值的確定
受成像設備與外部環(huán)境等因素干擾會使圖片上出現(xiàn)一些隨機的、離散的、孤立的噪聲點。通常高斯濾波、中值濾波、均值濾波等模板是常用的圖像去噪方法。
但本文方法無需對圖像進行預處理。
本文將所組成連通域面積(像素點數(shù)和)作為篩選閾值。漫水填充法通過遍歷將每個連通域已標記,因此前景上的每個連通域所包含像素面積可知。對于噪聲,其像素面積與檢測目標像素面積相比,顯然不在同一個數(shù)量級上;同時為嚴格控制由于人工選點的隨機性以及圖像前、背景色差不大或兩者小面積區(qū)域顏色相同時,可能造成SVM分割模型模糊,最后帶來的計數(shù)偏差,因此通過統(tǒng)計確定合理的篩選閾值。假設獲取第一張原始圖像分割后前景上連通區(qū)域的像素面積為Ti,i=1,2,3,…,n。即:


其中p為檢測目標的個數(shù),在
的情況下,將連通域全部清除;剩余連通域數(shù)即為零件產(chǎn)品個數(shù)。

4 實驗結果與分析
實驗檢測所用操作系統(tǒng)為Windows 10,并在Inteli5-2520M、2.50GHz主頻的CPU,4GB內(nèi)存的64位操作系統(tǒng)平臺上運行。以常見易得的圓形飲料瓶蓋為實物檢測對象,實驗測試設備如圖5(a)所示;圖5(b)所示檢測類型1(圖像大?。?02×281)的樣本圖;由于圖5(b)中目標單一,故圖5(c)所示檢測類型2的圖像(圖像大小:302×281)中包含有2類多彩目標。

4.1 相對理想環(huán)境
第一組實驗測試環(huán)境相對理想,即類型1圖片中零件產(chǎn)品數(shù)比較少量,零散且原始圖像中不存在較大噪聲。利用產(chǎn)生的分割模型對圖中只有1個、3個、5個、10個零件產(chǎn)品進行分割并自動計數(shù);主要目的是測試算法準確率和分割時間。分割所用時間和計數(shù)準確率如表1所示,在零件少量時準確率達到100%,效率也較高。
表1 SVM分割時間和準確率
零件產(chǎn)品數(shù)/個 | 剩余連通域/個 | 分割時間/ms |
1 | 1 | 580 |
3 | 3 | 602 |
5 | 5 | 613 |
10 | 10 | 626 |
4.2 相對復雜環(huán)境
4.2.1 目標相互緊貼
第二組實驗主要針對當類型1的零件產(chǎn)品在清點平臺上緊密連在一起的情況。由于該計數(shù)目標自身的結構特點,人為將零件互相貼在一起時并不影響分割。為便于觀察,采用Scharr算子對該檢測圖進行邊緣檢測,發(fā)現(xiàn)目標邊緣互相貼在一起,如圖6(a)所示。從圖6(b)SVM分割效果和圖6(c)最后標記篩選效果來看,當目標之間相互貼在一起時,同樣可以計數(shù)。經(jīng)過20次分割測試,最快一次分割時間210ms,平均分割時間617ms,計數(shù)準確率100%。

4.2.2 不同程度噪聲
第三組實驗分別對類型1的檢測圖像加入典型的斑點噪聲、高斯噪聲、彩色椒鹽噪聲進行試驗。為保證零件圖有特征可提取,在對應方差范圍下,所添加噪聲的方差分別為0.1(0.01~1.0)、0.5(0.001~0.5)、0.1(0.001~0.8),其效果圖分別如圖7(a)、(b)、(c)所示。然后分別進行分割訓練測試30次,得到對應具有代表性的SVM分割效果模型如圖7(d)、(e)、(f)所示。最后計數(shù)結果如表2所示。

經(jīng)測試,該系統(tǒng)計數(shù)方法在不同程度噪聲的影響下具有一定的魯棒性。
表2 不同類型噪聲條件下檢測結果
噪聲類型
|
噪聲方差
|
平均分割時間/ms
|
計數(shù)準確率
|
斑點
|
0.1
|
630
|
96.7%
|
高斯
|
0.5
|
619
|
100%
|
椒鹽
|
0.1
|
630
|
93.3%
|
4.3 檢測目標多彩化分類計數(shù)
第四組實驗為了測試類型2,當檢測目標本身顏色多彩化需分類計數(shù)。

在對多彩化圖像進行分割時,對比幾種分割效果較好的算法。從圖8中分割效果對比不難發(fā)現(xiàn),圖8(c)所示的采用人工選取樣本點實現(xiàn)svm分割效果明顯比圖8(a)、(b)分割效果要好。為便于觀察,svm圖像分割保留前景目標原來顏色,將背景設置為C(i,j)=0。其中三種典型的分割效果分別如圖9(a)、(b)、(c)所示;經(jīng)填充、確定合適的閾值篩選,最后分別得到如圖9(e)、(d)、(f)所示的計數(shù)效果??梢钥闯?,對多彩化目標或其中某一目標計數(shù)時,通過人工選取樣本、機器訓練學習,得到合適分割模型情況下,分割和計數(shù)效果也很好。

5 結論
本文設計開發(fā)的基于機器視覺及SVM的零件計數(shù)系統(tǒng)。一方面可以充分利用零件產(chǎn)品自身特征(顏色)信息,選取少量樣本通過機器學習得到訓練好的分割模型并保存后,可以對大量同類型圖像進行分割,優(yōu)化了圖像處理過程;另一方面系統(tǒng)采用連通域標記計數(shù)的辦法,將像素面積作為篩選閾值進行去噪篩選,很大程度上提高計數(shù)的精度。經(jīng)實驗驗證,本文系統(tǒng)計數(shù)方法對某些零件產(chǎn)品在不同噪聲影響下,以及當目標多彩化情況下分類計數(shù),其計數(shù)準確率好且穩(wěn)定。該系統(tǒng)對工業(yè)上利用機器視覺來對零件產(chǎn)品等計數(shù)具有參考價值。