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