張 錚, 周嘉政, 柯子鵬, 錢勤建, 胡新宇
(湖北工業(yè)大學(xué) 機(jī)械工程學(xué)院, 湖北 武漢 430068)
由于芒果成熟后果肉較軟,在采集、存儲(chǔ)及運(yùn)輸?shù)冗^程中極易損傷果肉而導(dǎo)致變質(zhì)。目前芒果的品質(zhì)通常采用肉眼對(duì)果皮的表面特征進(jìn)行觀察判別,但該方法極易因操作人員的主觀意識(shí)而出現(xiàn)較大誤差。近些年,隨著機(jī)器視覺技術(shù)的不斷成熟,機(jī)器視覺技術(shù)在無損檢測(cè)方向的應(yīng)用也越來越廣泛,國(guó)內(nèi)學(xué)者利用機(jī)器視覺技術(shù)對(duì)芒果的缺陷檢測(cè)也做了大量研究。羅志翔等[1]設(shè)計(jì)了基于BP神經(jīng)網(wǎng)絡(luò)的水果識(shí)別系統(tǒng),對(duì)水果紋理、形狀、顏色三種特征進(jìn)行提取并輸入到BP神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練、識(shí)別,經(jīng)測(cè)試具有較高的識(shí)別成功率。李國(guó)進(jìn)等[2]提出了一種基于計(jì)算機(jī)視覺和極限學(xué)習(xí)機(jī)神經(jīng)網(wǎng)絡(luò)(ELM)模型的芒果分級(jí)方法,采用粒子群優(yōu)化算法(PSO)對(duì)ELM隨機(jī)給定的輸入權(quán)值矩陣和隱層閾值進(jìn)行尋優(yōu),最后根據(jù)芒果的外觀特征提取芒果面積、等效橢圓長(zhǎng)短軸之比、H分量均值和缺陷面積所占百分比4個(gè)特征參數(shù)對(duì)模型進(jìn)行訓(xùn)練和測(cè)試,能夠精準(zhǔn)地對(duì)芒果進(jìn)行等級(jí)劃分。楊濤等[3]提出從成熟度、質(zhì)量、形狀三方面綜合評(píng)估的方法,通過分析HSV顏色模型中H參數(shù)判斷草莓成熟度,利用圖像投影面積-質(zhì)量函數(shù)關(guān)系對(duì)草莓質(zhì)量進(jìn)行測(cè)算,最后采用K均值聚類法與判別分析相結(jié)合對(duì)草莓評(píng)估分級(jí)。Nakano等[4]開發(fā)圖像采集系統(tǒng),通過采集蘋果圖像使用神經(jīng)網(wǎng)絡(luò)將蘋果分為5個(gè)等級(jí)。辛華健[5]設(shè)計(jì)了一種基于計(jì)算機(jī)視覺的芒果品質(zhì)檢測(cè)方法,通過芒果大小、顏色和表面缺陷來反映芒果品質(zhì),并基于BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)芒果的分級(jí)。但上述方法僅利用機(jī)器視覺或機(jī)器學(xué)習(xí)通過提取、處理芒果的表面形狀特征參數(shù)對(duì)芒果進(jìn)行分級(jí)研究,未考慮到芒果果肉品質(zhì)對(duì)分級(jí)結(jié)果的影響,也未以芒果果肉的腐爛度為特征對(duì)芒果展開預(yù)測(cè)與分級(jí)研究。
本文以芒果腐爛度作為芒果分級(jí)特征,首先對(duì)底層處理后的芒果樣本的果皮、果肉、果皮表面缺陷和果肉腐爛特征參數(shù)進(jìn)行提取,然后定義芒果缺陷度、腐爛度,最后通過BP神經(jīng)網(wǎng)絡(luò)對(duì)缺陷度進(jìn)行訓(xùn)練建立缺陷度-腐爛度預(yù)測(cè)模型,并能夠依據(jù)建立的模型預(yù)測(cè)出芒果果肉的腐爛程度,準(zhǔn)確地甄別出肉眼無法觀察到的果肉腐爛的芒果,故對(duì)芒果果肉腐爛度的預(yù)測(cè)研究有重要意義。綜上所述,本文提出了一種通過建立芒果缺陷度-腐爛度預(yù)測(cè)模型的新方法來預(yù)測(cè)芒果果肉的腐爛度并依據(jù)芒果果肉腐爛度分級(jí)。
選取應(yīng)季鷹嘴芒果作為研究樣本,成熟鷹嘴芒果果皮偏純黃色,且果皮較薄,易于剝皮,在處理果皮過程中未對(duì)果肉造成破壞。在隨機(jī)選取的50個(gè)果皮表面有不同程度缺陷的芒果中,將40個(gè)作為訓(xùn)練樣本,另外10個(gè)作為測(cè)試樣本進(jìn)行試驗(yàn)。
通過使用型號(hào)為SHL-200WS工業(yè)相機(jī)搭載型號(hào)為C12120F18-3MP工業(yè)視覺鏡頭以及型號(hào)為SHL-601 LED光源組成圖像采集實(shí)驗(yàn)平臺(tái),見圖1。為采集到最佳的芒果樣本圖像,將相機(jī)固定在距實(shí)驗(yàn)平臺(tái)45 cm處并調(diào)整焦距。對(duì)40個(gè)訓(xùn)練樣本分別從正反兩個(gè)方向進(jìn)行圖像采集,部分樣本見圖2。
由于研究樣本的成熟果皮顏色趨近于黃色,且黃色的RGB值分布為(225,225,0),故對(duì)R和G通道賦予較高的權(quán)重,對(duì)B通道賦予較低的權(quán)重,采用加權(quán)灰度法將原始圖像轉(zhuǎn)化為灰度圖像,見圖3。具體方法見下式[6]:
f(x,y)=(ωRR+ωGG+ωBB)
(1)
式中:f(x,y)為點(diǎn)(x,y)轉(zhuǎn)換后的灰度圖像像素點(diǎn)灰度值;R,G,B分別為點(diǎn)(x,y)在原始圖像中像素點(diǎn)紅色、綠色、藍(lán)色分量;ωR、ωG、ωB分別為R、G、B通道在式中的加權(quán)權(quán)重(經(jīng)多次試驗(yàn),ωR=0.3、ωG=0.59、ωB=0.11)。
為了保留原始圖像特征去除隨機(jī)噪聲對(duì)灰度圖像采用均值濾波進(jìn)行平滑去噪,在處理過程中使用 3×3 模板對(duì)灰度圖像的鄰域像素進(jìn)行卷積運(yùn)算,濾波效果見圖4。
在現(xiàn)有圖像邊緣檢測(cè)算法中,Canny算法能夠同時(shí)滿足邊緣定位準(zhǔn)確、檢測(cè)效果優(yōu)良、響應(yīng)次數(shù)低的要求,得到了較為廣泛的應(yīng)用[7]。本文采用Canny邊緣檢測(cè)算法,用一階偏導(dǎo)數(shù)的有限差分計(jì)算梯度的幅值和方向,使用梯度幅值和方向來估計(jì)每一點(diǎn)處的邊緣強(qiáng)度和方向:
(2)
最后,通過雙閾值處理,設(shè)定Canny算法的上下閾值來處理和連接檢測(cè)邊緣,將目標(biāo)區(qū)域與背景分割開。針對(duì)樣本處理過程中經(jīng)邊緣檢測(cè)后可能存在的邊緣斷裂等情況,需進(jìn)行形態(tài)學(xué)分析,使用閉運(yùn)算處理圖像,得到連續(xù)邊緣。為了便于后續(xù)對(duì)芒果面積特征的提取,對(duì)得到的邊緣二值圖像進(jìn)行填充,將目標(biāo)區(qū)域完整地分割開,見圖5。
圖像二值化處理后,為過濾非缺陷部分以及對(duì)圖像中的細(xì)小縫隙進(jìn)行填補(bǔ),便于后續(xù)特征參數(shù)的提取與計(jì)算。在對(duì)大量芒果樣本處理后觀察到成熟芒果果皮出現(xiàn)的少量黑色斑點(diǎn)并不會(huì)對(duì)果肉造成影響,即不考慮將芒果果皮表面的黑色斑點(diǎn)作為表面缺陷,應(yīng)采用形態(tài)學(xué)分析對(duì)圖像進(jìn)行處理。選取圓形結(jié)構(gòu)元素對(duì)芒果果皮缺陷圖像及果肉腐爛圖像依據(jù)式(3)進(jìn)行開運(yùn)算處理,見圖6。
A°B=∪{(B)z|(B)z?A}
(3)
式中:A為目標(biāo)圖像;B為結(jié)構(gòu)元素。
由圖6可知,開運(yùn)算腐蝕了目標(biāo)圖像中芒果自身的斑點(diǎn)、果皮中的少量黑色斑點(diǎn)和果肉纖維等非目標(biāo)特征。
在芒果分級(jí)過程中,為了確保分級(jí)的準(zhǔn)確,要考慮到內(nèi)部品質(zhì)對(duì)芒果分級(jí)的結(jié)果具有很大影響。故需要對(duì)芒果果皮面積、果肉面積、果皮缺陷面積和果肉腐爛面積提取計(jì)算。通過統(tǒng)計(jì)底層處理后的樣本圖像兩個(gè)方向上的像素點(diǎn)來表示芒果樣本的面積。首先,統(tǒng)計(jì)芒果果皮、果肉、果皮表面缺陷和果肉腐爛的像素點(diǎn)總和分別作為芒果的果皮總面積、果肉總面積、果皮表面缺陷總面積和果肉腐爛總面積。然后,依據(jù)式(4)將果皮表面缺陷總面積與果皮總面積的比值作為芒果果皮表面缺陷度,將果肉腐爛總面積與果肉總面積的比值作為芒果果肉腐爛度,芒果果肉腐爛度越大表示果肉的損壞越嚴(yán)重。
(4)
式中:Gd為缺陷度;Gr為腐爛度;Sd為果皮表面缺陷總面積;Spl為芒果果皮總面積;Sr為果肉腐爛總面積;Spp為芒果果肉總面積。
BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播數(shù)據(jù)算法來訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),相比于其他算法BP神經(jīng)網(wǎng)絡(luò)不僅具有誤差反饋的優(yōu)勢(shì)而且具備良好的自學(xué)習(xí)、自適應(yīng)等能力,常被大量應(yīng)用在模式識(shí)別、故障檢測(cè)、智能控制、函數(shù)逼近等領(lǐng)域,是目前應(yīng)用最成功、最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一[1,8]。故本文選用BP神經(jīng)網(wǎng)絡(luò)對(duì)樣本數(shù)據(jù)進(jìn)行訓(xùn)練建立關(guān)于缺陷度-腐爛度的預(yù)測(cè)模型。
由于選用缺陷度作為神經(jīng)網(wǎng)絡(luò)的輸入層,故輸入層的神經(jīng)元個(gè)數(shù)為1,而隱含層節(jié)點(diǎn)的選取影響著BP神經(jīng)網(wǎng)絡(luò)的誤差、精度以及網(wǎng)絡(luò)的復(fù)雜程度,對(duì)神經(jīng)網(wǎng)絡(luò)模型的性能有很大影響。在確定隱含層節(jié)點(diǎn)數(shù)的過程中,應(yīng)保證在滿足精度的前提下,取盡可能緊湊的結(jié)構(gòu),即取盡可能少的隱含層節(jié)點(diǎn)數(shù)。由Kolmogorov定理,見式(5),根據(jù)試驗(yàn)結(jié)果不斷調(diào)整,最后確定隱含層的節(jié)點(diǎn)數(shù)為3[9-10]。
S=2N+1
(5)
式中:S為隱含層節(jié)點(diǎn)數(shù)目;N為輸入層節(jié)點(diǎn)數(shù)目。
在BP神經(jīng)網(wǎng)絡(luò)建立過程中,隨機(jī)選取40個(gè)缺陷度數(shù)據(jù)作為輸入層訓(xùn)練樣本,對(duì)應(yīng)的40個(gè)腐爛度數(shù)據(jù)作為輸出層的訓(xùn)練樣本,10個(gè)缺陷度數(shù)據(jù)作為測(cè)試樣本,對(duì)應(yīng)的10個(gè)腐爛度數(shù)據(jù)用于與預(yù)測(cè)結(jié)果進(jìn)行誤差比對(duì)檢驗(yàn)?zāi)P托阅堋?/p>
本文為了能夠準(zhǔn)確直觀的驗(yàn)證模型性能,采用相對(duì)誤差及決定系數(shù)兩種方法來驗(yàn)證模型的可行性。由絕對(duì)誤差與真實(shí)值之比得到的相對(duì)誤差能夠真實(shí)地反映測(cè)量的可信度。依據(jù)式(6),首先將模型預(yù)測(cè)得到的每個(gè)樣本預(yù)測(cè)值與真實(shí)值作差得到絕對(duì)誤差,絕對(duì)誤差(殘差)可以對(duì)訓(xùn)練樣本的擬合函數(shù)進(jìn)行殘差分析,見圖7,然后將絕對(duì)誤差除以真實(shí)值得到每個(gè)樣本的相對(duì)誤差。相對(duì)誤差的結(jié)果反映了偏離真實(shí)值的實(shí)際大小,相對(duì)誤差越小,表明模型的性能越好。
(6)
由圖7中的殘差圖可知?dú)埐畹搅泓c(diǎn)的距離,并在殘差圖中可以獲取到訓(xùn)練樣本殘差分布在值域[-0.8×10-3,2.4×10-3]之間,訓(xùn)練樣本殘差值與腐爛度不相關(guān)且相鄰殘差不具有相關(guān)性。在圖中還能夠觀察到90%的殘差都分布在值域[-0.8×10-3, 1.5×10-3]之間,即殘差圖中幾乎所有點(diǎn)都落在了這一水平帶中間,經(jīng)殘差分析可知該訓(xùn)練樣本的擬合函數(shù)較為準(zhǔn)確。
(7)
經(jīng)計(jì)算本文模型的決定系數(shù)R2的值為0.998 1,接近于1,表明該模型性能較好。使用決定系數(shù)對(duì)模型系統(tǒng)擬合優(yōu)度評(píng)價(jià)后,為了進(jìn)一步驗(yàn)證模型的準(zhǔn)確性,對(duì)真實(shí)值與訓(xùn)練后的預(yù)測(cè)值擬合曲線進(jìn)行回歸性分析,見圖8。
圖8反映了神經(jīng)網(wǎng)絡(luò)訓(xùn)練后,訓(xùn)練樣本、測(cè)試樣本和驗(yàn)證樣本的真實(shí)值以及預(yù)測(cè)值的相關(guān)關(guān)系,通過回歸性分析可以觀察到相關(guān)性系數(shù)R接近于1,誤差在0.01以內(nèi),表明樣本數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)訓(xùn)練后與真實(shí)值誤差較小,達(dá)到了預(yù)期的訓(xùn)練效果。
上述方法中,通過使用殘差分析對(duì)訓(xùn)練樣本的擬合函數(shù)進(jìn)行檢驗(yàn),又通過決定系數(shù)對(duì)模型擬合優(yōu)度進(jìn)行了評(píng)價(jià)。當(dāng)利用回歸性分析中相關(guān)性系數(shù)來檢驗(yàn)真實(shí)值與訓(xùn)練后的預(yù)測(cè)值的相關(guān)關(guān)系后,再用相對(duì)誤差來評(píng)價(jià)每個(gè)測(cè)試樣本的真實(shí)值與預(yù)測(cè)值的偏差,能夠真實(shí)的反映訓(xùn)練模型的可信度,見表1。
表1 相對(duì)誤差表
為使測(cè)試樣本中真實(shí)值與預(yù)測(cè)值的誤差更加直觀,便于檢驗(yàn)?zāi)P蜏?zhǔn)確性,在MATLAB中繪制出真實(shí)值-預(yù)測(cè)值誤差圖,見圖9。
通過對(duì)預(yù)測(cè)結(jié)果的分析,可以得到該模型所預(yù)測(cè)的數(shù)據(jù)基本準(zhǔn)確,證明了模型的有效性。經(jīng)過大量的試驗(yàn)以及對(duì)樣本數(shù)據(jù)分析后,發(fā)現(xiàn)試驗(yàn)中存在部分樣本雖在圖像底層處理中去除掉了不影響芒果果肉的果皮黑色斑點(diǎn),但當(dāng)芒果果皮缺陷度小于等于0.004時(shí),果肉腐爛度也會(huì)隨之減小,果皮缺陷度對(duì)果肉質(zhì)量的影響程度降低(當(dāng)缺陷度大于該值時(shí),腐爛度會(huì)隨缺陷度的增大而增大,缺陷度對(duì)果肉質(zhì)量的影響程度提高)。該發(fā)現(xiàn)造成了試驗(yàn)數(shù)據(jù)擾動(dòng),故部分預(yù)測(cè)點(diǎn)出現(xiàn)細(xì)微誤差,但并未影響模型整體的準(zhǔn)確性。
依據(jù)中國(guó)農(nóng)業(yè)行業(yè)標(biāo)準(zhǔn)(NYT3011—2016)的等級(jí)指標(biāo)對(duì)芒果進(jìn)行分類,見表2[11]。首先,通過芒果的規(guī)格、果形以及缺陷的大小對(duì)芒果進(jìn)行人工分類,并將分類結(jié)果對(duì)應(yīng)至提取的芒果果皮表面缺陷度,使芒果等級(jí)與腐爛度形成對(duì)應(yīng)關(guān)系,并以此為依據(jù),利用BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練出的缺陷度-腐爛度模型對(duì)芒果分級(jí),見表3。對(duì)樣本數(shù)據(jù)整理分析后,擬定不同腐爛度范圍芒果果肉等級(jí)的劃分,見表4。
表2 等級(jí)指標(biāo)
表3 部分芒果圖像像素點(diǎn)的統(tǒng)計(jì)、計(jì)算與等級(jí)劃分
表4 芒果果肉腐爛度等級(jí)劃分表
根據(jù)表2中的等級(jí)指標(biāo)人工篩選20個(gè)芒果作為參考結(jié)果,使用本文建立的缺陷度-腐爛度擬合模型預(yù)測(cè)出芒果內(nèi)部腐爛程度,再結(jié)合表4中的果肉腐爛度等級(jí)劃分表對(duì)芒果進(jìn)行機(jī)器分級(jí),試驗(yàn)結(jié)果見表5,結(jié)果表明通過本文所建立的缺陷度-腐爛度模型對(duì)芒果果肉腐爛度預(yù)測(cè)的平均正確率達(dá)到88.3%。
表5 芒果品質(zhì)分級(jí)準(zhǔn)確率
本文建立的芒果缺陷度-腐爛度預(yù)測(cè)模型,具備所需樣本數(shù)據(jù)少、可靠性強(qiáng)和效率高等特點(diǎn),為預(yù)測(cè)芒果內(nèi)部腐爛程度提供了一種高效準(zhǔn)確的方法。通過引入機(jī)器學(xué)習(xí)的方法對(duì)芒果果肉腐爛度進(jìn)行預(yù)測(cè),并建立預(yù)測(cè)模型對(duì)芒果進(jìn)行分級(jí)篩選,經(jīng)試驗(yàn)分析,該模型的預(yù)測(cè)準(zhǔn)確率達(dá)88.3%,表明了該模型具有良好的準(zhǔn)確性,在實(shí)際的生產(chǎn)分級(jí)過程中以及后續(xù)芒果內(nèi)部的無損檢測(cè)研究中具有較大的應(yīng)用價(jià)值。