夏垚,胡步發(fā),張善福
(福州大學(xué) 機(jī)械工程及自動化學(xué)院,福建 福州 305116)
目前,臍橙大多是按照外形大小進(jìn)行簡單分級,容易造成損傷,導(dǎo)致質(zhì)量變差。隨著機(jī)器視覺技術(shù)的發(fā)展,專家學(xué)者們對臍橙品質(zhì)自動檢測分級進(jìn)行了大量研究,如:ALEIXOS N等[1]研發(fā)出了臍橙、柑橘的分級方法,通過采集可見光與近紅外圖像,進(jìn)行品質(zhì)分析。實(shí)驗(yàn)發(fā)現(xiàn):表面缺陷判斷的準(zhǔn)確率為93%,顏色判斷的準(zhǔn)確率超過94%。程春燕[2]提出了基于深度學(xué)習(xí)的方法對臍橙品質(zhì)實(shí)現(xiàn)檢測和分類,該方法的精度比支持向量機(jī)提升了4%。黃金霖等[3]使用最小外接矩形算法完成對臍橙尺寸的檢測,實(shí)驗(yàn)表明,在對120多個實(shí)驗(yàn)樣本的檢測中,總體誤差率<2%。李江波等[4]提出波段比算法和特征波段主成分分析法,使臍橙潰瘍的正確識別率提高到95.4%。CHEN Y W等[5]提出了一種臍橙自動分級方法,提取臍橙的果實(shí)大小、表面顏色、表面缺陷和果型4個主要特征,利用BP神經(jīng)網(wǎng)絡(luò)對特征進(jìn)行訓(xùn)練,分級準(zhǔn)確率為94.4%。
上述研究取得了一定的成果,但還存在以下問題需要改進(jìn):1)相機(jī)不能采集臍橙的全部表面,會出現(xiàn)漏檢的情況;2)沒有考慮球形水果在光照反射時會造成果面亮度不均勻;3)根據(jù)單一閾值和顏色特征來識別果面缺陷,無法適應(yīng)果面光照不均勻帶來的影響,且檢測速度無法滿足嵌入式設(shè)備需求。針對上述問題,本文基于樹莓派平臺,設(shè)計了低成本的臍橙自動分級方法。在3個工位中分別采集臍橙3個不同表面的圖像,避免臍橙的背面被漏檢,并在考慮球體表面反光的情況下提取臍橙果徑、著色度特征,提出基于積分圖的快速局部自適應(yīng)閾值分割法,得到果面缺陷特征,最后建立決策樹模型——C4.5,完成臍橙品質(zhì)的實(shí)時分級。
采用贛南地區(qū)出產(chǎn)的紐荷爾臍橙,根據(jù)臍橙果徑、著色度、表面缺陷將臍橙劃分為特級果、一級果、二級果和等外果,其中隨機(jī)選取每個等級的臍橙各100個,50個作為訓(xùn)練樣本,50個作為測試樣本。
本文的試驗(yàn)系統(tǒng)如圖1所示。硬件部分包括滾子輸送鏈、撥果裝置、果箱、遮光箱、Raspberry Camera V2樹莓派原裝攝像頭、環(huán)形漫反射白色光源、樹莓派(Raspberry Pi)3B+。相機(jī)垂直懸掛于遮光箱頂部,臍橙放置在兩滾子的中間位置,隨著滾子的滾動以角速度W2做翻滾運(yùn)動,鏈輪轉(zhuǎn)動使輸送滾子隨鏈條在導(dǎo)軌上以速度V做水平運(yùn)動,帶動臍橙沿著導(dǎo)軌向前輸送。軟件開發(fā)平臺為PyCharm2019,部分代碼源于OpenCV庫。
1—撥果裝置;2—臍橙;3—相機(jī);4—環(huán)形光源;5—樹莓派;6—顯示屏;7—遮光箱;8—滾子輸送鏈;9—卸果口。圖1 圖像采集與分級系統(tǒng)
為了避免外界光照影響,本試驗(yàn)的圖像采集環(huán)節(jié)在遮光箱內(nèi)完成。工位一處設(shè)有一對光電感應(yīng)模組,當(dāng)有臍橙經(jīng)過時觸發(fā)相機(jī)采集圖像,相機(jī)視野設(shè)置為3個工位,一次可拍攝3個臍橙,如圖2所示。臍橙每經(jīng)過1個工位會旋轉(zhuǎn)一定的角度,連續(xù)采集3次圖像后,同一臍橙的不同表面會在3個工位上各被拍攝1次。后續(xù)的圖像分析環(huán)節(jié),選擇臍橙在這3個工位上的3幅圖像進(jìn)行綜合分析。
圖2 圖像采集結(jié)果
如圖1所示,撥果裝置與滾子相互間隔地安裝在輸送鏈上,撥桿恰好位于兩滾子間隙的凹陷處。撥桿處設(shè)有光電感應(yīng)模組,有臍橙經(jīng)過時會對該撥果裝置發(fā)送激活信號。分級模塊完成分級后,樹莓派對相應(yīng)等級的撥果裝置發(fā)送分級信號,撥果裝置同時收到激活信號與分級信號后,觸發(fā)撥果片完成撥果動作,臍橙被送入對應(yīng)等級的卸果口內(nèi)完成分級。
為了方便后續(xù)環(huán)節(jié)的特征提取,必須分割出完整的臍橙前景圖像。本研究在滾子輸送鏈上采集臍橙圖像,圖像背景包含滾子、齒輪等,采用RGB顏色模型的灰度圖分割前景圖像,會把部分背景中的齒輪圖像包含進(jìn)來,如圖3(b)所示。Otsu自適應(yīng)閾值分割法不受圖像亮度變化的影響,使用Otsu法對V分量圖像進(jìn)行分割的結(jié)果如圖3(c)所示,得到了完整的臍橙前景圖像,但沒有分割出缺陷區(qū)域。本文使用輪廓填充法,填充缺陷區(qū)域,如圖3(d)所示。
圖3 圖像分割結(jié)果
臍橙是類球形水果,即使在光照均勻的情況下臍橙表面也會出現(xiàn)亮度不均勻的情況,如圖4(a),果面反光的高亮區(qū)域會影響后續(xù)特征提取。因此有必要對果面反光區(qū)域進(jìn)行亮度矯正。本文采用HSV顏色模型矯正。選擇閾值180對S分量進(jìn)行閾值分割,二值化后的結(jié)果見圖4(b)。經(jīng)過試驗(yàn)可知,S分量值補(bǔ)償閾值30效果最佳,再轉(zhuǎn)換為RGB顏色空間,得到圖4(c),可見矯正后的反光區(qū)域恢復(fù)正常。
圖4 反光區(qū)域的亮度矯正
Canny[6]算子具有良好的魯棒性,本文采用Canny算子提取二值化后的臍橙邊緣。臍橙的邊緣形狀呈橢圓形,用最小二乘法對提取到的臍橙輪廓進(jìn)行橢圓擬合[7],橢圓擬合結(jié)果如圖5所示。
圖5 橢圓擬合結(jié)果
本實(shí)驗(yàn)中像素坐標(biāo)與世界坐標(biāo)的比例關(guān)系:k=0.51mm/pixel,以橢圓短軸b與k的積L作為臍橙的真實(shí)橫徑,見式(1)。臍橙在3個工位中計算到的真實(shí)橫徑分別為L1、L2、L3。選取其中的最大值Lmax,作為臍橙的大小特征。
L=k×b
(1)
臍橙在生長、采摘、清洗和運(yùn)輸?shù)拳h(huán)節(jié)都有可能造成缺陷。果面缺陷會對品質(zhì)產(chǎn)生較大影響,常見的臍橙果面缺陷有蟲斑、腐爛、裂果和潰瘍等,通常缺陷區(qū)域比正常區(qū)域的顏色更深。本文采用閾值分割法來提取果面的缺陷區(qū)域。臍橙表面為類球體分布,經(jīng)過亮度矯正后,雖然果面光照更均勻,但很難使用單閾值分割法提取表面的全部缺陷,見圖6(b)。因此本文提出基于積分圖的局部自適應(yīng)閾值分割方法對臍橙的表面缺陷進(jìn)行分割,結(jié)果見圖6(c)??梢娀诜e分圖的局部自適應(yīng)閾值分割法,可以有效提取出果面的缺陷部分。
圖6 缺陷分割結(jié)果
積分圖是在一幅圖像中快速計算其任意矩形區(qū)域內(nèi)像素值和的一種方法,計算消耗的時間均為常量,與窗口的大小無關(guān),可以滿足工業(yè)檢測對處理速度上的需求。令I(lǐng)(i,j)是圖像f(i,j)的積分圖,則I(i,j)中任意一點(diǎn)(x,y)的值見式(2)。其中f(i,j)為點(diǎn)(i,j)的灰度值。任意矩形的灰度值均值Mi的計算公式見式(3)、式(4)。(x1,y1)和(x2,y2)分別為該矩形的左上角和右下角坐標(biāo),Ii為該矩形的灰度值總和。
(2)
Ii=I(x2,y2)+I(x1,y1)-I(x1,y2)-I(x2,y1)
(3)
(4)
算法的實(shí)現(xiàn)步驟如下:
1)按照臍橙的最小外接矩形對單個臍橙的R分量圖像進(jìn)行裁剪,并用線性插值法,把圖像統(tǒng)一裁剪成180×180 pixels,求出該目標(biāo)圖像的積分圖I(x,y)。
2)確定滑動窗口為30×30 pixels,以步長為0.25在目標(biāo)圖像上進(jìn)行滑動。把滑動窗口均分成4個子窗口,分別用積分圖計算子窗口的灰度值均值M1、M2、M3、M4,求M1與M2、M3、M4差的絕對值ΔD2、ΔD3、ΔD4,求均值得到ΔD,計算公式如下:
ΔDi=|Mi-M1|
(5)
(6)
3)判斷ΔD是否超過預(yù)設(shè)值T,超過T則以滑動窗口的灰度值均值M作為分割閾值對滑動窗口所在區(qū)域進(jìn)行二值化操作,二值化結(jié)果中缺陷區(qū)域灰度值為0。若ΔD>T則把窗口內(nèi)的灰度值置為1。本文通過實(shí)驗(yàn)可知T設(shè)為20時可以較好地將缺陷區(qū)域完整提取。
4)重復(fù)步驟2)和步驟3),直至遍歷完整幅圖像。將各子圖像進(jìn)行合并,得到完整的缺陷圖像,結(jié)果如圖7(a)、圖7(b)所示。
圖7 缺陷檢測效果圖
對缺陷圖像中灰度值為0的像素點(diǎn)求和得到缺陷區(qū)域像素點(diǎn)總數(shù)A。缺陷率的計算公式為:
(7)
(8)
臍橙成熟后,表面多為橙黃色和橙紅色,臍橙著色面積是指果面橙紅、橙黃區(qū)域的面積,在H分量中取30作為閾值可以有效地區(qū)分橙色區(qū)域與綠色區(qū)域。臍橙著色度C的計算公式為:
(9)
(10)
(11)
決策樹[8]是一種非參數(shù)的有監(jiān)督學(xué)習(xí)算法,決策樹的根節(jié)點(diǎn)包括全部訓(xùn)練自助樣本,每個節(jié)點(diǎn)選擇分支變量的原則是從一組隨機(jī)選取的變量中選擇使分枝后節(jié)點(diǎn)的“不純度”最小的變量作為分枝變量?!安患兌取钡暮饬繕?biāo)準(zhǔn)包括Gini系數(shù)和信息熵,Gini系數(shù)和信息熵的值越大,不純度就越高。決策樹中,節(jié)點(diǎn)t的Gini系數(shù)計算公式為
(12)
式中:t為給定的節(jié)點(diǎn);i為標(biāo)簽的任意分類;c為標(biāo)簽在該節(jié)點(diǎn)上總共的分類個數(shù);p(i|t)為標(biāo)簽分類i在節(jié)點(diǎn)t上所占的比例。
信息增益Gain是判斷分支變量對一個節(jié)點(diǎn)的可分程度,節(jié)點(diǎn)t的信息增益計算公式為
Gainjt=Ginit-Ginitl-Ginitr
(13)
式中:Gainjt為分支節(jié)點(diǎn)j對節(jié)點(diǎn)t的信息增益;Ginitl、Ginitr分別為節(jié)點(diǎn)t以分支節(jié)點(diǎn)j進(jìn)行分支后的左、右節(jié)點(diǎn)的“不純度”。決策樹選擇變量進(jìn)行分支時,選擇使信息增益更大的分支變量。
在改進(jìn)的決策樹——C4.5中引入過分支度的概念來對信息增益的計算方法進(jìn)行修正,避免分類水平過多,信息熵減小過快的特征影響模型,減少過擬合的情況。分支度的計算公式為
(14)
式中:i表示父節(jié)點(diǎn)的第i個分支節(jié)點(diǎn);vi表示第i個分支節(jié)點(diǎn)的樣本個數(shù);P(vi)表示第i個分支節(jié)點(diǎn)的樣例個數(shù)占父節(jié)點(diǎn)總樣本數(shù)的比例。在C4.5中,使用信息增益與分支度的比值作為對節(jié)點(diǎn)可分程度的評斷標(biāo)準(zhǔn),稱為信息增益率,該值越大說明可分程度越高,如下式:
(15)
本文的C4.5模型以臍橙的大小、著色度和缺陷率3個特征作為輸入向量,輸出4個分類(特等果、一等果、二等果、等外果)。
本實(shí)驗(yàn)采用贛南地區(qū)出產(chǎn)的紐荷爾臍橙,根據(jù)臍橙國家分級標(biāo)準(zhǔn)[9],隨機(jī)選取特等果、一等果、二等果和等外果各100個進(jìn)行實(shí)驗(yàn),其中,各個等級隨機(jī)選取50個作為訓(xùn)練樣本,剩下的50個作為測試樣本。
訓(xùn)練分類器之前,按照第3節(jié)中特征提取的方法,提取出臍橙的橫徑L、著色度C、缺陷率D,如表1所示。把這些特征參數(shù)送入C4.5模型進(jìn)行有監(jiān)督訓(xùn)練,訓(xùn)練結(jié)束后,保存模型參數(shù)。通過訓(xùn)練好的C4.5模型,對測試集中的樣本進(jìn)行測試,結(jié)果如表2所示。
表1 臍橙特征參數(shù)
表2 臍橙品質(zhì)分級結(jié)果
本文基于樹莓派平臺,樹莓派的成本僅為工業(yè)計算機(jī)的1/10。1臺樹莓派可以處理1列輸送線上的臍橙。隨著輸送線列數(shù)增加,可以通過增加樹莓派設(shè)備的數(shù)量對整條輸送線進(jìn)行并行處理,此時樹莓派平臺在分級速度和成本方面均要優(yōu)于使用單臺的工業(yè)計算機(jī)。表3為在不同列數(shù)的輸送線情況中,樹莓派平臺與工業(yè)計算機(jī)平臺分級速度的對比。當(dāng)輸送線列數(shù)為5時,有5臺樹莓派分別對每列輸送線上的臍橙進(jìn)行并行處理。此時該系統(tǒng)的分級速度明顯大于使用單個工業(yè)計算機(jī)的分級速度,成本也遠(yuǎn)遠(yuǎn)低于單個工業(yè)計算機(jī)。
表3 分級速度對比 單位:個/s
本文在V分量上結(jié)合輪廓填充的方法,有效地分割出滾子輸送線上臍橙的前景圖像。在S分量上實(shí)現(xiàn)了反光區(qū)域的亮度矯正。分別提取了臍橙的大小、著色度和缺陷率3個特征,構(gòu)建以這3個特征為輸入向量,臍橙分類等級為輸出的決策樹分類器。試驗(yàn)結(jié)果表明:在樹莓派平臺上該分類器的分類正確率達(dá)到95%,當(dāng)輸送線的列數(shù)為5時,處理速度為15個/s,驗(yàn)證了系統(tǒng)的準(zhǔn)確性和實(shí)時性,可以滿足在線分級的應(yīng)用要求。