肖經(jīng)緯,田軍委,王 沁,程希希,王 佳
(西安工業(yè)大學(xué) 機(jī)電工程學(xué)院,西安 710021)
果實(shí)病害識(shí)別(以下簡(jiǎn)稱(chēng)果害識(shí)別)是果實(shí)自動(dòng)采摘與分揀[1]的技術(shù)基礎(chǔ),對(duì)實(shí)現(xiàn)農(nóng)業(yè)自動(dòng)化具有重要意義。精確的果害識(shí)別不僅能實(shí)現(xiàn)果園針對(duì)性采摘[2]及裝箱,而且還可以統(tǒng)計(jì)各種病害的出現(xiàn)次數(shù),在預(yù)測(cè)產(chǎn)量[3]及果害防治[4]方面提供數(shù)據(jù)指導(dǎo)。傳統(tǒng)的果害識(shí)別主要通過(guò)手工特征提取法與高光譜圖像法2種方式實(shí)現(xiàn)。例如文獻(xiàn)[5]利用圖像顏色、紋理與形狀特征來(lái)對(duì)蘋(píng)果果害進(jìn)行分類(lèi),取得了較為滿(mǎn)意的效果,但是特征的提取過(guò)程較為耗時(shí),且十分依賴(lài)專(zhuān)家經(jīng)驗(yàn)。文獻(xiàn)[6]利用果害的光譜圖來(lái)識(shí)別蘋(píng)果病害,準(zhǔn)確率達(dá)到95.25%,但存在高光譜圖像獲取成本過(guò)高的問(wèn)題[7]。
文獻(xiàn)[8]提出的深度殘差網(wǎng)絡(luò)(Deep Residual Network,DRN)是包含多個(gè)殘差結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),可以用來(lái)識(shí)別果害[9-11]。DRN將整張圖像作為輸入,在網(wǎng)絡(luò)內(nèi)部通過(guò)多層卷積篩選,從而獲取出最優(yōu)特征,避免了人為因素的干擾[12],并且成本低廉,能夠大規(guī)模使用[13]。傳統(tǒng)的DRN參數(shù)量較多,在果害分類(lèi)問(wèn)題中存在冗余、訓(xùn)練開(kāi)銷(xiāo)大的問(wèn)題。同時(shí),由于不同病害在同一果實(shí)上的表現(xiàn)具有一定相似性[14],容易造成識(shí)別有誤。針對(duì)上述問(wèn)題,本文對(duì)傳統(tǒng)的DRN結(jié)構(gòu)進(jìn)行改進(jìn),并在傳統(tǒng)的損失函數(shù)中添加類(lèi)間相似懲罰項(xiàng)來(lái)提高相似特征病害的識(shí)別率。實(shí)驗(yàn)對(duì)蘋(píng)果中常見(jiàn)的斑點(diǎn)病、銹病和腐病3種病害[15]進(jìn)行分類(lèi),并用該分類(lèi)結(jié)果來(lái)驗(yàn)證本文方法的準(zhǔn)確性。
為獲得與蘋(píng)果相關(guān)的果害圖像,實(shí)驗(yàn)對(duì)陜西省長(zhǎng)武縣果樹(shù)病理研究場(chǎng)地的樣本進(jìn)行收集,并分別在不同角度、不同距離以及不同時(shí)間段使用相機(jī)進(jìn)行圖像采集,從而保證了樣本的多樣性。同時(shí),對(duì)于相對(duì)較少的病害數(shù)據(jù),為避免不均衡樣本造成的模型穩(wěn)定性差的問(wèn)題,實(shí)驗(yàn)從網(wǎng)絡(luò)上收集與之對(duì)應(yīng)的病害圖像對(duì)其樣本模型進(jìn)行擴(kuò)充。
考慮到果實(shí)果害的平移旋轉(zhuǎn)不變性及可縮放性,實(shí)驗(yàn)對(duì)已有數(shù)據(jù)進(jìn)行進(jìn)一步擴(kuò)充,包括水平鏡像、±25°角度旋轉(zhuǎn)、隨機(jī)縮放等方式,總共得到2 000張樣本集(正常蘋(píng)果、斑點(diǎn)病、銹病和腐病各500張),并按照7∶3的比例隨機(jī)劃分為訓(xùn)練集與測(cè)試集。
殘差網(wǎng)絡(luò)(Residual Network,ResNet)模型引入了殘差結(jié)構(gòu),能夠解決深層次網(wǎng)絡(luò)下梯度消失以及網(wǎng)絡(luò)難以訓(xùn)練的問(wèn)題。殘差結(jié)構(gòu)如圖1所示。
圖1 殘差結(jié)構(gòu)Fig.1 Residual structure
殘差塊通過(guò)引入x的恒等映射連接,在網(wǎng)絡(luò)層數(shù)過(guò)深時(shí),通過(guò)將Y=F(x)+x中F(x)擬合為0來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)恒等映射,解決網(wǎng)絡(luò)退化問(wèn)題。同時(shí),由于x的引入使得反向傳播過(guò)程中導(dǎo)數(shù)值總大于1,有效防止梯度消失。但由于傳統(tǒng)的ResNet面向上千種分類(lèi),參數(shù)量大,存在冗余參數(shù),降低訓(xùn)練與識(shí)別速度[16-17]??紤]到果樹(shù)實(shí)際生長(zhǎng)環(huán)境中出現(xiàn)的病害種類(lèi)不會(huì)超過(guò)兩位數(shù),本文設(shè)計(jì)出一種改進(jìn)的殘差網(wǎng)絡(luò)(sResNet)模型,其結(jié)構(gòu)如圖2所示。
圖2 sResNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 sResNet network structure
圖2(a)為殘差塊具體結(jié)構(gòu),由3個(gè)卷積層組成,每層間使用ReLu作為激活函數(shù),輸入經(jīng)過(guò)短路連接后通過(guò)最大值池化層輸出。圖2(b)為sResNet的主體,由3個(gè)包含128個(gè)卷積核、3個(gè)包含256個(gè)卷積核、5個(gè)包含512個(gè)卷積核、3個(gè)包含1 024個(gè)卷積核的殘差塊及2層全連接層組成,模型輸出維度為4,對(duì)應(yīng)蘋(píng)果的4種狀態(tài)(3種病害狀態(tài)與1種健康狀態(tài))。
表1列出了sResNet與原始ResNet50網(wǎng)絡(luò)的卷積層主要結(jié)構(gòu)及其參數(shù)量。其中,C為卷積層(Convolution),sResNet的參數(shù)量約為傳統(tǒng)ResNet50的75%。
表1 2種網(wǎng)絡(luò)卷積組成對(duì)比Table 1 Comparison of the composition of twonetwork convolution
在sResNet模型中,以Sigmoid函數(shù)作為輸出前的激活函數(shù),并采用二元交叉熵(Binary Cross-Entropy,BCE)作為損失函數(shù)來(lái)計(jì)算預(yù)測(cè)值與真實(shí)值之間的差值。其中,Sigmoid函數(shù)和BCE的表達(dá)式為:
(1)
BCE(x)i=-ylln[fi(x)]-(1-y)ln[-fi(x)]
(2)
其中,x為輸入樣本,i為類(lèi)別個(gè)數(shù)4,即每個(gè)類(lèi)別都會(huì)有一個(gè)BCE值,yi為第i個(gè)類(lèi)別的真實(shí)標(biāo)簽,fi(x)為第i個(gè)類(lèi)別的模型輸出值,對(duì)應(yīng)式(1)的輸出。
為加速訓(xùn)練過(guò)程,實(shí)驗(yàn)采用了批量法,最終損失函數(shù)Loss的表達(dá)式為:
(3)
其中,N為批量大小,即最終損失函數(shù)為一個(gè)批量的損失函數(shù)相加和再求其平均值。
在式(3)的損失函數(shù)中,若樣本實(shí)際標(biāo)簽為真,即yi值為1,則BCE中第2項(xiàng)為0,BCE可簡(jiǎn)化為:
BCE(x)i=-ylln[fi(x)]
(4)
若預(yù)測(cè)值也為真,即式(1)輸出趨近于1,由對(duì)數(shù)函數(shù)性質(zhì)可知式(4)值接近0,產(chǎn)生的損失值幾乎可以忽略;若預(yù)測(cè)值為假,式(1)輸出趨近于0,此時(shí)式(4)的輸出呈單調(diào)增大的趨勢(shì),產(chǎn)生的損失值也較大。同理可推知預(yù)測(cè)值為假時(shí),損失值的變化情況相反。該損失函數(shù)僅可以判斷預(yù)測(cè)類(lèi)別與實(shí)際類(lèi)別是否相符,無(wú)法保證不同類(lèi)別之間的空間差異。而果害往往存在相似特征,此時(shí)若繼續(xù)使用原始損失函數(shù),模型的預(yù)測(cè)效果會(huì)降低。為此,提出一種改進(jìn)的損失函數(shù),它在原有損失函數(shù)基礎(chǔ)上,加入類(lèi)間相似懲罰項(xiàng),具體如下所示:
(5)
其中,λ為類(lèi)間相似懲罰項(xiàng)在損失函數(shù)中占的比重,是一個(gè)超參數(shù),δ是較小的正實(shí)數(shù)(防止分母為0),C為類(lèi)別數(shù),A為該類(lèi)主要特征空間位置,計(jì)算方法如下:
(6)
其中,x為每個(gè)樣本經(jīng)過(guò)卷積層提取出的主要特征。對(duì)于同一類(lèi)別的不同樣本,其主要特征具有相似性,則對(duì)應(yīng)的x在空間中的分布位置可以看作是在一個(gè)集合中,模型在識(shí)別樣本所屬類(lèi)別時(shí)是依靠計(jì)算樣本與該類(lèi)主要特征之間的距離來(lái)判別[18]。若只關(guān)注同類(lèi)樣本正負(fù)之間的距離差異,而忽略不同類(lèi)樣本之間的距離大小,則對(duì)于一些具有相似特征的不同類(lèi)樣本,它們?cè)诳臻g中的分布會(huì)接近兩集合的分界線(xiàn),從而使得模型難以準(zhǔn)確判斷其所屬類(lèi)別,降低模型識(shí)別率[19]。
改進(jìn)后的損失函數(shù)表示為:
Lossfinal=Loss+P
(7)
由式(6)可知,式(5)中的A值是通過(guò)對(duì)經(jīng)過(guò)卷積層后提取出的樣本特征進(jìn)行求平均值得到的,可以看作該類(lèi)樣本的主要特征在空間中的位置,而Am-An則為不同類(lèi)主要特征的差值距離,通過(guò)增加Am-An的大小即可擴(kuò)大不同類(lèi)的主要特征在空間中的間距,從而減少模型在一些特征較為相似樣本上的錯(cuò)誤識(shí)別,提升模型識(shí)別準(zhǔn)確率[20]。
圖3對(duì)損失函數(shù)改進(jìn)前后效果進(jìn)行了可視化??梢钥闯?對(duì)于樣本C,雖然屬于B類(lèi)別,但其具有A類(lèi)別部分特征,若采用原始損失函數(shù),則它在空間中的位置會(huì)靠近兩類(lèi)別分界線(xiàn),從而難以分類(lèi);而在圖3(b)中,采用了改進(jìn)后的損失函數(shù)后,擴(kuò)大了A類(lèi)與B類(lèi)的間距,這使得樣本C雖具有A類(lèi)部分特征,但由于與B類(lèi)的距離未變化,從而遠(yuǎn)離了A類(lèi),使模型更加容易區(qū)分。
圖3 改進(jìn)前后的損失函數(shù)對(duì)比Fig.3 Comparison of loss functions before and after improvement
研究用的實(shí)驗(yàn)圖片統(tǒng)一輸入尺寸為224×224,并在輸入過(guò)程中加入水平翻轉(zhuǎn)、小角度旋轉(zhuǎn)來(lái)擴(kuò)充訓(xùn)練集,模型使用Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)定為0.001,學(xué)習(xí)率衰減值設(shè)定為0.000 01,批量大小設(shè)定為32,迭代次數(shù)為200次。
研究采取的硬件平臺(tái)為Intel I9-9900K、Nvidia RTX2080TI、32 GB內(nèi)存。軟件平臺(tái)為Windows 10 64 bit操作系統(tǒng)、Tensorflow-GPU 1.13.0、CUDA Toolkit 10、CUDNN 7.6。
P-R曲線(xiàn)(Precision-Recall Curve)反映了模型的查準(zhǔn)性與查全性。精準(zhǔn)率是指實(shí)際為真的樣本占預(yù)測(cè)為真的比例,召回率是指預(yù)測(cè)為真的樣本占所有真樣本的比例。通常來(lái)說(shuō),曲線(xiàn)越靠上代表模型性能越好,利用sResNet模型及改進(jìn)損失函數(shù)繪制出的P-R曲線(xiàn)如圖4所示。
圖4 sResNet模型的P-R曲線(xiàn)Fig.4 P-R curve of the sResNet model
為體現(xiàn)模型及算法先進(jìn)性,實(shí)驗(yàn)設(shè)置了sResNet+改進(jìn)Loss、sResNet+原Loss、ResNet50+改進(jìn)Loss和ResNet50+原Loss 4組對(duì)比實(shí)驗(yàn),并采用精準(zhǔn)率(Precision)、召回率(Recall)、F1值3個(gè)指標(biāo)來(lái)評(píng)價(jià)模型的優(yōu)劣性。3種指標(biāo)計(jì)算方法如下:
(8)
(9)
(10)
其中,TP代表真陽(yáng)性樣本,FP代表假陽(yáng)性樣本,FN代表假陰性樣本,精準(zhǔn)率和召回率的值越接近于1則代表本文模型的性能越好。
由于精準(zhǔn)率與召回率是一對(duì)相互矛盾的衡量,且都有各自的局限性,單一使用其中一個(gè)來(lái)評(píng)價(jià)模型的優(yōu)劣并不合理,綜合考慮兩者才能客觀的對(duì)模型進(jìn)行評(píng)價(jià),因此引入了F1值評(píng)價(jià)指標(biāo)。從式(10)可以看出,F1值綜合考慮了精準(zhǔn)率與召回率,同樣,該值越大則代表本文模型性能越好。
表2列出了4種不同模型的對(duì)比結(jié)果。由表2可以看出,使用原損失函數(shù)的sResNet與ResNet50模型的精準(zhǔn)率與召回率相差不大,兩者的F1值也很接近,說(shuō)明相比較ResNet50模型,sResNet模型在網(wǎng)絡(luò)更加輕量化的同時(shí),并未損失精度。在采用了改進(jìn)損失函數(shù)后,sResNet與ResNet50模型的網(wǎng)絡(luò)性能均有所提升。說(shuō)明在使用了改進(jìn)損失函數(shù)后,網(wǎng)絡(luò)在訓(xùn)練時(shí)不僅會(huì)考慮正負(fù)樣本之間的差異,也會(huì)考慮不同樣本之間的差異,并在不斷的迭代中,通過(guò)原損失函數(shù)來(lái)減小類(lèi)內(nèi)距離、通過(guò)加入的類(lèi)間相似懲罰項(xiàng)來(lái)擴(kuò)大類(lèi)間距離,使得模型具有更好的精準(zhǔn)率與召回率,從而提高模型性能。這也說(shuō)明使用原損失函數(shù)訓(xùn)練時(shí),會(huì)導(dǎo)致一些具有相似特征的蘋(píng)果病害由于類(lèi)間距離過(guò)小而被錯(cuò)誤識(shí)別。
表2 4組對(duì)比實(shí)驗(yàn)在蘋(píng)果病害上的性能對(duì)比 Table 2 Performance comparison of four groups ofcomparative experiments on apple diseases %
實(shí)驗(yàn)采用文獻(xiàn)[3]中的4種方法與本文方法對(duì)蘋(píng)果斑點(diǎn)病和腐爛病進(jìn)行分類(lèi),結(jié)果如表3所示。從表3可以看出,在蘋(píng)果斑點(diǎn)病識(shí)別上,相較于文獻(xiàn)[3]中的4種方法,本文方法對(duì)蘋(píng)果斑點(diǎn)病的分類(lèi)準(zhǔn)確率更高;在蘋(píng)果腐爛病識(shí)別上,雖然本文方法與文獻(xiàn)[3]中的4種方法對(duì)其分類(lèi)準(zhǔn)確率相接近,但手動(dòng)提取特征對(duì)不同果害需要重新提取,不具有廣泛適用性。因此,說(shuō)明了本文方法對(duì)蘋(píng)果病害分類(lèi)更有優(yōu)勢(shì)。
表3 本文方法與其他方法的分類(lèi)效果對(duì)比Table 3 Comparison of the classification effect between theproposed method and other methods %
表4列出了文獻(xiàn)[6]中的高光譜圖像法與本文方法對(duì)蘋(píng)果病害的分類(lèi)效果。由此可知,相對(duì)于高光譜圖像法在蘋(píng)果病害上的分類(lèi)效果,雖然本文方法沒(méi)有明顯優(yōu)勢(shì),但是高光譜儀器成本昂貴,大規(guī)模推廣不現(xiàn)實(shí),難以實(shí)際使用。
表4 本文方法與高光譜圖像法的分類(lèi)效果對(duì)比Table 4 Comparison of classification effect between theproposed method and hyperspectral image method %
通過(guò)以上對(duì)比可以看出,本文方法能夠有效提升果害分類(lèi)準(zhǔn)確率,且相比手工特征提取及高光譜儀具有一定優(yōu)越性。
針對(duì)傳統(tǒng)殘差網(wǎng)絡(luò)和損失函數(shù)在果害分類(lèi)問(wèn)題上的不足,本文提出一種基于改進(jìn)殘差網(wǎng)絡(luò)sResNet及損失函數(shù)的果害分類(lèi)方法。該方法通過(guò)降低卷積層數(shù)與卷積核數(shù)來(lái)精簡(jiǎn)網(wǎng)絡(luò)參數(shù),再利用類(lèi)間相似懲罰項(xiàng)使得模型能在訓(xùn)練中盡可能增大不同類(lèi)之間距離。實(shí)驗(yàn)結(jié)果表明,相比較ResNet50,sResNet在不損失精度的情況下減小了模型計(jì)算量,而改進(jìn)損失函數(shù)能提高病害識(shí)別準(zhǔn)確率,證明了該方法的有效性。但本文方法對(duì)樣本的數(shù)量以及質(zhì)量要求均較高,針對(duì)一些樣本數(shù)量較少的病害,如何提高識(shí)別效果是下一步的研究方向。