李亞東,曹明蘭,李長青,高少偉
(1.北京工業職業技術學院,北京 100042;2.北京林業大學 精準林業北京市重點實驗室,北京 100083)
瓷碗的生產制作是我國制造業的一項代表性產品,隨著經濟全球化的進展銷量日益增長,并且對圖案印刷質量的要求也越來越高。但在因瓷碗器型多樣不利于設備開發市面上有關瓷碗印刷圖文缺陷檢測設備較少,且較昂貴。文獻[1]從數字圖像處理技術角度對日用陶瓷缺陷進行了研究,但因實際生產中碗底印刷與碗壁圖案印刷在原理和裝置都有所不同,因此碗壁和碗底的圖案印刷往往不屬于一個流水線;碗壁圖案印刷原理如圖1所示。

圖1 碗底圖案印刷示意圖
圖1中左側為碗底,右側為涂刷;涂刷沾取設計好的圖案模板顏料后通過擠壓旋轉來完成印刷到碗底上。因此碗底圖案印刷的缺陷率一般高于碗壁圖案印刷,且檢測方法有所不同。采用人工檢測方法效率低、受主觀判斷影響,缺乏客觀性和科學性,勞動強度大;因此有必要研究一種速度快,準確率高的自動檢測方法。
本文Python[2]語言和開源項目Opencv[3]計算機視覺開發庫的相關函數,探索了系統結構、運行流程,并給出了實現原理與關鍵算法,并驗證了有效性。
本方系統與碗底圖案的印刷以流水線作業方式緊密結合,由控制器控制傳送帶按一定速度運動,印刷過的碗被扣分與傳送帶上,傳送帶上方安裝有標定[4]過的攝像頭,攝像頭采用了分辨能力達到0.01mm的工業級USB攝像頭,為保證能夠快速檢測到碗是否進入攝像區域,攝像頭的幀數頻率為120fps,USB接口與裝有缺陷檢測程序的PC相連接,如圖2所示。

圖2 碗底印刷圖案檢測方法的硬件布局
由PC根據攝像頭檢測到碗的進入后,進行拍照及缺陷檢測,根據檢測結果分類分流;具體系統的執行流程圖如圖3所示。

圖3 碗底印刷圖案檢測系統流程圖
為了精確的定位出圖案檢測區域,減少計算量,再做檢測前應對模板圖像和待檢測圖像的檢測區域進行判定和裁剪。檢測區域的提取主要采用了OPENCV視覺庫,通過輪廓判定,幾何形狀識別,按外接矩形裁剪的方法提取了檢測區域。本文實驗中所涉及的碗底均為圓形,因此主要用了Hough圓檢測cvHoughCircle函數,具體檢測效果如圖4所示。

圖4 碗底印刷圖案檢測區域裁剪結果圖
Sift[5]特征提取方法是先通過高斯微分函數在圖像所有尺度上搜索對于尺度旋轉不變的興趣點,以每個興趣點作為候選的關鍵點通過擬合三維二次函數以精確確定關鍵點的位置和尺度,根據圖像的局部梯度方向為關鍵點確定方向,8個方向的梯度強度信息和4×4子區域,共有4×4×8形成128維的Sift特征矢量;特征點的匹配是通過計算兩組特征點的128維特征向量的歐式距離實現的。本系統采用Python調用Opencv擴展庫中的Sift特征提取和匹配的相關函數實現了待檢測圖像與模板圖像的特征點匹配功能,結果如圖5所示。

圖5 待檢測圖像與模板圖像特征匹配結果圖
現實碗底再傳送帶上的位置不能完全統一,而且碗底圖案的方向也無法固定,但經畸變矯正并按檢測區域裁剪過的待檢測圖像與模板圖像存在單應性關系,假設單擬合應性矩陣為H,那么只要求得H矩陣就可以將待檢測圖像旋轉到模板圖像的方向上。從為下一步計算缺陷奠定基礎。

寫成方程組形式如式(2)所示:

將通過特征匹配得到的匹配點坐標帶入方程,使得反向投影誤差如式(3)所示。

最小,即可求出H矩陣如式(4)所示。

得到待檢測圖像與模板圖像之間的單應性變換矩陣H后可以根據單應關系旋轉待檢測圖像到模板圖像的方向。圖6中(a)為模板圖像,圖6(b)為透視變換前的待檢測圖像,圖6(c)為變換后的待檢測圖像。

圖6 待檢測圖像與模板圖像透視變換矯正結果圖
碗底印刷缺陷檢測的實現是通過計算SSIM[6]指標來實現的,SSIM是衡量兩幅圖像結構相似度的指標;其具體原理如式(5)所示。

本文借助Python語言和Opencv、scikit-image、imutils等開源庫將模板圖像和校正后的圖像的整張圖片的像素分別讀取到兩個列表中,然后比較兩個列表計算SSIM值來實現了缺陷的檢測與標識,結果如圖7所示;其中圖7(a)為模板圖像,圖7(b)為校正后的待檢測圖像,圖7(c)缺陷檢測結果圖像。

圖7 校正后的待檢測圖像與模板圖求差異結果圖
本文所設計的基于機器視覺的碗底印刷圖案缺陷檢測系統,基于Python和Opencv編制了相應的算法,對碗底印刷圖案缺陷檢測成功率達100%,單張圖像檢測耗時不足20毫秒,流水線環境下平均每個對象檢測耗時不到60毫秒,能識別最小缺陷面積0.0004mm2,識別結果較理想,與傳統檢測方法相比,具有較高的準確率和效率,為碗底圖案印刷缺陷的自動檢測提供了低成本,高效率,切實可行的新途徑。