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

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

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

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


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


2.2 圖像分割
圖像分割,是利用SVM對(duì)圖像中的每一個(gè)像素進(jìn)行分類來(lái)實(shí)現(xiàn)的。采用圖像像素點(diǎn)的顏色特征來(lái)描述樣本的信息,用圖像的顏色特征作為訓(xùn)練樣本的特征屬性。提取每個(gè)像素點(diǎn)在對(duì)應(yīng)的R、G、B三個(gè)通道的特征值。其SVM實(shí)現(xiàn)圖像分割流程如圖4所示。

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


其中i,j=1,2,3,…,n,根據(jù)分類器預(yù)測(cè)結(jié)果,重新對(duì)前景目標(biāo)(response=1)和背景(response=-1)的像素點(diǎn)賦值,即:


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


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

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

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

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

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

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

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