李志臣,凌秀軍,李鴻秋
(金陵科技學院機電工程學院,南京市,211169)
在我國檳榔主要為消遣性零食,檳榔產業(yè)產值已達700多億元,并且呈繼續(xù)上漲趨勢。成熟檳榔加工品經過分級才能上市,檳榔加工品的分級主要由人工完成,人工分級的工作勞動強度大、效率低,受經驗和身心狀態(tài)的影響人工分級的準確率波動較大。檳榔分級的機械化成為加工企業(yè)急需解決的問題,機器分級的前提是利用機器視覺(計算機視覺)對檳榔產品進行可靠的分級。
近年來,運用機器視覺對農產品進行分級(分類)的研究非常廣泛。謝先明等[1]通過提取煙葉圖像中的顏色、形態(tài)等特征,采用樸素貝葉斯分類器判別分類的準確率可達88.89%。戴建民等[2]通過對圖像進行中值濾波提取煙葉的長度、長寬比、圓形度、紋理等幾何特征,再加上煙葉的顏色特征,利用多特征模糊識別方法對煙葉分類的正確率可達到煙葉分級標準。馮斌等[3]設計的基于機器視覺的水果自動分級系統(tǒng)有三步:首先獲取水果的三維模型圖像,其次計算并處理圖像要素,最后智能輸出分類結果。高華等[4]利用視覺技術確定水果圖像的形心、軸心,計算出水果的大小、尺寸來達到分類目標,檢測的精確度較高。蔡浩[5]對水果圖像預處理后進行顏色、紋理、形狀特征的提取,設計出一種結合DS證據理論融合BP神經網絡、K均值、SVM三種分類器的水果識別算法,對5種水果的識別平均準確率為95.2%。這些方法對噪聲污染嚴重的圖像顯得不那么可靠,或者對分辨率動輒上百萬像素的圖像處理顯得不夠有效。
人工神經網絡(Artificial Neural Networks,ANNs)在廣闊的領域獲得了重要的應用。孫浩楠等[6]建立的人工神經網絡學習和識別模型對豬咳嗽聲的正確識別率達到85.33%。劉媛杰等[7]運用閾值分割算法對分割后的棉籽圖像進行相乘和數(shù)學形態(tài)學處理等方法得到破損區(qū)域特征,利用獲取連通區(qū)域的方法實現(xiàn)破損棉籽的識別,準確率超過80%。鄭如新等[8]用RGB的分量B進行閾值分割處理金銀花圖像,運用改進的Canny算法對金銀花圖像進行邊緣檢測,正確識別率達90%以上。王珊等[9]利用病斑與健康區(qū)域的顏色差異對目標區(qū)域進行分割,依據葉片病斑面積占比和莖稈病斑的縱向擴展長度進行農作物病害分級,準確率較高。
近年來,有學者開展了基于機器視覺的檳榔分級研究。許月明等[10]設計的支持向量機通過獲取檳榔圖像顏色、形狀和紋理等特征,對其進行主成分分析后代入支持向量機進行分級,正確識別率達到90%以上。李振亞[11]使用卷積神經網絡對檳榔圖像的內外輪廓進行分割,分別測取長寬,并判斷是否去核干凈,最終完成自動分級,檳榔片分級平均合格率為96.66%,平均生產效率為75.57 kg/h,滿足生產要求。這些對檳榔的分類研究需要計算顏色、形狀、輪廓等檳榔的物理參數(shù),增加了分類時圖像處理在時間和內存上的消耗。
本文利用自然光源獲取檳榔圖像,經過圖像預處理后分為訓練、驗證和測試三組數(shù)據集,首先設計一個6層神經網絡模型進行檳榔的分級,再通過主成分分析法降低數(shù)據維數(shù)后設計三層神經網絡模型對檳榔進行分級,為檳榔分級的機械化研究提供技術支持。
檳榔傳統(tǒng)分級標準是:特級果(極品)的特征是有究頭,有很深的紋路包括縱向紋和橫向紋,長度一般在55 mm以上;1級果(金條)的特征是表面紋路較深且比例較均勻,長度在50 mm以上;2級果(泡果)的特征是其肚子的直徑比較大,一般大于25 mm且表面紋路相對較淺、較光滑;3級果(小果)的特征是其長度小于50 mm[10]。
從檳榔加工企業(yè)選擇分級后的檳榔成品324枚,其中特級檳榔72枚、一級檳榔115枚、二級檳榔126枚、三級檳榔11枚,在實際生產中,三級檳榔數(shù)量較少。用小米Note9手機的攝像功能對這些檳榔按級拍照,拍照時固定手機位置并且將檳榔放置到一張白紙上,圖像分辨率為1 200像素(寬)×1 600像素(高),拍攝的檳榔原始圖像如圖1所示。

(a) 特級 (b) 一級 (c) 二級 (d) 三級
原始圖像的分辨率比較高,如果把全部像素的數(shù)據作為神經網絡的輸入,可能導致計算機內存崩潰,首先將圖像裁剪,去除下部的背景部分,輸入網絡時將圖像的分辨率縮減為96像素(寬)×96像素(高)。三級的檳榔只有11枚,獲得圖像也只有11幅,與另外3個級別的圖像數(shù)量相比差距太大,不利于神經網絡模型的訓練。通過圖像增強的方法使得三級檳榔的圖像增加到197幅。經過處理共有510幅圖像,其中特級檳榔72幅、一級檳榔115幅、二級檳榔126幅、三級檳榔197幅。將510幅圖像分成3組,第1組為訓練數(shù)據組,有圖像400幅。第2組為驗證數(shù)據組,有100幅圖像,第3組為測試數(shù)據組,有10幅圖像。每一組的圖像分布如表1所示。

表1 圖像數(shù)量分布Tab. 1 Distribution of image numbers
將遺傳算法獲得的最優(yōu)的初始權重值作為神經網絡的初始權值,既能夠準確地進行檳榔的快速分類,又能夠防止神經網絡在檳榔圖像的訓練過程中出現(xiàn)權值局部最優(yōu)。遺傳算法的步驟如下。
1) 設錯誤率為目標函數(shù),最大的遺傳代數(shù)為T,令遺傳代數(shù)t=0,隨機產生由m個網絡權重參數(shù)個體g組成的種群。
2) 計算每個個體的適應度。
(1)
式中:Emax——個體錯誤率的上限;
E(g)——每個個體的錯誤率。
3) 將選擇、交叉和變異算子作用于種群,選擇P值最大的個體遺傳給下一代,其中個體i的適應度為fiti,個體i被選中遺傳到下一代群體的概率為Pi。兩個個體算術交叉產生兩個新的個體,再通過個體的基因變異產生新個體。設個體g分別由基因g1,g2,…,gk,…,gn構成,對基因gk作均勻變異形成新個體gk′。
(2)
(3)
gk′=Umink+β(Umaxk-Umink)
(4)
式中:gAt、gBt——交叉前的兩個個體;
gAt+1、gBt+1——交叉后的兩個新個體;
Umaxk、Umink——待變異基因gk的取值范圍;
α、β——常數(shù),[0,1]的隨機數(shù)。
4) 當t
神經網絡的輸入層、中間層(隱含層)和輸出層以及各層的神經元個數(shù)以及作用函數(shù)、學習因子等網絡的特征參數(shù)是設計神經網絡的主要內容。神經網絡的輸入層到中間層用Sigmoid函數(shù)作為激活函數(shù),輸出層神經元的激活函數(shù)采用線性函數(shù)purelin函數(shù)[12]。經遺傳算法獲得最優(yōu)的初始網絡權值,再利用動量梯度下降算法(traingdm)結合神經網絡的網絡性能perf衍變更新神經網絡的權重值X[13]。
dX=mc×dXprev+lr×(1-mc)×dperf/dX
(5)
式中:mc——動量項;
lr——學習率;
prev——上一輪學習參數(shù)。
神經網絡模型共設計6層,包含1個輸入層、1個輸出層、4個隱含層。輸入層有9 216個神經元節(jié)點,保證了圖像的所有像素數(shù)據都能成為神經網絡的輸入數(shù)據。輸出層有4個神經元節(jié)點,每個神經元輸出的是對應檳榔級別的概率,取4個概率值的最大值就是輸入檳榔圖像的質量等級。隱含層的第一層有2 048個神經元節(jié)點、第二層和第三層各有1 024個神經元節(jié)點、第四層有128個神經元節(jié)點。每層的詳細數(shù)據如表2所示,網絡的總參數(shù)量和訓練參數(shù)量都是22 155 908,這個參數(shù)量還是很高的。

表2 網絡各層的數(shù)據Tab. 2 Data of the every network layer
取400幅圖像訓練神經網絡模型,訓練前給每一幅圖像添加一個類標簽,因為輸出層有4個神經元,所以特級檳榔的標簽是[1,0,0,0]、一級檳榔的標簽是[0,1,0,0]、二級檳榔的標簽是[0,0,1,0]、三級檳榔的標簽是[0,0,0,1]。400幅圖像共分40批,每批10幅圖像。訓練的迭代次數(shù)影響模型的權重系數(shù),當?shù)^80次以后,訓練和驗證的準確率都不再提高,因此選擇網絡訓練的迭代次數(shù)是80次。
學習率是梯度下降公式中最影響神經網絡模型性能的超參數(shù),它決定了神經網絡是否可以收斂到全局最小值。一個完美配置的學習速率,可以對神經網絡對應的函數(shù)進行最佳近似,較高的學習率可使神經網絡模型學習更快,但神經網絡模型的權重集不是最優(yōu)的。較小的學習率可以使神經網絡模型權重集是最優(yōu)的,但神經網絡模型的訓練需要較長的時間。在本文中采用手動人工調整學習率的方法,通過試驗發(fā)現(xiàn)選擇不同的學習率,訓練和驗證的損失值和準確率是不同的,當學習率為0.000 1時的綜合效果最好,如表3所示。

表3 訓練和驗證損失與準確率Tab. 3 Loss and accuracy of training and validation
主成分分析(Principal Component Analysis,PCA)就是刪除關系緊密的變量,形成新的變量是兩兩不相關的,這些新變量在反映信息方面盡可能保持原有的信息不丟失[14-15]。

PT×P=1
(6)
X=PT×M
(7)
(8)
(9)
對510幅圖像的特征數(shù)據進行數(shù)據降維,通過人工手動調節(jié)數(shù)據維數(shù),維數(shù)值分別設置為500、400、300、200、100,通過觀察降維后的累計貢獻率確定信息的丟失程度,累計貢獻率越接近于1,信息丟失的越少。每個降維后的維數(shù)對應的貢獻率見表4,當原始數(shù)據降到200維時,累計貢獻率為97.5%,信息丟失很少,因此選擇200維是合適的。

表4 主成分累計貢獻率Tab. 4 Accumulative contribution rate of PCA
特征數(shù)據降維后,選擇新的特征數(shù)據的維數(shù)為200,使用表2的6層網絡結構,僅僅改變輸入層的神經元個數(shù)為200個,也使得模型訓練的時間大大縮短,并且訓練和驗證結果更優(yōu)秀,經過80次迭代后,訓練損失0.000 018,訓練準確率為100%,驗證損失0.29,驗證準確率為98%。
圖像的特征數(shù)據經過降維后輸入數(shù)據減少,神經網絡的結構可以簡化為三層,輸入層有200個神經元,輸出層有4個神經元,中間層神經元個數(shù)根據式(10)計算。
(10)
式中:l——隱含層的神經元個數(shù);
n——輸入層神經元個數(shù);
m′——輸出層神經元個數(shù);
a——常數(shù),設計中令a=5。
三層神經網絡的各層數(shù)據如表5所示,網絡的總參數(shù)量和訓練參數(shù)量都是4 104,比表2中神經網絡的參數(shù)量降低了4個數(shù)量級。經遺傳算法獲得最優(yōu)的初始網絡權值,訓練和驗證這個3層神經網絡,80次迭代后,訓練損失0.028,訓練準確率為100%,驗證損失0.21,驗證準確率為96%。

表5 網絡各層的數(shù)據Tab. 5 Data of the every network layer
為了證明數(shù)據降維后設計的三層神經網絡對檳榔分類的有效性,運用測試組圖像對網絡進行測試試驗。分類結果見圖2,在10幅檳榔圖像的分級中,只有1幅檳榔圖像被分錯,分錯的檳榔是圖2中第2行第2列的檳榔,正確的分級應該是二級,但被神經網絡模型分為了三級,檳榔分級的總體準確率為90%,特級檳榔的分級準確率為100%,一級檳榔的分級準確率為100%,二級檳榔的分級準確率為66.7%,三級檳榔的分級準確率為100%。但用于測試檳榔圖像僅有10幅,檳榔圖像數(shù)量偏少,在今后的研究中需要增加檳榔的圖像數(shù)量。

圖2 分級后的檳榔
6層神經網絡、降維后的6層神經網絡和降維后的3層神經網絡的訓練、驗證和測試的結果如表6所示,三種網絡的測試準確率都是90%,但主成分分析降維后設計的三層神經網絡的訓練時間最少,在實際的自動化檳榔分級嵌入式應用中所需的硬件可大大簡化,從而降低成本。

表6 三種網絡的對比數(shù)據Tab. 6 Comparative data of the three networks
1) 初步設計的6層遺傳神經網絡對檳榔進行分級是可靠的,準確率可達到90%,但網絡承擔的數(shù)據量龐大,網絡結構比較復雜,訓練時間較長,不適合嵌入式應用。利用主成分分析法對圖像數(shù)據降維,數(shù)據由9 216維降至200維,數(shù)據信息丟失少。人工神經網絡簡化為三層,神經元個數(shù)降到224個,網絡結構簡單,檳榔的分類結果依然準確,特級、一級和三級的分級準確率達到100%,二級的分級準確率為67%,整體檳榔分級準確率達到90%,將主成分分析和遺傳神經網絡相結合應用于檳榔的分級,檳榔分級的效果優(yōu)于人工分級。
2) 卷積神經網絡具有自適應能力強,準確率高的特點,在后續(xù)研究中可考慮卷積神經網絡等深度學習的方法用于檳榔的分級。針對采集到的檳榔數(shù)據集規(guī)模小的問題,結合遷移學習方法訓練卷積神經網絡CNN(Convolutional Neural Network)以提高模型的泛化能力,可以嘗試選擇VGG-19(Visual Geometry Group 19)為遷移學習分類算法主模型。
3) 研究中僅有的510幅圖像在數(shù)量上偏少,上萬幅的各級原始檳榔圖像對于遺傳神經網絡模型的訓練、驗證和測試是必要的。拍攝圖像時位置、光照等自然環(huán)境條件要一致,減少噪聲污染,提高檳榔圖像的質量。