張永超,趙錄懷,卜光蘋
(1.西安交通大學(xué) 城市學(xué)院,陜西 西安 710018;2.西安交通大學(xué) 電氣學(xué)院,陜西 西安 710048)
種子對農(nóng)業(yè)生產(chǎn)的重要性不言而喻。為了增加花生生產(chǎn)的豐收率和提高其種植效率,有必要準(zhǔn)確、快速地識別出完好和破損兩類花生種子。
韓仲志等研究了基于外觀特征識別不同品種、品質(zhì)的花生種子,采用圖像識別法,識別率和準(zhǔn)確率分別達91.2%和93.0%[1]。王潤濤等曾提出了基于機器視覺、圖像處理、神經(jīng)網(wǎng)絡(luò)法的大豆籽粒精選技術(shù),測試準(zhǔn)確率為92%,篩選效率每分鐘300粒[2]。趙吉文等學(xué)者根據(jù)西瓜籽的特征,用灰度帶比例作為分類特征參數(shù)的方法,分選出合格的瓜籽,該分選技術(shù)能使識別率達95%[3]。Dan Mn等研究使用1個彩色VGA傳感器檢測和去除單個具有小局部缺陷或缺陷的谷粒,斑點檢測是由顏色信息和一個簡單的非線性空間濾波器的組合來完成的,該濾波器可以檢測沿圖像線的像素強度的微小下降,系統(tǒng)準(zhǔn)確率為89%,每秒篩選180粒[4]。趙志衡等用實測結(jié)果證明采用卷積神經(jīng)網(wǎng)絡(luò)識別算法的色選系統(tǒng)較為穩(wěn)定,該方法對花生分類的準(zhǔn)確率達到98.18%,平均檢測1幅單?;ㄉ鷪D像的時間為18 ms[5]。
本文提出了基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)的花生種子篩選方法,根據(jù)實際需求,只要篩選出花生是否適合作為種子,剔除不適合作為種子的破損(果皮受損、果仁受損等)種子,使花生種子篩選分類簡單、準(zhǔn)確率高、速度快。
CNN的獨特優(yōu)勢在于通過局部感知野和權(quán)值共享兩種途徑,可以極大地減少參數(shù)的數(shù)目,從而簡化復(fù)雜的問題。神經(jīng)元對圖像進行局部感知,并且在高層中將局部信息進行綜合性處理,故為局部感知野,其原理是局部像素間空間距離近則相關(guān)性強;在卷積操作中將權(quán)重參數(shù)看作提取特征值的方式,且與位置無關(guān),故稱為權(quán)值共享,其原理是圖像中不同部分的局部特征值統(tǒng)計特性一致[6]。
CNN的核心結(jié)構(gòu)由卷積層、池化層和全連接層構(gòu)成[7],其中卷積層是用于對CNN特征值的提取。卷積操作方法為上一層的局部感受野和卷積層中每個神經(jīng)元進行像素相連的加權(quán)求和,其計算公式為:
(1)
式(1)中:Xjl代表第l層中的第j特征圖;f(x)表示激活函數(shù);Xil-1為圖像的輸入;Wjli是卷積核的權(quán)值;bjl是偏置。
卷積核中Wjli的初始值一般為隨機生成;bjl的初始值一般為0,然后通過反向傳播的方式進行訓(xùn)練調(diào)整。卷積核的尺寸為運算的區(qū)域大小,而其中權(quán)值的大小表明了與特征提取的相關(guān)性大小。
池化層的主要作用是對輸入進來的特征圖像進行濃縮,減小特征圖像的尺寸,滿足提取主要特征值的目的,從而簡化處理復(fù)雜度;通常用平均值采樣和最大值采樣兩種方式提取。本文的網(wǎng)絡(luò)結(jié)構(gòu)采用最大值采樣方式。
本文以花生種子作為研究對象,根據(jù)是否完好將花生分為2類:完好的花生、破損花生。采集700張花生圖像,每粒花生圖像的分辨率為28×28像素,學(xué)習(xí)速率η=0.1。按上述特征進行分類并手工添加標(biāo)簽,然后將這些圖像分為訓(xùn)練圖像和測試圖像,占比分別為80%和20%,即分別為560張和140張,且訓(xùn)練集和測試集花生圖像按上述2類(完好花生、破損花生)呈均勻分布。訓(xùn)練集里部分花生圖像如圖1所示。
由于花生種皮的顏色特征不同,果肉和果皮的顏色特征也不同,紋理特征也各有差異,根據(jù)人類視覺特性,故引入了Gabor濾波器,Gabor變換已被證明是在2D測不準(zhǔn)的情況下,對信號空間域和頻域的最好的說明[8]。由Gabor函數(shù)形成的二維Gabor濾波器具有優(yōu)異的過濾性能,并且具有類似于生物視覺系統(tǒng)的特性。它具有易于調(diào)整方向和徑向的頻帶寬,并且容易調(diào)節(jié)在時域和頻率的中心頻率。此域能獲得最佳分辨率[9]。
圖1 完好花生和破損花生的圖像
對完好花生和破損花生分別采用顏色特征提取和紋理特征提取進行預(yù)處理。由試驗顯示可知,完好花生和破損花生的顏色特征和紋理特征均存在較大的差異,故綜合多方面的特征特性對種子進行篩選。
2.2 CNN的構(gòu)建
CNN的總體結(jié)構(gòu)包含輸入層、卷積層、池化層、全連接層和輸出層[10]。建立如圖2所示的兩層卷積CNN,網(wǎng)絡(luò)中各層參數(shù)如表1所示。
卷積運算處理的圖像數(shù)據(jù)通常都是以矩陣形式有序儲存的,且這些圖像之間耦合性低,卷積運算部分對硬件設(shè)備要求高,故需選運算速度快、圖像吞吐量大、數(shù)據(jù)存儲空間大的硬件設(shè)備。在此基礎(chǔ)上采用Matlab R2018b腳本語言進行深度學(xué)習(xí)編程。
使用準(zhǔn)確率(accuracy)指標(biāo)來評價所提出分類算法的性能,定義如下:
(2)
將所建立的CNN在硬件平臺上訓(xùn)練花生種子圖像庫,在迭代60次后訓(xùn)練集準(zhǔn)確率穩(wěn)定達到95.21%,測試60次后測試集準(zhǔn)確率為87.05%,網(wǎng)絡(luò)準(zhǔn)確率結(jié)果如圖3所示。
表1 CNN的參數(shù)
圖2 CNN的結(jié)構(gòu)圖
圖3 表1和圖2圖像訓(xùn)練測試結(jié)果
為了進一步提高CNN對花生種子篩選的準(zhǔn)確率,提高收斂速度以滿足快速性,讓最終優(yōu)化網(wǎng)絡(luò)簡單可行,并且這種優(yōu)化策略可以進一步擴展到相關(guān)的其他網(wǎng)絡(luò)學(xué)習(xí)算法中,故需要在兩個卷積層的基礎(chǔ)上對所建立的CNN進行優(yōu)化[11]。
因為線性模型對網(wǎng)絡(luò)表達的力度不足,激活函數(shù)通常需非線性函數(shù),故本文加入非線性因素[12]。函數(shù)的選擇主要有以下3種。
Singoid函數(shù):
(3)
Tanh函數(shù):
(4)
ReLU函數(shù):
y=max(0,x)
(5)
由于ReLU函數(shù)較另外兩個函數(shù)具有更快的收斂速度,可以緩解梯度下降問題,并加速訓(xùn)練,且ReLU函數(shù)max(0,x)中的x取極大值時不會飽和,有助于網(wǎng)絡(luò)持續(xù)學(xué)習(xí),因此本文CNN結(jié)構(gòu)中激活函數(shù)采用ReLU[13]。
overfitting是指當(dāng)圖像模型過分復(fù)雜時,可以很好地“記憶”每一個訓(xùn)練圖像中隨機的部分但忘記去“學(xué)習(xí)”訓(xùn)練圖像中通用的趨勢。為了避免overfitting且提高泛化能力,本文采用L2 regularization的方法,其原理是在損失的函數(shù)中加入刻畫圖像模型復(fù)雜程度的指標(biāo)[14]。L2 regularization就是在代價函數(shù)后面再加上1個正則化項:
(6)
式(6)中:C0代表原始的代價函數(shù);式中第2項是L2 regularization項,表示所有參數(shù)ω平方的和除以訓(xùn)練集的樣本大小n;λ是正則項參數(shù),權(quán)衡正則項與C0項的比重;另外一個系數(shù)1/2是為了簡化結(jié)果,因為后面那一項求導(dǎo)后會產(chǎn)生一個2,故與1/2相乘剛好湊整。L2 regularization能避免overfitting,推導(dǎo)如下。
(7)
(8)
可見L2 regularization項對b的更新沒有影響,但是對于ω的更新有影響:
(9)
(10)
圖4 ReLU+L2 regularization優(yōu)化前后準(zhǔn)確率對比
簡單方法是拓展訓(xùn)練集數(shù)據(jù)時將每個訓(xùn)練圖像由一個像素來替代,不論是上一個像素,還是下一個像素,或者左右的像素都適用;其他的方法是改變亮度、改變分辨率、旋轉(zhuǎn)圖片、位移圖片、扭曲圖片等。本文把700張花生圖像人為增加到1500張花生圖像(好壞數(shù)目均勻),使用3.2中一樣的CNN進行訓(xùn)練,因為我們是在訓(xùn)練原來的2.14倍的數(shù)據(jù),所以進一步減少了overfitting的風(fēng)險。訓(xùn)練結(jié)果為97.83%的準(zhǔn)確率,如圖5所示。
因拓展后的網(wǎng)絡(luò)幫助還是不夠理想,需進一步插入1個額外的全連接層進行優(yōu)化。插入額外的全連接層獲得98.37%的訓(xùn)練準(zhǔn)確率,訓(xùn)練結(jié)果如圖6所示。
圖5 拓展數(shù)據(jù)集優(yōu)化前后準(zhǔn)確率對比
圖6 插入額外的全連接層優(yōu)化前后準(zhǔn)確率對比
加入Dropout的CNN識別率高,本文采用這種方法可以有效地防止過擬合并提高網(wǎng)絡(luò)的泛化能力[16]。
Dropout的原理是在對網(wǎng)絡(luò)進行訓(xùn)練時能隨機地移除單獨的激活值,讓訓(xùn)練模型對于個別損失更強大些,因此較少依賴訓(xùn)練數(shù)據(jù)的性質(zhì)。Dropout是一種非常有效的提高泛化能力、降低過擬合的方法,執(zhí)行Dropout 較容易,并且通常能帶來更快的學(xué)習(xí)。本文取0.5的默認(rèn)值,在測試階段,Dropout應(yīng)該被關(guān)閉,權(quán)重要調(diào)整到相應(yīng)大小,只需要對1個模型進行Dropout優(yōu)化以降低誤差[17]。結(jié)果得訓(xùn)練集98.85%的準(zhǔn)確率,如圖7所示。
實驗數(shù)據(jù)結(jié)果表明:加入Dropout的CNN模型的篩選準(zhǔn)確率高于原CNN的篩選準(zhǔn)確率。
圖7 Dropout優(yōu)化前后準(zhǔn)確率對比
組合網(wǎng)絡(luò)與隨機森林或者adaboost的集成方法類似,可利用這個方法創(chuàng)建神經(jīng)網(wǎng)絡(luò);組合網(wǎng)絡(luò)仿真實驗可以驗證在組合網(wǎng)絡(luò)環(huán)境下能否解決干擾問題及控制問題,能夠準(zhǔn)確分析網(wǎng)絡(luò)控制參數(shù),能有效提高組合網(wǎng)絡(luò)的控制能力和篩選的準(zhǔn)確率[18]。
篩選的準(zhǔn)確性靠組合網(wǎng)絡(luò)的抗干擾能力和控制結(jié)構(gòu)來保障,在滿足組合網(wǎng)絡(luò)實際需求的前提下可以縮短準(zhǔn)確性篩選時間[19]。優(yōu)化網(wǎng)絡(luò)的準(zhǔn)確率為99.42%,如圖8所示。
圖8 組合網(wǎng)絡(luò)優(yōu)化前后準(zhǔn)確率對比
優(yōu)化完成的網(wǎng)絡(luò)訓(xùn)練準(zhǔn)確率為99.42%,與訓(xùn)練準(zhǔn)確率為95.21%的未優(yōu)化網(wǎng)絡(luò)的訓(xùn)練結(jié)果對比如圖9所示。
用優(yōu)化前后的CNN對600張花生種子圖像測試60次后測試準(zhǔn)確率分別為87.05%和98.21%,測試結(jié)果對比如圖10所示。
圖9 最終優(yōu)化前后訓(xùn)練準(zhǔn)確率對比
圖10 最終優(yōu)化前后測試準(zhǔn)確率對比
優(yōu)化方案為:兩個卷積層+線性修正單元(ReLU)+L2 regularization+拓展數(shù)據(jù)集+插入額外的全連接層+Dropout+組合網(wǎng)絡(luò)。對優(yōu)化前后的準(zhǔn)確率進行對比,可知最終優(yōu)化后的準(zhǔn)確率有明顯提高,在60次測試后準(zhǔn)確率達到98.21%。
優(yōu)化前的CNN測試600張花生種子圖像共用時18.41 s,1幅圖像的篩選時間平均為30.68 ms;優(yōu)化后的CNN測試600張花生種子圖像用時平均為9.85 s,每張花生圖像的篩選時間平均為16.4 ms/粒,表明提高了運算速度。
本文提出了基于CNN的花生種子的篩選方法,與基于顏色值的圖像分類算法和基于深度學(xué)習(xí)的圖像分類算法相比,具有準(zhǔn)確率高、速度快、分類簡單的優(yōu)點。CNN優(yōu)化方案為兩個卷積層+線性修正單元(ReLU)+L2 regularization+拓展數(shù)據(jù)集+插入額外的全連接層+Dropout+組合網(wǎng)絡(luò)。通過優(yōu)化進一步提高了篩選花生種子的準(zhǔn)確率,且提高了網(wǎng)絡(luò)的運算速度。仿真實測數(shù)據(jù)表明優(yōu)化后的CNN的篩選準(zhǔn)確率為98.21%,篩選速度為16.4 ms/粒,表明該系統(tǒng)準(zhǔn)確率高、篩選速度快。