呂夢棋,張芮祥,賈浩,馬麗
(吉林農(nóng)業(yè)大學(xué)信息技術(shù)學(xué)院,長春市,130118)
通訊作者:馬麗,女,1980年生,吉林長春人,碩士,副教授;研究方向為深度學(xué)習(xí),圖像處理。E-mail: mali@jlau.edu.cn
種子的質(zhì)量是影響農(nóng)作物正常生長以及決定農(nóng)作物收成的重要因素之一。作為以玉米為主要農(nóng)作物的農(nóng)業(yè)大國,玉米種子的質(zhì)量問題一直是我們國家關(guān)注的焦點,與廣大農(nóng)民的幸福生活息息相關(guān)。近年來,國家推廣了單粒播種以及精密播種技術(shù),致使對種子的質(zhì)量需求越來越高。種子質(zhì)量的提高,避免了浪費農(nóng)民的成本以及提高務(wù)農(nóng)效率等有著明顯的作用。據(jù)研究發(fā)現(xiàn),玉米的發(fā)苗速率以及玉米種子活力深受玉米種子大小影響,因此玉米種子分類準(zhǔn)確率的提高不僅能推動我國農(nóng)業(yè)的發(fā)展,也可以為廣大農(nóng)民謀幸福、謀利益,對提高農(nóng)作物產(chǎn)量有著重大意義。
傳統(tǒng)人工的挑選易受到主觀因素影響,存在著效率低、誤差、大的缺點。機器視覺在種子的質(zhì)量分級中屬于研究熱點。國外一些學(xué)者已經(jīng)利用機器視覺對玉米、馬鈴薯等農(nóng)作物的質(zhì)量進行分類和識別,提高了農(nóng)業(yè)智能化的水平。Jayas等[1]通過反復(fù)試驗,使含有雜質(zhì)的谷物識別率達到了90%。Elmasry等[2]對于不規(guī)則的馬鈴薯,在機器視覺的基礎(chǔ)上實現(xiàn)實時檢測。國內(nèi)學(xué)者對于農(nóng)作物特征提取分類、品種識別做了大量的研究,如王應(yīng)彪等[3]基于OpenCV對玉米種子進行形狀與特征的分級,提出了一種可以獲取玉米種子外形等特征的算法,分類的結(jié)果優(yōu)質(zhì)種子、一般種子、和劣質(zhì)種子正確率為90.5%、82.3%和92.3%。成芳等[4]在水稻品種識別的研究中使用了計算機視覺技術(shù)。閘建文等[5]建立了玉米品種的識別系統(tǒng),利用機器視覺技術(shù),經(jīng)過研究,識別率達到了88%。近年來,深度學(xué)習(xí)作為機器視覺的一個分支學(xué)科取得了重大發(fā)展。2006年,Hinton等[6]首次提出深度學(xué)習(xí)的概念。2012年,Krizhevsky等[7]在ImageNet競賽上取得冠軍,把1 000類圖像的Top-5分類錯誤率降低了10%。
深度學(xué)習(xí)在目前應(yīng)用到的領(lǐng)域較多,例如在提取數(shù)據(jù)集的特征的時候,并且利用深度學(xué)習(xí)提取到的特征比利用人工算法提取到的特征具有更強的泛化性能。在研究的過程中,通過改變神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),就改變了特征提取的方法,就可以達到不同的效果。利用這一特性,深度學(xué)習(xí)在農(nóng)業(yè)領(lǐng)域應(yīng)用廣泛[8]。Karstoft等[9]利用卷積神經(jīng)網(wǎng)絡(luò)識別彩色圖像中的植物種類,可以識別22種早期生長過程中的雜草和作物,準(zhǔn)確率達到86.2%。S?derkvist[10]通過計算機視覺技術(shù)將不同葉片特征進行分類研究。Inkyu等[11]為了提高甜椒檢測的準(zhǔn)確率,提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)Faster.R-CNN的模型,并在其他七類果品的檢測中得到應(yīng)用。Baigoti等闡述了CNN在果園水果檢測當(dāng)中的應(yīng)用,提高了芒果、杏、蘋果等水果的檢測性能。龔丁禧等[12]提出了一種基于CNN的植物葉片識別方法。程曦等[13]基于深度卷積神經(jīng)網(wǎng)絡(luò)對糧害蟲種類進行分類識別,準(zhǔn)確率達到了97.61%。
在研究過程中發(fā)現(xiàn),玉米品質(zhì)檢測的準(zhǔn)確性和可行性與特征參數(shù)的有效性和精度有關(guān)。為了實現(xiàn)對玉米種子特征的精準(zhǔn)分類,提出一種基于ResNet網(wǎng)絡(luò)的細粒度圖像分類方法對玉米種子進行精確分類。首先,針對玉米種子特征建立圖像采集平臺并對采集到的圖片進行圖像預(yù)處理,然后,構(gòu)建基于ResNet的玉米種子的分類模型并優(yōu)化整個網(wǎng)絡(luò),輸入玉米種子圖像輸入到模型中進行訓(xùn)練,直到得到權(quán)值最好的分類模型,相同條件下還比較了VGG-13、AlexNet以及ResNet-50的結(jié)果,提出的方法不僅避免復(fù)雜的特征提取步驟,而且有效地提升玉米種子分類正確率,對玉米種子的智能分類具有重要意義。
本試驗研究采用的玉米種子的樣本均為農(nóng)大108,玉米種子的樣本集包括三種類型:大粒、中粒、小粒。由于后續(xù)研究需對采集的玉米種子圖像進行特征提取,所以對于采集的圖像質(zhì)量要求較高。圖像背景的選取會嚴(yán)重影響圖像特征選取以及對比,本試驗中所用到的玉米種子顏色為黃白色,所以選擇黑色這一對比度大的顏色為背景。設(shè)備光源照在樣品上可能會造成陰影,影響特征提取的精準(zhǔn)度。所以選取環(huán)形光源和遮光罩減少外界影響。獲取玉米種子的圖像設(shè)備主要由CCD攝像機和遮光罩組成,如圖1所示。該設(shè)備分辨率高、光照均勻、采集速度快,能夠很好地滿足玉米籽粒圖像獲取的要求。
圖1 玉米種子圖像獲取組成示意圖Fig. 1 Schematic diagram of corn seed image acquisition1.載物臺 2.樣品 3.暗箱 4.圓形光源 5.CCD攝像
先將玉米種子樣品垂直于CCD攝像頭放在黑色底板上,獲取玉米籽粒圖片。采集到的圖像如圖2所示。
圖2 原始捕獲圖片F(xiàn)ig. 2 Original captured image
玉米種子圖像采集的過程中受到環(huán)境影響使得采集到的圖像存在清晰度不夠、有噪聲等問題,需要進行圖像預(yù)處理消除無關(guān)信息[14]。樣本集需要單個玉米種子圖像,因此需要進行圖像分割。
1.2.1 玉米種子圖像灰度處理
在試驗過程中CCD采集的圖像是每個像素包含了紅(R)、綠(G)、藍(B)3個色值的24位真彩圖像。為了提高數(shù)據(jù)提取效率,將采集到的玉米種子圖像轉(zhuǎn)化成灰度圖像,同時采用了PAL公式,見轉(zhuǎn)化方程(1)。
Grey=0.222R+0.707G+0.071B
(1)
經(jīng)過灰度處理的玉米種子圖片如圖5所示,用此公式處理的圖片可以清晰的看到種子邊界及輪廓的細節(jié)增加了可見度方便對比試驗。
圖3 玉米種子灰度圖Fig. 3 Gray scale of corn seed
1.2.2 圖像增強
圖像增強可以改善視覺效果,使得方便計算機的分析與控制。平時我們獲取到的數(shù)據(jù)并不是都很清晰,因此需要利用灰度圖像增強來突出一些重要的信息,減弱一些對試驗來說不重要的信息,提高了圖像的使用價值。灰度變換增強就是將圖像的灰度范圍擴展。用f(x,y)來表示圖像上(x,y)處的像素變換前的灰度值,用g(x,y)來表示圖像上(x,y)處的像素變換后的灰度值。圖像上的像素的灰度值都擴大原來的n倍也就是n值化的方法。表達式如式(2)所示。
g(x,y)=n×f(x,y)
(2)
圖像增強的結(jié)果示例如圖4所示。
圖4 玉米種子圖像增強結(jié)果Fig. 4 Image enhancement results of maize seed
1.2.3 圖像分割
本試驗用到的玉米種子圖像包含很多種子,因此首先需要進行圖像分割將聚集的種子切割成方便觀察的圖片,然后再進行下一步的特征提取。由于本文中僅需要把玉米種子與黑色背景分開,所以簡單的圖像分割方法就可以滿足需求。本試驗采用迭代閾值法,選擇一個初始閾值T,閾值T將圖像灰度值劃分成兩部分,G為灰度值小于T的所有像素,如式(3)所示。
(3)
式中:g(i,j)——輸出圖像該點的灰度值;
f(i,j)——輸入圖像該點的灰度值;
T——所選閾值。
預(yù)處理后圖像大小為96像素×96像素,分割后的結(jié)果如圖5所示。
圖5 部分數(shù)據(jù)集圖片F(xiàn)ig. 5 Partial dataset images
經(jīng)過圖像處理后的玉米種子圖像,將它整理并且建立玉米種子圖像數(shù)據(jù)庫,命名為CORNImage。該數(shù)據(jù)庫包含5 000張大粒玉米種子圖像、5 000張中粒玉米種子圖像、5 000張小粒玉米種子圖像。由于不同種類的玉米種子特征大小分類標(biāo)準(zhǔn)不同,本文所采用的農(nóng)大108玉米種子經(jīng)過創(chuàng)建的數(shù)據(jù)集以及結(jié)果分析,創(chuàng)建了玉米種子大中小分級標(biāo)準(zhǔn)表格,如表1所示。
表1 玉米種子分級標(biāo)準(zhǔn)Tab. 1 Corn seed grading standards
ResNet作為當(dāng)前廣泛的CNN特征提取網(wǎng)絡(luò),其主體思想是在輸入通道和輸出通道間增加聯(lián)系的通道,即跳過連接[15],使得信息從輸入直接輸出,避免了信息的缺失,同時在訓(xùn)練網(wǎng)絡(luò)時不需要學(xué)習(xí)全部的過程,只需要學(xué)習(xí)上一部分的輸出殘差,不僅節(jié)約了時間而且還降低了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)難度。其中一部分的殘差單元如圖6所示。
圖6 ResNet殘差單元Fig. 6 ResNet residual unit
與標(biāo)準(zhǔn)ResNet網(wǎng)絡(luò)不同,我們在原有的基礎(chǔ)上加入了跳躍連接,將卷積層之后加上了歸一化操作和Relu激活函數(shù),并在每個模塊結(jié)束后加入了Dropout以此構(gòu)建新的網(wǎng)絡(luò),此改進可以多次重復(fù)使用玉米特征,減少傳輸?shù)臅r間,提高網(wǎng)絡(luò)學(xué)習(xí)效率。改進后的殘差單元如圖7所示。
圖7 改進后的殘差單元Fig. 7 Improved residual unit
深度學(xué)習(xí)模型存在多種變形,本文采用卷積神經(jīng)網(wǎng)絡(luò)模型,卷積網(wǎng)絡(luò)通過卷積層和權(quán)值共享大大減少了神經(jīng)網(wǎng)絡(luò)隱層中的權(quán)值,使訓(xùn)練速度加快[16],并且少量的參數(shù)更易調(diào)整和維護,對分類結(jié)果也會提高。目前用于圖像分類的網(wǎng)絡(luò)結(jié)構(gòu)有AlexNet、VGGNet、ResNet等。通過查閱資料分析上述模型的參數(shù)量、可用性以及訓(xùn)練模型時計算資源需求量、模型的易用性等因素,選擇ResNet-50為基本模型。該模型一共包含了50層,結(jié)構(gòu)如表2所示。
表2 ResNet-50網(wǎng)絡(luò)深度結(jié)構(gòu)圖Tab. 2 Resnet-50 depth of the network structure
文中CORNImage數(shù)據(jù)集圖像經(jīng)過與訓(xùn)練處理后大小為96×96×3,其中3為通道數(shù),表明該圖像是彩色圖像,將其作為conv層的輸入,conv卷積層的卷積核數(shù)目為64,卷積核大小為7×7,步長為2,數(shù)據(jù)經(jīng)過conv卷積后得到的數(shù)據(jù)為48×48×64,輸出數(shù)據(jù)的維度是64維。之后,數(shù)據(jù)經(jīng)過池化層,多個含有1×1的ResNet-blocks,最終由FC層得到網(wǎng)絡(luò)的輸出。輸出分類層的神經(jīng)節(jié)點數(shù)根據(jù)實際的訓(xùn)練集來確定softmax[17],如式(4)所示。
yi=argmax(Wxi+bi)
(4)
當(dāng)式(4)中
CORN分類模型使用的訓(xùn)練樣本的類別是3個,所以最后一層全連接層的神經(jīng)元節(jié)點數(shù)為3。
2.4.1 損失函數(shù)
本文使用細粒度圖像分類試驗構(gòu)建的玉米種子圖像數(shù)據(jù)集進行測試,為了使訓(xùn)練的玉米種子分類模型具有更高的泛化能力,試驗過程中用到了pairwise confusion loss損失函數(shù),這一過程可以對細粒度圖像為端到端的卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練提供更為有效的懲罰目標(biāo)函數(shù)[18]。對于包含N類的數(shù)據(jù)集上的神經(jīng)網(wǎng)絡(luò)和其參數(shù)θ,數(shù)據(jù)x的條件概率pθ(y|x),pairwise confusion loss如式(5)所示。
Lp(x1,x2;θ)=∑i(pθ(yi|x1)-pθ(yi|x2))2
(5)
式中:x1、x2——訓(xùn)練集合中的隨機采樣。
對包含k個樣本S=[S1,S2]優(yōu)化目標(biāo)見式(6)。
(6)
式中:λ*——權(quán)值,取λ*為0.1。
2.4.2 優(yōu)化網(wǎng)絡(luò)參數(shù)
激活函數(shù)對于整個神經(jīng)網(wǎng)絡(luò)來說十分重要,在反向傳播過程中,更新主要取決激活函數(shù)的導(dǎo)數(shù)(圖8)。
(a) sigmoid函數(shù) (b) tanh函數(shù) (c) relu函數(shù)圖8 三種激活函數(shù)Fig. 8 Three activation functions
如果有大于5或者小于-5的數(shù)據(jù)經(jīng)過sigmoid函數(shù)時,sigmoid函數(shù)時會把其壓縮到1或0,這樣會導(dǎo)致梯度產(chǎn)生飽和效應(yīng);在sigmoid向下平移和伸縮后獲得tanh函數(shù),值域范圍介于+1和-1之間;在快要飽和時,sigmoid與tanh函數(shù)會變化緩慢,因此在進行反向傳播時容易產(chǎn)生梯度彌散,當(dāng)輸出為正時,Relu函數(shù)的導(dǎo)數(shù)為1。對于激活函數(shù)的選取,本文采用Relu激活函數(shù),由于其函數(shù)的導(dǎo)數(shù)是1,在學(xué)習(xí)過程中會生成稀疏網(wǎng)絡(luò),使反向傳播的更新速度大于一般的函數(shù),其表達式如式(7)所示。Relu激活函數(shù)具有收斂速度快以及稀疏激活性的優(yōu)點[19]。
(7)
2.4.3 Dropout優(yōu)化
為了防止出現(xiàn)過擬合問題,文中采用了Dropout策略。為了避免過擬合的現(xiàn)象發(fā)生,在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中隨機拋棄隱藏層神經(jīng)節(jié)點的輸出值,物理意義相當(dāng)于斷開該網(wǎng)絡(luò)連接[20],因此在反向傳播更新權(quán)值參數(shù)時,不需要更新與該節(jié)點相連的權(quán)值。試驗中Resent網(wǎng)絡(luò)在卷積層及殘差塊之后都采用了Dropout策略,Dropout參數(shù)設(shè)置為0.25。
在進行網(wǎng)絡(luò)訓(xùn)練的試驗過程中,用到了Mini-batch SGD,該方法從玉米種子的圖像數(shù)據(jù)集中每一次取出1個mini-batch的數(shù)據(jù)進行學(xué)習(xí)。該方法既具備了Batch Gradient Descent能收斂到全局最優(yōu)值或局部最優(yōu)值的特性,又可以保證了Stochastic Gradient descent的在線更新的優(yōu)點。訓(xùn)練的具體步驟如下。
1) 首先,初始化網(wǎng)絡(luò)的權(quán)值W,如果權(quán)值大于平均值2個標(biāo)準(zhǔn)偏差的值需要丟棄重新選擇,直到生成的權(quán)值服從具有指定平均值和標(biāo)準(zhǔn)差的正態(tài)分布。其中偏置b設(shè)置為常量。
2) 從之前創(chuàng)建的玉米種子測試集中隨機選取一個batch的訓(xùn)練樣本,對訓(xùn)練的樣本進行圖像預(yù)處理后輸入到卷積神經(jīng)網(wǎng)絡(luò)中并訓(xùn)練樣本通過卷積神經(jīng)網(wǎng)絡(luò)進行前向傳播,計算得到輸出值。
3) 計算實際的輸出值與預(yù)測的輸出值之間的誤差值。如果迭代次數(shù)達到預(yù)定值,則停止訓(xùn)練,否則繼續(xù)進行訓(xùn)練。
4) 為了一步一步的得到新的卷積神經(jīng)網(wǎng)絡(luò)的權(quán)值參數(shù),試驗中過程中按照極小化誤差的方式將誤差進行反向傳播。
5) 返回步驟2,繼續(xù)訓(xùn)練,訓(xùn)練流程圖如圖9所示。
圖9 訓(xùn)練流程圖Fig. 9 Training flowchart
本文將3個類別,每個類別的5 000個玉米種子圖像輸入卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練,在訓(xùn)練過程中使用上文提到的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并在訓(xùn)練過程中使用卷積、池化和誤差反向傳播不斷更新卷積神經(jīng)網(wǎng)絡(luò)的各個權(quán)值,多次迭代后,使得網(wǎng)絡(luò)誤差最小,得到權(quán)值最好的卷積神經(jīng)網(wǎng)絡(luò)。然后使用2 000個玉米種子的測試樣本測試本文的神經(jīng)網(wǎng)絡(luò)。為了與本文算法做比較,在試驗條件相同的情況下,本文還采用了AlexNet的結(jié)果、VGG-16的結(jié)果和ResNet作為比較。
測試結(jié)果如表3以及表4所示,給出了3種類別的種子在AlexNet、VGG-16、ResNet和本文改進后的深度神經(jīng)網(wǎng)絡(luò)上錯誤樣本識別情況以及識別率。表5給出了四種算法的訓(xùn)練和識別過程消耗的時間復(fù)雜度。
表3 四種不同算法在三類種子中的識別情況Tab. 3 Recognition of four different algorithms in
表4 四種不同算法在三類種子中的識別率Tab. 4 Recognition rate of four different algorithms in
表5 四種算法訓(xùn)練的時間復(fù)雜度Tab. 5 Time complexity of the training of four algorithms
由表3可見,在測試集上小種子分類錯誤的樣本最多為120個,中種子的錯誤分類樣本為53個,大種子錯誤分類樣本的數(shù)量為96個,識別率也是符合的依次遞增。由表4可以清晰的看到改進后的ResNet對大種子、中種子、小種子的識別率分別為96.4%、93.5%、92.3%顯著高于AlexNet、VGG-16、ResNet。
由表5可以看出,改進后的ResNet的訓(xùn)練時間為89 h,識別時間為1.016 s,相比AlexNet的訓(xùn)練時間、識別時間顯著減少了197 h、0.36 s,相比VGG-16的訓(xùn)練時間、識別時間減少了108 h、0.24 s,相比改進前的ResNet訓(xùn)練時間、識別時間減少了56 h、0.093 s。這些對比足可以看出改進后的ResNet在玉米種子質(zhì)量的分類過程中的可行性和有效性。
本文提出了一個深度卷積神經(jīng)網(wǎng)絡(luò)用于玉米種子品質(zhì)的分級,通過對ResNet網(wǎng)絡(luò)的改進,構(gòu)建了玉米種子分質(zhì)分級的識別模型,與AlexNet、VGGNet以及改進之前的ResNet模型的識別效果相比,改進的ResNet最少可以提升2.14%,提升效果比較明顯。
1) 由于采集到的玉米種子圖像大小不一,數(shù)據(jù)清晰度不滿足試驗條件,試驗采用迭代閾值法同時擴展灰度范圍進行圖像處理,分割后的圖像大小為96像素×96像素且符合試驗所需清晰度。
2) 試驗結(jié)果表明,本文使用的細粒度圖像分類,使訓(xùn)練模型具有更高的泛化能力,使用Mini-batch SGD進行模型訓(xùn)練,按照極小化誤差的方式將誤差進行反向傳播,逐步更新卷積神經(jīng)網(wǎng)絡(luò)的權(quán)值參數(shù)得到一個具有最小計算誤差以及最佳權(quán)重的分類模型,該模型的訓(xùn)練時間、識別時間分別為89 h、1.016 s,均低于其他算法。在分類過程中對大、中、小種子的識別率分別為96.4%、93.5%、92.3%,明顯高于其他的算法。