李亞東,曹明蘭,李長青,高少偉
(1.北京工業(yè)職業(yè)技術(shù)學(xué)院,北京 100042;2.北京林業(yè)大學(xué) 精準(zhǔn)林業(yè)北京市重點實驗室,北京 100083)
瓷碗的生產(chǎn)制作是我國制造業(yè)的一項代表性產(chǎn)品,隨著經(jīng)濟(jì)全球化的進(jìn)展銷量日益增長,并且對圖案印刷質(zhì)量的要求也越來越高。但在因瓷碗器型多樣不利于設(shè)備開發(fā)市面上有關(guān)瓷碗印刷圖文缺陷檢測設(shè)備較少,且較昂貴。文獻(xiàn)[1]從數(shù)字圖像處理技術(shù)角度對日用陶瓷缺陷進(jìn)行了研究,但因?qū)嶋H生產(chǎn)中碗底印刷與碗壁圖案印刷在原理和裝置都有所不同,因此碗壁和碗底的圖案印刷往往不屬于一個流水線;碗壁圖案印刷原理如圖1所示。
圖1 碗底圖案印刷示意圖
圖1中左側(cè)為碗底,右側(cè)為涂刷;涂刷沾取設(shè)計好的圖案模板顏料后通過擠壓旋轉(zhuǎn)來完成印刷到碗底上。因此碗底圖案印刷的缺陷率一般高于碗壁圖案印刷,且檢測方法有所不同。采用人工檢測方法效率低、受主觀判斷影響,缺乏客觀性和科學(xué)性,勞動強(qiáng)度大;因此有必要研究一種速度快,準(zhǔn)確率高的自動檢測方法。
本文Python[2]語言和開源項目Opencv[3]計算機(jī)視覺開發(fā)庫的相關(guān)函數(shù),探索了系統(tǒng)結(jié)構(gòu)、運行流程,并給出了實現(xiàn)原理與關(guān)鍵算法,并驗證了有效性。
本方系統(tǒng)與碗底圖案的印刷以流水線作業(yè)方式緊密結(jié)合,由控制器控制傳送帶按一定速度運動,印刷過的碗被扣分與傳送帶上,傳送帶上方安裝有標(biāo)定[4]過的攝像頭,攝像頭采用了分辨能力達(dá)到0.01mm的工業(yè)級USB攝像頭,為保證能夠快速檢測到碗是否進(jìn)入攝像區(qū)域,攝像頭的幀數(shù)頻率為120fps,USB接口與裝有缺陷檢測程序的PC相連接,如圖2所示。
圖2 碗底印刷圖案檢測方法的硬件布局
由PC根據(jù)攝像頭檢測到碗的進(jìn)入后,進(jìn)行拍照及缺陷檢測,根據(jù)檢測結(jié)果分類分流;具體系統(tǒng)的執(zhí)行流程圖如圖3所示。
圖3 碗底印刷圖案檢測系統(tǒng)流程圖
為了精確的定位出圖案檢測區(qū)域,減少計算量,再做檢測前應(yīng)對模板圖像和待檢測圖像的檢測區(qū)域進(jìn)行判定和裁剪。檢測區(qū)域的提取主要采用了OPENCV視覺庫,通過輪廓判定,幾何形狀識別,按外接矩形裁剪的方法提取了檢測區(qū)域。本文實驗中所涉及的碗底均為圓形,因此主要用了Hough圓檢測cvHoughCircle函數(shù),具體檢測效果如圖4所示。
圖4 碗底印刷圖案檢測區(qū)域裁剪結(jié)果圖
Sift[5]特征提取方法是先通過高斯微分函數(shù)在圖像所有尺度上搜索對于尺度旋轉(zhuǎn)不變的興趣點,以每個興趣點作為候選的關(guān)鍵點通過擬合三維二次函數(shù)以精確確定關(guān)鍵點的位置和尺度,根據(jù)圖像的局部梯度方向為關(guān)鍵點確定方向,8個方向的梯度強(qiáng)度信息和4×4子區(qū)域,共有4×4×8形成128維的Sift特征矢量;特征點的匹配是通過計算兩組特征點的128維特征向量的歐式距離實現(xiàn)的。本系統(tǒng)采用Python調(diào)用Opencv擴(kuò)展庫中的Sift特征提取和匹配的相關(guān)函數(shù)實現(xiàn)了待檢測圖像與模板圖像的特征點匹配功能,結(jié)果如圖5所示。
圖5 待檢測圖像與模板圖像特征匹配結(jié)果圖
現(xiàn)實碗底再傳送帶上的位置不能完全統(tǒng)一,而且碗底圖案的方向也無法固定,但經(jīng)畸變矯正并按檢測區(qū)域裁剪過的待檢測圖像與模板圖像存在單應(yīng)性關(guān)系,假設(shè)單擬合應(yīng)性矩陣為H,那么只要求得H矩陣就可以將待檢測圖像旋轉(zhuǎn)到模板圖像的方向上。從為下一步計算缺陷奠定基礎(chǔ)。
寫成方程組形式如式(2)所示:
將通過特征匹配得到的匹配點坐標(biāo)帶入方程,使得反向投影誤差如式(3)所示。
最小,即可求出H矩陣如式(4)所示。
得到待檢測圖像與模板圖像之間的單應(yīng)性變換矩陣H后可以根據(jù)單應(yīng)關(guān)系旋轉(zhuǎn)待檢測圖像到模板圖像的方向。圖6中(a)為模板圖像,圖6(b)為透視變換前的待檢測圖像,圖6(c)為變換后的待檢測圖像。
圖6 待檢測圖像與模板圖像透視變換矯正結(jié)果圖
碗底印刷缺陷檢測的實現(xiàn)是通過計算SSIM[6]指標(biāo)來實現(xiàn)的,SSIM是衡量兩幅圖像結(jié)構(gòu)相似度的指標(biāo);其具體原理如式(5)所示。
本文借助Python語言和Opencv、scikit-image、imutils等開源庫將模板圖像和校正后的圖像的整張圖片的像素分別讀取到兩個列表中,然后比較兩個列表計算SSIM值來實現(xiàn)了缺陷的檢測與標(biāo)識,結(jié)果如圖7所示;其中圖7(a)為模板圖像,圖7(b)為校正后的待檢測圖像,圖7(c)缺陷檢測結(jié)果圖像。
圖7 校正后的待檢測圖像與模板圖求差異結(jié)果圖
本文所設(shè)計的基于機(jī)器視覺的碗底印刷圖案缺陷檢測系統(tǒng),基于Python和Opencv編制了相應(yīng)的算法,對碗底印刷圖案缺陷檢測成功率達(dá)100%,單張圖像檢測耗時不足20毫秒,流水線環(huán)境下平均每個對象檢測耗時不到60毫秒,能識別最小缺陷面積0.0004mm2,識別結(jié)果較理想,與傳統(tǒng)檢測方法相比,具有較高的準(zhǔn)確率和效率,為碗底圖案印刷缺陷的自動檢測提供了低成本,高效率,切實可行的新途徑。