梁經(jīng)倫,葉國良,郭建文,吳佳鑫
(東莞理工學(xué)院機(jī)械工程學(xué)院,廣東 東莞 523808)
窗體頂端紐扣電池因其體積小,便捷性被廣泛應(yīng)用在各種微型電子產(chǎn)品如電子手表、遙控器、助聽器中[1]。在工業(yè)生產(chǎn)中,需要對電池表面缺陷進(jìn)行檢測,但是通過人工檢測存在效率低,易視覺疲勞等問題。機(jī)器視覺技術(shù)正在快速發(fā)展并越來越成熟,目前國內(nèi)外學(xué)者對基于機(jī)器視覺的缺陷檢測的研究也取得了一定的成果,在電池行業(yè)針對鋰電池的缺陷檢測較多,如文獻(xiàn)[2?4]。
其中,文獻(xiàn)[2]基于機(jī)器視覺實現(xiàn)鋰電池極片的缺陷檢測與分類中提出灰度變換和直方圖均衡的圖像增強(qiáng)算法;對紐扣電池的缺陷檢測的研究相對較少,文獻(xiàn)[5]基于機(jī)器視覺研究了紐扣電池表面劃痕的檢測方法,其正極面檢測先通過模板匹配去除字體后進(jìn)行閾值分割提取劃痕,但該方法可能存在黑邊,字符殘留等現(xiàn)象,且只能檢測一種缺陷。文獻(xiàn)[6]研究了電池正負(fù)極面缺陷的識別,但算法流程較為復(fù)雜且特征參數(shù)多,檢測率仍有提升空間。
扣式電池因缺陷種類多且復(fù)雜而難以檢測,利用功能強(qiáng)大的Halcon視覺軟件開發(fā)一套紐扣電池表面缺陷檢測系統(tǒng),對比幾種去噪,圖像增強(qiáng)算法,提出結(jié)合區(qū)域分割、Blob分析、閾值分割的正極面檢測方法,解決可能存在的黑邊問題。在確保檢測準(zhǔn)確率的前提下,簡化算法流程,以簡單,快捷、高效的方式實現(xiàn)表面劃痕,凹坑,污漬缺陷的檢測,以滿足實際運用的需求。
本研究所設(shè)計的檢測系統(tǒng)基本組成,如圖1所示。其硬件和軟件主要包括PC機(jī)、同軸光源、工業(yè)鏡頭、工業(yè)相機(jī)、固定支架和Halcon聯(lián)合C#的圖像處理軟件系統(tǒng)。
圖1 系統(tǒng)組成Fig.1 Defect Detection System
相機(jī)是機(jī)器視覺系統(tǒng)的重要組成部分,其核心是感光芯片,能夠?qū)㈢R頭采集到的光信息通過CCD或CMOS轉(zhuǎn)化為數(shù)字信號,信號通過接口傳輸?shù)接嬎銠C(jī)進(jìn)行處理。
鏡頭的選擇是機(jī)器視覺應(yīng)用中較為重要的一個組成部分,其選擇將直接影響預(yù)處理前所采集圖像的質(zhì)量,若相機(jī)與鏡頭配合不佳會出現(xiàn)圖像拍攝不清晰,拍攝到的物體很模糊,給圖像的后期處理帶來困難,選對鏡頭能讓后期的檢測事半功倍。
為了使物體成像清晰,需要使用到光源。研究電池表面的缺陷檢測,能夠通過打光讓缺陷部分與背景區(qū)域形成較為明顯的對比度,降低檢測的難度。通過對比不同光源的打光效果,本系統(tǒng)采用的是同軸光源和多角度條形組合光源。
本缺陷檢測系統(tǒng)的圖像處理流程,如圖2 所示。相機(jī)采集圖像將光信號轉(zhuǎn)化為數(shù)字信號后發(fā)送至PC機(jī),在Halcon 中通過一系列算法檢測出電池表面是否存在缺陷,最后通過程序顯示檢測結(jié)果。
圖2 處理流程Fig.2 Flow Chart
在實際應(yīng)用中,常用的目標(biāo)定位方法主要有兩種,一種是基于Blob分析的圖像區(qū)域分割與提取算法;另一種是利用模板匹配進(jìn)行定位[7]。Blob 分析算法[8]被廣泛應(yīng)用于光照條件、背景單一且干擾小的條件下,具有實時性好,處理速度快的優(yōu)點;模板匹配算法是先在標(biāo)準(zhǔn)圖像中提取感興趣的區(qū)域作為標(biāo)準(zhǔn)模板,然后用此模板在待檢測圖像上滑窗匹配,得到匹配后的分值,分值越大則待測區(qū)域與模板區(qū)域越相似。常見的匹配算法有基于灰度、形狀和相關(guān)性的模板匹配。
此處的電池表面光滑,光照條件下能與背景區(qū)域形成較大的區(qū)域灰度差異,采用Blob分析算法可以得到很好的效果。Blob分析的主要內(nèi)容為采用閾值分割,邊緣提取等算法分離前景和背景,將目標(biāo)區(qū)域擬合為一個連通域,剔除不感興趣的區(qū)域,計算目標(biāo)中心坐標(biāo),位置等特征,實現(xiàn)定位。
圖像在由鏡頭采集到生成數(shù)字信號的過程中不可避免地會產(chǎn)生干擾,使圖像產(chǎn)生噪聲。預(yù)處理的目的主要是清除圖像中各種噪聲等無用信息,改進(jìn)圖像的質(zhì)量,獲取有用信息,為后續(xù)缺陷識別提供基礎(chǔ)。
一般圖像是以彩色圖像輸入,由于大部分的彩色圖像都是由RGB三通道構(gòu)成,故要對圖像進(jìn)行灰度化處理[9]。把RGB圖像的三個通道作為輸入圖像的前三個通道進(jìn)行變換,使背景區(qū)域像素值和字符與缺陷的像素值轉(zhuǎn)換為單通道,便于后續(xù)處理。其計算公式為:
式中:P—灰度化處理過的圖像;R-紅色通道;G-綠色通道;B-藍(lán)色通道的灰度值。
圖像經(jīng)過預(yù)處理后,不可避免地會存在一定數(shù)量的噪聲,這些噪聲如果沒有經(jīng)過處理會干擾后續(xù)的缺陷檢測,因此要設(shè)計算法盡量減少噪聲甚至消除噪聲后再進(jìn)行識別。有的圖像灰度連續(xù)變化,若存在某個區(qū)域的像素灰度與相鄰區(qū)域的灰度差異較大,這時候濾波就可以發(fā)揮作用。
高頻分量會在濾波的作用下被過濾掉,從而減少圖像中存在的噪聲。常用的去噪聲的方法有均值濾波,高斯濾波和中值濾波[10?11]。濾波是生成一個大小為Height×Width的過濾器,自上到下從左到右對圖像各像素點進(jìn)行掃描,以模板覆蓋的像素點計算出新的值代替圖像中各像素的值,平滑效果隨濾波器大小的增加而增加。
三種算法的處理效果,如圖3所示。通過對比可觀察出采用中值濾波或高斯濾波具有較好的效果。此處平滑處理采用的濾波器是高斯濾波,采用核為(3×3)的濾波器對圖像進(jìn)行平滑處理,其計算速度及平滑效果均能達(dá)到檢測要求。其算法為:
圖3 處理效果Fig.3 Image Processing Results
式中:σ—高斯函數(shù)分布系數(shù);x—行坐標(biāo);y—列坐標(biāo)。
圖像經(jīng)過預(yù)處理和去噪后會使圖像整體對比度下降或者使圖像變暗,此時需要研究算法,選擇性地增強(qiáng)感興趣區(qū)域(ROI)的對比度,使其轉(zhuǎn)換為更容易處理分析的形式。圖像增強(qiáng)算法有直方圖均衡化法(HE)、Retinex 模型法、同態(tài)濾波法(Homomor?phic Filtering)和灰度變換法等[12]。
圖像增強(qiáng)根據(jù)作用的域不同,可以分為空間域和頻域??臻g域是指圖像所包含的像素空間,其處理方式是直接對圖像做線性或非線性運算,處理方法由點運算和模板處理。頻域增強(qiáng)則是將圖像變換為頻域信號,根據(jù)頻率高低確定圖像信息,一般高頻為噪聲,中頻為邊緣,低頻為圖像輪廓。
此處將對比線性變換算法、直方圖均衡化算法、非線性變換算法、gamma校正算法和高通濾波算法對圖像的處理效果。通過對比觀察可得高通濾波算法效果較好,如圖4所示。
圖4 圖像增強(qiáng)算法處理效果Fig.4 Image Enhancement Results
高通濾波算法[13]先通過傅里葉變換將圖像變換到頻域空間:
其中,k=0,1,…,X?1;b=0,1,...,Y?1。式中;X、Y-輸入圖像橫向和縱向上的總像素數(shù);(fi,j)-輸入圖像在點(i,j)處的灰度值。
低頻部分能夠被高通濾波器過濾從而去除,其傳遞函數(shù)為:
式中:d0-截止頻率;d(k,b)-點(k,b)到原點的距離。得到結(jié)果:
對G(k,b)進(jìn)行傅里葉逆變換,得到g(i,j):
其中,i=0,1,…,X?1;j=0,1,...,Y?1。
由于電池正極存在字符,可以在缺陷檢測時將正、負(fù)極分開識別。
此處利用基于形狀的模板匹配算法[14?15]判斷,其算法為先生成字符區(qū)域模板,定義模板區(qū)域的點集:
模板區(qū)域每個像素點的方向向量:
待檢測區(qū)域每個像素點的方向向量:
進(jìn)行匹配時仿射變換后模板區(qū)域的點集:
進(jìn)行匹配時仿射變換后模板區(qū)域的方向向量:
計算待測圖像上所有與點P=(r,c)T對應(yīng)的方向向量dMi與對應(yīng)點方向向量的點積和,則模板在點q處的相似度:
取十幅待測圖像進(jìn)行模板匹配,獲得匹配分?jǐn)?shù),如表1所示。
表1 匹配分?jǐn)?shù)Tab.1 Matching Scores
從匹配結(jié)果可知,采用基于形狀的模板匹配算法能夠獲得很好的匹配效果,對存在字符的區(qū)域匹配分值均大于0.9,故可利用匹配分值判斷電池正負(fù)極??稍O(shè)定當(dāng)分值小于0.7時為電池負(fù)極面,否則為正極面。
正極面識別可以用區(qū)域疊加法,將電池圖像上的字符區(qū)域進(jìn)行灰度轉(zhuǎn)換后與原圖像疊加,實現(xiàn)將字符消除,余下背景區(qū)域的目的。
但采用該方法矯正具有一定的問題。每次采集圖像的角度不固定,需要先將待檢測圖像矯正至與模板同角度,再進(jìn)行圖像的疊加。
由于旋轉(zhuǎn)角度存在誤差,無法實現(xiàn)字符區(qū)域的精準(zhǔn)覆蓋,所以疊加后的圖像可能存在黑邊,字符殘留等現(xiàn)象。為了解決此問題,可以采用區(qū)域分割法進(jìn)行改進(jìn)。
首先對字符進(jìn)行Blob分析,擴(kuò)大字符的像素區(qū)域。此處采用Blob分析的膨脹算子,其算法為:
定義如下兩個集合:
表示集合A圍繞原點進(jìn)行反射,生成新集合;
表示集合A平移x,生成新集合。
因此,膨脹運算可以表示為:
式中:X—原圖像;Y—結(jié)構(gòu)元素。
將Blob分析后的字符區(qū)域與原圖分割為字符區(qū)域和背景區(qū)域,如圖5所示。
圖5 區(qū)域分割Fig.5 Region Segmentation
最后對背景區(qū)域進(jìn)行閾值分割。結(jié)合缺陷面積特征即可判定是否存在缺陷區(qū)域,如圖6所示。其算法如下:
圖6 識別效果Fig.6 Recognition Effect
設(shè)g(x,y)為變換后的圖像,(fx,y)為原圖像,T為(0~255)之間的某一數(shù)值,則二值化變換[16]可用以下公式表示:
式中:T—二值化閾值。
但在實際運用中,存在光照不均勻?qū)е虏煌姵貓D片的灰度值分布存在較大差異,如果按照固定的閾值常數(shù)T進(jìn)行二值化處理將會產(chǎn)生較大誤差。大律法[17(]OSTU)是常用的一種自適應(yīng)閾值計算方法,能夠改善這種情況,其思想是:
(1)計算圖像灰度直方圖,找出圖像像素個數(shù)的最大值對應(yīng)圖像的灰度值Th;
(2)令Th為閾值初始值,將電池樣本分為A、B兩類圖像;
(3)分別計算A、B兩類電池圖像的像素集合均值uA和uB,計算公式如式(18)、式(19)所示;
式中:NA—A集合的像素個數(shù);NB—B集合的像素個數(shù)。
(4)計算A、B兩類電池圖像的像素類間方差,計算的數(shù)學(xué)表達(dá)式,如式(20);
(5)計算類間方差與類內(nèi)方差的比值,確定最佳閾值;
(6)利用最佳閾值提取電池圖像中灰度值在Th至255之間的像素。
檢測界面使用Halcon 聯(lián)合C#進(jìn)行設(shè)計,利用Halcon 算法對圖像進(jìn)行檢測處理,再將程序?qū)С鰹镃#代碼,聯(lián)合Visual Stu?dio 2017的開發(fā)環(huán)境設(shè)計交互界面,如圖7所示??紤]到可能與機(jī)械手通訊實現(xiàn)缺陷電池的挑揀,在界面下方可選擇串口號和波特率,實現(xiàn)數(shù)據(jù)的發(fā)送。顯示缺陷識別結(jié)果的操作步驟為加載數(shù)據(jù)集,正負(fù)極面判斷,預(yù)處理和顯示識別結(jié)果。
圖7 檢測系統(tǒng)界面Fig.7 Interface of the Defection System
使用Halcon 算法對缺陷電池樣本進(jìn)行檢測,樣本類型分為劃痕、凹坑、污漬,每種類型正、負(fù)極面樣本各100張。部分樣本如圖8所示。其檢測結(jié)果,如表2所示。結(jié)果表明本系統(tǒng)具有很高的檢出率。
表2 缺陷檢測結(jié)果Tab.2 Defect Detection Results
圖8 樣本集Fig.8 Sample Sets
旨在基于Halcon 設(shè)計紐扣電池表面缺陷的視覺檢測系統(tǒng),解決人工檢測存在的問題。首先介紹了視覺檢測系統(tǒng)的硬件和軟件的基本組成,利用同軸光源和多角度條形組合光源,獲取高質(zhì)量缺陷圖像,研究了聯(lián)合C#與Halcon的電池表面缺陷檢測算法,以此實現(xiàn)紐扣電池表面缺陷檢測系統(tǒng)的開發(fā)。為了檢驗系統(tǒng)檢測的準(zhǔn)確率,采集了600張缺陷電池圖片樣本,檢出成功率達(dá)98.5%以上,達(dá)到了工廠大規(guī)模批量檢測的應(yīng)用要求,具有很好的實用價值。