孫文杰,牟少敏,董萌萍,周子豪,李 頎
山東農(nóng)業(yè)大學(xué)信息科學(xué)與工程學(xué)院,山東 泰安271018
我國(guó)是世界桃生產(chǎn)第一大國(guó)[1],由于受各種葉部病害的影響,桃的產(chǎn)量和品質(zhì)下降,造成了巨大的經(jīng)濟(jì)損失。因此,準(zhǔn)確、高效地識(shí)別早期桃樹葉部病害至關(guān)重要,而桃樹葉部病害的識(shí)別主要是憑借植保技術(shù)人員和桃農(nóng)的經(jīng)驗(yàn)判斷,誤差大且費(fèi)時(shí)費(fèi)力。
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的深入研究,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在農(nóng)作物病害圖像識(shí)別中的應(yīng)用不斷深入。龍滿生等[2]利用深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)油茶病害特征,并借助遷移學(xué)習(xí)將AlexNet 模型在ImageNet 數(shù)據(jù)集上學(xué)習(xí)的參數(shù)遷移到油茶病害識(shí)別中。Hu GS 等[3]提出一種多尺度的深度卷積神經(jīng)網(wǎng)絡(luò)用于茶葉病害圖像識(shí)別,縮短了訓(xùn)練時(shí)間且具有較高的準(zhǔn)確率。王昌龍等[4]提出了一種基于雙通道卷積神經(jīng)網(wǎng)絡(luò)的南瓜葉片病害識(shí)別算法,提取了病斑的全局特征與細(xì)節(jié)特征。Zeng WH 等[5]提出了一種基于自注意力的卷積神經(jīng)網(wǎng)絡(luò)用于農(nóng)作物病害圖像識(shí)別,具有較高的識(shí)別準(zhǔn)確率和較強(qiáng)的魯棒性。任守綱等[6]提出了一種基于反卷積引導(dǎo)的VGG 網(wǎng)絡(luò)模型用于番茄葉部病害圖像識(shí)別,在遮擋和弱光等環(huán)境下具有良好的魯棒性。目前,基于深度學(xué)習(xí)的桃樹葉部病害圖像識(shí)別的研究較少。雖然CNN 在農(nóng)作物病害圖像識(shí)別中取得了顯著效果,但未考慮病害區(qū)域間的上下文相關(guān)信息和位置信息。
桃樹葉部病斑具有相似度高和關(guān)聯(lián)度高的特點(diǎn),而不同的病害發(fā)生的部位不同,如圖1 所示,炭疽病和褐斑病的病斑特征非常相似,但炭疽病多數(shù)發(fā)生在葉尖、葉柄基部和葉緣位置[7],而褐斑病一般發(fā)生在葉緣以內(nèi)的任何位置[8]。CNN 在識(shí)別桃樹葉部病害圖像時(shí),卷積層中多個(gè)卷積核獨(dú)立地對(duì)局部病害區(qū)域進(jìn)行卷積操作并對(duì)局部特征進(jìn)行組合,池化層對(duì)卷積層提取的病害特征進(jìn)行池化操作,忽略了各病害區(qū)域間的上下文相關(guān)信息[9]和位置信息。雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bidirectional Long Short Term Memory,BiLSTM)由兩個(gè)正向和反向的LSTM 組成,且各循環(huán)單元之間具有反饋連接,具有記憶性[10],可以記憶病害區(qū)域的位置信息和挖掘各病害區(qū)域間的上下文相關(guān)信息。為提高桃樹葉部病害圖像的識(shí)別準(zhǔn)確率,本文提出了基于VGGNet-BiLSTM 的桃葉部病害圖像識(shí)別算法,該算法融合了各病害區(qū)域間的上下文相關(guān)信息和位置信息。
本文實(shí)驗(yàn)所用的桃樹葉部病害圖像在山東省泰安市道朗鎮(zhèn)、濟(jì)南市萊蕪區(qū)雪野鎮(zhèn)南欒宮村和萊西市沽河街道桃園采集,以3024×4032 的像素進(jìn)行拍攝,并按病害種類進(jìn)行人工標(biāo)注。共采集桃樹褐斑病421 張、炭疽病263 張和花葉病191 張。桃樹葉部病害圖像示例如表1 所示。
表1 桃樹葉部病害圖像示例Table 1 Image samples of peach leaf disease
由于本文實(shí)驗(yàn)選用VGG16 作為網(wǎng)絡(luò)改進(jìn)基礎(chǔ),其輸入維度需要固定,所以首先對(duì)桃樹葉部病害圖像進(jìn)行歸一化處理,將圖像裁剪為224×224 像素大小。其次,由于受到溫濕度等各種自然界因素影響,桃樹葉部病害并非每年都發(fā)生,圖像獲取難度大且獲取周期長(zhǎng),為減少因數(shù)據(jù)集中圖像數(shù)量較少造成模型泛化能力差的影響,對(duì)病害圖像進(jìn)行了圖像增強(qiáng)。由于受光照影響,拍攝的圖像亮度較低,使得病斑不明顯,所以對(duì)圖像進(jìn)行亮度增強(qiáng)處理,在亮度增強(qiáng)的基礎(chǔ)上,進(jìn)行色度增強(qiáng)、翻轉(zhuǎn)和3 個(gè)角度(90°、180°和270°)的旋轉(zhuǎn)等預(yù)處理方式擴(kuò)充數(shù)據(jù)集,擴(kuò)充后數(shù)據(jù)集總數(shù)為6125張,并按7:3 劃分訓(xùn)練集和測(cè)試集。數(shù)據(jù)增強(qiáng)后如表2 所示。
表2 桃樹葉部病害圖像預(yù)處理Table 2 Image preprocessing of peach leaf diseases
本文提出的模型以VGG16[11]為基礎(chǔ)構(gòu)架,由卷積神經(jīng)網(wǎng)絡(luò)層、循環(huán)神經(jīng)網(wǎng)絡(luò)層和多層全連接層組成。其中卷積神經(jīng)網(wǎng)絡(luò)層包括五個(gè)卷積模塊,用于提取桃樹葉部病害的特征。循環(huán)神經(jīng)網(wǎng)絡(luò)層由一個(gè)雙向長(zhǎng)短期記憶網(wǎng)絡(luò)組成,用于挖掘和記憶各病害區(qū)域間的上下文相關(guān)信息和位置信息。多層全連接層含有兩個(gè)全連接層和一個(gè)Softmax 層,兩個(gè)全連接層匯總?cè)植『D像特征,Softmax 層用于病害識(shí)別。VGGNet-BiLSTM 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 VGGNet-BiLSTM 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of VGGNet-BiLSTM
VGG16 結(jié)構(gòu)簡(jiǎn)潔,整個(gè)網(wǎng)絡(luò)有13 個(gè)卷積層和5 個(gè)最大池化層,其中卷積核尺寸大小為3×3,最大池化尺寸大小為2×2。本文在VGG16 模型的基礎(chǔ)上進(jìn)行改進(jìn),在每一卷積層后面加入了批標(biāo)準(zhǔn)化(Batch Normalization,BN)層,激活函數(shù)替換為PReLU 函數(shù)。卷積神經(jīng)網(wǎng)絡(luò)層結(jié)構(gòu)如圖3 所示。
圖3 卷積神經(jīng)網(wǎng)絡(luò)層結(jié)構(gòu)Fig.3 Structure of convolutional neural network layer
2.1.1 批標(biāo)準(zhǔn)化 為了解決網(wǎng)絡(luò)訓(xùn)練過(guò)程中的梯度消失問(wèn)題并加快訓(xùn)練速度,本文在每個(gè)卷積層后面引入了批標(biāo)準(zhǔn)化層[12]。批標(biāo)準(zhǔn)化算法通過(guò)一定的規(guī)范化手段將分散的輸入分布強(qiáng)制拉回到標(biāo)準(zhǔn)正態(tài)分布,使得非線性變換函數(shù)的輸入值落入敏感區(qū)域,避免了梯度消失且加快了訓(xùn)練速度。
輸入批處理數(shù)據(jù)為X={x1,x2,…,xn},λ和β是訓(xùn)練參數(shù),批標(biāo)準(zhǔn)化過(guò)程如公式(1)~(4)所示。
式(1)中μ為X的均值,公式(2)中σ為X的方差,式(3)對(duì)xi進(jìn)行標(biāo)準(zhǔn)化,所得的均值為0,方差為1,式(4)對(duì)進(jìn)行反標(biāo)準(zhǔn)化,通過(guò)自我調(diào)節(jié)λ和β的值達(dá)到更好的值,即輸出數(shù)據(jù)y。
2.1.2 激活函數(shù)ReLU 函數(shù)和PReLU 函數(shù)如圖4 所示。
圖4 ReLU 與PReLU 對(duì)比Fig.4 Comparison of ReLU and PReLU
由圖4 可以看出,ReLU 函數(shù)在負(fù)區(qū)間梯度為0,相應(yīng)權(quán)重不再更新,導(dǎo)致神經(jīng)元激活失敗。而PReLU 函數(shù)在負(fù)區(qū)間增加了一個(gè)動(dòng)態(tài)變化的參數(shù)ai,解決了ReLU 函數(shù)在負(fù)區(qū)間神經(jīng)元激活失敗的問(wèn)題,所以本文選用PReLU 函數(shù)替換ReLU 函數(shù)。PReLU 函數(shù)定義如公式(5)所示。
其中,i表示不同的通道,xi表示在第i通道上的輸入,ai表示負(fù)區(qū)間上的自學(xué)習(xí)參數(shù)。
通過(guò)卷積神經(jīng)網(wǎng)絡(luò)層提取桃樹葉部病害局部特征,將512 維度7×7 特征矩陣作為循環(huán)神經(jīng)網(wǎng)絡(luò)層的輸入。由于桃樹炭疽病和褐斑病的病斑位置信息不同,所以將7×7 的特征矩陣進(jìn)行降維,得到一維病害區(qū)域序列。又因各桃樹病害區(qū)域不僅與先前的區(qū)域有相關(guān)性,且與之后的區(qū)域有相關(guān)性,所以選用BiLSTM[13]作為該層的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)。
BiLSTM 由兩個(gè)正向和反向的LSTM 組成,不僅能夠利用過(guò)去時(shí)刻的信息,也能訪問(wèn)未來(lái)時(shí)刻的信息,使網(wǎng)絡(luò)可以同時(shí)處理正向和反向的數(shù)據(jù),得到序列數(shù)據(jù)的上下文整合信息且具有記憶性,所以能夠記憶病害區(qū)域的位置信息和挖掘各病害區(qū)域間的上下文相關(guān)信息。為避免過(guò)擬合問(wèn)題,本文在BiLSTM 結(jié)構(gòu)內(nèi)部,加入了dropout 層。結(jié)構(gòu)如圖5 所示。
圖5 BiLSTM 網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Structure of BiLSTM
BiLSTM 中LSTM 為解決RNN 梯度消失和梯度爆炸問(wèn)題設(shè)置了輸入門、遺忘門和輸出門三種類型的門控結(jié)構(gòu)。其中輸入門決定t時(shí)刻記憶單元保存哪些輸入數(shù)據(jù);遺忘門控制信息的保存和遺忘,并決定丟棄哪些歷史信息;輸出門決定t時(shí)刻輸出記憶單元中的哪一部分。
BiLSTM 中前向和后向的LSTM 結(jié)構(gòu)相同,但不共享參數(shù),輸入序列由卷積神經(jīng)網(wǎng)絡(luò)層提取到的特征矩陣降維得到,用X={x1,x2,…,xt,…,xs)表示,t時(shí)刻在處理輸入數(shù)據(jù)X的過(guò)程中,前向LSTM隱藏層更新公式如(6)所示,反向LSTM 隱藏層更新公式如(7)所示。
加入dropout 層后前向和反向結(jié)果疊加后的最終輸出結(jié)果如公式(8)所示。
公式(8)中Bernoulli(p)表示生成概率向量,隨機(jī)刪除p比例的神經(jīng)元,防止過(guò)擬合。
循環(huán)神經(jīng)網(wǎng)絡(luò)層挖掘到的各病害區(qū)域間的上下文信息和位置信息輸入到多層全連接層,為避免梯度消失,首先經(jīng)BN 層進(jìn)行批標(biāo)準(zhǔn)處理,多層全連接層匯總循環(huán)神經(jīng)網(wǎng)絡(luò)層提取的全局病害特性信息,為避免過(guò)擬合在兩個(gè)全連接層后加入了dropout 層,最后由Softmax 進(jìn)行病害識(shí)別(圖6)。
圖6 多層全連接層結(jié)構(gòu)Fig.6 Structure of multi-layer fully connected layer
計(jì)算公式如(9)~(12)所示。
其中,公式(9)中的H 表示循環(huán)神經(jīng)網(wǎng)絡(luò)層的輸出結(jié)果,公式(10)對(duì)H進(jìn)行批標(biāo)準(zhǔn)化處理。公式(11)表示加入dropout 后全連接計(jì)算公式,σ為PReLU 函數(shù),Wh為的權(quán)重矩陣,bh為偏置項(xiàng)。公式(12)為分類層計(jì)算公式,δ為Softmax 函數(shù),Wy為c的權(quán)重矩陣,by為偏置項(xiàng)。
本實(shí)驗(yàn)選擇平均準(zhǔn)確率作為評(píng)價(jià)指標(biāo),如公式(13)所示。
nepoch為迭代的次數(shù),nai為每次迭代中預(yù)測(cè)正確的樣本數(shù),ni為每次迭代中輸入的樣本總數(shù)。
為驗(yàn)證本文提出方法的有效性,選擇CNN、AlexNet 和VGG16 網(wǎng)絡(luò)在桃樹葉部病害圖像數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)。本文所有實(shí)驗(yàn)的硬件環(huán)境為Intel Corei7 3.70GHz 處理器、16GB 運(yùn)行內(nèi)存和NVIDIA GeForce GXT 1080 Ti GPU;軟件環(huán)境為Windows 7 64bit 操作系統(tǒng)、Python 3.6.4 和TensorFlow1.8 深度學(xué)習(xí)框架。
本文采用有監(jiān)督的方式對(duì)模型進(jìn)行訓(xùn)練,訓(xùn)練前通過(guò)置零法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化。VGGNet-BiLSTM 網(wǎng)絡(luò)參數(shù)設(shè)置如表3 所示。
表3 VGGNet-BiLSTM 網(wǎng)絡(luò)參數(shù)設(shè)置Table 3 Parameters of VGGNet-BiLSTM
3.3.1 自對(duì)比實(shí)驗(yàn) 本文首先將基礎(chǔ)網(wǎng)絡(luò)VGG16 和VGGNet-BiLSTM 進(jìn)行自對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖7 所示。
圖7 VGG16 和VGGNet-BiLSTM 準(zhǔn)確率曲線Fig.7 Precision curves of VGG16 and VGGNet-BiLSTM
由圖7(a)可知,VGG16 迭代50 次趨于收斂,最終的訓(xùn)練準(zhǔn)確率為99.78%,而VGGNet-BiLSTM迭代45 次趨于收斂,最終的訓(xùn)練準(zhǔn)確率為99.96%,準(zhǔn)確率高于VGG16,因本文提出的VGGNet-BiLSTM 算法中加入了BN 層,所以能夠加快模型的收斂速度。VGG16 測(cè)試集上準(zhǔn)確率為91.72%,VGGNet-BiLSTM 測(cè)試集上準(zhǔn)確率為93.73%,比VGG16 的準(zhǔn)確率高2.01%,由于本文提出的算法融合了桃樹葉部病害區(qū)域間的上下文相關(guān)信息和位置信息,所以在測(cè)試集上的準(zhǔn)確率高于VGG16。
3.3.2 與其他模型對(duì)比實(shí)驗(yàn) 本文選擇CNN 和AlexNet 進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4 所示。
表4 模型訓(xùn)練結(jié)果Table 4 Training results of models
由表4 可知,CNN 對(duì)桃樹葉部病害圖像的識(shí)別準(zhǔn)確率較低,因?yàn)樵谧R(shí)別過(guò)程中忽略了病害區(qū)域間的上下文信息和位置信息,因此識(shí)別效果較差。AlexNet 測(cè)試集上的準(zhǔn)確率為90.03%,AlexNet作為CNN 的變體具有更深的網(wǎng)絡(luò)結(jié)構(gòu),能夠提取深層次的病害特征,但仍未考慮病害區(qū)域間的上下文信息和位置信息。本文提出的算法融合了病害區(qū)域間的上下文相關(guān)信息和位置信息,在測(cè)試集上的準(zhǔn)確率可達(dá)93.73%,相較于CNN 和AlexNet 具有更高的識(shí)別準(zhǔn)確率。
為解決CNN 未考慮桃樹葉部病害區(qū)域間的上下文信息和位置信息導(dǎo)致降低了病害圖像識(shí)別準(zhǔn)確率的問(wèn)題,本文提出了一種基于VGGNet-BiLSTM 的桃樹葉部病害圖像識(shí)別算法。首先,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)層對(duì)桃樹葉部病害特征進(jìn)行提取,其次對(duì)病害特征矩陣進(jìn)行降維,將其作為輸入進(jìn)入循環(huán)神經(jīng)網(wǎng)絡(luò)層,挖掘病害區(qū)域間的上下文相關(guān)信息和位置信息,最后,多層全連接層根據(jù)全局病害圖像特征進(jìn)行病害識(shí)別。結(jié)果表明,本文提出的算法在相同測(cè)試集上具有更高的識(shí)別精度。