蔣潔琦,楊 庚,劉沛東,錢 晨
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院、軟件學(xué)院,江蘇 南京 210046;2.江蘇亨通光電有限公司,江蘇 蘇州 215200;3.南京郵電大學(xué) 光電學(xué)院,江蘇 南京 210046)
在產(chǎn)品的生產(chǎn)加工過程中,由于受到表面材料、生產(chǎn)工藝以及生產(chǎn)者水平等因素的影響,產(chǎn)品表面總會(huì)出現(xiàn)一些缺陷,常見的缺陷主要包括:小孔、鼓包、氣泡、刮痕等。這些缺陷不僅會(huì)影響產(chǎn)品表面的美觀,還會(huì)造成其機(jī)械性能的下降,因此對(duì)于產(chǎn)品表面缺陷的檢測(cè)顯得尤為重要。
近年來,國(guó)內(nèi)從事表面檢測(cè)技術(shù)開發(fā)的公司不斷增加,如北京大恒圖像、北京和利時(shí)、北京凌云光視、上海法視特、深圳賽克數(shù)碼、蘇州南光電子,以及國(guó)內(nèi)許多高??蒲性旱榷荚谥铝τ诒砻鏅z測(cè)技術(shù)的研發(fā),但是還未能形成一個(gè)全面成熟的解決方案。
目前比較常用的解決方案是基于圖像處理的瑕疵檢測(cè)技術(shù),該方案主要局限于圖像去噪[1]、邊緣檢測(cè)[2-4]、圖像分割[5-6]等步驟。當(dāng)產(chǎn)品表面受到光源、光照方式、圖像采集方式等因素的影響,使得圖像缺陷邊緣的灰度有較寬的過渡區(qū),不是理想的階躍型邊緣,形成了相對(duì)緩慢的過渡邊緣即弱邊緣[7-8]時(shí),這些方法存在對(duì)弱邊緣信息不敏感從而難以完整提取瑕疵的缺點(diǎn)。
針對(duì)弱邊緣難以提取的問題,文中提出了表面弱邊緣瑕疵檢測(cè)算法,即通過引入Scharr算子,在原圖像中融合Scharr邊緣圖像,這不僅保留了原有圖像的強(qiáng)邊緣,而且利用Scharr增強(qiáng)弱邊緣瑕疵的優(yōu)勢(shì),同時(shí)在此基礎(chǔ)上結(jié)合形態(tài)學(xué)進(jìn)行優(yōu)化表面效果,從而有效準(zhǔn)確地提取出強(qiáng)弱邊緣瑕疵,以獲得理想的分割結(jié)果。
傳統(tǒng)人工檢測(cè)具有速度慢,效率低下,人眼的空間分辨率有限,無法識(shí)別相當(dāng)微小的瑕疵,人易受其主觀意識(shí)影響,檢測(cè)的標(biāo)準(zhǔn)不統(tǒng)一等缺點(diǎn),這些缺點(diǎn)使得其在實(shí)際應(yīng)用中具有很大的局限性。因此,人工檢測(cè)已經(jīng)不能滿足企業(yè)對(duì)檢測(cè)速度、精度和可靠性的要求。針對(duì)傳統(tǒng)人工檢測(cè)技術(shù)存在的問題,研究出有效準(zhǔn)確的檢測(cè)產(chǎn)品表面缺陷的技術(shù),是當(dāng)前工業(yè)生產(chǎn)中的一個(gè)主要課題。
長(zhǎng)飛光纖光纜有限公司[9]于2013年提出了一種線纜表面缺陷在線檢測(cè)裝置及方法,主要檢測(cè)光纜表面劃痕部分。無錫港灣網(wǎng)絡(luò)科技有限公司[10]于同年也提出了一種基于機(jī)器視覺的線纜在線檢測(cè)方法,這種方法主要檢測(cè)線纜在生產(chǎn)過程中字符的錯(cuò)印、漏印、噴印模糊等。目前,對(duì)于產(chǎn)品表面瑕疵檢測(cè)的相關(guān)技術(shù)還不成熟。
產(chǎn)品表面瑕疵檢測(cè)主要分為基于機(jī)器學(xué)習(xí)和基于圖像處理兩大類方法?;跈C(jī)器學(xué)習(xí)的表面瑕疵檢測(cè)算法把瑕疵檢測(cè)看成是一個(gè)像素聚類的過程,比較典型的有混合高斯模型分析法和隨機(jī)場(chǎng)模型分析法。文獻(xiàn)[11]采用基于混合高斯模型分析的方法,雖然得到了較好的檢測(cè)效率,但是計(jì)算量大;隨機(jī)場(chǎng)模型在紋理模型中是比較重要的一類模型,具體包括AR模型、ARMA模型、MA模型和隨機(jī)馬爾可夫模型,文獻(xiàn)[12]正是運(yùn)用隨機(jī)場(chǎng)模型的分析方法,通過參數(shù)表示一幅圖像的信息,但是對(duì)于其模型的選取具有一定難度。基于圖像處理的表面瑕疵檢測(cè)算法主要通過圖像預(yù)處理、圖像分割等過程來實(shí)現(xiàn)瑕疵檢測(cè)。在圖像處理的發(fā)展過程中,研究人員對(duì)不同的對(duì)象采用與其合適的表面瑕疵檢測(cè)算法,取得了良好效果。例如,文獻(xiàn)[13]利用閾值和邊緣檢測(cè)圖像分割方法,有效實(shí)現(xiàn)了鋼板表面瑕疵的分割。文獻(xiàn)[14]將SVM應(yīng)用于鋼絲桿表面檢測(cè),通過采用雙閾值二值化、形態(tài)學(xué)處理、邊緣檢測(cè)等方法提取瑕疵特征,并利用支持向量機(jī)實(shí)現(xiàn)分類,對(duì)因氧化而導(dǎo)致的鋼絲桿表面裂紋和脫磷可以進(jìn)行有效的識(shí)別。文獻(xiàn)[15]設(shè)計(jì)出一種銅線表面缺陷高速檢測(cè)系統(tǒng),通過使用CCD相機(jī)獲取線纜圖像,經(jīng)過圖像預(yù)處理、圖像分割、圖像二值化等過程,實(shí)現(xiàn)銅線表面缺陷的檢測(cè)與識(shí)別。
在工業(yè)生產(chǎn)中,產(chǎn)品表面弱邊緣瑕疵由于其灰度緩慢變化,所以弱邊緣信息難以提取。在基于圖像處理的瑕疵檢測(cè)過程中,傳統(tǒng)的瑕疵檢測(cè)技術(shù)主要運(yùn)用一般圖像處理流程來解決強(qiáng)邊緣瑕疵,這些方法存在對(duì)弱邊緣信息不敏感從而難以完整提取瑕疵的缺點(diǎn)。與相關(guān)研究工作相比,文中更加注重表面弱邊緣瑕疵的檢測(cè),在一般的瑕疵檢測(cè)流程基礎(chǔ)上提出了弱邊緣瑕疵檢測(cè)算法。
一般圖像處理過程中瑕疵檢測(cè)的流程為圖像預(yù)處理、圖像分割兩部分,根據(jù)對(duì)瑕疵圖片的了解,產(chǎn)品表面瑕疵由于受到外界因素的影響,圖像缺陷邊緣的灰度可能會(huì)形成相對(duì)緩慢的過渡邊緣即弱邊緣,弱邊緣在傳統(tǒng)邊緣檢測(cè)中不易被分割出來。因此,文中在一般檢測(cè)方法的圖像預(yù)處理之后添加Scharr算子來突出弱邊緣,同時(shí)在此基礎(chǔ)上結(jié)合形態(tài)學(xué)開、閉操作來濾除噪聲,較好地分割開各個(gè)缺陷區(qū)域并且使表面紋理趨于平滑,為閾值分割打下基礎(chǔ)。最后,再進(jìn)行圖像分割得出檢測(cè)結(jié)果。算法流程如圖1所示。
圖1 弱邊緣檢測(cè)算法流程
2.1.1 邊緣檢測(cè)
Canny算子[3]是John Canny于1996年提出的,同時(shí)也給出了3個(gè)準(zhǔn)則來評(píng)價(jià)邊緣檢測(cè)性能的優(yōu)劣:
(1)信噪比準(zhǔn)則,即判定非邊緣點(diǎn)為邊緣點(diǎn)的概率以及判定邊緣點(diǎn)為非邊緣點(diǎn)的概率都要很低;
(2)定位精度準(zhǔn)則,即檢測(cè)出來的邊緣點(diǎn)應(yīng)該盡可能都在實(shí)際邊緣中心;
(3)單邊緣響應(yīng)準(zhǔn)則,即單一邊緣產(chǎn)生多個(gè)響應(yīng)的概率盡可能要低,并且應(yīng)該最大程度抑制響應(yīng)虛假邊緣。
Canny算子邊緣檢測(cè)正是在滿足這3個(gè)準(zhǔn)則的最優(yōu)解的基礎(chǔ)上實(shí)現(xiàn)的,所以對(duì)于圖像中物體邊緣敏感性相對(duì)較高,同時(shí)對(duì)光纜表面背景噪聲也具有很好的抑制和消除的作用。
2.1.2 有效區(qū)域提取
有效區(qū)域提取是將研究對(duì)象從采集的圖像中提取出來,使得感興趣的目標(biāo)與背景分割,從而減少圖像背景對(duì)后續(xù)瑕疵檢測(cè)造成干擾。文中實(shí)驗(yàn)對(duì)象為光纜,即要將光纜從背景中提取出來。通過Canny算子邊緣檢測(cè)已經(jīng)能夠得到光纜的輪廓,并且由于光纜圖像輪廓類似平行四邊形,因此通過對(duì)圖像像素點(diǎn)第一列和最后一列分別進(jìn)行自上而下和自下而上的遍歷,找出像素點(diǎn)灰度值突變的點(diǎn)并記錄它們的位置,得到平行四邊形四個(gè)點(diǎn),然后通過把平行四邊形上下兩條邊以外的像素點(diǎn)灰度值置為0,即讓其顯示黑色,很快能分割出光纜區(qū)域,為后面瑕疵檢測(cè)奠定基礎(chǔ)。
2.2.1 弱邊緣突出
在2.1節(jié)得到的去除背景后的圖像中添加Scharr算子來突出弱邊緣。
具體步驟是:
(1)水平方向模板對(duì)圖像求取梯度:分別將圖像預(yù)處理后得到的圖像A與卷積核Gx進(jìn)行卷積,公式表述如下:
(1)
(2)垂直方向模板對(duì)圖像求取梯度:分別將圖像預(yù)處理后得到的圖像A與卷積核Gy進(jìn)行卷積,公式表述如下:
(2)
(3)圖像的每一個(gè)像素的橫向及縱向灰度值通過以下公式結(jié)合,來計(jì)算該點(diǎn)灰度的大小G:
(3)
2.2.2 圖像融合
將2.2.1得到的圖像與原圖像采用OpenCV內(nèi)置函數(shù)addWeighted進(jìn)行融合。
2.2.3 形態(tài)學(xué)處理
基本的數(shù)學(xué)形態(tài)學(xué)操作包括腐蝕、膨脹、開操作、閉操作等,定義如下:
(1)形態(tài)學(xué)膨脹操作:膨脹是求局部最大值的操作。核B與圖像卷積,核B可以是任意的形狀或大小,它擁有一個(gè)單獨(dú)定義出來的參考點(diǎn),核B掃描圖像的每一個(gè)像素,計(jì)算核B覆蓋區(qū)域的像素點(diǎn)的最大值,并把這個(gè)最大值賦給參考點(diǎn)(核B的中心點(diǎn))指定的像素,使圖像變明亮。
(4)
(2)形態(tài)學(xué)腐蝕操作:腐蝕是求局部最小值的操作,核B掃描圖像的每一個(gè)像素,即計(jì)算核B覆蓋的圖像區(qū)域的像素點(diǎn)的最小值,并把這個(gè)最小值賦值給參考點(diǎn)(核B的中心點(diǎn))指定的像素,使圖像變灰暗。
(5)
(3)形態(tài)學(xué)開操作:將圖像進(jìn)行先腐蝕再膨脹的操作,即:
open(src,element)=dilate(erode(src,element))
(6)
(4)形態(tài)學(xué)閉操作:將圖像進(jìn)行先膨脹再腐蝕的操作,即:
close(src,element)=erode(dilate(src,element))
(7)
開操作具有消除細(xì)小物體,在纖細(xì)處分離物體和平滑較大物體邊界的功能,閉操作具有填充物體內(nèi)細(xì)小空洞,連接鄰近物體和平滑邊界的功能。利用開操作和閉操作的這些功能,先對(duì)2.2.2融合后的圖像進(jìn)行開操作消除表面零散分布的噪聲點(diǎn),再進(jìn)行閉操作使得表面紋理趨于平滑,為圖像分割做準(zhǔn)備。
2.3.1 最大熵閾值
為了從圖像中提取瑕疵部分,需要對(duì)其進(jìn)行分割。文中采用最大熵閾值[16]來計(jì)算閾值實(shí)現(xiàn)分割,閾值計(jì)算方法如下:
設(shè)閾值t將圖像劃分為目標(biāo)O和背景B兩類,它們的概率分布分別為:
O區(qū):pi/Pt,i=0,1,…,t;
B區(qū):pi/(1-Pt),i=t+1,t+2,…,L-1。
則目標(biāo)O和背景B的熵函數(shù)分別為:
ln(1-Pt)+(H-Ht)/(1-Pt)
(9)
圖像的總熵為:
H(t)=HO(t)+HB(t)=lnPt(1-Pt)+Ht/P+
數(shù)據(jù)接收過程中,為了確保每次能正確的把圖像數(shù)據(jù)寫進(jìn)后面的緩沖 FIFO 中,在寫入 FIFO 之前首先通過數(shù)據(jù)比較器在圖像數(shù)據(jù)中找到圖像幀頭后使能后面的FIFO,把后面的圖像數(shù)據(jù)寫入到FIFO中[8]。
(H-Ht)/(1-Pt)
(10)
(1)從灰度級(jí)0開始,選取初始閾值T0=0,計(jì)算原始圖像的信息熵H0并初始化Hmax=H0,Tmax=T0;
(2)考察灰度級(jí)1,閾值T1=1將圖像分割為G1和G2兩個(gè)區(qū)域,計(jì)算G1和G2的信息熵Hd和Hb,比較Hd+Hb與Hmax的大小,如果Hd+Hb>Hmax,則Tmax=T1,Hmax=Hd+Hb,否則Tmax,Hmax保持不變;
(3)重復(fù)第2步,繼續(xù)考察灰度級(jí)2~255,直到找到最大熵閾值。
在計(jì)算出閾值之后,對(duì)2.2.3得到的圖像進(jìn)行分割,將圖像中所有像素點(diǎn)的灰度值與閾值進(jìn)行比較,若像素點(diǎn)灰度值的大小大于閾值,則將其灰度值置為255,否則將該像素點(diǎn)灰度值置為0,從而得到二值圖像。
2.3.2 輪廓搜索擬合
對(duì)于閾值分割得到的二值圖像,使用缺陷輪廓搜索算法來獲取提取出的每個(gè)瑕疵邊界像素點(diǎn)的坐標(biāo),從而組成輪廓序列,再根據(jù)邊界條件進(jìn)行篩選;最后篩選得到的輪廓序列采用輪廓擬合算法勾勒瑕疵大致的幾何形狀,并在原圖上標(biāo)注出來。
(1)缺陷輪廓搜索。
文中采用OpenCV內(nèi)置函數(shù)findContours對(duì)閾值分割后得到的二值圖像進(jìn)行外輪廓搜索。
(2)缺陷輪廓擬合。
在提取得到圖像輪廓序列后,存在一些圖像輪廓邊緣呈現(xiàn)鋸齒狀,此時(shí)需要對(duì)缺陷輪廓進(jìn)行平滑擬合從而使得輪廓圖像鋸齒邊緣趨于圓滑。文中采用OpenCV內(nèi)置函數(shù)approxPolyDP對(duì)輪廓進(jìn)行擬合。
實(shí)驗(yàn)采用的圖像為工業(yè)生產(chǎn)流水線上采集的光纜圖像,由江蘇亨通光電有限公司提供,其中兩幅圖像如圖2所示,圖像的投影信息和灰度值3維圖顯示在圖3中。由圖3可看出,圖像弱邊緣瑕疵灰度變化相對(duì)緩慢,容易被誤以為是正常光纜纜面,不易被檢測(cè)出。
圖2 原始圖像
圖3 原始圖像的灰度分布信息
傳統(tǒng)的基于圖像處理的瑕疵檢測(cè)技術(shù)[17]主要局限于邊緣檢測(cè)、圖像分割等步驟,當(dāng)產(chǎn)品表面受到光源、光照方式、圖像采集方式等因素的影響,使得圖像缺陷邊緣的灰度有較寬的過渡區(qū),不是理想的階躍型邊緣,形成了相對(duì)緩慢的過渡邊緣即弱邊緣時(shí),這些方法存在對(duì)弱邊緣信息不敏感等缺點(diǎn)。圖4顯示了光纜原圖I和光纜原圖II經(jīng)過傳統(tǒng)瑕疵檢測(cè)方法檢測(cè)的結(jié)果(邊緣檢測(cè)均采用Canny算子檢測(cè),圖像分割均采用最大熵閾值分割方法),可以看出傳統(tǒng)的瑕疵檢測(cè)技術(shù)對(duì)于弱邊緣信息并不敏感,所以很難完全提取出完整瑕疵。
圖4 傳統(tǒng)方法檢測(cè)結(jié)果
按照?qǐng)D1所示流程,對(duì)原始圖像進(jìn)行檢測(cè),檢測(cè)的結(jié)果顯示在圖5中。圖5(a)、5(c)是經(jīng)過弱邊緣增強(qiáng)處理后的圖像灰度3維圖像,對(duì)應(yīng)的投影圖分別為圖5(b)、5(d),對(duì)比圖3中原始纜面灰度3維圖像和投影圖,可以看出,經(jīng)過弱邊緣增強(qiáng)后的圖像,光纜表面的噪聲、紋理得到了很大的削弱,強(qiáng)、弱邊緣瑕疵與周圍纜面灰度差變大,強(qiáng)、弱邊緣瑕疵信息相對(duì)于正常纜面信息顯得更加明顯。對(duì)于那些灰度值較小的像素點(diǎn)(屬于正常纜面的像素點(diǎn))進(jìn)行了閾值去除,得到圖5(e)、圖5(f)(文中圖5(e)閾值大小為137,圖5(f)閾值大小為78),最終瑕疵檢測(cè)結(jié)果分別為圖5(g)、圖5(h)。可以看出,光纜強(qiáng)、弱邊緣瑕疵的信息都被較好地提取出來了。
圖5 文中算法檢測(cè)結(jié)果
在產(chǎn)品表面瑕疵檢測(cè)過程中,圖像處理中常用的方法是先進(jìn)行圖像預(yù)處理來對(duì)圖像進(jìn)行去噪、提取有效區(qū)域等,然后對(duì)得到的圖像進(jìn)行分割得到二值化圖像,最后得出檢測(cè)結(jié)果。該算法易于實(shí)現(xiàn),對(duì)于一般圖像可以取得良好的分割效果,因此得到了廣泛的應(yīng)用。但在實(shí)際工業(yè)生產(chǎn)中,由于會(huì)受到光照、材料本身等外界因素的影響,產(chǎn)品表面容易出現(xiàn)灰度變化緩慢的弱邊緣瑕疵,傳統(tǒng)的瑕疵檢測(cè)方法對(duì)它敏感度不高而容易把它當(dāng)成正常表面紋理,因而不易被檢測(cè)出來。通過在預(yù)處理之后添加Scharr算子來突出弱邊緣,同時(shí)結(jié)合形態(tài)學(xué)處理操作平滑表面來改進(jìn)算法。實(shí)驗(yàn)結(jié)果表明,與一般瑕疵檢測(cè)方法相比,該算法對(duì)弱邊緣的敏感度更高,能完整檢測(cè)出表面瑕疵。但是如何提高檢測(cè)效率并使檢測(cè)輪廓與實(shí)際瑕疵輪廓更加貼合,使其達(dá)到最優(yōu)化還需要進(jìn)一步深入研究。