李志臣,凌秀軍,李鴻秋
(金陵科技學(xué)院機(jī)電工程學(xué)院,南京市,211169)
在我國(guó)檳榔主要為消遣性零食,檳榔產(chǎn)業(yè)產(chǎn)值已達(dá)700多億元,并且呈繼續(xù)上漲趨勢(shì)。成熟檳榔加工品經(jīng)過(guò)分級(jí)才能上市,檳榔加工品的分級(jí)主要由人工完成,人工分級(jí)的工作勞動(dòng)強(qiáng)度大、效率低,受經(jīng)驗(yàn)和身心狀態(tài)的影響人工分級(jí)的準(zhǔn)確率波動(dòng)較大。檳榔分級(jí)的機(jī)械化成為加工企業(yè)急需解決的問(wèn)題,機(jī)器分級(jí)的前提是利用機(jī)器視覺(jué)(計(jì)算機(jī)視覺(jué))對(duì)檳榔產(chǎn)品進(jìn)行可靠的分級(jí)。
近年來(lái),運(yùn)用機(jī)器視覺(jué)對(duì)農(nóng)產(chǎn)品進(jìn)行分級(jí)(分類(lèi))的研究非常廣泛。謝先明等[1]通過(guò)提取煙葉圖像中的顏色、形態(tài)等特征,采用樸素貝葉斯分類(lèi)器判別分類(lèi)的準(zhǔn)確率可達(dá)88.89%。戴建民等[2]通過(guò)對(duì)圖像進(jìn)行中值濾波提取煙葉的長(zhǎng)度、長(zhǎng)寬比、圓形度、紋理等幾何特征,再加上煙葉的顏色特征,利用多特征模糊識(shí)別方法對(duì)煙葉分類(lèi)的正確率可達(dá)到煙葉分級(jí)標(biāo)準(zhǔn)。馮斌等[3]設(shè)計(jì)的基于機(jī)器視覺(jué)的水果自動(dòng)分級(jí)系統(tǒng)有三步:首先獲取水果的三維模型圖像,其次計(jì)算并處理圖像要素,最后智能輸出分類(lèi)結(jié)果。高華等[4]利用視覺(jué)技術(shù)確定水果圖像的形心、軸心,計(jì)算出水果的大小、尺寸來(lái)達(dá)到分類(lèi)目標(biāo),檢測(cè)的精確度較高。蔡浩[5]對(duì)水果圖像預(yù)處理后進(jìn)行顏色、紋理、形狀特征的提取,設(shè)計(jì)出一種結(jié)合DS證據(jù)理論融合BP神經(jīng)網(wǎng)絡(luò)、K均值、SVM三種分類(lèi)器的水果識(shí)別算法,對(duì)5種水果的識(shí)別平均準(zhǔn)確率為95.2%。這些方法對(duì)噪聲污染嚴(yán)重的圖像顯得不那么可靠,或者對(duì)分辨率動(dòng)輒上百萬(wàn)像素的圖像處理顯得不夠有效。
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs)在廣闊的領(lǐng)域獲得了重要的應(yīng)用。孫浩楠等[6]建立的人工神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)和識(shí)別模型對(duì)豬咳嗽聲的正確識(shí)別率達(dá)到85.33%。劉媛杰等[7]運(yùn)用閾值分割算法對(duì)分割后的棉籽圖像進(jìn)行相乘和數(shù)學(xué)形態(tài)學(xué)處理等方法得到破損區(qū)域特征,利用獲取連通區(qū)域的方法實(shí)現(xiàn)破損棉籽的識(shí)別,準(zhǔn)確率超過(guò)80%。鄭如新等[8]用RGB的分量B進(jìn)行閾值分割處理金銀花圖像,運(yùn)用改進(jìn)的Canny算法對(duì)金銀花圖像進(jìn)行邊緣檢測(cè),正確識(shí)別率達(dá)90%以上。王珊等[9]利用病斑與健康區(qū)域的顏色差異對(duì)目標(biāo)區(qū)域進(jìn)行分割,依據(jù)葉片病斑面積占比和莖稈病斑的縱向擴(kuò)展長(zhǎng)度進(jìn)行農(nóng)作物病害分級(jí),準(zhǔn)確率較高。
近年來(lái),有學(xué)者開(kāi)展了基于機(jī)器視覺(jué)的檳榔分級(jí)研究。許月明等[10]設(shè)計(jì)的支持向量機(jī)通過(guò)獲取檳榔圖像顏色、形狀和紋理等特征,對(duì)其進(jìn)行主成分分析后代入支持向量機(jī)進(jìn)行分級(jí),正確識(shí)別率達(dá)到90%以上。李振亞[11]使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)檳榔圖像的內(nèi)外輪廓進(jìn)行分割,分別測(cè)取長(zhǎng)寬,并判斷是否去核干凈,最終完成自動(dòng)分級(jí),檳榔片分級(jí)平均合格率為96.66%,平均生產(chǎn)效率為75.57 kg/h,滿(mǎn)足生產(chǎn)要求。這些對(duì)檳榔的分類(lèi)研究需要計(jì)算顏色、形狀、輪廓等檳榔的物理參數(shù),增加了分類(lèi)時(shí)圖像處理在時(shí)間和內(nèi)存上的消耗。
本文利用自然光源獲取檳榔圖像,經(jīng)過(guò)圖像預(yù)處理后分為訓(xùn)練、驗(yàn)證和測(cè)試三組數(shù)據(jù)集,首先設(shè)計(jì)一個(gè)6層神經(jīng)網(wǎng)絡(luò)模型進(jìn)行檳榔的分級(jí),再通過(guò)主成分分析法降低數(shù)據(jù)維數(shù)后設(shè)計(jì)三層神經(jīng)網(wǎng)絡(luò)模型對(duì)檳榔進(jìn)行分級(jí),為檳榔分級(jí)的機(jī)械化研究提供技術(shù)支持。
檳榔傳統(tǒng)分級(jí)標(biāo)準(zhǔn)是:特級(jí)果(極品)的特征是有究頭,有很深的紋路包括縱向紋和橫向紋,長(zhǎng)度一般在55 mm以上;1級(jí)果(金條)的特征是表面紋路較深且比例較均勻,長(zhǎng)度在50 mm以上;2級(jí)果(泡果)的特征是其肚子的直徑比較大,一般大于25 mm且表面紋路相對(duì)較淺、較光滑;3級(jí)果(小果)的特征是其長(zhǎng)度小于50 mm[10]。
從檳榔加工企業(yè)選擇分級(jí)后的檳榔成品324枚,其中特級(jí)檳榔72枚、一級(jí)檳榔115枚、二級(jí)檳榔126枚、三級(jí)檳榔11枚,在實(shí)際生產(chǎn)中,三級(jí)檳榔數(shù)量較少。用小米Note9手機(jī)的攝像功能對(duì)這些檳榔按級(jí)拍照,拍照時(shí)固定手機(jī)位置并且將檳榔放置到一張白紙上,圖像分辨率為1 200像素(寬)×1 600像素(高),拍攝的檳榔原始圖像如圖1所示。
(a) 特級(jí) (b) 一級(jí) (c) 二級(jí) (d) 三級(jí)
原始圖像的分辨率比較高,如果把全部像素的數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入,可能導(dǎo)致計(jì)算機(jī)內(nèi)存崩潰,首先將圖像裁剪,去除下部的背景部分,輸入網(wǎng)絡(luò)時(shí)將圖像的分辨率縮減為96像素(寬)×96像素(高)。三級(jí)的檳榔只有11枚,獲得圖像也只有11幅,與另外3個(gè)級(jí)別的圖像數(shù)量相比差距太大,不利于神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練。通過(guò)圖像增強(qiáng)的方法使得三級(jí)檳榔的圖像增加到197幅。經(jīng)過(guò)處理共有510幅圖像,其中特級(jí)檳榔72幅、一級(jí)檳榔115幅、二級(jí)檳榔126幅、三級(jí)檳榔197幅。將510幅圖像分成3組,第1組為訓(xùn)練數(shù)據(jù)組,有圖像400幅。第2組為驗(yàn)證數(shù)據(jù)組,有100幅圖像,第3組為測(cè)試數(shù)據(jù)組,有10幅圖像。每一組的圖像分布如表1所示。
表1 圖像數(shù)量分布Tab. 1 Distribution of image numbers
將遺傳算法獲得的最優(yōu)的初始權(quán)重值作為神經(jīng)網(wǎng)絡(luò)的初始權(quán)值,既能夠準(zhǔn)確地進(jìn)行檳榔的快速分類(lèi),又能夠防止神經(jīng)網(wǎng)絡(luò)在檳榔圖像的訓(xùn)練過(guò)程中出現(xiàn)權(quán)值局部最優(yōu)。遺傳算法的步驟如下。
1) 設(shè)錯(cuò)誤率為目標(biāo)函數(shù),最大的遺傳代數(shù)為T(mén),令遺傳代數(shù)t=0,隨機(jī)產(chǎn)生由m個(gè)網(wǎng)絡(luò)權(quán)重參數(shù)個(gè)體g組成的種群。
2) 計(jì)算每個(gè)個(gè)體的適應(yīng)度。
(1)
式中:Emax——個(gè)體錯(cuò)誤率的上限;
E(g)——每個(gè)個(gè)體的錯(cuò)誤率。
3) 將選擇、交叉和變異算子作用于種群,選擇P值最大的個(gè)體遺傳給下一代,其中個(gè)體i的適應(yīng)度為fiti,個(gè)體i被選中遺傳到下一代群體的概率為Pi。兩個(gè)個(gè)體算術(shù)交叉產(chǎn)生兩個(gè)新的個(gè)體,再通過(guò)個(gè)體的基因變異產(chǎn)生新個(gè)體。設(shè)個(gè)體g分別由基因g1,g2,…,gk,…,gn構(gòu)成,對(duì)基因gk作均勻變異形成新個(gè)體gk′。
(2)
(3)
gk′=Umink+β(Umaxk-Umink)
(4)
式中:gAt、gBt——交叉前的兩個(gè)個(gè)體;
gAt+1、gBt+1——交叉后的兩個(gè)新個(gè)體;
Umaxk、Umink——待變異基因gk的取值范圍;
α、β——常數(shù),[0,1]的隨機(jī)數(shù)。
4) 當(dāng)t
神經(jīng)網(wǎng)絡(luò)的輸入層、中間層(隱含層)和輸出層以及各層的神經(jīng)元個(gè)數(shù)以及作用函數(shù)、學(xué)習(xí)因子等網(wǎng)絡(luò)的特征參數(shù)是設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的主要內(nèi)容。神經(jīng)網(wǎng)絡(luò)的輸入層到中間層用Sigmoid函數(shù)作為激活函數(shù),輸出層神經(jīng)元的激活函數(shù)采用線(xiàn)性函數(shù)purelin函數(shù)[12]。經(jīng)遺傳算法獲得最優(yōu)的初始網(wǎng)絡(luò)權(quán)值,再利用動(dòng)量梯度下降算法(traingdm)結(jié)合神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)性能perf衍變更新神經(jīng)網(wǎng)絡(luò)的權(quán)重值X[13]。
dX=mc×dXprev+lr×(1-mc)×dperf/dX
(5)
式中:mc——?jiǎng)恿宽?xiàng);
lr——學(xué)習(xí)率;
prev——上一輪學(xué)習(xí)參數(shù)。
神經(jīng)網(wǎng)絡(luò)模型共設(shè)計(jì)6層,包含1個(gè)輸入層、1個(gè)輸出層、4個(gè)隱含層。輸入層有9 216個(gè)神經(jīng)元節(jié)點(diǎn),保證了圖像的所有像素?cái)?shù)據(jù)都能成為神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)。輸出層有4個(gè)神經(jīng)元節(jié)點(diǎn),每個(gè)神經(jīng)元輸出的是對(duì)應(yīng)檳榔級(jí)別的概率,取4個(gè)概率值的最大值就是輸入檳榔圖像的質(zhì)量等級(jí)。隱含層的第一層有2 048個(gè)神經(jīng)元節(jié)點(diǎn)、第二層和第三層各有1 024個(gè)神經(jīng)元節(jié)點(diǎn)、第四層有128個(gè)神經(jīng)元節(jié)點(diǎn)。每層的詳細(xì)數(shù)據(jù)如表2所示,網(wǎng)絡(luò)的總參數(shù)量和訓(xùn)練參數(shù)量都是22 155 908,這個(gè)參數(shù)量還是很高的。
表2 網(wǎng)絡(luò)各層的數(shù)據(jù)Tab. 2 Data of the every network layer
取400幅圖像訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,訓(xùn)練前給每一幅圖像添加一個(gè)類(lèi)標(biāo)簽,因?yàn)檩敵鰧佑?個(gè)神經(jīng)元,所以特級(jí)檳榔的標(biāo)簽是[1,0,0,0]、一級(jí)檳榔的標(biāo)簽是[0,1,0,0]、二級(jí)檳榔的標(biāo)簽是[0,0,1,0]、三級(jí)檳榔的標(biāo)簽是[0,0,0,1]。400幅圖像共分40批,每批10幅圖像。訓(xùn)練的迭代次數(shù)影響模型的權(quán)重系數(shù),當(dāng)?shù)^(guò)80次以后,訓(xùn)練和驗(yàn)證的準(zhǔn)確率都不再提高,因此選擇網(wǎng)絡(luò)訓(xùn)練的迭代次數(shù)是80次。
學(xué)習(xí)率是梯度下降公式中最影響神經(jīng)網(wǎng)絡(luò)模型性能的超參數(shù),它決定了神經(jīng)網(wǎng)絡(luò)是否可以收斂到全局最小值。一個(gè)完美配置的學(xué)習(xí)速率,可以對(duì)神經(jīng)網(wǎng)絡(luò)對(duì)應(yīng)的函數(shù)進(jìn)行最佳近似,較高的學(xué)習(xí)率可使神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)更快,但神經(jīng)網(wǎng)絡(luò)模型的權(quán)重集不是最優(yōu)的。較小的學(xué)習(xí)率可以使神經(jīng)網(wǎng)絡(luò)模型權(quán)重集是最優(yōu)的,但神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練需要較長(zhǎng)的時(shí)間。在本文中采用手動(dòng)人工調(diào)整學(xué)習(xí)率的方法,通過(guò)試驗(yàn)發(fā)現(xiàn)選擇不同的學(xué)習(xí)率,訓(xùn)練和驗(yàn)證的損失值和準(zhǔn)確率是不同的,當(dāng)學(xué)習(xí)率為0.000 1時(shí)的綜合效果最好,如表3所示。
表3 訓(xùn)練和驗(yàn)證損失與準(zhǔn)確率Tab. 3 Loss and accuracy of training and validation
主成分分析(Principal Component Analysis,PCA)就是刪除關(guān)系緊密的變量,形成新的變量是兩兩不相關(guān)的,這些新變量在反映信息方面盡可能保持原有的信息不丟失[14-15]。
PT×P=1
(6)
X=PT×M
(7)
(8)
(9)
對(duì)510幅圖像的特征數(shù)據(jù)進(jìn)行數(shù)據(jù)降維,通過(guò)人工手動(dòng)調(diào)節(jié)數(shù)據(jù)維數(shù),維數(shù)值分別設(shè)置為500、400、300、200、100,通過(guò)觀察降維后的累計(jì)貢獻(xiàn)率確定信息的丟失程度,累計(jì)貢獻(xiàn)率越接近于1,信息丟失的越少。每個(gè)降維后的維數(shù)對(duì)應(yīng)的貢獻(xiàn)率見(jiàn)表4,當(dāng)原始數(shù)據(jù)降到200維時(shí),累計(jì)貢獻(xiàn)率為97.5%,信息丟失很少,因此選擇200維是合適的。
表4 主成分累計(jì)貢獻(xiàn)率Tab. 4 Accumulative contribution rate of PCA
特征數(shù)據(jù)降維后,選擇新的特征數(shù)據(jù)的維數(shù)為200,使用表2的6層網(wǎng)絡(luò)結(jié)構(gòu),僅僅改變輸入層的神經(jīng)元個(gè)數(shù)為200個(gè),也使得模型訓(xùn)練的時(shí)間大大縮短,并且訓(xùn)練和驗(yàn)證結(jié)果更優(yōu)秀,經(jīng)過(guò)80次迭代后,訓(xùn)練損失0.000 018,訓(xùn)練準(zhǔn)確率為100%,驗(yàn)證損失0.29,驗(yàn)證準(zhǔn)確率為98%。
圖像的特征數(shù)據(jù)經(jīng)過(guò)降維后輸入數(shù)據(jù)減少,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)可以簡(jiǎn)化為三層,輸入層有200個(gè)神經(jīng)元,輸出層有4個(gè)神經(jīng)元,中間層神經(jīng)元個(gè)數(shù)根據(jù)式(10)計(jì)算。
(10)
式中:l——隱含層的神經(jīng)元個(gè)數(shù);
n——輸入層神經(jīng)元個(gè)數(shù);
m′——輸出層神經(jīng)元個(gè)數(shù);
a——常數(shù),設(shè)計(jì)中令a=5。
三層神經(jīng)網(wǎng)絡(luò)的各層數(shù)據(jù)如表5所示,網(wǎng)絡(luò)的總參數(shù)量和訓(xùn)練參數(shù)量都是4 104,比表2中神經(jīng)網(wǎng)絡(luò)的參數(shù)量降低了4個(gè)數(shù)量級(jí)。經(jīng)遺傳算法獲得最優(yōu)的初始網(wǎng)絡(luò)權(quán)值,訓(xùn)練和驗(yàn)證這個(gè)3層神經(jīng)網(wǎng)絡(luò),80次迭代后,訓(xùn)練損失0.028,訓(xùn)練準(zhǔn)確率為100%,驗(yàn)證損失0.21,驗(yàn)證準(zhǔn)確率為96%。
表5 網(wǎng)絡(luò)各層的數(shù)據(jù)Tab. 5 Data of the every network layer
為了證明數(shù)據(jù)降維后設(shè)計(jì)的三層神經(jīng)網(wǎng)絡(luò)對(duì)檳榔分類(lèi)的有效性,運(yùn)用測(cè)試組圖像對(duì)網(wǎng)絡(luò)進(jìn)行測(cè)試試驗(yàn)。分類(lèi)結(jié)果見(jiàn)圖2,在10幅檳榔圖像的分級(jí)中,只有1幅檳榔圖像被分錯(cuò),分錯(cuò)的檳榔是圖2中第2行第2列的檳榔,正確的分級(jí)應(yīng)該是二級(jí),但被神經(jīng)網(wǎng)絡(luò)模型分為了三級(jí),檳榔分級(jí)的總體準(zhǔn)確率為90%,特級(jí)檳榔的分級(jí)準(zhǔn)確率為100%,一級(jí)檳榔的分級(jí)準(zhǔn)確率為100%,二級(jí)檳榔的分級(jí)準(zhǔn)確率為66.7%,三級(jí)檳榔的分級(jí)準(zhǔn)確率為100%。但用于測(cè)試檳榔圖像僅有10幅,檳榔圖像數(shù)量偏少,在今后的研究中需要增加檳榔的圖像數(shù)量。
圖2 分級(jí)后的檳榔
6層神經(jīng)網(wǎng)絡(luò)、降維后的6層神經(jīng)網(wǎng)絡(luò)和降維后的3層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練、驗(yàn)證和測(cè)試的結(jié)果如表6所示,三種網(wǎng)絡(luò)的測(cè)試準(zhǔn)確率都是90%,但主成分分析降維后設(shè)計(jì)的三層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間最少,在實(shí)際的自動(dòng)化檳榔分級(jí)嵌入式應(yīng)用中所需的硬件可大大簡(jiǎn)化,從而降低成本。
表6 三種網(wǎng)絡(luò)的對(duì)比數(shù)據(jù)Tab. 6 Comparative data of the three networks
1) 初步設(shè)計(jì)的6層遺傳神經(jīng)網(wǎng)絡(luò)對(duì)檳榔進(jìn)行分級(jí)是可靠的,準(zhǔn)確率可達(dá)到90%,但網(wǎng)絡(luò)承擔(dān)的數(shù)據(jù)量龐大,網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,訓(xùn)練時(shí)間較長(zhǎng),不適合嵌入式應(yīng)用。利用主成分分析法對(duì)圖像數(shù)據(jù)降維,數(shù)據(jù)由9 216維降至200維,數(shù)據(jù)信息丟失少。人工神經(jīng)網(wǎng)絡(luò)簡(jiǎn)化為三層,神經(jīng)元個(gè)數(shù)降到224個(gè),網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,檳榔的分類(lèi)結(jié)果依然準(zhǔn)確,特級(jí)、一級(jí)和三級(jí)的分級(jí)準(zhǔn)確率達(dá)到100%,二級(jí)的分級(jí)準(zhǔn)確率為67%,整體檳榔分級(jí)準(zhǔn)確率達(dá)到90%,將主成分分析和遺傳神經(jīng)網(wǎng)絡(luò)相結(jié)合應(yīng)用于檳榔的分級(jí),檳榔分級(jí)的效果優(yōu)于人工分級(jí)。
2) 卷積神經(jīng)網(wǎng)絡(luò)具有自適應(yīng)能力強(qiáng),準(zhǔn)確率高的特點(diǎn),在后續(xù)研究中可考慮卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)的方法用于檳榔的分級(jí)。針對(duì)采集到的檳榔數(shù)據(jù)集規(guī)模小的問(wèn)題,結(jié)合遷移學(xué)習(xí)方法訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)以提高模型的泛化能力,可以嘗試選擇VGG-19(Visual Geometry Group 19)為遷移學(xué)習(xí)分類(lèi)算法主模型。
3) 研究中僅有的510幅圖像在數(shù)量上偏少,上萬(wàn)幅的各級(jí)原始檳榔圖像對(duì)于遺傳神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練、驗(yàn)證和測(cè)試是必要的。拍攝圖像時(shí)位置、光照等自然環(huán)境條件要一致,減少噪聲污染,提高檳榔圖像的質(zhì)量。