陳浪浪,張艷,2
(1. 貴州大學(xué)大數(shù)據(jù)與信息工程學(xué)院,貴州貴陽 550025;2. 貴陽學(xué)院農(nóng)產(chǎn)品無損檢測中心,貴州貴陽 550005)
水稻是世界主要糧食作物之一,病蟲害對水稻產(chǎn)量和質(zhì)量有較大影響,故準確檢測出病蟲害有利于及時防治。 計算機及相關(guān)軟硬件技術(shù)的發(fā)展推動了作物病蟲害識別方法從人工檢測到智能識別的發(fā)展。 相比人工識別手段,傳統(tǒng)圖像識別方法通過特征提取、特征選擇和特征分類[1-3]三個過程實現(xiàn)作物病蟲害圖像的自動分類,不僅具有較高的識別準確率和較少識別時間,也節(jié)省了人力、物力。 但傳統(tǒng)圖像識別方法存在特征提取繁瑣、識別時間長和泛化能力差等缺點。
近年來,深度學(xué)習(xí)技術(shù)在多個領(lǐng)域得到廣泛應(yīng)用,例如人臉識別、語音識別、行人檢測等[4-7]。同時,深度學(xué)習(xí)在圖像分類領(lǐng)域也展現(xiàn)出巨大潛力,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)的圖像識別技術(shù)能夠自動提取圖像特征[8],實現(xiàn)圖像端到端的自動分類,在農(nóng)作物病蟲害識別中可以取得好的識別效果。 黃雙萍等[9]提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)GoogLeNet 的水稻穗瘟病識別方法,在驗證集上最高準確率為92%;王東方等[10]對深度殘差網(wǎng)絡(luò)SE-ResNet-101 模型進行改進,并基于遷移學(xué)習(xí)提出一種農(nóng)作物病害分類模型,該模型在AIChallenger 2018農(nóng)作物數(shù)據(jù)集上對多種作物病害的平均識別準確率達到98%;楊紅云等[11]提出一種基于批歸一化和AlexNet 網(wǎng)絡(luò)的水稻病害識別模型,在測試集上最高識別準確率達到99.1%;王春山等[12]在殘差網(wǎng)絡(luò)(ResNet18)的基礎(chǔ)上,通過增加多尺度特征提取模塊,改變殘差鏈接方式,并將大卷積核卷積進行分解卷積,提出了改進的多尺度殘差輕量級病害識別模型,在蔬菜15 種病害圖像數(shù)據(jù)集上取得了95.59%的識別準確率。 曾偉輝[13]、黃林生[14]、許景輝[15]等為了能夠更準確地識別實際環(huán)境下的農(nóng)作物病害,用來源于實際生產(chǎn)環(huán)境的農(nóng)作物數(shù)據(jù)集來訓(xùn)練模型,提出的模型對多種農(nóng)作物病害都取得了較高的識別準確率。
隨著對卷積神經(jīng)網(wǎng)絡(luò)識別性能優(yōu)化的深入研究,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型的方法和思想也在不斷發(fā)展。 研究表明將注意力機制、遷移學(xué)習(xí)與深度卷積神經(jīng)網(wǎng)絡(luò)結(jié)合后在測試集上的識別準確率高于單一神經(jīng)網(wǎng)絡(luò)模型。 Zhao 等將ResNet50 與SE(squeeze-and-excitation)注意力模塊結(jié)合提出SE-ResNet50 模型[16],Chen 等結(jié)合MobileNetV2和CBAM(convolutional block attention module)注意力模型提出Mobile-Atten 模型[17],Malathi 等利用遷移學(xué)習(xí)方法對ResNet50 模型進行微調(diào)和改進得到新模型等,這些方法進一步拓展了神經(jīng)網(wǎng)絡(luò)的構(gòu)建思路[18],為圖像識別模型的優(yōu)化提供了更多參考。 但以上研究提出的模型在背景信息復(fù)雜、噪聲干擾嚴重的條件下對作物病害的識別能力差,并且將其移植到嵌入式或移動設(shè)備上實現(xiàn)作物病害識別時,存在參數(shù)量大、訓(xùn)練難、對硬件設(shè)備要求高等約束。
針對上述問題,為了實現(xiàn)田間復(fù)雜環(huán)境下的水稻病蟲害精準識別,本文基于遷移學(xué)習(xí)和坐標(biāo)注意力機制對深度卷積神經(jīng)網(wǎng)絡(luò)DenseNet121 進行改進,構(gòu)建了一個水稻病蟲害識別模型,可彌補傳統(tǒng)圖像識別方法和單一卷積神經(jīng)網(wǎng)絡(luò)的不足。
所用水稻數(shù)據(jù)集是文獻[19]公開發(fā)布的,獲取地址為https:/ /drive. google. com/open? id =ewBesJcguriVTX8sRJseCDbXAF_T4akK。 該數(shù)據(jù)集的全部圖像是在真實環(huán)境下采用不同的拍攝背景、光照條件、拍攝角度等收集,圖像背景更加貼合自然環(huán)境;包括假黑粉病、白葉枯病、穗頸瘟病、胡麻斑病、紋枯病病株及褐飛虱、稻螟蟲、蚜繭蜂為害株和健康植株的圖片。 該水稻病蟲害數(shù)據(jù)集的部分樣本圖像如圖1 所示。
圖1 水稻數(shù)據(jù)集中各類病蟲害圖像
由于該水稻病蟲害數(shù)據(jù)集的圖像數(shù)量較少,為了避免圖像樣本過少給神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練帶來的過擬合現(xiàn)象和適應(yīng)深度模型訓(xùn)練所需大樣本的要求,采用旋轉(zhuǎn)、加噪聲、亮暗調(diào)節(jié)和翻轉(zhuǎn)4 種數(shù)據(jù)增強方法進行離線增強擴充圖像樣本7 倍,樣本圖像由原來的1426 幅增加到9982 幅,并將其按4 ∶1的比例劃分為訓(xùn)練集和測試集。 水稻各類病蟲害圖像數(shù)量詳細情況如表1 所示。 為了滿足DenseNet121 網(wǎng)絡(luò)的輸入要求,將所有圖像的尺寸調(diào)整為224×224 像素。
表1 水稻數(shù)據(jù)集病蟲害種類與圖像數(shù)量分布 (幅)
本文所構(gòu)建的深度CNN 模型以DenseNet121為基礎(chǔ)網(wǎng)絡(luò),融合坐標(biāo)注意力(coordinate attention,CA)網(wǎng)絡(luò)實現(xiàn)圖像重要特征的重新標(biāo)定,采用遷移學(xué)習(xí)方法訓(xùn)練網(wǎng)絡(luò)加快模型收斂和緩解模型在小數(shù)據(jù)集上產(chǎn)生的過擬合現(xiàn)象。
1.2.1 模型整體架構(gòu) 在眾多卷積神經(jīng)網(wǎng)絡(luò)模型中,DenseNet 是圖像特征提取能力強、參數(shù)量少的最佳模型之一。 坐標(biāo)注意力機制可以很好地利用空間注意力和通道注意力來學(xué)習(xí)圖像空間結(jié)構(gòu)信息和通道間關(guān)系的重要性,提高模型對不同病蟲害微小特征的提取能力。 本文基于兩者構(gòu)建的CA-DenseNet121 網(wǎng)絡(luò)模型整體結(jié)構(gòu)如圖2 所示。
圖2 CA-DenseNet121 網(wǎng)絡(luò)
在ImageNet 上預(yù)訓(xùn)練DenseNet121 網(wǎng)絡(luò)并去掉分類層,然后在預(yù)訓(xùn)練的網(wǎng)絡(luò)后面加入CA 模塊,使模型聚焦于水稻病區(qū),減少復(fù)雜背景對病蟲害識別的影響;隨后增加一個256×1×1 的卷積層用于提取高維特征,并將注意模塊輸出與新增卷積層的輸出在通道維度進行連接,實現(xiàn)淺層與深層特征的融合,避免圖像信息丟失;嵌入一個CA模塊提高模型的表達能力;增加一個批歸一化層(batch normalization,BN),使網(wǎng)絡(luò)收斂更快、更穩(wěn)定;加入一個新的具有實際類別數(shù)量的全連接Softmax 層作為網(wǎng)絡(luò)的新分類層。 CA -DenseNet121 結(jié)構(gòu)配置如表2 所示。
表2 CA-DenseNet121 組成結(jié)構(gòu)
1.2.2 DenseNet 網(wǎng)絡(luò) DenseNet 網(wǎng)絡(luò)是采用前向密集連接方式將所有網(wǎng)絡(luò)層相互連接,通過前向密集連接的方式,第k 層將得到前面所有層的特征圖,并將本層的特征圖輸出到后面所有層。其輸入與輸出之間的映射關(guān)系見公式(1):
式中k 表示CNN 層數(shù),yk是第k 層的輸出特征圖,Hk([y0,y1,...,yk-1])表示將0 到k-1 層的特征圖進行級聯(lián)后作為后面層的輸入。
DenseNet 網(wǎng)絡(luò)結(jié)構(gòu)[20]如圖3 所示。 Dense Block 模塊由BN、Relu、1×1 卷積、BN、Relu、3×3卷積組成,用于提取圖像特征,通過多個Dense Block 的堆疊使用實現(xiàn)從圖像低層信息到高層語義信息的提??;Transition Layer 模塊由BN、Relu、1×1卷積層和2×2 平均池化層組成,用于減少特征圖的維數(shù)以降低模型的復(fù)雜度。
圖3 DenseNet 網(wǎng)絡(luò)結(jié)構(gòu)
1.2.3 遷移學(xué)習(xí) 深度卷積神經(jīng)網(wǎng)絡(luò)需要大量標(biāo)注的數(shù)據(jù)訓(xùn)練模型,但在一個領(lǐng)域收集大量標(biāo)注數(shù)據(jù)是一項具有挑戰(zhàn)性的任務(wù)。 因此,當(dāng)面對相似的深度學(xué)習(xí)任務(wù)時,遷移學(xué)習(xí)[21]就成了首選方案。 神經(jīng)網(wǎng)絡(luò)中常用的遷移學(xué)習(xí)指參數(shù)遷移,即把一個已經(jīng)訓(xùn)練好的模型的參數(shù)遷移到新模型上助其訓(xùn)練的方法,其目的是將源領(lǐng)域?qū)W習(xí)到的信息推廣到目標(biāo)領(lǐng)域。 遷移學(xué)習(xí)與全新學(xué)習(xí)的區(qū)別在于,遷移學(xué)習(xí)的模型參數(shù)在源數(shù)據(jù)集上已訓(xùn)練好,而全新學(xué)習(xí)的模型參數(shù)是隨機初始化的,需要在目標(biāo)數(shù)據(jù)集上從頭開始訓(xùn)練。 遷移學(xué)習(xí)減少了構(gòu)建CNN 模型所需的訓(xùn)練數(shù)據(jù)、計算資源,并加快模型收斂。 因此,利用遷移學(xué)習(xí)將在ImageNet 上預(yù)訓(xùn)練的DenseNet121 模型的權(quán)重參數(shù)遷移到本任務(wù)上,微調(diào)網(wǎng)絡(luò),并精調(diào)參數(shù),以適應(yīng)本數(shù)據(jù)集。 遷移學(xué)習(xí)流程如圖4 所示。
圖4 遷移學(xué)習(xí)流程框圖
1.2.4 注意力機制 水稻圖像都是在田間環(huán)境下采集,背景復(fù)雜,伴隨許多噪聲信息。 水稻病蟲害特征的空間位置信息與重要特征通道信息對準確識別水稻病蟲害類型具有重要作用。 注意力機制通過調(diào)整特征圖中每個通道的權(quán)重,幫助模型捕獲到對識別任務(wù)更有幫助的特征信息,并增強有用信息,減弱不重要信息,增強網(wǎng)絡(luò)的特征提取能力,抑制冗余背景信息和噪聲干擾,提高模型的識別性能。 坐標(biāo)注意力通過坐標(biāo)信息嵌入和坐標(biāo)注意力圖生成兩個操作獲得注意力特征圖,從而使移動網(wǎng)絡(luò)獲取更大區(qū)域的位置信息而避免引入大的計算開銷。 CA 結(jié)構(gòu)[22]如圖5 所示。
圖5 CA 結(jié)構(gòu)
圖6 遷移學(xué)習(xí)模型與普通DenseNet121 模型性能對比
首先進行坐標(biāo)信息嵌入。 全局平均池化見公式(2):
式中zc是第c 個通道的輸出特征圖,xc是第c 個通道的輸入特征圖,H、W 是特征圖的高和寬,(i,j)是特征圖上的坐標(biāo)位置。 為捕捉精確的位置信息,CA 將全局池化操作分解為沿著輸入特征圖的水平方向和垂直方向分別進行池化操作,從而獲得不同位置信息的特征圖。 垂直方向和水平方向的一維特征分別見公式(3)和(4):
其次進行坐標(biāo)注意力生成操作。 將公式(3)和(4)的結(jié)果分別通過公式(5)(6)(7)(8)進行計算得到輸出特征圖。
式中F1表示拼接操作,f∈RC/r×(H+W);r 是控制模塊大小的超參數(shù),θ 是坐標(biāo)激活函數(shù),其公式為。 然后分別經(jīng)過1×1 卷積后利用Sigmoid 非線性激活函數(shù),分別得到垂直和水平方向注意力圖的權(quán)重,如式(6)(7)所示:
式中Fh、Fw表示兩個1×1 卷積,σ 是Sigmoid 激活函數(shù)。 最后將輸入的特征圖與水平和垂直權(quán)重相乘,獲得坐標(biāo)注意力輸出特征圖,如式(8)所示:
不同于只關(guān)注通道權(quán)重的通道注意力機制,CA 模塊還對空間信息進行編碼,不僅可以更準確地定位感興趣對象的位置,還能幫助整個模型更好地識別目標(biāo)對象。
本實驗是以Keras 深度學(xué)習(xí)框架和Tensorflow 為后端,在Kaggle 高性能計算平臺上運行完成。 平臺硬件環(huán)境:NVIDIA Tesla P100 GPU,16 G 顯存。 軟件環(huán)境:Python 3.8,Keras 2.4.9,Tensorflow 2.4.1。
參數(shù)設(shè)置:學(xué)習(xí)率初始設(shè)置為0.001,每經(jīng)過30 個批次學(xué)習(xí)率進行衰減,衰減因子為0.1,經(jīng)過各個模型的反復(fù)試驗后,最終將學(xué)習(xí)率設(shè)為0.00001;批次大小設(shè)為32,訓(xùn)練批次數(shù)設(shè)為100次,優(yōu)化算法選用自適應(yīng)矩估計(adaptive moment estimation,Adam),損失函數(shù)選用交叉熵損失函數(shù)。
為了全面衡量模型的識別性能,采用分類模型中常用的準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1-score 和模型參數(shù)量一起作為模型的評價指標(biāo)。 其中,準確率、精確率、召回率、F1-score 的計算公式如下。 參數(shù)量表示CNN 模型中可預(yù)訓(xùn)的參數(shù)的個數(shù),以百萬(million,M)為單位,表示1×106。
式中TP(True Positive)是正確預(yù)測的正樣本數(shù)量,TN(True Negative)是正確預(yù)測的負樣本數(shù)量,F(xiàn)P(False Positive)是錯誤預(yù)測的正樣本數(shù)量,F(xiàn)N(False Negative)是錯誤預(yù)測的負樣本數(shù)量。 準確率表示正確預(yù)測的樣本數(shù)在所有樣本數(shù)中的占比;精確率表示正確預(yù)測的正樣本數(shù)在所有預(yù)測為正樣本數(shù)中的占比;召回率表示正確預(yù)測的正樣本數(shù)在所有正樣本數(shù)中的占比;F1-score 是根據(jù)精確率與召回率的調(diào)和平均值定義的,是綜合考慮精確率與召回率的指標(biāo)。
從圖 6 看出, 基于遷移學(xué)習(xí)的 TL -DenseNet121 模型收斂更快,在訓(xùn)練初始時刻就得到較低的損失;在進行25 次迭代后,模型的識別準確率便接近峰值(測試集上為98.10%),而模型損失值基本降到1.5;在迭代55 次后,模型的識別準確率在98%附近振動,損失也維持在1.47 上下,不再明顯下降,表明模型基本收斂。 相比之下,普通的DenseNet121 模型的準確率曲線收斂較慢,在迭代25 次時,測試集的準確率才達到70%;迭代60 次時,模型識別準確率達到74%,損失降到1.74 左右;直到迭代80 次時,模型的準確率才接近峰值(測試集上僅為82.47%),而損失值為1.62。
2 種模型在測試集上的識別結(jié)果(表3)顯示,通過遷移學(xué)習(xí)方式訓(xùn)練的模型性能有較大提升,平均準確率提高了15.63 個百分點,精確率、召回率和F1-score 分別提高了36.70、28.64、33.04 個百分點。 由此可知,通過遷移學(xué)習(xí)方法訓(xùn)練的模型準確率會有不同程度的提升,同時能加快模型收斂。
表3 遷移學(xué)習(xí)模型與普通DenseNet121模型性能對比
為了驗證添加注意力機制對模型性能是否有影響,在保持實驗條件和參數(shù)設(shè)置一致的前提下,都用遷移學(xué)習(xí)方式加載預(yù)訓(xùn)練模型,然后進行不加注意力的DenseNet121 和加入注意力的CADenseNet121 模型的性能對比。 由表4 看出,加入坐標(biāo)注意力后,模型準確率、精確率、召回率、F1-score 分別提高了0.85、0.10、0.48、0.29 個百分點。添加坐標(biāo)注意力機制能快速定位病蟲害位置信息并增強對病害分類有用的特征信息的權(quán)重,抑制背景噪聲的干擾,增強模型的特征提取能力,提高水稻病蟲害的識別準確率。
表4 融合注意力機制模型與普通DenseNet121模型的性能對比
表5 不同模型識別性能比較
2.3.1 不同模型性能比較 為了驗證改進模型在水稻病蟲害識別任務(wù)上的有效性和優(yōu)越性,在相同實驗條件下,均采用遷移學(xué)習(xí)方式訓(xùn)練后,將本文提出的CA-DenseNet121 模型與ResNet50、DenseNet121、 InceptionV3、 Xception、 Inception-ResNetV2 模型進行比較,精確率分別提高了2.80、1.04、0.86、0.63、0.13 個百分點,準確率分別提高0.70 ~2.80 個百分點。 從模型參數(shù)量比較,CADenseNet121 模型的參數(shù)量為7.23 M,分別為ResNet50、Xception、DenseNet121、InceptionV3、InceptionResNetV2 的30.70%、34.70%、103.87%、33.18%、13.09%。 改進的模型有效平衡了模型識別精度與模型復(fù)雜度。
2.3.2 構(gòu)建模型的識別效果 利用構(gòu)建的CADenseNet121 模型在水稻病蟲害測試集上對8 種病蟲害與健康植株進行識別,結(jié)果(表6)顯示,模型對白葉枯病、褐飛虱、胡麻斑病、假黑粉病、穗頸瘟病、蚜繭蜂、稻螟蟲的識別效果最好,識別準確率、精確率、召回率和F1-score 都達到100%;對健康水稻的識別效果較差,但其召回率和準確率達到了100%,精確率和F1-score 也在99%以上;對紋枯病的識別效果最差,但精確率、準確率、召回率和F1-score 都高于99%。 可見該模型具有較高的識別準確率和魯棒性。
表6 CA-DenseNet121 對水稻病蟲害圖像的識別結(jié)果
但是部分患紋枯病植株會被錯誤識別為健康植株,可能是因為神經(jīng)網(wǎng)絡(luò)模型提取的圖像特征是從淺層特征(如顏色、紋理和邊緣)到高層語義特征,當(dāng)病株處于發(fā)病初期、病害特征不明顯時,模型在底層就會提取到與健株相同的顏色、紋理或邊緣等特征,最終錯誤識別。
為了實現(xiàn)田間環(huán)境下水稻病蟲害的精準識別,并彌補傳統(tǒng)圖像識別方法和單一卷積神經(jīng)網(wǎng)絡(luò)的不足,本文基于DenseNet21 網(wǎng)絡(luò)并融合遷移學(xué)習(xí)和注意力機制提出一種水稻病蟲害識別方法。 該模型利用遷移學(xué)習(xí)將在ImageNet 預(yù)訓(xùn)練的DenseNet21 網(wǎng)絡(luò)參數(shù)的權(quán)重知識遷移到本任務(wù)的模型上,以緩解模型在小數(shù)據(jù)集上產(chǎn)生的過擬合現(xiàn)象;引入坐標(biāo)注意力機制增強模型對病蟲害識別有用的特征的關(guān)注,減弱對無用信息的關(guān)注,提高模型對病蟲害微小特征的提取能力,從而降低模型的錯誤識別率。
(1)相比普通DenseNet21 模型,經(jīng)遷移學(xué)習(xí)訓(xùn)練的模型識別準確率提高了15.63 個百分點。經(jīng)遷移學(xué)習(xí)的模型已經(jīng)學(xué)習(xí)到有用的相關(guān)通用特征,當(dāng)模型參數(shù)遷移到作物病蟲害識別任務(wù)模型后只需進行增量式學(xué)習(xí),不容易對新數(shù)據(jù)過擬合,因此具有良好的泛化能力,能有效減少訓(xùn)練時間并提高識別準確率。
(2)引入注意力機制將模型準確率提升了0.85個百分點。 坐標(biāo)注意力機制可更加準確地找到水稻病蟲害發(fā)病區(qū)域以及病蟲害微小特征信息,提高對病蟲害識別有用的特征信息的關(guān)注,減弱對識別無用的特征信息的關(guān)注,提升了模型的特征表達能力,從而降低錯誤識別率。
(3)本文提出的CA-DenseNet121 模型對水稻病蟲害的識別準確率達98.95%,相比單一DenseNet121 提升了1.22 個百分點,但參數(shù)量僅增加0.27 M。 該模型在田間復(fù)雜環(huán)境下的水稻病蟲害識別任務(wù)上具有較高的識別準確率,并較好地平衡了模型識別性能和模型復(fù)雜度。