王志強(qiáng) 于雪瑩 楊曉婧 蘭玉彬 金鑫寧 馬景余
(1.山東理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 淄博 255049; 2.山東理工大學(xué)生態(tài)無人農(nóng)場研究院, 淄博 255049;3.山東理工大學(xué)農(nóng)業(yè)工程與食品科學(xué)學(xué)院, 淄博 255049)
番茄在生長過程中易受多種病害的侵襲,導(dǎo)致其產(chǎn)量和質(zhì)量下降,嚴(yán)重影響經(jīng)濟(jì)效益[1]。目前我國農(nóng)作物病害總體仍處于嚴(yán)重發(fā)生狀態(tài),因此病害的準(zhǔn)確、快速防治對農(nóng)業(yè)生產(chǎn)具有十分重要的作用[2-4]。
近年來,深度學(xué)習(xí)技術(shù)在植物保護(hù)領(lǐng)域應(yīng)用取得顯著進(jìn)展,為農(nóng)作物病蟲害預(yù)防與治理工作提供了有力的技術(shù)支持。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network, CNN)不同于傳統(tǒng)機(jī)器學(xué)習(xí)的人工特征提取,采用端到端的結(jié)構(gòu)進(jìn)行自動提取,提高了網(wǎng)絡(luò)的識別速度和精度[5-7]。但目前大多數(shù)CNN通過增加網(wǎng)絡(luò)層數(shù)的方法來提高模型性能,犧牲大量的計(jì)算資源而獲得高準(zhǔn)確率,容易導(dǎo)致訓(xùn)練速度慢、網(wǎng)絡(luò)參數(shù)過多等問題,超出了許多移動和嵌入式應(yīng)用程序的能力。為使模型更好地應(yīng)用于實(shí)際場景,近年來相關(guān)研究都向輕量級網(wǎng)絡(luò)的方向發(fā)展[8]。MobileNet-V1是一種適合于移動端和嵌入式設(shè)備的輕量級網(wǎng)絡(luò)[9],但該模型在對通道數(shù)較少的卷積層輸出進(jìn)行操作時,易產(chǎn)生信息丟失。MobileNet-V2提出一種倒置殘差結(jié)構(gòu),在一定程度上減少了信息丟失,在減少模型參數(shù)量的同時不影響識別精度[10]。LIU等[11]對MobileNet-V2進(jìn)行優(yōu)化訓(xùn)練,實(shí)現(xiàn)了對垃圾數(shù)據(jù)集的準(zhǔn)確分類,模型參數(shù)量僅為1.4×107。
一方面,由于不同種類的病害葉片圖像中的病斑區(qū)域存在差異,因此在卷積過程中選擇適合的卷積核非常重要。病害全局性分布的圖像適合較大的卷積核,而病害局部分布的圖像更適合較小的卷積核[12]。若將不同尺寸的卷積層進(jìn)行簡單堆疊,不僅會加深網(wǎng)絡(luò)深度,還會耗費(fèi)大量計(jì)算資源。為此,部分學(xué)者提出采用多尺度特征融合模塊對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),取得了一定效果[13-15]。另一方面,病害識別模型在訓(xùn)練過程中常會受到葉脈、葉片輪廓等無關(guān)信息的干擾。增加注意力機(jī)制能夠使模型判斷出圖像中的病害區(qū)域并投入更多注意,從而較好地獲取病害的特征信息,提高對病害種類的分類能力[16]。傳統(tǒng)的通道注意力機(jī)制[17]能夠很好地關(guān)注每個通道之間的關(guān)系,卻忽略了同一通道不同位置的特征信息。混合注意力機(jī)制沿著通道和空間兩個維度依次推斷注意力,同時兼顧了位置、空間兩方面因素,使模型能夠更全面地進(jìn)行特征提取,但同時也大大增加了參數(shù)量和計(jì)算成本[18]。坐標(biāo)注意力機(jī)制(Coordinate attention, CA)能夠?qū)⑽恢眯畔⑶度氲酵ǖ雷⒁饬χ?使其可以通過沿一個方向捕捉較遠(yuǎn)距離的關(guān)系,同時也能保證在另一方向上精確的位置信息。該機(jī)制結(jié)構(gòu)簡單,即插即用,幾乎不會引入額外的計(jì)算量,對改進(jìn)輕量級網(wǎng)絡(luò)有顯著效果[19]。
深度學(xué)習(xí)網(wǎng)絡(luò)模型的訓(xùn)練需要數(shù)量多且種類均衡的樣本數(shù)據(jù)[20],但由于目前可采集的番茄病害圖像有限,因此一般采用數(shù)據(jù)增強(qiáng)方法對原始數(shù)據(jù)集進(jìn)行擴(kuò)充[21]。傳統(tǒng)的數(shù)據(jù)增強(qiáng)方法包括隨機(jī)翻轉(zhuǎn)、提高對比度、添加噪聲等,但其生成的樣本數(shù)據(jù)單一,且與原始數(shù)據(jù)集區(qū)分度低。生成對抗網(wǎng)絡(luò)(Generative adversarial network, GAN)是一種無監(jiān)督學(xué)習(xí)方法[22],是目前實(shí)現(xiàn)生成圖像任務(wù)應(yīng)用最多的手段[23]。GAN通過生成器和判別器之間的相互對抗,生成與現(xiàn)實(shí)圖像十分相似的樣本圖像,從而達(dá)到豐富數(shù)據(jù)集的效果[24-26]。但傳統(tǒng)GAN的損失函數(shù)定義不明確,訓(xùn)練過程中損失值曲線不穩(wěn)定,易出現(xiàn)模式崩塌等問題。Wasserstein GAN(WGAN)能在不改變GAN結(jié)構(gòu)的基礎(chǔ)上,采用Wasserstein距離來度量真實(shí)樣本分布和生成樣本分布之間的差異,相較于其他GAN模型具有更穩(wěn)定、更豐富的圖像生成能力[27]。
本文提出一種基于WGAN和MCA-MobileNet的番茄葉片病害識別模型。該模型以MobileNet-V2作為骨干網(wǎng)絡(luò),引入改進(jìn)的多尺度特征融合模塊和坐標(biāo)注意力機(jī)制模塊,在保證識別精度的同時,減少模型訓(xùn)練的參數(shù)量,降低計(jì)算成本。同時采用WGAN進(jìn)行數(shù)據(jù)增強(qiáng)擴(kuò)充樣本數(shù)據(jù),使原始數(shù)據(jù)集的各類病害圖像更均衡,增強(qiáng)模型的魯棒性,使其滿足移動端或嵌入式設(shè)備的需要。
將從PlantVillage收集的10類共4 132幅番茄葉片圖像作為試驗(yàn)數(shù)據(jù)集,典型樣本示例如圖1所示。其中,花葉病毒圖像344幅,白粉病圖像428幅,褐斑病圖像496幅,紅蜘蛛病毒圖像482幅,葉霉病圖像378幅,早疫病圖像348幅,斑枯病圖像408幅,黃化曲葉病毒圖像430幅,晚疫病416幅,健康葉片圖像402幅。
圖1 番茄葉片圖像
由于原始數(shù)據(jù)集存在樣本圖像數(shù)量少、種類不均衡等問題,為防止深度模型在訓(xùn)練過程出現(xiàn)的過擬合現(xiàn)象,本研究采用生成對抗網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)增強(qiáng)。生成對抗網(wǎng)絡(luò)GAN是一種由生成器和判別器兩個網(wǎng)絡(luò)組成的無監(jiān)督模型。在訓(xùn)練過程中,生成器的目標(biāo)是生成盡可能真的圖像去欺騙判別器,判別器的目標(biāo)是把生成樣本和真實(shí)樣本區(qū)分開。生成器和判別器通過相互對抗,最終使模型達(dá)到納什平衡。GAN的訓(xùn)練目標(biāo)為最小化真實(shí)數(shù)據(jù)分布與合成數(shù)據(jù)分布之間的JS散度。但根據(jù)JS散度的性質(zhì)可知,如果兩個樣本分布幾乎沒有重疊時,會出現(xiàn)梯度為0的現(xiàn)象,導(dǎo)致訓(xùn)練時出現(xiàn)梯度消失。
WGAN通過采用Wasserstein距離來度量真實(shí)樣本分布和生成樣本分布之間的差異,這樣能夠保證即便兩個分布沒有重疊,Wasserstein距離仍然能夠反映它們的遠(yuǎn)近。WGAN模型具體結(jié)構(gòu)及參數(shù)設(shè)置如圖2所示。其中,對生成器輸入隨機(jī)噪聲z,然后分別經(jīng)過5個反卷積層(Conv2DTranspose)和4個批歸一化層(Batch normalization,BN),激活函數(shù)采用Leaky ReLU,然后將得到的圖像數(shù)據(jù)輸入到判別器中,分別經(jīng)過5個卷積層(Conv2D)和4個批歸一化層,激活函數(shù)同樣采用Leaky ReLU,并由Flatten層將數(shù)據(jù)進(jìn)行一維化,最后由Dense層輸出判別結(jié)果。
圖2 WGAN模型及參數(shù)設(shè)置
MobileNet是一種輕量級CNN,被廣泛應(yīng)用于移動端或者嵌入式設(shè)備。MobileNet-V1采用的深度可分離卷積結(jié)構(gòu)能夠在準(zhǔn)確率基本保持不變的前提下,有效減少模型的參數(shù)量,但只是深度可分離卷積的堆疊。同時,其采用的非線性激活函數(shù)ReLU在對通道數(shù)較少的卷積層輸出進(jìn)行操作時,易產(chǎn)生信息丟失的問題。MobileNet-V2借鑒殘差網(wǎng)絡(luò)的思想,在模型中添加一種具有線性瓶頸的倒置殘差結(jié)構(gòu)(The inverted residual with linear bottleneck),可以很大程度上緩解網(wǎng)絡(luò)退化問題,相比于 MobileNet-V1準(zhǔn)確率更高,模型更小,進(jìn)一步提高了網(wǎng)絡(luò)性能。
本文模型采用的倒置殘差結(jié)構(gòu)如圖3所示,首先采用1×1的卷積核進(jìn)行逐點(diǎn)卷積(Pointwise convolution, PW)升維,然后采用3×3的深度卷積(Depthwise convolution, DW),最后采用1×1的PW卷積降維。因?yàn)榇藭r的深度卷積只針對一個通道進(jìn)行,所以計(jì)算量不會過高。當(dāng)步長等于2時,輸入和輸出的特征矩陣通道數(shù)不相等,因此不需要shortcut連接。
圖3 兩種步長情況下的瓶頸結(jié)構(gòu)圖
1.4.1改進(jìn)的多尺度特征融合模塊
傳統(tǒng)卷積操作每一層使用的卷積核大小都是一致的,因此輸出的每一個神經(jīng)元在前一層接受的視野也是一致的。Inception結(jié)構(gòu)通過采用不同尺寸的卷積核對特征圖進(jìn)行卷積操作,得到不同尺寸的新特征圖,同時采用最大池化操作降低過擬合,最后對不同的特征圖進(jìn)行拼接融合,結(jié)構(gòu)如圖4a所示。本文對上述Inception結(jié)構(gòu)進(jìn)行改進(jìn),提出改進(jìn)后的Bottleneck-D模塊,通過采用步長為2的瓶頸結(jié)構(gòu)對標(biāo)準(zhǔn)卷積進(jìn)行替換,并采用1×1卷積進(jìn)行降維,最后采用特征圖相加的方式代替拼接,結(jié)構(gòu)如圖4b所示。該結(jié)構(gòu)能有效減少模型的參數(shù)量,進(jìn)一步增強(qiáng)了模型的表達(dá)能力。
圖4 改進(jìn)前后多尺度特征融合模塊對比
1.4.2坐標(biāo)注意力機(jī)制
傳統(tǒng)的通道注意力機(jī)制忽略了同一通道不同位置的特征信息,本研究通過采用坐標(biāo)注意力機(jī)制(CA),將通道注意力分解為兩個并行的編碼操作,然后進(jìn)行信息融合,實(shí)現(xiàn)了將位置信息嵌入到通道注意力中,能夠準(zhǔn)確突出特征圖中的感興趣區(qū)域,同時有效減少了模型的計(jì)算成本,結(jié)構(gòu)如圖5所示。
圖5 坐標(biāo)注意力機(jī)制結(jié)構(gòu)圖
將全局池化拆分成兩個平均池化操作,即沿水平方向X軸和垂直方向Y軸分別對每個通道進(jìn)行編碼,得到高度為h和寬度為w的第c個通道的輸出計(jì)算公式為
(1)
(2)
式中H、W——特征圖的高度、寬度
將上述獲得的具有全局感受野和精確位置編碼信息的特征圖進(jìn)行拼接,然后采用1×1卷積變換函數(shù)F1降維,再通過歸一化和非線性激活函數(shù)來編碼水平和垂直方向的空間信息,得到中間特征映射公式為
f=δ(F1([z(h),z(w)]))
(3)
(4)
式中δ——非線性激活函數(shù)
r——比例系數(shù)R——注意力空間
g(h)=σ(Fh(f(h)))
(5)
g(w)=σ(Fw(f(w)))
(6)
式中σ——sigmoid函數(shù)
將g(h)和g(w)進(jìn)行維度擴(kuò)展后得到兩個注意力權(quán)重,再通過與原特征的信息融合,最終計(jì)算得到坐標(biāo)注意力模塊的輸出y公式為
(7)
將CA嵌入到倒置殘差結(jié)構(gòu)中,得到改進(jìn)后的注意力模塊Bottleneck-A,結(jié)構(gòu)如圖6所示。
圖6 Bottleneck-A結(jié)構(gòu)圖
1.4.3模型搭建
本文模型MCA-MobileNet是以MobileNet-V2為主干網(wǎng)絡(luò),并通過引入改進(jìn)的多尺度特征融合模塊Bottleneck-D和坐標(biāo)注意力機(jī)制模塊Bottleneck-A,得到改進(jìn)后的模型結(jié)構(gòu)如圖7所示。圖中,首先輸入圖像尺寸為224×224×3,然后經(jīng)過一個3×3卷積,再經(jīng)過多個Bottleneck-A和Bottleneck-D模塊,能夠在保證識別準(zhǔn)確率的同時減小模型規(guī)模,最后經(jīng)過2個1×1卷積和平均池化層后,最后通過Softmax層對10類番茄葉片圖像進(jìn)行分類,得到輸出結(jié)果。
圖7 MCA-MobileNet模型結(jié)構(gòu)圖
試驗(yàn)均在64位的Windows 10操作系統(tǒng)上進(jìn)行,使用Python語言調(diào)用keras框架實(shí)現(xiàn)網(wǎng)絡(luò)的構(gòu)建、訓(xùn)練和測試。服務(wù)器配置16 GB內(nèi)存的AMD Ryzen 5-3600 CPU(6核處理器)和6 GB顯存的Nvidia GeForce GTX 1660 Ti GPU。
由于超參數(shù)的設(shè)置會對模型性能和識別準(zhǔn)確率產(chǎn)生影響,試驗(yàn)分別使用Adam、SGD和Nadam優(yōu)化器,對解決計(jì)算效率低、所需內(nèi)存多等問題具有明顯優(yōu)勢,3種優(yōu)化算法試驗(yàn)選取模型的迭代次數(shù)為50次,學(xué)習(xí)率為0.000 1,批量大小為15。
采用準(zhǔn)確率、精準(zhǔn)率、召回率、F1值、參數(shù)量、浮點(diǎn)計(jì)算數(shù)和推理速度作為分類指標(biāo)對不同模型進(jìn)行評估。
為有效擴(kuò)充樣本數(shù)據(jù),增強(qiáng)模型的魯棒性和檢測準(zhǔn)確率,本研究采用基于Wasserstein距離的生成對抗網(wǎng)絡(luò)對原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)。將原始數(shù)據(jù)集按照1∶1的比例劃分為訓(xùn)練集和驗(yàn)證集,采用WGAN對訓(xùn)練集進(jìn)行數(shù)據(jù)增強(qiáng),得到增強(qiáng)后的訓(xùn)練集圖像共20 366幅,各類病害圖像數(shù)量如表1所示。
表1 數(shù)據(jù)增強(qiáng)前后圖像數(shù)量
以數(shù)據(jù)集前5種病害為例,樣本圖像示例及損失值曲線如圖8所示。由圖可知,試驗(yàn)生成的圖像十分接近原始數(shù)據(jù)集的病害圖像,且各類病害間特征差異明顯,為模型識別不同種類的病害提供了良好的圖像數(shù)據(jù)。WGAN訓(xùn)練過程中有時不穩(wěn)定,會生成含有少量噪聲的圖像,但不影響總體的圖像效果。
圖8 WGAN生成的病害圖像和損失值曲線
為驗(yàn)證數(shù)據(jù)增強(qiáng)對各類病害精度的影響,分別采用不同的數(shù)據(jù)集對模型進(jìn)行試驗(yàn),結(jié)果如圖9所示。結(jié)果表明,9種病害和健康葉片的識別準(zhǔn)確率分別較原模型提升0.53~5.47個百分點(diǎn)。利用十折交叉驗(yàn)證計(jì)算模型平均準(zhǔn)確率,將測試集劃分成10份,取每份測試集準(zhǔn)確率的平均值作為平均準(zhǔn)確率。結(jié)果表明,數(shù)據(jù)增強(qiáng)后模型平均準(zhǔn)確率由90.57%提升至94.11%,較數(shù)據(jù)增強(qiáng)前提升3.54個百分點(diǎn),說明數(shù)據(jù)增強(qiáng)后的模型對各類病害的識別準(zhǔn)確率更高,識別效果更好,并提升了模型魯棒性。
圖9 數(shù)據(jù)增強(qiáng)對模型影響的混淆矩陣對比
為證明本研究的改進(jìn)算法可提高模型性能,分別對兩種改進(jìn)算法進(jìn)行消融試驗(yàn),共組合為5種模型。其中,主干網(wǎng)絡(luò)均選擇MobileNet-V2,且均采用經(jīng)過WGAN數(shù)據(jù)增強(qiáng)后的番茄葉片圖像作為數(shù)據(jù)集,結(jié)果如表2所示,表中“√”表示采用了改進(jìn)算法。
表2 消融試驗(yàn)結(jié)果
為驗(yàn)證在MobileNet-V2中引入改進(jìn)的多尺度特征融合模塊的有效性,試驗(yàn)分別采用不引入多尺度模塊的模型1,引入未改進(jìn)的Inception多尺度模塊模型2與本文模型6進(jìn)行對比試驗(yàn),得到準(zhǔn)確率分別為90.21%、91.38%、94.11%,測試集混淆矩陣如圖10所示。由圖可知,引入本文改進(jìn)多尺度特征融合模塊Bottleneck-D的模型對識別番茄葉片病害具有更優(yōu)的效果,各類病害的誤判率更低,因此驗(yàn)證了Bottleneck-D的有效性,能夠提高模型的識別能力。
為驗(yàn)證在MobileNet-V2中引入改進(jìn)后的坐標(biāo)注意力機(jī)制模塊在提升模型性能方面的優(yōu)勢,分別在原始模型MobileNet-V2的網(wǎng)絡(luò)層之間通過不添加注意力機(jī)制和分別添加SE、CBAM和CA模塊得到的模型3~6進(jìn)行對比試驗(yàn),得到準(zhǔn)確率分別為91%、92.9%、93.12%、94.11%,測試集混淆矩陣如圖11所示。由圖可知,添加了改進(jìn)后的坐標(biāo)注意力機(jī)制模塊Bottleneck-A的模型能夠正確識別圖像中的病害特征,且對每一類病害的分類效果都較好,因此驗(yàn)證了Bottleneck-A的有效性,能夠使模型更準(zhǔn)確地識別病害的種類,從而提升模型性能。
圖11 采用不同的注意力機(jī)制模塊得到的混淆矩陣
為驗(yàn)證改進(jìn)模型MCA-MobileNet的識別能力,將其與5種傳統(tǒng)模型AlexNet、VGG-16、Inception-V3、ResNet-50和MobileNet-V2進(jìn)行對比試驗(yàn),驗(yàn)證集準(zhǔn)確率變化曲線如圖12所示。由圖可知,MCA-MobileNet對番茄葉片病害的識別率更高,且在訓(xùn)練30次時基本達(dá)到收斂狀態(tài),曲線相較于其他傳統(tǒng)模型更平穩(wěn),振蕩幅度更小,訓(xùn)練過程更穩(wěn)定,魯棒性較好。
圖12 不同模型在驗(yàn)證集的準(zhǔn)確率變化曲線
對上述模型的準(zhǔn)確率、召回率、參數(shù)量和處理速度等指標(biāo)進(jìn)行統(tǒng)計(jì),結(jié)果如表3所示。由表可知,MCA-MobileNet相比于其他5種傳統(tǒng)模型,準(zhǔn)確率分別提高2.84~7.34個百分點(diǎn),精確率分別提高3~5個百分點(diǎn),召回率分別提高2~7個百分點(diǎn),F1值分別提高2~7個百分點(diǎn),參數(shù)量分別減少3.85×1.06~1.073 5×108,浮點(diǎn)運(yùn)算數(shù)分別減小0.27~4.55 GFLOPs,推理速度分別提高7.2~22 f/s。
表3 不同網(wǎng)絡(luò)模型分類識別性能對比
(1)將改進(jìn)的多尺度特征融合模塊和坐標(biāo)注意力機(jī)制模塊引入MobileNet-V2中,得到試驗(yàn)?zāi)P蚆CA-MobileNet,使其能更集中于番茄葉片中的病斑信息,同時大大減少了模型的參數(shù)量。
(2)采用WGAN進(jìn)行數(shù)據(jù)增強(qiáng)能夠?qū)颖緮?shù)據(jù)進(jìn)行擴(kuò)充,解決了原始樣本數(shù)據(jù)不足、不均衡的問題,并且采用增強(qiáng)后的數(shù)據(jù)集進(jìn)行試驗(yàn)有效提高了模型識別的準(zhǔn)確率,增強(qiáng)了模型的魯棒性。
(3)相較于傳統(tǒng)網(wǎng)絡(luò),MCA-MobileNet在準(zhǔn)確率、精準(zhǔn)率、召回率、F1值上均有提升,分別達(dá)到94.11%、94%、94%、94%,模型訓(xùn)練的參數(shù)量僅為7.5×105,降低了參數(shù)內(nèi)存,對識別番茄葉片病害具有更平穩(wěn)的收斂過程和更出色的性能,可應(yīng)用于移動式或嵌入式設(shè)備。