?

CA-MobileNet V2:輕量化的作物病害識別模型

2024-02-22 07:44陳孝玉龍林建吾蔡季桐
計算機工程與設計 2024年2期
關鍵詞:輕量化注意力卷積

陳 洋,張 欣+,陳孝玉龍,林建吾,蔡季桐

(1.貴州大學 大數據與信息工程學院,貴州 貴陽 550025;2.貴州大學 農學院,貴州 貴陽 550025)

0 引 言

傳統的病害自動識別方法[1]是對病灶進行劃分和邊緣提取后的特征送入支持向量機進行分類[2]。該方式泛化能力差,不適應多種類、多病害的檢測。隨著深度學習的應用越來越廣泛,國內外許多學者在基于深度學習的植物病害識別上做出了許多工作。Ferentinos等[3]提出一個基于CNN的模型識別25個種類的植物病蟲害。文獻[4]通過進行遷移學習的VGG19提取番茄病害特征后,在支持向量機中進行分類。但我們仍需尋求輕量、高效、快捷的農作物病害識別網絡。Tang等[5]將輕量化網絡ShuffleNet用于診斷葡萄病害,并取得了99.14%的準確率。農作物病害的識別屬于細粒度圖像分類,在卷積神經網絡中加入注意力機制以聚焦病灶區域,可以提高準確率。Chen等[6]在MobileNet V2中加入注意力機制,使得模型在真實環境中能夠觀察到細微的病害特征,提高了模型在復雜背景下的學習能力。王美華等[7]改進了CBAM注意力模塊在農作物病蟲害的細粒度識別中取得了良好的效果,但是改進后的注意力模塊大大增加了MobileNet V2的大小,在壓縮后也達到28.3 MB。因此在MobileNet中加入輕量化的注意力模塊是保證模型輕量的關鍵。

針對上述問題,本文通過在MobileNet V2中嵌入輕量化的坐標注意力模塊(CA)[8]和TanhExp[9]激活函數的方式設計了CA-MobileNet V2。并將訓練的模型部署于手機APP中,便于作物病害的實時檢測。

1 病害識別模型的構建

1.1 基于CA模塊和TanhExp激活函數的改進型MobileNet V2

基于深度學習的卷積神經網絡涉及到大量的參數和更深的網絡層數,因此需要耗費大量的計算資源,例如VGG16[10]和Resnet50[11]分別有著1.38億和0.256億的參數,其模型大小分別為528 MB和98 MB。在實際的移動農業應用中難以部署如此龐大的模型,因此能夠在移動端部署的深度學習模型MobileNet系列在近年來獲得巨大的成功和廣泛的應用。

MobileNet V2 是谷歌團隊于2018年提出來可適用于移動端的輕量化深度學習模型,與MobileNet V1相比體積更小,模型的參數量更少。MobileNet V2將普通卷積更換為深度可分離卷積。如圖1所示,深度可分離卷積有深度卷積和逐點卷積構成,深度卷積將每個通道分組進行卷積,可 以更好地收集空間特征的同時顯著減少參數量。逐點卷積則將卷積核的高和寬都設為1,將深度設置為輸入通道數。在深度卷積后級聯,因此參數量更少。深度可分類卷積計算和普通卷積計算的比率如下式

(1)

圖1 深度可分離卷積

其中,Dk表示卷積核的高度和寬度,DF表示輸入特征圖的高度和寬度,M表示通道數量,N表示輸出特征圖的通道數。

由上式易知,深度可分離卷積大大減小了普通卷積的計算量,因此本文將MobileNet V2作為提取病害特征的骨干網。

如圖2所示,模型首先讀入具有RGB三通道的圖像,將圖像送入改進后的MobileNet V2中進行特征提取,最后在分類器中完成對病害圖像的分類。

圖2 CA-MobileNet V2模型結構

如表1所示,MobileNetV2主干網絡由17個具有逆殘差結構的Bottleneck、一個3×3標準卷積和一層平均池化層(Avgpool)構成,其中t代表1×1升維擴張的倍數,c為輸出的深度,n代表當前結構的重復次數,s為步距。

表1 MobileNetV2網絡結構

如圖2所示,我們在每個具有逆殘差模塊的Bottleneck中都嵌入了坐標注意力模塊(CA),以增強網絡的特征提取和聚焦病害區域的能力。此外本文將網絡的第一層和最后一層卷積層中的Relu激活函數換成TanhExp激活函數,加速模型的收斂速度。

逆殘差結構(Inverse network structure):如圖3所示,

圖3 逆殘差模塊

當步長(stride)為1時,輸入通過1×1的卷積升擴展特征圖維度,再經過3×3的深度可分離卷積進行特征提取,最后再經過1×1的卷積進行降維后與輸入連接,完成逆殘差模塊的構建。當步長為2時沒有與輸入相連的捷徑分支。

1.2 坐標注意力(coordinate attention)

近年來,輕量化的網絡中注意力模塊取得巨大的成功和廣泛的應用,其中SE(squeeze-and-excitation)[12]、CBAM[13]模塊等注意力模塊對于提升模型性能有顯著的效果。SE注意力模塊在2D全局平均池化下計算通道注意力,以極低的計算成本帶來顯著的性能提升。然而,SE注意力模塊只考慮了通道注意力,忽略位置信息的重要性。在后來的工作中,CBAM,通過減少輸入張量的通道位數,使用卷積計算空間注意力,以此更好利用了位置信息。但卷積僅考慮局部區域信息,無法建模長期依賴關系。坐標注意力(CA)模塊如圖4所示。

圖4 CA模塊

CA模塊分別沿著垂直和水平方向分解下式全局池化,轉化為一對一維的特征編碼

(2)

其中,zc是第c個通道的輸出,H和W分別表示池化核的高度和寬度。上式的全局池化可以將空間信息進行全局編碼,卻難以保留位置信息。

水平方向分解后高度為h的第c個通道輸出如下

(3)

同樣,垂直方向分解后寬度為W的第c個通道輸出如下

(4)

通過上述的變換注意力模塊捕捉到沿著一個空間方向的長期依賴關系,同時保存下另一個空間方向的位置信息。最后通過上式聚合的特征圖拼接起來后送入1×1的卷積

f=δ(F1([zh,zw]))

(5)

其中,f∈C/r×(H+W)表示在水平方向和垂直方向進行特征編碼的特征圖。δ是非線性激活函數,F1表示1×1的卷積操作,[·,·] 表示沿著空間維數拼接操作。

利用兩個1×1的卷積的變換Fh和Fw

gh=σ(Fh(fh))

(6)

gw=σ(Fw(fw))

(7)

這里的σ是Sigomid激活函數,目的是降低模型的計算復雜度和計算開銷。

最后輸出為

(8)

如圖5所示,本文中將CA模塊嵌入Mobile Net V2的逆殘差模塊中,這既保證網絡的輕量化,又使得資源更加合理的分配,CA模塊能夠快速找到病害圖像中感興趣的區域,忽略背景和噪聲信息。具體來說CA模塊可以利用前文所述的Sigmoid的激活函數對卷積網絡學習的病害特征圖進行加權系數和加權和的操作得到一個新的特征圖,并與原始特征圖進行融合,這能夠有效聚焦病害區域并抑制噪聲和背景信息,增強網絡的學習能力。

圖5 嵌入CA模塊

1.3 TanhExp激活函數

在對視覺任務有著實時性要求的移動神經網絡或輕量化模型中,神經網絡的參數比傳統的深度神經網絡要小得多,因此往往性能也受到限制。本文將一種適用于輕量化神經網絡的激活函數加入MobileNet V2中,使模型收斂速度加快,分類性能提升的同時還提升了模型的魯棒性和泛化性。TanhExp激活函數如圖6所示。

圖6 TanhExp 和Relu激活函數

TanhExp函數表達式如下

f(x)=xtanh(ex)

(9)

其中,tanh代表雙曲線正切函數

(10)

盡管Relu激活函數因其可以有效避免梯度消失和加快學習速度而被廣泛使用,但仍被研究人員懷疑Relu激活函數是否是所有情況的最佳方案。近年來隨著研究的深入,人們發現Relu激活函數存在幾個缺點。如圖所示Relu激活函數是非負激活函數,因此它具有大于零的均值,這可能導致之后的網絡層出現偏差。其次Relu激活函數是硬截斷,其負半軸完全為0可能會出現對數據沒有激活作用的問題[9]。與Relu激活函數相比TanhExp有著以下優點:

(1)在正半軸輸入大于1的時候,輸出和輸入可近似為線性變換,這在訓練中是合理的。

(2)與Relu相比TanhExp有著更接近于零的梯度,可以加速網絡的參數更新,反向傳播時神經網絡可以更新參數如下式

(11)

在圖像分類中使用交叉熵損失如下

(12)

(13)

因此,梯度稍大的時候,權值更新較快,收斂速度也快。但是當梯度過大時,交叉熵損失達不到全局最小值從而導致網絡不收斂。因此TanhExp的設計是合理的。

2 實驗結果與分析

2.1 實驗數據集

本文的數據集來自Kaggle的PlantifyDr[14]農作物病蟲害圖像。

PlantifyDr數據集融合了多個數據集和多種數據增強,因此不進行額外的數據增強。數據集包含蘋果、玉米和番茄等10種作物的10種健康狀態和27種病蟲害。本文所用數據集農作物病蟲害圖像共124 636張。劃分訓練集有112 191張,驗證集有12 445張。

同時為了更好驗證論文提出的算法在真實環境下的先進性,我們在Turkey-PlantDataset[15]數據集中進行驗證實驗。Turkey-PlantDataset數據集15種病害其中訓練集3562張,驗證集885張。因為真實環境下的病害數據集的采集較為困難,所以Turkey-PlantDataset的圖像數量較少。

如圖7所示,PlantifyDr數據集農作物種類較多且病害種類較為齊全,且有部分野外環境下的病害圖像,這更適應于模型的實際部署。因此最終的APP部署中將用PlantifyDr訓練好的模型文件部署至移動端APP中。

圖7 PlantifyDr和Turkey-PlantDataset數據集示例

2.2 評估指標

本文采用分類準確率(Accuracy)和召回率(Recall)來評估模型分類精度和召回率

(14)

(15)

TP表示正樣本被正確地劃分為正樣本的個數;FP表示負樣本被錯誤地劃分為正樣本的個數;FN表示正樣本被錯誤地劃分為負樣本的個數;TN表示負樣本被正確地劃分為負樣本的個數。

2.3 實驗環境和超參數設置

本文使用的實驗環境:python 3.8和pytorch的深度學習框架,CPU為Intel(R)Xeon(R)W-2235 CPU @ 3.80 GHz,GPU為NVIDIA GeForce GTX 2080Ti,顯存11 GB,操作系統為Windows 10。使用交叉熵損失函數作為損失函數,訓練期間的初始學習率和批次大小分別為0.002和16。迭代次數(Epoch)為100。

2.4 網絡模型對比實驗

將本文提出的改進型MobileNet V2、MobileNet V2、MobileNet V3[16]、ResNet50、DenseNet 121[17]等模型的TOP 1精度和召回率進行對比見表2。

表2 模型對比實驗

如表2所示在TOP 1的精度下,本文提出的算法在實驗室環境中的數據集中優于其基線網絡MobileNet V2 0.83%,在真實環境的數據集中領先2.6%。這是因為在病害的細粒度圖像分類中,注意力機制能夠更好地關注病害特征及其區域,同時較好地抑制圖像中的復雜背景和噪聲。在同為輕量化網絡的MobileNet V3-large中,本文的算法領先10.13%。這是因為MobileNet V3的設計中限制計算量和參數量之后算法不可避免得在細粒度分類中的表現較差,但在真實環境下的小數據集中表現良好,這是因為輕量化的MobileNet V3模型對大數據集擬合能力不足,同時MobileNet V3中默認加入SE注意力模塊,使得網絡可以忽略復雜噪聲。在深度卷積神經網絡中,ResNet因為其殘差連接機制,能夠重用特征,取得較高的準確率。本文算法比ResNet 50略高一點,但是ResNet 50卻有著90.2 MB的模型規模,這顯然是不適合今后部署于移動端或其它邊緣設備之中。同樣DenseNet 121的模型規模和檢測準確率在兩種數據集中都不及本文算法。在真實環境下的Turkey-PlantDataset數據集中本文設計的算法相比于理想條件下的PantifyDr準確率領先較多。在VGG16、GooLeNet等傳統卷積神經網絡中,本文算法在真實環境下的數據集中明顯領先,進一步驗證本文算法的魯棒性和泛化性,更適用于真實環境的病害檢測。同時本文所提出的算法在召回率(Recall)指標中依舊表現良好,在兩種數據集中均領先其它網絡。

2.5 注意力模塊對比實驗

將本文提出的CA與SE、CBAM等模塊進行對比。表3中所有的注意力模塊均與CA模塊放在同一位置,并且激活函數都是相同。

表3 注意力模塊對比實驗

如表3所示在MobileNet V2中加入上表的注意力模塊之后,本文的CA模塊的在PlantifyDr數據集中分別比SE、CBAM、SK、GE-θ模塊高出0.14%、0.12%、0.11%、0.19%,在Turkey-PlantDataset數據集中則分別領先2.36%、1.35%、2.32%、1.23%。這驗證了加入的CA模塊的先進性。在加入注意力模塊之后的MobileNet V2不可避免得增加了模型規模,但是加入輕量化CA模塊之后的模型大小也只有10.6 MB。

2.6 模型精度和收斂速度

本文對比加入TanhExp激活函數MobileNet V2和原生網絡的激活函數(Relu)結果見表4。

表4 激活函數對比實驗

如表4所示,在MobileNet中將Relu激活函數替換為TanhExp激活函數后,模型的驗證準確率在兩個數據集中均有提升,在真實環境下的PlantDiseaseNet數據集中提升較為明顯。這說明TanhExp激活函數在有噪聲的圖像數據中相對于Relu激活函數有較強的魯棒性和泛化性。

如圖8所示,在加入TanhExp激活函數的MobileNet V2在PlantifyDr數據集中的訓練損失曲線一直低于原生Relu 激活函數的MobileNet V2,這驗證了TanhExp加速模型的學習和收斂過程。

圖8 MobileNet V2與MobileNet V2-TanhExp的訓練損失

如圖9所示,在加入TanhExo激活函數的MobileNet V2在PlantifyDr數據集中的驗證損失曲線在前幾個Epoch的驗證損失就遠低于原生Relu激活函數的MobileNet V2,并且波動幅度較小,這驗證了TanhExp激活函數增強了模型的泛化能力和魯棒性,為部署于移動端APP中更為實際的應用提供了良好的抗噪能力。

圖9 MobileNet V2 與MobileNet V2-TanhExp的驗證損失

3 模型移動端部署

為了將深度學習的模型較好應用于實際的農業生產生活中,我們開發了基于Android系統的農作物病害檢測的APP。將訓練好的模型部署至華為云服務器,并通過APP的拍攝和上傳圖片功能將需要預測的圖片路由至服務器中進行推理。如圖10所示,我們開發的病害檢測的APP能夠準確識別PlantifyDr數據集中不同作物的不同病害,并且推理速度較快。此外本文設計的模型較為輕量,方便移動端部署。

圖10 農作物病害檢測APP應用展示

4 結束語

本文針對多種農作物病害識別分類的準確率低,難以聚焦病害區域等問題提出加入坐標注意力模塊的 CA-MobileNet V2。實驗結果表明我們提出的模型同時兼具輕量化與高準確率的特點。在復雜環境下的病害識別中表現更為優異。針對傳統深度學習模型魯棒性和泛化能力差等特點,在模型中加入TanhExp激活函數,實驗結果表明,加入激活函數的模型具有更快的收斂速度,和更高的精度。針對農業的實際生產生活中的病害檢測困難,本文將深度學習模型部署至移動端APP中,極大地方便了種植者辨識作物病害。

猜你喜歡
輕量化注意力卷積
讓注意力“飛”回來
汽車輕量化集成制造專題主編
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
一種輕量化自卸半掛車結構設計
一種輕量化自卸半掛車結構設計
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
瞄準掛車輕量化 鑼響掛車正式掛牌成立
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合