曾偉輝 張文鳳 陳 鵬 胡根生 梁 棟
(1.安徽大學互聯網學院, 合肥 230039; 2.科大國創軟件股份有限公司中央研究院, 合肥 230088; 3.安徽大學農業生態大數據分析與應用技術國家地方聯合工程研究中心, 合肥 230601)
近年來,隨著全球氣候變暖等生態環境的變化,我國農作物受災程度逐年加深,損失逐年加重。水稻是我國主要糧食來源,其生長受各種害蟲影響,害蟲監測識別是防災減災工作的關鍵任務之一[1]。由于水稻害蟲種類繁多,人工識別任務繁重,無法及時對蟲害進行有效防控,導致農作物大量減產。在野外環境下如獲取較高分辨率的害蟲圖像數據,需采用相機拍攝害蟲靜態圖像。但野外環境下,水稻害蟲易動,導致獲取的害蟲圖像往往不清晰、分辨率低,且部署在真實的農田里的攝像頭密度稀疏,使害蟲難以被有效地識別和監視。故無法輕易獲得足夠的高分辨率圖像進行識別,這嚴重影響了識別性能[2]。因此提高低分辨率水稻害蟲圖像的識別精度,可加強對害蟲的及時診斷和有效防控,對于減少經濟損失、控制農藥濫用、保證糧食安全具有重要意義[3]。
隨著計算機視覺技術的發展,國內外學者對害蟲識別已經取得了一定的進展。自KRIZHEVSKY使用AlexNet[4]模型在ILSVRC(ImageNet large-scale visual recognition challenge)[5]中應用開始,深度學習[4, 6]在全世界掀起了研究熱潮,顯著提高了識別害蟲攻擊和控制蟲害風險的效率[7-11]。目前在水稻病蟲害圖像識別研究方面,大部分是針對噪聲小、遮擋不嚴重和分辨率高的公開數據集害蟲圖像進行識別和模型構建[12-18],但將此模型直接遷移用來識別實際情況下噪聲大、分辨率低的蟲害圖像時會存在泛化能力弱的問題,準確率和魯棒性無法達到應用需求。因此,對獲取的低分辨率害蟲圖像進行恢復和高分辨率處理是提高病蟲害識別精度的關鍵。
在低分辨率圖像識別領域中,DAI等[19]針對低分辨率害蟲圖像的識別任務,使用超分的方法,提出了一種具有四次注意和殘差密集融合機制的生成性對抗網絡(GAN),用于低分辨率害蟲圖像的變換。該方法在圖像重建方面更強大,處理后的圖像分類準確率得到大幅提高。ZHU等[20]提出了一種注意力感知增強網絡(APEN)的創新框架,它以端到端的方式集成了感知增強和注意力機制,用于低分辨率圖像分類。WEN等[21]設計了一個基于增強型超分辨率生成對抗網絡(ESRGAN)的作物病害分類網絡,使用微調的ESRGAN模型恢復真實的作物信息,提高作物病害分類的準確性。目前在水稻病蟲害圖像識別研究方面,大部分是對超分網絡進行改進,針對低分辨率的害蟲圖像識別和分類算法較少,且大部分是對公開數據集進行識別和模型構建,并未開發相對應的應用終端。因此,開發針對普通用戶的低分辨率害蟲圖像智能識別系統應用終端,對于提升水稻生產信息化水平具有重要意義。
針對稻田自然環境下難以在害蟲靜止且近距離時拍攝高質量圖像,導致識別模型對實際獲取的較低分辨率害蟲圖像識別精度較低,本文對低分辨率(Low-resolution,LR)圖像進行剪裁處理,構建并訓練ESRGAN[22]網絡以生成與原始圖像相當的超分辨率(Super-resolution,SR)圖像。為進一步提高水稻害蟲識別的準確率,本文提出一種基于SCResNeSt(Self-calibrated convolutions and ResNeSt block for ResNet50)的低分辨率水稻害蟲識別網絡。最后利用智能手機開發平臺(Android Studio軟件)對優選模型進行移植,開發針對普通用戶的低分辨率害蟲智能識別應用系統。
本研究中水稻害蟲圖像主要來源于安徽省農業科學院試驗田收集的數據集[23],數據采集地點為安徽省合肥市廬江縣白湖振興農場(31.242326°N,117.564381°E),所有圖像均采用數碼相機(如佳能、尼康)或移動設備拍攝。為了消除光照變化的潛在負面影響,所有圖像都在田間采用均勻照明設置進行預處理,從中選取7種常見的水稻害蟲圖像(水稻二化螟、稻縱卷葉螟、稻二星蝽、黑尾葉蟬、稻棘緣蝽、稻赤斑沫蟬、稻綠蝽)。此外,也使用佳能EOS80D型彩色數碼相機拍攝了部分田間水稻害蟲圖像來提高數據集的多樣性,數據采集地點為安徽省蕪湖市無為縣襄安鎮(31.200738°N,117.805038°E),拍攝時間為2020年8月7日。所用完整數據集采集地點既有試驗田,又有自然大田環境,采集的數據包含水稻害蟲幼蟲和成蟲的不同形態數據,以使得訓練所得模型更能適應于對實際環境害蟲圖像的識別。害蟲圖像示例如圖1a所示,水稻害蟲幼蟲和成蟲的不同形態圖像示例如圖1b所示。

圖1 各類水稻害蟲示例Fig.1 Examples of selected various rice pests
由于獲取的原始數據數量少且類別不均衡,直接用來訓練則容易導致模型過擬合。稻赤斑沫蟬、稻綠蝽數據較多,分別有156、175幅圖像,約為前5種害蟲(水稻二化螟、稻縱卷葉螟、稻二星蝽、黑尾葉蟬、稻棘緣蝽)數據量的3倍。基于前期研究發現,只對水稻二化螟、稻縱卷葉螟、稻二星蝽、黑尾葉蟬、稻棘緣蝽5種水稻害蟲圖像進行角度旋轉和對稱翻轉擴增(圖2),而稻赤斑沫蟬、稻綠蝽保持原本數量不變時,網絡模型能訓練獲得更優性能,有效緩解數據不均衡問題,充分發揮數據作用。各類別水稻害蟲的原始訓練樣本數、擴充后的訓練樣本數及測試樣本數,如表1所示。

表1 害蟲種類和樣本數量Tab.1 Species and sample quantities of rice pests
經過圖像數據統計分析,現有水稻害蟲數據集包含兩種:數量較多的高質量害蟲圖像數據(高清、正面、無背景或者背景簡單等)和少量的低分辨率害蟲圖像數據,這將導致數據集出現數據質量不均衡問題,可能會使網絡識別模型過于關注學習高質量水稻害蟲圖像的特征,忽略了低分辨率水稻害蟲的特征學習,故本文采用三次插值算法(Bicubic interpolation)進行4倍下采樣獲取低分辨率水稻害蟲圖像。圖像模糊和有效像素少是稻田自然環境下水稻蟲害識別精度低的主要原因。因此,對獲取的低分辨率蟲害圖像進行恢復和高分辨率預處理是提高蟲害識別精度的關鍵。
增強型超分辨率生成對抗網絡(Enhanced super-resolution generative adversarial networks,ESRGAN)是一種能夠在單幅圖像超分辨率期間生成真實感紋理的算法,其刪除了生成網絡中的所有批歸一化(BN)層,并引入了多級殘差密集連接模塊(RDDB)將多層殘差網絡和密集連接相結合,該結構具有更深的層次和更加復雜的結構,同時提升了特征表達能力,能夠有效提高模型性能,提高圖像分辨率,ESRGAN比SRGAN方法在更逼真、更自然的紋理上獲得了更好的視覺質量。因此,本文采用ESRGAN超分網絡對低分辨率害蟲圖像進行超分處理,首先輸入圖像,圖像被輸送到具有3×3濾波器內核的卷積層,Leakly ReLU作為激活函數。RRDB由密集塊和具有5個卷積層的多級殘差網絡組成,連接到第一個卷積層。RRDB可以放大網絡容量,在RRDB組之后添加了另一個具有3×3內核和64個特征圖的卷積層,以整合特征并匹配數據維度。兩個上采樣層的比例因子設置為2,以實現4倍上采樣因子的超分辨率(SR)圖像。其他卷積層與第一個相同,只是最后一個卷積層有3個特征。ESRGAN算法流程如圖3所示,使用ESRGAN算法對水稻害蟲圖像進行超分處理的效果,如圖4所示。

圖3 ESRGAN網絡Fig.3 Network of ESRGAN

圖4 ESRGAN對低分辨率水稻害蟲圖像的超分示例Fig.4 Example of ESRGAN superclassification of low resolution rice pest images
經過數據擴增解決了水稻害蟲樣本少和數據不均衡的問題,并采用ESRGAN超分網絡對低分辨率害蟲圖像進行數據增強預處理,解決低分辨率水稻害蟲有效信息少的問題。在此基礎上提出一種基于SCResNeSt的低分辨率水稻害蟲識別網絡,再利用Android Studio軟件對優選模型進行移植,開發水稻害蟲識別系統。
1.3.1網絡模型整體架構
本文提出了一種以ResNet50[24]為主干網絡的融合自校準卷積和注意力機制的識別網絡(SCResNeSt),該網絡首先使用3個連續的3×3卷積層,替換ResNet50中的第1個7×7卷積層,它們具有相同的感受野大小,并且計算量更小;采用自校準卷積(Self-calibrated convolutions,SCC)[25]替代第2層卷積層中的3×3卷積,通過內部通信顯式地擴展每個卷積層的感受野,獲取害蟲圖像的部分背景信息。最后通過堆疊多個ResNeSt block(Split-attention network block)層,使網絡可以跨不同的特征圖組提取到具有高區分度的精細特征。改進的SCResNeSt網絡整體框架結構如圖5所示。

圖5 SCResNeSt 網絡整體框架結構圖Fig.5 SCResNeSt overall network framework structure diagram
1.3.2自校準卷積模塊
由于所用的水稻害蟲圖像中不同害蟲所侵害水稻的位置不同,如水稻二化螟幼蟲蛀入稻莖后劍葉尖端變黃;稻棘緣蝽、稻二星蝽和稻綠蝽吸食主莖稈、葉穗部汁液,造成秕粒;稻縱卷葉螟、黑尾葉蟬和稻赤斑沫蟬主要危害水稻葉片,所以在利用害蟲的圖像特征的同時,結合受害位置的信息更有利于水稻害蟲圖像的識別。自校準卷積操作相比傳統的卷積,首先每個空間位置不僅可以考慮周邊信息,而且可以對通道間的依賴性進行建模。其次,自校準卷積以異構的方式利用卷積濾波器的不同部分。自校準卷積操作過程如圖6所示。

圖6 自校準卷積操作過程圖Fig.6 Self-calibrated convolution operation process diagram
其中輸入X的大小為C×H×W,將X拆分為2個大小為C/2×H×W的X1、X2,然后將X1、X2輸入用于收集不同類型的上下文信息的特殊路徑中。在第1個路徑中,利用{K2,K3,K4}對X1進行自校準操作,得到Y1。對于給定的輸入X1,先進行卷積核大小為r×r和步長為r的平均池化。
T1=AvgPoolr(X1)
(1)
式中X1——拆分后輸入
T1——池化后輸出
AvgPoolr——步長為r的平均池化
再用K2對T1進行特征轉換
X′1=Up(F2(T1))=Up(T1K2)
(2)
式中K2——第2個卷積核
F2——第2個卷積運算函數
X′1——特征轉換后輸出
Up——雙線性插值運算函數
其中,Up將F2(T1)從小比例特征空間映射到原始特征空間。校準操作可以表述為
Y′1=F3(X1)Sigmoid(X1+X′1)
(3)
其中
F3(X1)=X1K3
(4)
式中K3——第3個卷積核
Y′1——逐元素相乘后的輸出
F3——第3個卷積運算函數
校準后最終輸出為
Y1=F4(Y′1)=Y′1K4
(5)
式中K4——第4個卷積核
F4——第4個卷積運算函數
Y1——校準后的輸出
在第2條路徑中,執行一個簡單的卷積運算
Y2=F1(X2)=X2K1
(6)
式中K1——第1個卷積核
X2——拆分后輸入
F1——第1個卷積運算函數
Y2——卷積后輸出
其目的是保留原始空間上下文信息。然后將兩個中間輸出Y1、Y2串聯在一起作為輸出Y。因此,變換過程中的每個空間位置都可以通過自校準卷積操作融合2個不同空間的信息,這大大增加了卷積層的感受野[26],從而使特征表示更具判別性。為更直觀地展示感受野的增加,實驗部分將展示網絡熱力圖。
1.3.3ResNeSt block
SCResNeSt網絡中使用的ResNeSt block可實現跨功能圖組之間的關聯,通過以ResNet樣式堆疊ResNeSt block[27],每個塊都將特征圖沿通道維數分為幾組和更細粒度的子組或分割,其中,每個組的特征表示是通過其分割表示的加權組合確定(圖7)。

圖7 ResNeSt塊Fig.7 ResNeSt block
改進的SCResNeSt網絡中使用的ResNeSt block特征被分組再拆分,同一層中多個卷積核分支可以分別提取特征使得網絡提取的特征更為多樣。首先將輸入特征分為k組(沿通道數劃分),將得到的特征圖組稱為基數組,這個k組特征層和卷積核的操作是相對獨立的操作。并引入了一個新的基數超參數r,它表示基數組內的分裂數,每一個基數組內的分裂數均相同,因此特征組的總數為
G=kr
(7)
式中k——分組數r——超參數
G——特征組總數
然后將基數組的特征沿通道維度連接起來,Split-Attention塊與標準殘差塊一樣,其最終輸出是使用快捷連接生成的,輸入和輸出特征圖形狀相同,再通過Concatenate函數進行數組拼接,然后用一個1×1的卷積轉換成與輸入特征圖相同大小的圖,最后將其與輸入特征圖進行相加。
1.3.4模型移植
本文構建了一種基于SCResNeSt的低分辨率水稻害蟲識別網絡模型后,利用智能手機開發平臺(Android Studio軟件)對優選模型進行移植,開發水稻害蟲識別系統。模型移植使用的開發環境為Android Studio 3.5.2,編程語言采用Java。由于在Pytorch框架下保存的模型權重文件為“.pth”,為了能夠利用Android Studio更好地將其移植到普通智能手機上,需要將.pth文件轉換為.pt文件,然后再通過Java編程實現移植。模型移植流程圖如圖8所示。

圖8 模型移植流程圖Fig.8 Model migration flowchart
如圖8所示,首先將低分辨率圖像利用ESRGAN超分算法生成SR圖像,再將其經過SCResNeSt分類網絡進行識別,最后再利用水稻害蟲智能識別系統對識別結果進行展示,用戶可通過察看害蟲識別結果,對農作物進行有效分析。
本研究使用Pytorch框架進行分類網絡搭建,模型訓練與測試均通過GPU加速。模型訓練是將MAX-EPOCH設置成30,分類類別為7,最終經過訓練得到需要的模型。
采用均方根誤差(Root mean square error, RMSE)、歸一化均方根誤差(Normalized root mean square error, NRMSE)、結構相似性(Structural similarity, SSIM)、峰值信噪比(Peak signal to noise ration, PSNR)和信息熵(Entropy)評價實驗結果。
圖像超分方法旨在從相應的LR圖像中恢復詳細的SR圖像,實驗將ESRGAN網絡與FSRCNN[28]和Bicubic進行對比以驗證其有效性。為了評估生成的SR圖像質量,比較了測試圖像的RMSE、NRMSE、SSIM、PSNR和Entropy,結果見表2。

表2 超分圖像質量評估Tab.2 Evaluation of hypersegmentation image quality
由表2可知,ESRGAN的SSIM和PSNR圖像質量指標高于其他超分網絡。ESRGAN網絡中將殘差密集塊(RRDB)中的殘差作為基本的網絡構建單元而不進行批量歸一化。用GAN的思想,令判別器預測相對真實性。利用激活前的特征改善感知損失,為亮度一致性和紋理恢復提供更強的監控。基于這些改進,ESRGAN在更逼真、更自然的紋理上獲得了更好的視覺質量。
針對低分辨率圖像識別應用需求,按照不同的分辨率及其處理操作,將訓練集和測試集分為6種不同情況進行模型訓練和測試。
由表3可知,原圖-LR的分類網絡由原圖像訓練所得,使用LR圖像對其進行測試,并將此設置視為比較基線;LR-LR的分類網絡由LR圖像進行訓練,使用LR圖像對其進行測試,此設置需要為LR圖像訓練一個額外的網絡;原圖-原圖的分類網絡在原圖像上進行訓練,并在原圖像上進行測試;SR-SR的分類網絡在SR圖像上進行訓練,并在SR圖像上進行測試;原圖+SR-LR的分類網絡在原圖像和SR圖像上進行訓練并在LR圖像上進行測試;原圖+SR-SR的分類網絡在原圖像和SR圖像上進行訓練并在SR圖像上進行測試。

表3 訓練集和測試集情況Tab.3 Training set and test set
為了展示本研究中分類網絡的實驗效果,將AlexNet、Vgg16[29]、ResNet50、ResNet-RS[30]、ResNeSt和改進的SCResNeSt網絡結合表3中的不同訓練測試情況進行對比,水稻害蟲分類實驗結果如表4所示。

表4 害蟲分類準確率Tab.4 Accuracy of pest classification %
由表4可以看出,在多個網絡中,經過ESRGAN網絡處理后的SR圖像的分類精度高于LR圖像的分類精度,第6種訓練測試情況下的準確率達到了接近原圖精度,甚至在AlexNet、ResNet50、ResNeSt網絡中超過了原圖精度。實驗結果表明,經過ESRGAN網絡處理,可以使得低分辨率圖像得到增強,解決低分辨率水稻害蟲圖像有效信息少的問題。
本文提出的SCResNeSt方法在識別精度方面優于AlexNet、Vgg16、ResNet50、ResNet-RS、ResNeSt,在原圖數據中可達到92.00%,比Vgg16高2.4個百分點,比ResNet50網絡高6.4個百分點;低分辨率圖像中的識別精度為87.20%;結合超分算法后低分辨率水稻害蟲圖像的平均識別精度為91.20%,相較于Vgg16高2.4個百分點,比ResNet50網絡高3.2個百分點,說明所構建的深度模型能夠準確識別水稻害蟲類型。
為更直觀地展示分類結果,繪制混淆矩陣,如圖9所示,0表示水稻二化螟,1為稻縱卷葉螟,2為稻二星蝽,3為黑尾葉蟬,4為稻棘緣蝽,5為稻赤斑沫蟬,6為稻綠蝽。對角線上的元素表示正確分類樣本的數量。

圖9 網絡混淆矩陣圖Fig.9 Network confusion matrices
由ResNeSt網絡混淆矩陣可知,對于第0類和第2類樣本均分類正確。對于第1類、第3類、第4類和第5類,錯誤預測數為4的有2個樣本。可以看出,分類的主要困難在于類別1、3、4、5,在SCResNeSt網絡混淆矩陣中也有相似結果。由SCResNeSt的混淆矩陣可知,第0類和第2類的所有樣本均分類正確,其他類的分類正確數量也得到了提升。
消融實驗結果如表5所示。從表5可以看出,對數據進行超分辨率增強處理后,利用自校準卷積對水稻害蟲進行特征提取,ResNeSt模塊能夠獲取更多害蟲圖像的信息,進一步提升了圖像中害蟲信息獲取的準確性。

表5 消融實驗結果Tab.5 Results of ablation experiments
由2.3節和表5可知,對數據進行超分辨率增強處理,可提高網絡泛化性,降低了因低分辨率圖像所含信息少導致的誤分類,大幅度提升了網絡分類效果。上述條件下,在ResNet50網絡中加入ResNeSt模塊,進一步提升圖像中害蟲信息獲取的準確性。最后再加入自校準卷積,可以看出,準確率提升明顯,這是因為不同水稻害蟲對應的背景也不同,自校準卷積有效擴大分類網絡的感受野,結合受害位置背景的信息,降低了因背景類別復雜導致的誤分類,因而所提方法具有較少的誤分類,獲得了較好的分類結果。
將SCResNeSt產生的特征激活熱力圖與傳統的殘差網絡ResNet50和ResNeSt的特征激活熱力圖進行對比,其熱力圖可視化如圖10所示。

圖10 網絡特征激活熱力圖Fig.10 Network features activated thermal map
從圖10中可以觀察到,具有傳統卷積的殘差網絡無法精準捕獲整個判別區域,因為它們的卷積層感受野有限。相比之下,自校準卷積有助于模型很好地捕捉整個判別區域。因不同害蟲所侵害水稻的位置不同,帶有自校準卷積的SCResNeSt感受野更大,可以更準確、更完整地定位目標對象,在識別中不僅利用害蟲的圖像特征,而且通過結合受害位置背景信息更有利于圖像識別。
本研究基于Android Studio軟件,設計完成移動應用APP。通過有線方式把安裝包移至Android手機,即完成了基于Android手機的自然場景下水稻害蟲識別系統的移植。用戶可通過手機運行系統,自動打開手機攝像頭,將攝像頭對準害蟲,即可實時采集圖像。由手機攝像頭采集的每幀圖像,分辨率轉換為224×224×3,然后經過歸一化處理輸入部署好的模型中進行識別,識別結果如圖11所示。軟件界面上半部分為手機攝像頭實時采集到的圖像,將每幀圖像進行實時顯示。界面中展示識別結果,軟件界面下半部分為分類Top3的結果,并按照順序排列,左列為分類結果,右列為分類概率。這種方法為用戶提供了一種自行判斷害蟲的選擇,用戶可通過察看害蟲識別結果,對農作物進行有效分析。

圖11 軟件識別結果Fig.11 Software identification results
(1)為解決實際獲取的害蟲圖像分辨率低而導致識別模型識別精度低的問題,本研究基于深度學習技術,首先運用ESRGAN超分網絡對低分辨率圖像進行數據增強,解決低分辨率水稻害蟲圖像有效信息少的問題。其次,為了同時關注到害蟲的圖像信息和受害位置信息,在ResNet50網絡中使用自校準卷積來擴大感受野,再通過堆疊多個ResNeSt block,提升害蟲區域的特征權重,以便提取到具有高區分度的特征,提升模型的識別精度。在自建的水稻害蟲圖像數據集對模型進行訓練獲得水稻害蟲識別模型。
(2)測試結果表明,本文模型對超分后的低分辨率水稻害蟲圖像的識別準確率為91.20%,相較于AlexNet、Vgg16、ResNet-RS、ResNeSt網絡提高至少2.4個百分點,比ResNet50高3.2個百分點。本研究將獲取到的模型部署在Android手機端,實際應用程序可用于農作物害蟲移動端準確識別。