呂盛強,劉建新,劉 偉,王 強
(西華大學(xué)機械工程學(xué)院,四川 成都 610039)
近年來,深度學(xué)習(xí)被廣泛應(yīng)用于農(nóng)作物的生長監(jiān)測、葉片計數(shù)以及病害檢測[1]。搭載RGB 相機的無人機平臺能夠快速、大規(guī)模地對農(nóng)作物病害進行病害檢測和生長狀況監(jiān)測[2],因此在玉米、大豆和蘿卜等農(nóng)作物的病害檢測方面得到了應(yīng)用。Tetila 等[3]首先使用SLIC 算法[4]對無人機拍攝的圖像進行大豆葉片提取并構(gòu)造數(shù)據(jù)集,然后訓(xùn)練CNN 實現(xiàn)對大豆病害的識別。Dang 等[5]為實現(xiàn)對蘿卜枯萎病患病程度的檢測,首先利用SLC 算法[6]將無人機拍攝圖像分為土地、蘿卜等類別并構(gòu)造數(shù)據(jù)集,訓(xùn)練CNN 完成對蘿卜的識別,最后通過對蘿卜葉片閾值化處理實現(xiàn)對蘿卜枯萎病患病程度的判斷。上述方法需要先對圖像進行分割,提取植物葉片子圖,然后才能進行作物病害檢測,實際使用時,需要根據(jù)環(huán)境的變化選擇不同的分割參數(shù)才能有效提取植物葉片,而這是極其費時、費力的。
目前結(jié)合無人機平臺對玉米病害的檢測研究較少。Ishengoma 等[7]將無人機拍攝得到的圖像進行裁剪,然后使用裁剪后的圖像訓(xùn)練不同的CNN 模型對玉米是否患病進行識別。但是該方法僅在裁剪后的葉片圖像上進行了評估,對完整圖像的檢測效果仍然值得探究。Dechan 等[8]首先使用低分辨率病斑圖像進行訓(xùn)練得到具有較好分類效果的CNN,然后利用訓(xùn)練好的模型通過滑動窗口的方式在完整圖像上獲得病斑熱力圖,最后根據(jù)熱力圖以確定整幅圖像中是否有患病葉片。該方法完成了利用無人機拍攝圖像的病斑識別任務(wù),但利用滑動窗口是一個十分耗時的步驟,且不能完成端到端的識別。Wu 等[9]使用了和文獻[8]相同方法,但簡化了熱力圖生成步驟,同時使用在Imagenet數(shù)據(jù)集上預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)進行特征提取,減少了訓(xùn)練時間。但該方法依然沒有實現(xiàn)端到端的檢測,檢測過程依舊相當(dāng)耗時。
由于圖像采集距離遠,無人機拍攝的圖像中的病斑遠小于手持相機拍攝的圖像中的病斑,所以現(xiàn)有方法并未實現(xiàn)直接對無人機拍攝圖像中的農(nóng)作物病斑進行檢測,需要經(jīng)過多個步驟才能完成,檢測準(zhǔn)確率依賴于各個步驟的處理效果,存在檢測效率低、檢測時間長、檢測效果不穩(wěn)定等問題。基于此,本文以玉米大斑病識別作為研究對象,提出了一種直接利用無人機拍攝圖像進行農(nóng)作物病害檢測的方法:首先對公開數(shù)據(jù)集進行重構(gòu),獲得新的數(shù)據(jù)集;然后以Xception 網(wǎng)絡(luò)為骨干網(wǎng)絡(luò),增加密集連接模塊和注意力模塊,以增強信息融合,減少特征信息丟失,最終實現(xiàn)對玉米大斑病的識別。
研究者使用搭載RGB 相機的無人機對患有大斑病的玉米葉片進行圖像采集,創(chuàng)建了公開的、帶標(biāo)注信息的玉米大斑病檢測數(shù)據(jù)集: Imagesdrone[10]。該數(shù)據(jù)集中圖像分辨率為6000×4000,注釋文件提供病斑較長主軸端點坐標(biāo),圖像具有背景復(fù)雜、病斑在圖像中占比小等特點。根據(jù)文獻[10]提供的病斑標(biāo)注文件,本文將患病葉片以病斑為中心進行裁剪,健康葉片則隨機裁剪,得到1200×800 分辨率的病斑子圖像。同時,保持長寬比不變將Images-drone 數(shù)據(jù)集中的圖像縮小為600×400。重構(gòu)后的數(shù)據(jù)集包含裁剪后的健康葉片和病斑葉片、縮小后的健康葉片和病斑葉片等4 種類型的圖片。處理后的數(shù)據(jù)集樣本如圖1 所示?;疾∪~片中的病斑實驗的訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù)包括裁剪和縮小處理后的圖片,而測試數(shù)據(jù)僅采用縮小后的圖片,數(shù)據(jù)集的具體劃分如表1 所示。
表1 數(shù)據(jù)集劃分Tab.1 Dataset division
圖1 處理后的部分樣本圖片F(xiàn)ig.1 Pictures of the processed partial samples
Xception 網(wǎng)絡(luò)將特征圖中跨通道相關(guān)性和空間相關(guān)性的映射完全解耦,具有在減少參數(shù)的同時增強模型的表達能力和梯度傳播的優(yōu)點[11]。但是該網(wǎng)絡(luò)在底層的信息融合僅使用殘差連接,對于小目標(biāo)的特征傳遞、重用和信息傳遞能力不足。Dense Net 能在卷積層之間增加更多的短連接,能有效減輕梯度消失、加強特征的傳遞和重用且減少參數(shù)量,避免殘差結(jié)構(gòu)中可能出現(xiàn)信息阻塞等問題,能夠提取到更多的特征[12]。但是更多的短連接在增強特性信息傳遞的過程中,也引入了更多的非特征信息,這將影響最終的識別效果。SE 注意力機制允許網(wǎng)絡(luò)進行特征重新校準(zhǔn)。通過該機制,網(wǎng)絡(luò)可以學(xué)習(xí)使用全局信息來選擇性地強調(diào)信息特征和抑制無用的特征。而且該機制能夠有效嵌入主流網(wǎng)絡(luò)中,提高網(wǎng)絡(luò)性能的同時僅增加極少量的參數(shù)[13]。如果將3 種網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)點進行組合,能夠提取更多的有效目標(biāo)特征,消除干擾信息,提升對小目標(biāo)的特征提取效果。
由于無人機平臺采集的玉米圖像背景復(fù)雜,病斑在圖像中占比小,同時在數(shù)據(jù)集構(gòu)造時對圖像進行了縮小處理,造成了病斑特征的部分丟失,所以在網(wǎng)絡(luò)結(jié)構(gòu)的改進中應(yīng)當(dāng)盡量避免病斑特征的進一步丟失,同時加強各個卷積層之間的特征信息融合,提高網(wǎng)絡(luò)對病斑特征的提取。
基于以上原因,本文采用Xception 網(wǎng)絡(luò)為骨干網(wǎng)絡(luò),在Xception 網(wǎng)絡(luò)的Entry Flow 的殘差連接中增加卷積層和短連接,將SE 注意力模塊嵌入到Xception 網(wǎng)絡(luò)的Middle Flow 中,其余部分保持和Xception 完全相同,不做任何改變。本文改進后的網(wǎng)絡(luò)采用大小為400×600 的圖片作為網(wǎng)絡(luò)輸入,其總體結(jié)構(gòu)如圖2 所示,圖中SE_Module 為注意力模塊,Dense_Module 為改進后的殘差連接。Dense_Module 共包含4 次卷積核、1 次池化,前3 層卷積采用密集連接,以增強特征信息融合,減少特征信息損失,經(jīng)過密集連接操作后的數(shù)據(jù)被送入池化層進行主要特征的提取并對數(shù)據(jù)張量進行降維,降低網(wǎng)絡(luò)運算量,最后一層卷積進行卷積核為1×1 的卷積操作,用于特征圖的數(shù)量匹配,結(jié)構(gòu)如圖3 所示。
圖2 總體網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Overall network structure diagram
圖3 Dense_Module 結(jié)構(gòu)圖Fig.3 Dense_Module structure diagram
模型是在Ubuntu18.04LTS 操作系統(tǒng)中采用Python3.8、Tensorflow2.0 框架開發(fā)的。訓(xùn)練采用Adam 作為優(yōu)化器,交叉熵函數(shù)作為損失函數(shù),學(xué)習(xí)率為0.0001。主要硬件包括Inteli7-6700@3.4 GHz、NVIDIA 1080TI顯卡。
為了提高模型的精度和泛化能力,減小模型過擬合的可能性,對用于訓(xùn)練的圖像進行隨機的水平翻轉(zhuǎn)、旋轉(zhuǎn)等操作,同時加入早停函數(shù)。
本文采用對病斑識別的準(zhǔn)確率和單張圖片的識別時間作為評價指標(biāo)。最終,本文模型使用測試集進行測試,得到的準(zhǔn)確率為95.23%,對單張圖片進行識別的時間為0.5476 s。
模型準(zhǔn)確率變化曲線如圖4 所示,圖中,橫坐標(biāo)為模型迭代次數(shù),縱坐標(biāo)為準(zhǔn)確率,紅色曲線為驗證集準(zhǔn)確率變化曲線,藍色曲線為訓(xùn)練集準(zhǔn)確率變化曲線。由圖4 可見,本文模型迭代30 次開始收斂,模型準(zhǔn)確率逐漸達到最佳值,最終在測試集上進行測試得到的準(zhǔn)確率為95.23%。
圖4 模型準(zhǔn)確率變化曲線Fig.4 Model accuracy change curve
混淆矩陣是深度學(xué)習(xí)中總結(jié)分類模型預(yù)測結(jié)果的情形分析表,以矩陣的形式將數(shù)據(jù)中的記錄按照真實的類別與分類模型預(yù)測的類別判斷進行匯總。圖5 給出了本文模型對測試集進行測試得到的混淆矩陣,數(shù)字0 表示健康葉片,數(shù)字1 表示患病葉片。從圖5 可以看出,測試集中共有22 張圖片被預(yù)測錯誤,在196 張健康葉片中,本文模型將7 張健康葉片錯誤識別為患病葉片,其余識別正確,在204 張患病葉片中將15 張患病葉片錯誤識別為健康葉片,其余識別正確?;煜仃嚨慕Y(jié)果表明,本文模型有較高的準(zhǔn)確率。
圖5 測試結(jié)果混淆矩陣Fig.5 Test results confusion matrix
為了研究密集連接模塊和注意力模塊對網(wǎng)絡(luò)實際性能的影響,本文進行了消融實驗。實驗分別研究不對Xception 網(wǎng)絡(luò)進行任何改進(Xception)、Xception 網(wǎng)絡(luò)中只加入密集連接(Xception+Dense)、Xception 網(wǎng)絡(luò)中只加入SE 注意力模塊(Xception +SE),以及Xception 網(wǎng)絡(luò)中同時加入密集連接和SE 注意力模塊(Xception+Dense+SE)等4 種網(wǎng)絡(luò)結(jié)構(gòu)對病斑識別的準(zhǔn)確率,其結(jié)果如表2 所示。由表2 可見,改進的Xception 網(wǎng)絡(luò)提高了對玉米大斑病的識別效果。
表2 消融實驗結(jié)果Tab.2 Results of ablation experiments
從表2 可知,在Xception 網(wǎng)絡(luò)單獨加入密集連接模塊后,模型的準(zhǔn)確率提高0.0125,單獨加入SE 注意力模塊后,模型的準(zhǔn)確率提高0.0175,在同時加入密集連接模塊和SE 注意力模塊后,網(wǎng)絡(luò)性能提升0.025,達到了最佳準(zhǔn)確率。實驗結(jié)果表明,本文對Xception網(wǎng)絡(luò)結(jié)構(gòu)的改進是有效的,能夠有效增強Xception網(wǎng)絡(luò)對病斑的識別能力。注意力模塊通過通道信息的調(diào)整,在對病斑的識別中起到了更大的作用,增加密集連接模塊對網(wǎng)絡(luò)性能的提升略小,二者的組合具有相互促進的效果,且檢測時間相差不超過0.1 s。
在數(shù)據(jù)集重構(gòu)過程中,本文對圖像病斑部分進行裁剪并加入到訓(xùn)練集和測試集中。為了驗證加入病斑子圖像對模型性能的影響,實驗將縮小后的圖片按照70∶15∶15 的比例劃分為訓(xùn)練集、驗證集和測試集,將裁剪后的葉片按照不同比例劃分后分別加入到訓(xùn)練集和驗證集中,測試集中不加入任何裁剪圖像。最終對模型性能的影響結(jié)果如表3 所示。
表3 加入病斑子圖像數(shù)量對模型性能的影響Tab.3 Effect of adding the number of diseased spot images on the model performance
由表3 可知,將裁剪圖片按照2∶1 和4∶1 加入訓(xùn)練集和測試集中,其效果均不如按照3∶1 比例加入的,但是總體效果差距不大,準(zhǔn)確率最差的也可達到93.48%?;趯螐埐“邎D像的識別時間最短的考慮,本文選擇了3∶1 的比例來構(gòu)成實驗數(shù)據(jù)集。
為了進一步驗證本文方法對農(nóng)作物識別的準(zhǔn)確率和識別效率上的優(yōu)勢,將本文方法與文獻[7]和文獻[9]方法進行了對比實驗。實驗同樣選取準(zhǔn)確率和單張圖片識別時間作為評價指標(biāo)。本次實驗采取了相同的數(shù)據(jù)集劃分比例,模型推理過程在CPU 上完成,實驗結(jié)果如表4 所示。
表4 相關(guān)文獻對比結(jié)果Tab.4 Comparison results of related literature
本文方法的主要目的是在保證對農(nóng)作物病斑準(zhǔn)確識別的情況下,減少識別時間,提高識別效率。從表4 可見,文獻[9]方法與本文方法得到的準(zhǔn)確率相近,但文獻[9] 方法使用了滑動窗口方法,導(dǎo)致圖片識別時間遠高于本文方法。文獻[7]方法與本文方法識別時間相近,但是僅使用Inception V3 作為骨干網(wǎng)絡(luò)時的效果較好,使用VGG16 和Mobile Net 作為骨干網(wǎng)絡(luò)時,并不能有效地進行農(nóng)作物病斑的檢測。相較于文獻[7]和文獻[9],本文通過改進Xception 網(wǎng)絡(luò)結(jié)構(gòu)和改造數(shù)據(jù)集的方法,在保證了識別準(zhǔn)確率的情況下,提高了效率。
本文針對無人機圖像中的農(nóng)作物病斑識別需要進行多次處理的問題,以玉米大斑病檢測為研究對象,通過改造數(shù)據(jù)集和改進神經(jīng)網(wǎng)絡(luò)模型的方式來實現(xiàn)直接對農(nóng)作物病斑的檢測。通過裁剪和縮小2 種方式重構(gòu)數(shù)據(jù)集;通過對Xception 網(wǎng)絡(luò)進行改進,增加注意力模塊,改善了通道信息,并抑制無用的信息,提高對病斑的識別能力,增加卷積層和密集連接,改善特征信息的傳遞和融合,減少了特征信息的丟失。最后的實驗結(jié)果表明,本文方法在保證對農(nóng)作物病斑識別準(zhǔn)確率的情況下,減少了病斑識別的時間和繁瑣的圖像處理步驟,實現(xiàn)了直接利用無人機拍攝的圖像對玉米大斑病進行檢測。后期將通過目標(biāo)檢測網(wǎng)絡(luò)實現(xiàn)對病斑在作物葉片上的具體位置的精確定位,同時對模型進行枝減,降低對硬件平臺的要求,實現(xiàn)對農(nóng)作物病害的實時檢測。