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