張芳健,陳新度,王 晗,李 逸,李 響
(廣東工業(yè)大學(xué),廣東 廣州510006)
熱轉(zhuǎn)印膠片是紡織物印染的中間產(chǎn)物[1-2],包括有圖案層(油墨層)、膠水層和背景層三大部分。在該膠片實際生產(chǎn)中,可能出現(xiàn)膠水層不能完全覆蓋油墨層,最終可能導(dǎo)致轉(zhuǎn)印后的油墨圖案脫落,如圖1所示膠片圖案層上方明顯有一層過寬的膠水層。目前膠水偏位是影響熱轉(zhuǎn)印膠片質(zhì)量的一種不太常見因素之一,所以對其的技術(shù)研究不多。而目前的檢測以人工檢測為主,但檢測效率相對較低。
圖1 偏位示意圖
實際生產(chǎn)中,熱轉(zhuǎn)印膠片的膠水層僅需包圍圖案層,膠水外邊緣通常不規(guī)則,輪廓外側(cè)有較多細(xì)節(jié)差異。無膠水偏位時,膠水層的各個方向的寬度會大致相同,當(dāng)出現(xiàn)膠水偏位的情況時,膠水層在某個方向的寬度明顯大于其余方向的厚度,超出正常膠片的各個方向的標(biāo)準(zhǔn)厚度。
近年來,基于機(jī)器視覺的產(chǎn)品表面質(zhì)量檢測發(fā)展迅速,并且已經(jīng)出現(xiàn)了一些檢測熱點[3],例如利用閾值分割[4]、深度學(xué)習(xí)[5]等方法進(jìn)行的檢測,但在對于本項目的膠水陰影檢測都效果不明顯。因此本文提出一種四方向膠水層分離的方法,并計算四個方向的平均寬度,以最大值代表膠片膠水寬度。對比設(shè)定的閾值,得到檢測結(jié)果。
原始圖像中的膠片可能以不同角度、不同位置處于原始圖像中,因此首先需要進(jìn)行膠片的提取。采用Sobel算法提取圖像中的邊緣信息,全局閾值分割得到邊緣二值圖。提取輪廓,并只保留圖像中的最大輪廓,利用最小外接矩形獲取算法得到最大輪廓的矩形表示,并通過空間關(guān)系[6-7]獲取膠片圖。
膠片圖像可分為圖案層、膠水層及部分的背景層,因此需要對膠片圖像進(jìn)行分割。圖像分割的常用算法有OSTU法,該方法在圖像自動分割中有著較為廣泛應(yīng)用,但針對多對象的情況時,該算法無法得到較好的分割效果[8]。而K-means圖像聚類算法在多對象的分類中有較好的效果,但基于K-means的圖像分割,存在處理時間過長的問題。因此本文采用改進(jìn)的K-means應(yīng)用方法進(jìn)行圖像分割。傳統(tǒng)的應(yīng)用方法是使用K-means算法是直接對原始待處理圖像進(jìn)行處理,得到每個像素點屬于某一個數(shù)據(jù)簇的對應(yīng)關(guān)系,再進(jìn)行數(shù)據(jù)遍歷,生成新的若干張各自只包含單一簇的二值圖。本文的K-means應(yīng)用是對原始圖像進(jìn)行預(yù)先的resize處理,由于其結(jié)果圖像各個原來的數(shù)據(jù)簇相互數(shù)量比例基本不會改變,而像素總量會大量減少,可使得K-means加速而不影響效果。K-means算法處理過后不進(jìn)行遍歷操作,而是以簇中心之間的中點為閾值,對原始圖像進(jìn)行二值化處理,得到若干張各自只包含單一簇的二值圖。由于熱轉(zhuǎn)印膠片圖像的灰度分布較為明顯,簇分布的距離及間隔足夠大,因此以中點做閾值代替遍歷的方法不會造成負(fù)面影響,同時也避免了遍歷耗時。
如圖2所示為原始圖像是resize取1/8,應(yīng)用本文的處理方法得到的膠水層二值圖,圖像高亮部分代表各種的區(qū)域。分割圖像較為清晰合理,且分割耗時減少了約350 ms。
圖2 膠水層二值圖
當(dāng)熱轉(zhuǎn)印膠片發(fā)生膠水偏位問題,膠水層會整體偏向于某個方向,導(dǎo)致該方向的膠水寬度大于其他方向,超出正常膠片的膠水寬度。本文對膠片的上下左右四方向的膠水平均寬度進(jìn)行計算,以最大值代表該膠片寬度。
膠水層的某個方向的計算分為方向分離與平均寬度計算兩個步驟。膠水上方向分離如下:
(1)從膠水層二值圖第一列的最上方像素往下掃描,若掃描不到非零像素點則跳到第3步,若掃描到了非零像素點則跳到下一步;
(2)標(biāo)記當(dāng)前非零像素點,并繼續(xù)往下掃描,若掃描到非零像素點則標(biāo)記,否則結(jié)束本行掃描;
(3)往右一列繼續(xù)進(jìn)行步驟1和步驟2的掃描,直到最后一行掃描完畢;
(4)創(chuàng)建一張大小如膠水層二值圖的新圖像,并以標(biāo)志點位置像素值為255,非標(biāo)志點為0。
根據(jù)上述步驟,對存在偏位的膠水層二值圖進(jìn)行處理的效果圖,圖3表示膠水層的上方向部分。膠水層的另外三個方向也如上述步驟原理進(jìn)行操作,可達(dá)到各自方向部分的二值圖。
圖3 膠水層上方二值圖
遍歷膠水層上方二值圖,得到非零像素點總量Sum;再遍歷圖像每一列,若該列存在非零像素點則累加1,得到膠水總列數(shù)N;Sum與N比值及為膠水層上方向平均寬度H。
依據(jù)上述步驟的同樣原理,對膠水層另外三個方向的圖像進(jìn)行處理,得到各自方向的膠水層平均寬度值。取最大值為該膠片的最終寬度。
比較計算得到的膠水寬度與設(shè)定的閾值,若寬度大于閾值,則當(dāng)前膠片存在膠水偏位,否則判斷為不存在膠水偏位。
通過前幾節(jié)對算法各步驟算法介紹,現(xiàn)將整個檢測算法流程總結(jié)如下,圖4為算法流程圖。
圖4 檢測算法流程圖
膠水寬度合格閾值,通過該閾值判斷膠片是否存在膠水偏位缺陷。
獲取圖像中的膠片,通過Sobel算法、最小外接矩形查找、空間轉(zhuǎn)換等操作得到只包含熱轉(zhuǎn)印膠片區(qū)域的圖像。
圖像聚類獲取圖片膠水層,對圖像采用改進(jìn)的K-means算法獲取二值圖。
計算膠水層寬度,通過本文特定的掃描方式,計算膠水層4個方向的膠水寬度,以最大寬度代表該膠片的膠水寬度。
膠水寬度若大于設(shè)定的膠水寬度閾值,則判定為存在膠水偏位缺陷,否則不存在膠水偏位缺陷。
本文對有較強(qiáng)代表性的3張膠片進(jìn)行膠水偏位檢測,觀察是否符合實際情況,以驗證算法有效性。實驗?zāi)z片狀態(tài)分別為:正常、少量偏位、偏位,如圖5所示。檢測系統(tǒng)的膠片寬度閾值設(shè)置為3.600,計算得到的各寬度記錄如表1所示,三張膠片膠水寬度分別為2.301、3.849、4.439,單位均為個像素,其中系統(tǒng)判斷后兩張膠片存在膠水偏位。
圖5 待測膠片膠水層二值圖
表1 膠片檢測結(jié)果記錄
同時,對500張熱轉(zhuǎn)印膠片樣品進(jìn)行準(zhǔn)確率檢測。統(tǒng)計結(jié)果為漏檢率0.2%,誤檢率1.4%。其檢測時間均約為420 ms以內(nèi)。綜上,本文介紹的系統(tǒng)具備有效性,可在實際生產(chǎn)中解決膠水偏位檢測問題,且檢測效果可靠,耗時較短。
針對熱轉(zhuǎn)印膠片膠水偏位檢測,本文設(shè)計了檢測算法,利用邊緣檢測算法、外接矩形查找和位置等膠片區(qū)域圖像;改進(jìn)K-means算法應(yīng)用得到膠水層二值圖;通過本文特定的掃描方法分離出四個方向的膠水層部分,并計算得到最終膠水寬度,并以此判斷是否存在膠水偏位。本算法的檢測效果可靠,檢測速度快,適合在線檢測應(yīng)用。