方志強,肖書浩,熊禾根,李公法
(1.武漢科技大學 機械自動化學院,武漢 430081;2.武昌首義學院 機電與自動化學院,武漢 430064)
目前國內有一些針對鋼管、煙支等基于圖像的軟件計數方法[1,2]進行研究。如王昱棠[3]實現對倉庫物料的計數,再如苗嬌嬌等[4]實現對螺絲釘的計數,但對零件產品計數系統開發的相關文獻偏少。然而實際應用場景卻很多,比如在線對一箱箱零件產品,對一板板膠囊藥片等進行計數,或通過計數判斷是否裝滿,有沒有漏裝等情況。
考察到這些問題以及滿足工業工廠在生產線上對某些小型零件統計計數的需要,并替代以前出錯率高、效率低、強度大的人工計數方式。本文設計一種通用的計數檢測系統,即基于機器視覺及支持向量機,通過人機交互,對生產線上擺放無規律但不重疊的零件產品利用機器學習和圖像處理實現對零件自動計數。

圖1 計數系統組成部分
本文計數系統結構主要由圖像采集模塊、圖像分割模塊、計數模塊組成。硬件結構運行流程如圖1(a)所示;其中圖像采集模塊包括光源、工業相機、鏡頭等硬件設備。相機采用Basler工業相機獲取檢測目標的二維圖像,使用接口連接到計算機,通過I/O(輸入/輸出)線材觸發,通過相機標定獲得內外參數進行畸變校正提高拍攝精度;軟件部分:基于visual studio 2013平臺、運用Qt設計界面、利用OpenCV視覺庫開發系統軟件如圖1(b)所示。
計數系統首先通過圖像采集模塊在線拍攝送料盒中的零件產品獲得第一張圖片,作為原始圖像。通過機器學習對樣本數據進行采集和訓練以及圖像填充處理,得到合適的模型和相關閾值參數,并進行設定。其工作流程如圖2所示。

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

圖3 計數運行流程
本文使用的是SVM的分類功能。數據集只有兩類,即是二維的,因此選取線性內核K(xi,xj)=xixj是最合理的。假設兩類的訓練樣本集為(xi,xj),i=1,2,3,…,n輸入樣本xi對應標記為yi={-1,1},當xi屬于前景目標時,yi=1,當xi屬于背景時,yi=-1。則分類超平面可以表示為:

將超平面方程歸一化,使得判斷函數:

其中β為權重向量,β0為偏置,利用Lagrange將優化求最優分類問題變成求解極值問題,在和aj≥0情況下,求得:

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

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

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

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

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

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

圖5 攝取圖像設備+檢測類型
第一組實驗測試環境相對理想,即類型1圖片中零件產品數比較少量,零散且原始圖像中不存在較大噪聲。利用產生的分割模型對圖中只有1個、3個、5個、10個零件產品進行分割并自動計數;主要目的是測試算法準確率和分割時間。分割所用時間和計數準確率如表1所示,在零件少量時準確率達到100%,效率也較高。

表1 SVM分割時間和準確率
4.2.1 目標相互緊貼
第二組實驗主要針對當類型1的零件產品在清點平臺上緊密連在一起的情況。由于該計數目標自身的結構特點,人為將零件互相貼在一起時并不影響分割。為便于觀察,采用Scharr算子對該檢測圖進行邊緣檢測,發現目標邊緣互相貼在一起,如圖6(a)所示。從圖6(b)SVM分割效果和圖6(c)最后標記篩選效果來看,當目標之間相互貼在一起時,同樣可以計數。經過20次分割測試,最快一次分割時間210ms,平均分割時間617ms,計數準確率100%。

圖6 復雜環境下測試
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)所示。最后計數結果如表2所示。

圖7 噪聲環境下測試
經測試,該系統計數方法在不同程度噪聲的影響下具有一定的魯棒性。

表2 不同類型噪聲條件下檢測結果
第四組實驗為了測試類型2,當檢測目標本身顏色多彩化需分類計數。

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

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