李晉鑫,沙玲
(201600 上海市 上海工程技術(shù)大學 機械與汽車工程學院)
在工業(yè)生產(chǎn)中,許多產(chǎn)品包含大量字符信息,在字符中存在一些字符缺陷,如字符不清晰、字符漏印、字符筆畫漏印、字符相對位置偏移等[1],目前在發(fā)光字符產(chǎn)品檢測中,大多數(shù)是依靠人工檢測,不僅耗時耗力[2],而且存在漏檢等情況。不同于字符識別,字符檢測同時存在缺陷樣本量不足等問題,而且相關(guān)研究相對較少[3]。對此,本文開展了基于機器視覺的發(fā)光字符的缺陷檢測研究。
構(gòu)建字符檢測系統(tǒng)要考慮圖片畫質(zhì)清晰度、圖片中待檢區(qū)域與背景有高對比度和待檢字符工件受外界光照影響,同時要滿足圖片的精度和視野要求。本文中,字符檢測系統(tǒng)由工業(yè)相機、工業(yè)鏡頭、圖像采集卡、工控機和旋轉(zhuǎn)機械臂等組成[4-6],如圖1 所示。
字符檢測的方法是利用模板匹配,主要分為2個階段,第1 階段是制作模板,包含有對標準字符的預處理過程;第2 階段是模板匹配,包含有對待檢測字符的預處理以及模板差異檢測過程。具體流程如圖2 所示。
由于字符種類繁多且字符的缺陷種類不確定,如圖3 所示有字符筆畫的丟失、字符漏光和字符之間的相對位置偏移等等。因此考慮將字符分類處理,同一類字符使用同一種字符模板,用模板匹配檢測算法實現(xiàn)字符的檢測。模板匹配分為多種情況,最為方便的是單模板匹配,模板制作速度和匹配速度是最快的,為了獲取一個標準的字符模板,需要在做每種類型字符檢測時先使用一張理想的字符圖片做模板,但是在獲取圖片時字符表面會有細小雜點、字符邊緣處也會有噪聲干擾或者光學字符亮暗不均等,都會影響字符的提取以及檢測。為了屏蔽這種干擾,獲取圖像之后先對圖像進行預處理,以消除干擾的影響,保留字符部分。字符模板圖像預處理的流程如圖4 所示,包括RGB 圖像灰度化、噪聲濾波、動態(tài)閾值提取閾值、圖像二值化,邊緣輪廓提取。
2.1.1 RGB 圖像灰度化
為了簡化圖像模板的信息,將RGB 圖像轉(zhuǎn)化成灰度圖像,如圖5 所示。彩色圖像的一個像素點是由紅、藍、綠3 個變量表示,要給這3 個變量賦值,改變單個像素點的顏色[7]。根據(jù)人眼的適應(yīng)性確定了RGB 三個分量的系數(shù)。RGB 圖像轉(zhuǎn)化為灰度圖像的公式為:
2.1.2 噪聲濾波
獲取灰度圖之后在字符表面會有大小不等的黑色椒鹽噪聲如圖6(a)所示,使圖像質(zhì)量下降。為了抑制該類噪聲、改善字符圖像的質(zhì)量,提高后續(xù)字符的提取精度,將圖像去噪處理。噪聲的灰度與噪聲周圍的灰度有明顯的對比度,但是字符邊緣與背景也會有很大的對比度,如何消除噪聲的同時最大程度減小對字符邊緣的影響,這是關(guān)鍵所在。平滑字符圖像如果使用均值濾波去噪,使噪聲和邊緣同時模糊,消除噪聲的同時字符圖像也會變模糊,如圖6(b)所示。頻域低通濾波去噪不僅計算量大、計算時間長,而且在降低噪聲的同時使圖像模糊尤其是邊緣和細節(jié)處信息損失,如圖6(c)所示。使用中值濾波能很好地消除字符的噪聲,同時很清晰地保留字符邊緣和細節(jié)信息,如圖6(d)所示。比較以上3 種去噪效果,最終采用中值濾波進行去噪處理。
2.1.3 基于閾值的字符提取
實際檢測中,由于電壓電流不同,一些字符發(fā)光亮度較小或者較大,導致閾值提取字符時灰度值選擇范圍較廣,會使字符提取受到背景的影響,為了使閾值算法能兼容所有批次的字符提取,選擇使用動態(tài)閾值分割算法。動態(tài)閾值分割法是根據(jù)圖像的不同區(qū)域亮度分布,計算其局部閾值,所以對于不同區(qū)域,能夠自適應(yīng)計算不同的閾值[8-9]。首先使用圖片尺寸大小的掩膜對圖像進行均值濾波,然后對平滑圖像中的各灰度值與平滑前的灰度值進行比較。當平滑前的灰度值在平滑后的灰度值+t 以上時,賦予對應(yīng)的輸出圖像的像素灰度值為255;在以下時,對應(yīng)的輸出圖像像素值為0。如式(2)所示,像素值為255的像素點即為字符區(qū)域。圖7(b)是通過動態(tài)閾值得到的字符區(qū)域。
2.1.4 灰度圖像二值化
由于字符的每個像素點灰度值都不一致,且在字符邊緣處灰度梯度值不明顯,對提取字符邊緣有很大影響。使用二值化處理灰度圖像,首先將字符所在的整個矩形區(qū)域轉(zhuǎn)化為二進制字節(jié)圖像,將前景像素和背景像素的灰度值均設(shè)為0,輸入原灰度圖像的灰度值大于生成的二進制字節(jié)圖像灰度值,在二進制灰度區(qū)域以最大灰度值255 繪制字符,如圖8 所示,使字符邊緣處的灰度梯度值最大。
2.1.5 邊緣輪廓提取
由于字符邊緣會存在微小的形變,如圖9 字符邊緣鋸齒狀,導致檢測精度不夠,因此需要在二值化之后對字符邊緣平滑處理,然后再將字符區(qū)域轉(zhuǎn)化為輪廓。由于字符圖像進行了二值化,1 階導數(shù)的梯度非常明顯,因此使用灰度值的1 階導數(shù)的方法來檢測邊緣[10]。Canny 邊緣檢測算子利用高斯函數(shù)的1 階微分性質(zhì),把邊緣檢測問題轉(zhuǎn)換為檢測準則函數(shù)極大值的問題,能在噪聲抑制和邊緣檢測之間取得較好的折中,因此使用Canny 算子做邊緣檢測,提取的字符邊緣如圖10 所示。
為了進一步提高邊緣精度,先將Canny 邊緣檢測所得的每一個封閉的邊緣輪廓線通過計算得到輪廓線對應(yīng)的每一點的坐標,再通過所得的一系列像素坐標創(chuàng)建一個多邊形區(qū)域。創(chuàng)建的多邊形區(qū)域是由輪廓路徑所定義的像素點組成,其中在每兩個像素點之間使用線性內(nèi)插,得到字符邊緣處變形微小,相對于鋸齒狀邊緣更為精確。如圖11 所示為字符邊緣檢測局部圖。
2.2.1 基于灰度值的模板匹配
經(jīng)過預處理后的字符模板需要與待檢測的字符進行模板匹配,為了減小待檢測字符的噪聲、雜點等影響模板匹配分數(shù),需要先將待檢測字符做相同的預處理過程。獲取預處理后的待檢測字符后進行模板匹配。模板匹配是直接利用整幅圖像的灰度信息建立兩幅圖像之間的相似性度量,然后采用歸一化積相關(guān)的搜索方法尋找使相似性度量值最大的變換模型的參數(shù)值[11]。歸一化積相關(guān)灰度匹配使用的相似性度量公式如式(3)。
實現(xiàn)步驟如圖12 所示。
模板匹配結(jié)果如圖13 所示?;诨叶戎档哪0迤ヅ渌媒Y(jié)果中包含匹配分值,經(jīng)過200 件缺陷樣本的測試匹配分值得出,最小的匹配分值為0.5。如果匹配分值小于0.5,則判斷字符為不合格字符;如果匹配分值大于0.5,則進入差異模板檢測。
2.2.2 仿射變換
由于字符工件在機構(gòu)中位置有微小的偏移,使得字符模板與待檢測字符位置不在同一坐標系中,模板差異檢測前提為字符要處于同一坐標系中,因此首先需要通過仿射變換的平移變換使待檢測模板與差異模板處于同一坐標系下,然后再進行差異模板檢測。仿射變換的步驟如下:首先提取得到待檢測字符中心橫縱坐標;然后利用字符模板的中心橫縱坐標與待檢測字符中心橫縱坐標確定一個仿射變換矩陣,如式(4);最后對所尋找出的區(qū)域使用仿射變換矩陣得到變換后的圖像,如式(5)。
2.2.3 模板差異檢測
由于灰度值模板匹配之后不能準確地判斷待檢測字符匹配分值大于0.5 的字符是否合格,因此需要進行模板差異檢測。待檢測字符與模板字符進行比較,超過待檢測字符的閾值的區(qū)域返回到空間域中。返回的多個區(qū)域被看作一個區(qū)域進行連通性分析,然后根據(jù)區(qū)域的面積特征對區(qū)域進行選擇。通過大批量字符缺陷測試,得出在字符中缺陷最小的像素面積為539,由此判斷高于539 的像素面積為不合格字符。如圖14 是通過差異模板檢測的字符缺陷結(jié)果。
通過工業(yè)相機分3 組采集了900 張圖片,并且在拍照環(huán)境的光照穩(wěn)定、相機相對于工件位置不變的條件下,測試算法的檢測準確率和檢測速度。從表1 可以看出,平均正確率為99.8%,漏檢率為0,過檢率為0.2%。使用中值濾波很好地消除噪聲的干擾,提取邊緣后使用線性內(nèi)插法消除模板邊緣鋸齒狀,提高了檢測精度。在檢測時間上,使用基于灰度值的模板匹配和差異模板檢測,減少檢測時間的同時,提高了檢測精度。對于不同種類的字符,通過制作灰度模板都可以穩(wěn)定地判斷。綜上所述,基于機器視覺的發(fā)光字符缺陷檢測方法能夠滿足工業(yè)檢測的需求。
表1 檢測結(jié)果Tab.1 Test results
實驗結(jié)果表明,本文提出的基于機器視覺的發(fā)光字符缺陷檢測方法可以準確地檢測缺陷字符,相比于傳統(tǒng)的人工檢測缺陷字符,基于形狀模板匹配與模板差異的字符缺陷檢測在檢測精度與效率上有了很大的提高,從而提高發(fā)光字符產(chǎn)品的質(zhì)量。該研究方法對類似發(fā)光字符這種具備相似缺陷特征的項目提供了解決方案,有助于提高發(fā)光字符缺陷檢測的自動化程度。