曹 歡,方 睿
(成都信息工程大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610225)
芒果屬漆樹科熱帶常綠大喬木,早結(jié)豐產(chǎn),種植效益高,經(jīng)過多年培育發(fā)展,中國現(xiàn)已成為世界第二大芒果生產(chǎn)國,僅次于印度,年產(chǎn)量約為435.159 3萬噸,占世界芒果總產(chǎn)量的11.2%。芒果可直接食用,也可以入藥,隨著近年來芒果種植面積的不斷擴(kuò)大,已在中國形成三大芒果主產(chǎn)區(qū):海南昌江,廣西百色,攀枝花鹽邊。受當(dāng)前溫室效應(yīng)的影響,芒果培育期也隨溫度增高而延長,利于產(chǎn)量的增加。芒果大面積種植后,若有病蟲害發(fā)生,需要大量人力物力進(jìn)行監(jiān)管,還需通過人工進(jìn)行識別,引入深度學(xué)習(xí)技術(shù),可加快智慧農(nóng)業(yè)的步伐,在發(fā)病早期監(jiān)測到病害,可減少農(nóng)藥的用量,定點(diǎn)施藥,將對芒果產(chǎn)量、質(zhì)量的影響降到最低,還能減少對環(huán)境的污染。
該文以攀西地區(qū)芒果常見的12種病蟲害圖片建立數(shù)據(jù)集,在Pytorch框架下搭建MobileNetV2、MobileNetV3、ShuffleNetV2、MobileViT這4種不同規(guī)模的卷積神經(jīng)網(wǎng)絡(luò)模型,并結(jié)合當(dāng)前常用的訓(xùn)練策略遷移學(xué)習(xí),對比不同模型的參數(shù)量、精確率、召回率等,最終選擇了MobileViT為芒果病蟲害識別模型,該模型的精確率為96.31%,召回率為96.12%,F1為96.20%,表現(xiàn)均優(yōu)于其他模型。
當(dāng)前已有大量深度學(xué)習(xí)技術(shù)用于農(nóng)業(yè)病蟲害識別的研究。陳偉文等[1]利用改進(jìn)后的網(wǎng)絡(luò)AlexNet-Improved對番茄葉片病害圖片進(jìn)行識別,原模型的過擬合問題得到改善,模型準(zhǔn)確率為95.8%,比改進(jìn)前高2%;蔣力順等[2]用AlexNet、VGG-16和ResNet50三種不同深度的網(wǎng)絡(luò)對黃瓜病害識別進(jìn)行研究,最終選擇ResNet50進(jìn)行病害識別,識別率為99.06%;王超等[3]用Resnet50對玉米葉片病害進(jìn)行識別,分類準(zhǔn)確率為92.82%,實(shí)驗(yàn)結(jié)果明顯優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)方法。
上述文章采用的網(wǎng)絡(luò),參數(shù)龐大,不利于實(shí)際應(yīng)用,于是很多研究者引入輕量級模型進(jìn)行識別。葉鳴煬等[4]利用MobileNetV2對玉米病害進(jìn)行識別,相比于經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)LeNet等,計(jì)算量少,準(zhǔn)確率高;李好等[5]引入ECA模塊改進(jìn)ShuffleNetV2模型識別農(nóng)作物病害,平均準(zhǔn)確率達(dá)到99.24%,還使用了H-Swish激活函數(shù)以使網(wǎng)絡(luò)參數(shù)更小;林建吾等[6]引入Focal Loss代替交叉熵函數(shù)在MobileNetV2模型上對番茄病害圖像進(jìn)行識別,最終準(zhǔn)確率為99.87%,模型大小僅8.74 M。上述研究引入輕量級模型,在保證識別準(zhǔn)確率的同時(shí),也能用于移動(dòng)端,滿足了實(shí)際需求。
卷積神經(jīng)網(wǎng)絡(luò)由一開始的AlexNet[7]、VGGNet[8],再到現(xiàn)在廣泛使用的ResNet[9]、Vision Transformer[10]等,這些模型隨著硬件的快速發(fā)展,參數(shù)量十分龐大,訓(xùn)練模型也需耗費(fèi)巨大的資源,不利于移植到移動(dòng)端廣泛應(yīng)用,因此出現(xiàn)了輕量級網(wǎng)絡(luò)模型,如ShuffleNet[11]、MobileNet[12]等。
MobileNet系列是由Google團(tuán)隊(duì)于2017年提出的。MobileNetV1的一大創(chuàng)新是提出了深度可分離卷積,常規(guī)的卷積塊作用于圖像后,會(huì)同時(shí)改變特征圖的大小和個(gè)數(shù),而深度可分離卷積就是將改變通道大小的操作(PW卷積)和改變特征圖大小的操作(DW卷積)分離開,極大地減少了計(jì)算量。如圖1所示,左邊為傳統(tǒng)卷積,右邊為深度可分離卷積。Mobile-NetV2[13]在此基礎(chǔ)上提出了倒殘差結(jié)構(gòu),模塊與ResNet類似,都由三個(gè)模塊組成,先是1×1卷積塊,再是3×3卷積塊,最后是1×1卷積塊。ResNet是利用這三個(gè)模塊先降維后升維,而MobileNetV2的作用結(jié)果正好相反,是先升維后降維,所以稱為倒殘差結(jié)構(gòu),這樣能使特征提取在高維進(jìn)行,還使用了ReLU6激活函數(shù)。MobileNetV3[14]在前兩個(gè)版本的基礎(chǔ)上再進(jìn)行了優(yōu)化。
圖1 傳統(tǒng)卷積(左)與深度可分離卷積(右)
ShuffleNetV1于2018年提出,當(dāng)時(shí)輕量級神經(jīng)網(wǎng)絡(luò)模型研究已經(jīng)趨于成熟,該作者主要用了分組DW卷積和Channel Shuffle技術(shù),在保證模型精度的前提下,極大地減少了計(jì)算開銷。卷積中大量使用的1×1卷積塊,在實(shí)際計(jì)算過程中復(fù)雜度較高,消耗了大量計(jì)算資源,由此想到進(jìn)行分組DW卷積,在分組卷積之后利用Channel Shuffle技術(shù),獲取不同通道間的信息。ShuffleNetV2[15]在V1的基礎(chǔ)上進(jìn)行了進(jìn)一步的改進(jìn),提出了四個(gè)設(shè)計(jì)輕量化網(wǎng)絡(luò)的原則:當(dāng)輸入和輸出通道相同時(shí),內(nèi)存訪問成本最小;分組數(shù)過大會(huì)導(dǎo)致內(nèi)存訪問成本增加;碎片化程度高,不利于并行運(yùn)算;元素操作如ReLU太多,會(huì)增加內(nèi)存的消耗。
蘋果公司于2021年提出MobileViT[16],該模型是基于輕量級模型MobileNets,并加入當(dāng)前的研究熱門ViT模型,以此結(jié)合CNN和ViT各自的優(yōu)勢而提出的。CNN的卷積層可獲得圖片的局部信息,以及有歸納偏置特性。ViT適用于大尺度圖像識別,需要在較大的數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,才能達(dá)到CNN的識別精度,而且也沒有歸納偏置特性,但可以很好地獲取圖像的全局特征。MobileViT很好地結(jié)合了兩種模型的特性,通過深度可分離卷積和ViT分別學(xué)習(xí)圖像的局部信息和全局信息,該模型有更好的泛化性能和魯棒性。圖2為MobileViT的模型架構(gòu),其中的MV2模塊就是MobileNetV2中的倒殘差結(jié)構(gòu),↓2為兩倍下采樣。
圖2 MobileViT模型
圖像根據(jù)何平等[17]總結(jié)出的四川攀西地區(qū)芒果主要病蟲害,選取了其中的白粉病、瘡痂病、橫線尾夜蛾、薊馬、蚧殼蟲、橘小實(shí)蠅、流膠病、切葉象甲、炭疽病、細(xì)菌性黑斑病、蚜蟲、葉癭蚊12種病蟲害,以此選取圖片建立數(shù)據(jù)集。
數(shù)據(jù)集一部分圖片來自網(wǎng)絡(luò)公開的MangoLeafBD數(shù)據(jù)集[18],該數(shù)據(jù)集包含8個(gè)類別,選取其中的白粉病、切葉象甲、炭疽病、細(xì)菌性黑斑病4種病蟲害圖片。還有一部分通過爬蟲技術(shù),在百度搜索引擎獲取圖片。網(wǎng)絡(luò)獲取的圖片質(zhì)量參差不齊,先通過人工篩選為芒果病蟲害相關(guān)圖片,再對圖片進(jìn)行數(shù)據(jù)增強(qiáng),改變圖像亮度或進(jìn)行圖片翻轉(zhuǎn),如圖3所示,以此擴(kuò)充數(shù)據(jù)集,增加數(shù)據(jù)的魯棒性。
圖3 數(shù)據(jù)增強(qiáng)
最后共獲取6 769張圖片,具體數(shù)量見表1,其中4 879張圖片為訓(xùn)練集,1 220張圖片為驗(yàn)證集,670張圖片為測試集。
表1 芒果病蟲害圖片數(shù)量
實(shí)驗(yàn)軟件環(huán)境為Windows10操作系統(tǒng),以Pytorch為框架,使用python3.10版本的編程語言,CUDA11.6編程平臺(tái)。實(shí)驗(yàn)硬件環(huán)境為16 GB內(nèi)存,NVIDIA GeForce RTX3050 Ti顯卡,4 GB顯存,搭載AMD Ryzen 7 5800H處理器。訓(xùn)練參數(shù)epoch為100,batchsize為16,學(xué)習(xí)率為0.001,優(yōu)化器為AdamW,激活函數(shù)為ReLU6。
先使模型在大型數(shù)據(jù)集ImageNet-1k上進(jìn)行預(yù)訓(xùn)練,將訓(xùn)練后得到的模型分類器有1 000個(gè)類別,修改為與數(shù)據(jù)集相對應(yīng)的12個(gè)類別,以此用于芒果病蟲害識別。再將數(shù)據(jù)集6 769張圖片分為三部分,其中訓(xùn)練集有4 879張圖片,驗(yàn)證集有1 220張圖片,測試集有670張圖片。將圖片以3×224×224的大小,分別輸入到MobileNetV2、MobileNetV3、ShuffleNetV2、MobileViT等4個(gè)模型中,其中MobileViT_0為MobileViT未使用遷移學(xué)習(xí)時(shí)的模型。實(shí)驗(yàn)運(yùn)用了現(xiàn)在深度學(xué)習(xí)的常用方法遷移學(xué)習(xí),可以使模型具有較好的泛化性能,減少了模型因?yàn)閿?shù)據(jù)集較小而產(chǎn)生的過擬合現(xiàn)象。圖4為部分模型的訓(xùn)練損失曲線。
圖4 部分模型的訓(xùn)練損失曲線
說明評價(jià)指標(biāo)前需要先了解四個(gè)基本概念。真陽性(True Positive,TP)指預(yù)測結(jié)果為正,實(shí)際結(jié)果也為正;假陽性(False Positive,FP)指預(yù)測結(jié)果為正,實(shí)際結(jié)果為負(fù);假陰性(False Negative,FN)指預(yù)測結(jié)果為負(fù),實(shí)際結(jié)果為正。精確率、召回率、F1分?jǐn)?shù)三個(gè)指標(biāo)就是在這三個(gè)參數(shù)的基礎(chǔ)上進(jìn)行計(jì)算,如下式。精確率是針對預(yù)測結(jié)果而言,計(jì)算預(yù)測出來的某類樣本中有多少是被正確預(yù)測的。召回率是針對測試集而言,有多少樣本被正確地預(yù)測出來。而F1分?jǐn)?shù)同時(shí)考慮了精確率和召回率,是精確率和召回率的一種加權(quán)平均。
(1)
(2)
(3)
對各個(gè)分類類別計(jì)算精確率、召回率、F1分?jǐn)?shù)后,使用宏平均(表示所有類別對應(yīng)指標(biāo)的平均值)求取各模型對應(yīng)的精確率、召回率、F1分?jǐn)?shù)三個(gè)指標(biāo)。
從圖4可知,隨著迭代次數(shù)的不斷增加,準(zhǔn)確率在開始的前30個(gè)epoch增長較快,后面的70個(gè)epoch增長較慢,逐漸趨于穩(wěn)定,而損失值在前20個(gè)epoch下降較快,后面80個(gè)epoch下降較慢,逐漸趨于穩(wěn)定。表2為各個(gè)模型的參數(shù)量、FLOPs、精確率、召回率、F1分?jǐn)?shù)。
表2 各個(gè)模型的性能對比
MobileViT_0相較于使用了遷移學(xué)習(xí)的MobileViT模型,精確率相差6.37百分點(diǎn),召回率相差6.46百分點(diǎn),F1分?jǐn)?shù)相差6.65百分點(diǎn),證明遷移學(xué)習(xí)對于模型的準(zhǔn)確率增長有明顯的作用,可極大地提升模型的泛化能力,當(dāng)數(shù)據(jù)量較少的時(shí)候,可以通過遷移學(xué)習(xí)提高模型的準(zhǔn)確率,增加模型的識別效果。
表2為各個(gè)模型的性能實(shí)驗(yàn)結(jié)果。同種模型之間進(jìn)行比較,如MobileNetV3_small和MobileNetV3_large,同種模型參數(shù)量越大,模型精確度越高,可見模型大小也會(huì)影響到模型的識別效果。當(dāng)模型較小時(shí),學(xué)習(xí)能力就會(huì)受限制,影響模型的泛化性能,準(zhǔn)確率也會(huì)受影響。但是模型相差不大的ShuffleNetV2和MobileViT,FLOPs卻相差很多,得益于ShuffleNet的channel shuffle技術(shù),減少了1×1模塊的數(shù)量,極大地減少了計(jì)算量。
表3為MobileViT模型對各個(gè)病蟲害圖片實(shí)驗(yàn)后的數(shù)據(jù)。實(shí)驗(yàn)結(jié)果較優(yōu)的為橫線尾夜蛾和切葉象甲兩個(gè)類別,因?yàn)檫@兩個(gè)類別的圖片數(shù)量相對較少,可能實(shí)驗(yàn)數(shù)據(jù)相較其它類別會(huì)更單一。蚧殼蟲類別的精確率和召回率相差6.73百分點(diǎn),召回率在各個(gè)類別中最低為87.50%,證明此類最容易誤判為其它類別,可能與其他類別存在相似性。
表3 MobileViT實(shí)驗(yàn)數(shù)據(jù)
MobileViT模型的精確率為96.31%,召回率為96.27%,F1分?jǐn)?shù)為96.27%,均優(yōu)于其他模型,參數(shù)量為5.58 M,FLOPs為848.43 M,通過更大的模型和更多的時(shí)間,換取更高的識別精度。綜上所述,選擇MobileViT模型進(jìn)行芒果病蟲害識別,模型具有較好的識別性能和魯棒性。
基于遷移學(xué)習(xí),從參數(shù)量、FLOPs、精確率、召回率、F1分?jǐn)?shù)五個(gè)方面,比較了MobileNetV2、MobileNetV3、ShuffleNetV2、MobileViT這4種不同規(guī)模的輕量級深度學(xué)習(xí)網(wǎng)絡(luò)模型,最終選擇了MobileViT為芒果病蟲害識別模型,該模型的精確率為96.31%,召回率為96.12%,F1分?jǐn)?shù)為96.20%,表現(xiàn)均優(yōu)于其他模型。并且MobileViT模型的參數(shù)量為5.58 M,有助于解決農(nóng)業(yè)實(shí)際部署時(shí),計(jì)算資源有限和實(shí)時(shí)快速準(zhǔn)確識別的問題。