高佳文,費(fèi)樹岷
(東南大學(xué),江蘇南京,210096)
芒果是世界五大熱帶水果之一,味道鮮美,營養(yǎng)豐富,我國于20世紀(jì)60年代開始大規(guī)模種植,2019年我國芒果種植面積32.3萬公頃,產(chǎn)量達(dá)278.2萬噸,位居世界第三[1]。然而,由于生產(chǎn)規(guī)模和采后分級(jí)不標(biāo)準(zhǔn),我國芒果出口優(yōu)勢(shì)小,出口量較低,甚至還需大量進(jìn)口芒果[2]。芒果采后分級(jí)的主要指標(biāo)是顏色、尺寸以及有無缺陷,其中,表面缺陷檢測(cè)一直是芒果分級(jí)中的重難點(diǎn)。
目前,國內(nèi)外關(guān)于水果表面缺陷檢測(cè)的研究主要基于計(jì)算機(jī)視覺和圖像處理的方法,如常英基于機(jī)器視覺實(shí)現(xiàn)對(duì)櫻桃番茄表面缺陷的檢測(cè)[3],曾磊等通過圖像處理來檢測(cè)椪柑表面缺陷[4],代秋芳等基于圖像處理完成了蘋果表面的缺陷檢測(cè)系統(tǒng)的設(shè)計(jì)[5]。
邊緣檢測(cè)是圖像處理中常用的缺陷檢測(cè)方法之一,本文主要采用基于邊緣檢測(cè)的圖像處理方法進(jìn)行芒果表面缺陷的檢測(cè),主要涉及圖像的采集、預(yù)處理、改進(jìn)Canny邊緣檢測(cè)方法、背景分離、閾值分割等。
本文選擇比較常見的臺(tái)芒作為研究對(duì)象,在超市購買了具有腐爛、磨損、劃傷等多種常見缺陷的芒果和正常無缺陷的芒果。具體圖像采集裝置如圖1所示,包括箱體、自帶采光效果的相機(jī)、白色背景板等。拍攝時(shí)為了盡最大可能避免拍攝陰影對(duì)后期芒果圖像處理造成的影響,應(yīng)當(dāng)盡量保證攝像頭置于芒果正上方。
圖1 圖像采集裝置
首先對(duì)圖像預(yù)處理,將采集的RGB圖像進(jìn)行R、G、B通道分離,彩色圖像和R、G、B分量圖如圖2所示。從圖中可以比較明顯地看出B分量圖中前景與背景灰度值對(duì)比最為明顯,可以通過B分量圖進(jìn)行背景分離;R分量圖中缺陷比較明顯,可以用于后續(xù)的缺陷檢測(cè)。
圖2 原圖與R、G、B分量圖
傳統(tǒng)的Canny邊緣檢測(cè)算法使用高斯濾波的方式對(duì)原始圖像進(jìn)行平滑濾波,但高斯濾波對(duì)于消除椒鹽噪聲方面沒有特別好的效果,可能會(huì)使得圖像丟失重要的邊緣信息[6]。為了進(jìn)一步減少椒鹽噪聲對(duì)圖像邊緣信息的干擾影響,本文將高斯濾波更換為自適應(yīng)中值濾波。
自適應(yīng)中值濾波降噪原理與中值濾波相同,不過加入了判斷條件來調(diào)整窗口大小。建立一個(gè)大小可變的滑動(dòng)窗口,將滑動(dòng)窗口中最大灰度值和最小灰度值設(shè)為Gmax與Gmin,灰度中值設(shè)為Gmid。如果滿足Gmid<Gmax且Gmid>Gmin,則滑動(dòng)窗口滿足需求,不需要調(diào)整窗口大小。反之,則增大窗口大小,重復(fù)該過程,直到找到合適的Gmid,或窗口尺寸無法再增大為止。之后驗(yàn)證窗口中心點(diǎn)像素G(x,y),如果Gmin<G(x,y)<Gmax,則G(x,y)為該窗口的灰度值,否則Gmid代替G(x,y)成為該窗口的灰度值。
分別使用高斯濾波和自適應(yīng)中值濾波方法對(duì)含椒鹽噪聲的圖像進(jìn)行濾波,圖3為濾波結(jié)果??梢悦黠@看出,相較于傳統(tǒng)的高斯濾波方法,本文的自適應(yīng)濾波方法濾波效果更好,能夠更加精準(zhǔn)確定圖像邊緣信息。
圖3 噪聲圖與兩種濾波方法效果圖
傳統(tǒng)的Canny算法在邊緣檢測(cè)時(shí)使用的是2×2鄰域來計(jì)算圖像梯度,對(duì)于噪聲過于敏感,忽略其他方向的像素點(diǎn),導(dǎo)致丟失部分邊緣細(xì)節(jié)信息,影響后續(xù)的邊緣檢測(cè)結(jié)果[7]。
本文在原有Canny算法水平和垂直方向梯度計(jì)算的基礎(chǔ)上,采用了四方向梯度計(jì)算方法,增加了45°與135°方向的梯度計(jì)算。四個(gè)方向的梯度計(jì)算模板如圖4所示。
圖4 四方向梯度計(jì)算模板
分別使用傳統(tǒng)的Canny算法梯度計(jì)算和本文方法,圖5為梯度計(jì)算結(jié)果??梢钥闯?,本文方法相較于傳統(tǒng)Canny算法相比,增加了梯度計(jì)算方向,考慮了45°與135°方向梯度計(jì)算的影響,邊緣信息更加完整。
圖5 兩種梯度計(jì)算方法效果圖
Canny算法中選取雙閾值進(jìn)行邊緣檢測(cè),其中的高閾值決定了正確檢測(cè)到的邊緣點(diǎn)和錯(cuò)誤判斷的邊緣點(diǎn)的占比,而低閾值則會(huì)對(duì)未檢測(cè)到的邊緣點(diǎn)以及正確的非邊緣點(diǎn)的占比產(chǎn)生重大影響。傳統(tǒng)的Canny算法中,高低閾值是通過實(shí)驗(yàn)或前期經(jīng)驗(yàn)人為設(shè)置的,算法自適應(yīng)性低,不能適應(yīng)不同圖像檢測(cè)需求[8]。
本文采用基于梯度直方圖的大津法(Otsu)自適應(yīng)的確定高低閾值,避免傳統(tǒng)方法人工選取閾值的缺陷。若目標(biāo)圖像灰度等級(jí)L個(gè),Otsu算法將圖像灰度值在不同的灰度等級(jí)范圍內(nèi)計(jì)算對(duì)應(yīng)的方差,方差越大,分類越準(zhǔn)確,最終通過不斷的比較,獲得最大類間方差。
設(shè)每個(gè)灰度等級(jí)對(duì)應(yīng)的像素點(diǎn)數(shù)量值為ni,1≤i≤L,那么圖像中像素點(diǎn)總數(shù)N與圖像中各灰度等級(jí)i的出現(xiàn)概率pi分別為:
假設(shè)圖像使用閾值t將圖像中的像素點(diǎn)根據(jù)灰度值分為前景與背景兩類,設(shè)為C1和C2,其中C1類的灰度值等級(jí)為 1到 t,C2類的灰度值等級(jí)為t+1到L,這兩類像素點(diǎn)出現(xiàn)的概率以及兩類的平均灰度等級(jí)分別為:
在不同的t值的情況下求取類間方差,當(dāng)類間方差最大時(shí)所對(duì)應(yīng)的t值就是所需要的最優(yōu)閾值,將這個(gè)最優(yōu)閾值設(shè)置為高閾值,低閾值設(shè)置為高閾值的一半。
分別采用傳統(tǒng)Canny算法和本文方法對(duì)圖像進(jìn)行邊緣檢測(cè),圖6為檢測(cè)結(jié)果。相比于傳統(tǒng)方法,本文的Otsu算法自適應(yīng)求取閾值,增強(qiáng)了算法的自適應(yīng)性,圖像邊緣信息提取更加全面準(zhǔn)確。
圖6 傳統(tǒng)Canny算法與本文方法
為檢驗(yàn)本文方法在實(shí)際缺陷檢測(cè)中的效果,選取若干芒果圖像樣本進(jìn)行實(shí)驗(yàn)。圖7(a)為芒果原圖,使用本文改進(jìn)的Canny算法對(duì)圖7(b)芒果的B分量圖進(jìn)行邊緣檢測(cè),得到圖7(c)芒果的邊緣檢測(cè)圖,通過漫水填充算法進(jìn)行填充,得到圖7(d)背景分離圖像。
將R分量圖與得到的填充圖像相對(duì)應(yīng),得到圖7(e)芒果在R分量通道中的位置圖,最后通過閾值分割完成缺陷檢測(cè),實(shí)驗(yàn)檢測(cè)結(jié)果如圖7(f)所示。從圖中可以看出,本文方法可以精準(zhǔn)檢測(cè)出邊緣信息,繪制出邊緣圖,完成缺陷檢測(cè)的任務(wù)。
圖7 缺陷檢測(cè)
為了能夠更好的濾除椒鹽噪聲,保留更多圖像邊緣信息,本文在原始的Canny算法上進(jìn)行了改進(jìn),以自適應(yīng)中值濾波代替高斯濾波,增加了兩個(gè)方向的梯度計(jì)算,并通過大津法(Otsu)自適應(yīng)確定高低閾值。實(shí)驗(yàn)表明,本文方法獲取邊緣信息更加全面,邊緣檢測(cè)結(jié)果更加精準(zhǔn),并具有更好的自適應(yīng)性,實(shí)現(xiàn)了芒果的表面缺陷檢測(cè)。