doi:10.15889/j.issn.1002-1302.2024.20.026
摘要:作物病害的早期檢測可以提高農(nóng)作物的質(zhì)量和生產(chǎn)力,為解決番茄病害識別模型在真實復雜場景中的泛化能力弱,易受作物品種、顏色特征、葉斑形狀、疾病周期和環(huán)境因素干擾,對存儲和計算資源依賴性強的問題,提出1個輕量化改進模型ActNN-YOLO v5s-RepFPN來研究多個區(qū)域場景中的番茄疾病,使用Mosaic數(shù)據(jù)增強方法來擴展數(shù)據(jù),結(jié)合使用模型參數(shù)壓縮技術(shù)ActNN來替換YOLO v5s網(wǎng)絡中的組件模塊,保留重要激活參數(shù)的同時不影響精確度,然后在YOLO v5s頸部網(wǎng)絡內(nèi)構(gòu)建RepFPN特征金字塔,增加特征信息流通,實現(xiàn)計算和內(nèi)存平衡的硬件神經(jīng)網(wǎng)絡設(shè)計。結(jié)果表明,改進的ActNN-YOLO v5s-RepFPN模型在番茄病害檢測精度上達到了93.6%,檢測速率為 29.0幀/s,滿足實時監(jiān)測的要求,模型整體性能高于YOLO v5s、YOLO v4、Faster R-CNN等模型,在訓練1 000輪后精確率、召回率、mAP分別較YOLO v5s原模型高10.0、9.8、4.9百分點。最后,設(shè)計并實現(xiàn)了基于YOLO v5s模型的智能化番茄病害檢測系統(tǒng),為病害智能檢測系統(tǒng)提供了可視工具。
關(guān)鍵詞:病害檢測;ActNN;YOLO v5s;RepFPN;
中圖分類號:TP391.41;S126" 文獻標志碼:A
文章編號:1002-1302(2024)20-0220-08
收稿日期:2023-11-03
基金項目:云南省重大科技專項(編號:202302AE090020、202002AE090010);云南省基礎(chǔ)研究計劃(編號:202101AU070096)。
作者簡介:高" 泉(1977—),男,云南華坪人,碩士,副教授,研究方向為智慧農(nóng)業(yè)。E-mail:312441310@qq.com。
通信作者:葉" 榮,博士,講師,研究方向為食品安全信息化與數(shù)字農(nóng)業(yè)。E-mail:307176152@qq.com。
番茄是全球蔬菜貿(mào)易中的重要組成部分之一,具有重要地位。它不僅是日常蔬菜,還被視為新型水果和科研模式作物,擁有多重功能,因此,番茄越來越受到人們的喜愛[1-2]。隨著對番茄需求的增加,全球的番茄生產(chǎn)總量和種植規(guī)模也在不斷擴大。截至2020年底,我國已成為全球最大的番茄生產(chǎn)國家之一,年產(chǎn)量約為0.7億t。在我國大規(guī)模種植番茄的省份中,云南省的對外銷售量位居榜首,約占我國的37%[3-4]。
目前番茄在全球范圍內(nèi)廣泛種植,但在生長過程中會遭受各種病蟲害的侵害。番茄葉片上的病害同樣對番茄產(chǎn)量構(gòu)成威脅,若不及時防治,可能導致減產(chǎn)或無法收獲。以前人們主要根據(jù)經(jīng)驗來判斷番茄病害類型,但這種方法的判斷能力有限且耗時耗力。圖像處理技術(shù)已經(jīng)在各個領(lǐng)域得到廣泛應用,包括農(nóng)業(yè)。然而,傳統(tǒng)的圖像識別方法已無法應對復雜的實際情況,隨著計算機硬件性能的提升,將深度學習應用于農(nóng)業(yè)生產(chǎn)已成為未來農(nóng)業(yè)發(fā)展的趨勢。深度學習通過引入卷積層、池化層、全連接層等操作,能夠自動提取圖像特征,以實現(xiàn)對植物葉片病害的準確識別[5-10]??焖?、準確地識別番茄葉片病害并采取相應的防治措施對于保障作物生產(chǎn)和提高農(nóng)民收入至關(guān)重要。
1" 試驗方法
1.1" YOLO v5s模型
目標檢測算法可以分為one-stage和two-stage 2種類型。隨著one-stage檢測算法的發(fā)展,YOLO系列模型由于具有良好的檢測速度和準確率逐漸應用于目標檢測。YOLO v5能夠在1次運算中完成目標檢測。而two-stage算法則是基于候選區(qū)域的目標檢測,需要根據(jù)滑動窗口獲取的圖像部分進行特征提取,并使用分類器來識別圖像。YOLO v5s 是YOLO v5目標檢測系列中的一個輕量模型,它在速度、準確性和輕量化方面取得了平衡,適用于各種實時目標檢測場景,并能夠更好地滿足本研發(fā)系統(tǒng)的需求[11-13]。網(wǎng)絡結(jié)構(gòu)主要包括輸入端、Backbone層、Neck網(wǎng)絡和輸出端Head部分(圖1),圖1中的(a)~(d)展示了與網(wǎng)絡結(jié)構(gòu)相關(guān)模塊的組成。
Backbone層的Conv模塊是基本的卷積單元,依次對輸入執(zhí)行2D卷積、2D正則化和SiLU激活操作,C3模塊作為特征提取的主要結(jié)構(gòu),由3個卷積和1個瓶頸組成,可以通過解決大規(guī)模重復梯度信息的問題,整合特征圖中的梯度變化,減小模型尺寸,降低模型每秒浮點運算數(shù)(FLOPs)和參數(shù),保證推理的準確性和速度。連接不同維度的特征圖的Concat模塊被用于合并特征映射,這樣可以讓網(wǎng)絡獲得更多的信息,增強網(wǎng)絡對目標的感知能力,上采樣模型用于對特征映射進行采樣,通過上采樣,可以將低分辨率的特征映射變?yōu)楦叻直媛实奶卣饔成洌瑥亩岣吣繕藱z測的精度。空間金字塔池(SPP)模塊位于YOLO v5s網(wǎng)絡的第10層,可將任意大小的特征映射轉(zhuǎn)換為固定大小的特征向量,這樣可以增加網(wǎng)絡的感知場,從而檢測不同尺度的目標。Neck層通過添加具有自底向上路徑增強特性的特征金字塔網(wǎng)絡(FPN)來傳播底層特征,并利用來自每個特征層的價值信息融合更高級別的特征。這樣可以提高目標的定位精度,并增強網(wǎng)絡對目標的理解能力;Head結(jié)構(gòu)的檢測網(wǎng)絡由3個檢測層組成。每個檢測層都有不同尺寸的像素特征圖的輸入,用于檢測不同大小的目標。檢測層將生成原始圖像中預測的邊界框和目標類別,從而實現(xiàn)目標的檢測。
1.2" 模型參數(shù)壓縮ActNN
在模型訓練期間,存儲模型參數(shù)、中間激活結(jié)果和優(yōu)化器狀態(tài)會導致模型所需內(nèi)存呈指數(shù)級增長,因此在內(nèi)存有限的GPU上訓練大規(guī)模模型變得困難。本研究旨在設(shè)計解決番茄病害識別系統(tǒng)問題,為此采用了ActNN策略,該策略可以在不影響預測精度的情況下快速壓縮模型參數(shù),結(jié)合 YOLO v5s 網(wǎng)絡模型結(jié)構(gòu),本研究實現(xiàn)了作物病害分類、檢測和分割應用[14-17]。
在YOLO v5s網(wǎng)絡中通過使用ActNN來聚焦激活參數(shù)上下文壓縮數(shù)值精度,實現(xiàn)動態(tài)隨機量化激活神經(jīng)網(wǎng)絡,在訓練過程中,訓練權(quán)重、激活參數(shù)和優(yōu)化器被量化后可以降低數(shù)值精度,而模型中的梯度方差容易跟隨量化影響而改變,使用ActNN中組量化和細粒度量化的混合精度量化策略,在最大2位量化的情況下,該策略可以近似訓練過程中梯度方差的最小化,模型壓縮參數(shù)公式如下:
H(l)=F(l)[H(l-1);Θ(l)];(1)
H(l-1),Θ(l)=G(l){H(l),C[H(l-1),Θ(l) ]};(2)
H((l-1)=H((l) Θ(l)T ,Θ(l)=H(l-1)TH(l)
C[H((l-1),Θ(l)]=[H(l-1),Θ(l)]。(3)
式中:假設(shè)神經(jīng)網(wǎng)絡為l層,輸入圖像X,對應標簽Y,抽取小批量樣本(X,Y),輸入H(0)=X,H(l)為 N×D(l),其中N為批量大小,D(l)為特征個數(shù),Θ(l)為參數(shù)向量,前向傳播F(l)包含模型參數(shù)Θ(l)的N個特征映射H(l-1)。給定用于預測H(l)和標簽Y的小批量損失函數(shù)L=l(H(l),Y),將梯度計算為Θ(l)L。H(l-1)T為特征映射的轉(zhuǎn)置,并使用優(yōu)化器SGD更新模型參數(shù)。由于梯度變化總是與損失函數(shù)L一樣,激活參數(shù)梯度記為Θ(l)、H(l) 。梯度計算過程為式(2),其中反向傳播G(l)得到H(l),對于上文特征中的C需要保存在模型內(nèi)存中,用于反向傳播。方程(3)作為特殊情況,當H(l)=H(l-1)Θ(l)中的線性層時,將保留住上文中的量化參數(shù),為實現(xiàn)2位激活壓縮,對l層神經(jīng)網(wǎng)絡的C、Θ(l)和H(l-1)采用隨機量化策略進行量化,得到原始梯度的無偏估計,如式(4)所示:
%^H(l-1),^Θ(l)=G(l){^H(l),C^[H(l-1),Θ(l)]},^H(l)=H(l)。(4)
ActNN通過動態(tài)調(diào)整混合精度量化策略,在運行時針對不同網(wǎng)絡層的異構(gòu)特性和硬件特性進行優(yōu)化,這種優(yōu)化策略能夠減少無關(guān)緊要的激活參數(shù),并保留重要激活參數(shù)以保持模型的準確性。
由圖2可知,ActNN為L1到L5定義了可選的壓縮參數(shù),其中L1和L2可以使用4位每組量化,但L1可以使用32位量化,并且只處理卷積層;L3到L5使用細粒度混合精度量化策略后作用于所有卷積層上的激活參數(shù),在整個過程中,ActNN只負責根據(jù)原始模型的大小比例來處理訓練過程中的激活參數(shù)。
L1L2L3L4L5。(5)
此外,公式(5)中,從L1到L5中,壓縮算法是進行每級疊加的,增加壓縮級別會增加反向傳播過程中解壓激活參數(shù)所需的時間。即使在硬件條件保持不變的情況下,訓練速度也會降低。在調(diào)整參數(shù)和數(shù)據(jù)方面,增加批處理大小和使用高分辨率圖像都會增加壓縮激活(CA)參數(shù)和解壓激活(DCA)參數(shù)所需的時間,導致模型收斂速度減慢。
1.3" RepConv網(wǎng)絡構(gòu)建
FPN被稱特征金字塔網(wǎng)絡,被廣泛應用于目標檢測等任務中[18]。FPN通過自下而上的方式構(gòu)建頸部網(wǎng)絡中的特征金字塔,即從底層特征圖中提取高分辨率的特征,并通過逐層上采樣、融合等操作得到分辨率較低但信息更豐富的特征圖。在本研究中,使用FPN構(gòu)建RepFPN對YOLO v5s頸部網(wǎng)絡進行改進,RepFPN則通過自上而下的方式構(gòu)建特征金字塔,即從頂層特征圖開始進行下采樣、融合,逐層向下傳遞得到高分辨率的特征圖,最后應用于YOLO v5s檢測框架中。
RepConv網(wǎng)絡層結(jié)構(gòu)由3×3 Conv分支、1×1分支和身份組成,可以充分利用硬件計算能力。通過重新參數(shù)化,將多分支結(jié)構(gòu)轉(zhuǎn)換為訓練狀態(tài)下的單分支3×3 Conv,如圖3所示。
RepFPN網(wǎng)絡是由RepPAN 和 BepC3(block with exponential padding)模塊組合而成的網(wǎng)絡結(jié)構(gòu)。該網(wǎng)絡結(jié)構(gòu)見圖4、圖5,其中,C表示卷積層,P表示池化層。
在圖5中描述了RepBlock的結(jié)構(gòu),該結(jié)構(gòu)在頸部網(wǎng)絡處結(jié)合了多尺度特征提取和循環(huán)神經(jīng)網(wǎng)絡,以提高目標檢測的性能。
1.4" 損失函數(shù)
在目標檢測和實例分割中,邊界框回歸(bounding box regression,BBR)是一個關(guān)鍵的步驟,用于定位目標的位置。傳統(tǒng)的邊界框回歸損失函數(shù)通常假設(shè)預測框與實際標注框具有相同的寬高比[19-23]。然而,在寬度和高度值完全不同的情況下,這些損失函數(shù)無法進行優(yōu)化。在本研究中,考慮了預測框與真實框之間的位置關(guān)系以及框體的尺度關(guān)系,相比IoU損失函數(shù),GIoU損失函數(shù)通過考慮目標的非重疊區(qū)域來解決這個問題,彌補了IoU邊界損失函數(shù)無法量化真實框與預測框不相交的缺點。GIoU計算公式如下:
GIoU=1-IoU+|S-A∪B||S|。(6)
GIoU針對這方面進行優(yōu)化,在公式中增加了預測框A和真實框B的最小凸閉合框面積S(最小外接矩形面積),使得在A與B不相交的時候損失仍能下降。
2" 試驗過程
2.1" 數(shù)據(jù)集準備
番茄葉片病害圖片取自云南農(nóng)業(yè)大學后山試驗基地,試驗時間為2022年4—8月。拍攝方式為人工拍攝,考慮到場景變化多端、目標尺度參差不齊等情況,選擇了Mosaic數(shù)據(jù)增強方法來擴展原始數(shù)據(jù)集樣本,增加模型泛化能力。人工拍攝了300張圖像,并經(jīng)過篩選后將數(shù)據(jù)集擴充為1 500張,Mosaic拼接方法見圖6。
進行訓練時將其按表1所示進行劃分。然后通過標簽處理成為YOLO v5s模型需要數(shù)據(jù)的格式,在images文件夾中存放圖像,在label文件夾中存放相對應的txt文件。
2.2" 試驗環(huán)境與參數(shù)設(shè)置
本次試驗環(huán)境配置見表2。
本次試驗訓練模型參數(shù)見表3。
2.3" 評估指標
本研究采用采用精確率(P)、召回率(R)、平均精度均值(mAP)等3個指標對番茄病害檢測模型進行評價。
2.3.1" 精確率
對于目標檢測任務精確率就是在所有預測為正樣本的結(jié)果中,預測正確的比例。其公式為
P=TPTP+FP。(6)
式中:TP表示預測出的正確的框;FP表示預測出的錯誤的框;FP+TP就是所有的預測框的個數(shù)。
2.3.2" 召回率
召回率是在所有預測為正樣本的結(jié)果中,真的是正樣本的概率。它與精確率呈負相關(guān)。當1個類的精確率提高,那么這個類的召回率就會下降。其公式為
R=TPTP+FN。(7)
式中:FN表示沒有被模型識別為正樣本的目標數(shù)量。
2.3.3" 平均精度均值
AP是衡量一個類別檢測效果好壞的參數(shù),根據(jù)不同的置信度和IoU閾值,對應有不同的精確率和召回率,通過計算精確率和召回率構(gòu)成的二維曲線圖的面積即為AP值。而通過不同類別的AP值求取平均精度均值。AP和mAP計算公式為
AP=∫10P(R)dR;(8)
mAP=∑APN。(9)
根據(jù)設(shè)定好的試驗參數(shù),分別使用ActNN-YOLO v5s-RepFPN模型與YOLO v5s、YOLO v4、Faster R-CNN模型在數(shù)據(jù)集進行訓練,并在驗證集進行測試,4個模型的邊界回歸損失和目標置信度變化結(jié)果見圖7。改進后的ActNN-YOLO v5s-RepFPN模型與其他3個模型相比,邊界框回歸損失與目標置信度損失都更小,模型收斂速度更快。在經(jīng)過大約800輪訓練后,ActNN-YOLO v5s-RepFPN模型的邊界框回歸損失和目標置信度損失都趨于平緩,分別達到了0.024 1和0.029 8。
4個模型在驗證集上的精確率、召回率、IoU為0.5的平均精度均值的變化曲線見圖8。在大約120輪訓練后,精確率和召回率出現(xiàn)了驟降,這是因為訓練不充分導致特征之間的聯(lián)系被破壞,特征聚合不足以彌補。此外,ActNN-YOLO v5s-RepFPN模型在經(jīng)過400輪訓練后逐漸趨于平緩,精確率和召回率隨著訓練輪次的增加而抖動上升,表明網(wǎng)絡模型的訓練效果較好。表4中顯示了各模型的性能指標,可以看出ActNN-YOLO v5s-RepFPN模型整體性能優(yōu)于YOLO v5s和YOLO v4等模型。在經(jīng)過1 000輪訓練后,精確率達到了93.6%,召回率達到了90.8%,平均精度均值達到了93.2%,這些數(shù)據(jù)比YOLO v5s原始模型分別高出了10.0、9.8、4.9百分點。病害識別示例見圖9。
3" 番茄葉片病害識別系統(tǒng)設(shè)計
3.1" 應用開發(fā)環(huán)境
保存模型有2種方法。第1種方法是保存整個神經(jīng)網(wǎng)絡的結(jié)構(gòu)和參數(shù)信息,加載模型時直接讀取模型并設(shè)置參數(shù)即可。第2種方法是只保存參數(shù),讀取模型參數(shù)前需要先定義1個與原模型相同的結(jié)構(gòu),然后將參數(shù)導入到該模型中。
訓練好的模型保存后不能直接在TesnorFlow Lite運行,因此,需要先利用TesnorFlow Lite將模型轉(zhuǎn)換為.tflit格式的文件。TensorFlow Lite架構(gòu)設(shè)計見圖10,是TensorFlow 針對移動和嵌入式設(shè)備的輕量級解決方案。以在移動設(shè)備上運行機器學習模型,實現(xiàn)分類等功能,無需與服務器交互。
3.2" 系統(tǒng)功能測試
整個系統(tǒng)測試流程見圖11。
4" 結(jié)論
本研究算法在YOLO v5s 算法的基礎(chǔ)上通過采集實際實驗室番茄病害圖片, 采用Mosaic數(shù)據(jù)增強
解決病害數(shù)據(jù)集不足的問題,測試了番茄在自然場景下病害識別能力。通過使用ActNN替換 YOLO v5 的相應模塊,實現(xiàn)了激活參數(shù)的細粒度壓縮,可以在不影響預測精度的情況下快速壓縮模型參數(shù),從數(shù)據(jù)樣本和模型推廣2個方面來考慮,ActNN在病害檢測應用上具有明顯優(yōu)勢。
提出基于改進YOLO v5s的番茄病害檢測模型ActNN-YOLO v5s-RepFPN,構(gòu)建EfficientRep主干網(wǎng)絡來提取病害特征,并使用EfficientRep替換 YOLO v5s 頸部結(jié)構(gòu)中的傳統(tǒng)卷積,在不失檢測精度的同時平衡計算機硬件能力。
ActNN-YOLO v5s-RepFPN模型需要具備一定的適應性,能夠在不同光照條件下實現(xiàn)穩(wěn)定的檢測結(jié)果。在后續(xù)研究中通過增加訓練數(shù)據(jù)、模型結(jié)構(gòu)優(yōu)化和參數(shù)處理來進一步輕量化,逐步提升模型在移動嵌入式平臺的運行速度。
參考文獻:
[1]米國全,唐艷領(lǐng),牛莉莉,等. 危害我國番茄的重要病毒病及防控措施[J]. 中國瓜菜,2021,34(10):8-14.
[2]張瑞花,蘭超杰,劉" 雯,等. 生物炭對反季節(jié)露地櫻桃番茄生長及產(chǎn)量品質(zhì)的影響[J]. 分子植物育種,2019,17(14):4831-4839.
[3]郭小清,范濤杰,舒" 欣. 基于改進Multi-Scale AlexNet的番茄葉部病害圖像識別[J]. 農(nóng)業(yè)工程學報,2019,35(13):162-169.
[4]李君明,項朝陽,王孝宣,等. “十三五” 我國番茄產(chǎn)業(yè)現(xiàn)狀及展望[J]. 中國蔬菜,2021(2):13-20.
[5]牛學德,高丙朋,南新元,等. 基于改進DenseNet卷積神經(jīng)網(wǎng)絡的番茄葉片病害檢測[J]. 江蘇農(nóng)業(yè)學報,2022,38(1):129-134.
[6]胡志偉,楊" 華,黃濟民,等. 基于注意力殘差機制的細粒度番茄病害識別[J]. 華南農(nóng)業(yè)大學學報,2019,40(6):124-132.
[7]Amara J,Bouaziz B,Algergawy A.A deep learning based approach for banana leaf diseases classification[M]//Mitschang B.Lecture notes in informatics(LNI).Bonn:Gesellschaft Für Informatik,2017:79-88.
[8]Vaswani A,Shazeer N,Parmar N,et al. Attention is all you need[C]//31st Conference on Neural Information Processing Systems(NIPS). Long Beach,2017:5998-6008.
[9]Brahimi M,Boukhalfa K,Moussaoui A.Deep learning for tomato diseases:classification and symptoms visualization[J]. Applied Artificial Intelligence,2017,31(4):299-315.
[10]劉擁民,劉翰林,石婷婷,等. 一種優(yōu)化的Swin Transformer番茄葉片病害識別方法[J]. 中國農(nóng)業(yè)大學學報,2023,28(4):80-90.
[11]左昊軒,黃祺成,楊佳昊,等. 基于改進YOLO v5s的番茄黃化曲葉病檢測方法[J/OL]. 農(nóng)業(yè)機械學報,2023:1-11(2023-09-15)[2023-10-02]. http://kns.cnki.net/kcms/detail/11.1964.S.20230914.1408.025.html.
[12]王" 瑜,畢" 玉,石健彤,等. 基于注意力與多級特征融合的YOLO v5算法[J]. 鄭州大學學報(工學版),2024,45(3):38-45,95.
[13]范天浩,顧寄南,王文波,等. 基于改進YOLO v5s的輕量化金銀花識別方法[J]. 農(nóng)業(yè)工程學報,2023,39(11):192-200.
[14]Dai G W,Hu L,F(xiàn)an J C. DA-ActNN-YOLO v5:hybrid YOLO v5 model with data augmentation and activation of compression mechanism for potato disease identification[J]. Computational Intelligence and Neuroscience,2022,2022:6114061.
[15]Chakrabarti A,Moseley B.Backprop with approximate activations for memory-efficient network training[EB/OL]. (2019-10-28)[2023-10-02]. http://arxiv.org/pdf/1901.07988 .
[16]Fu F C,Hu Y Z,He Y H,et al. Dont waste your bits! Squeeze activations and gradients for deep neural networks via Tinyscript[EB/OL]. [2023-10-02]. http://proceedings.mlr.press/v119/fu20c/fu20c.pdf.
[17]周紹發(fā),肖小玲,劉忠意,等. 改進的基于YOLO v5s蘋果樹葉病害檢測[J]. 江蘇農(nóng)業(yè)科學,2023,51(13):212-220.
[18]Lin T Y,Dollár P,Girshick R,et al. Feature pyramid networks for object detection[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).Honolulu:IEEE,2017:936-944.
[19]王" 兵,李文璟,唐" 歡. 改進YOLO v3算法及其在安全帽檢測中的應用[J]. 計算機工程與應用,2020,56(9):33-40.
[20]熊恩杰,張榮芬,劉宇紅,等. 面向交通標志的Ghost-YOLO v8檢測算法[J]. 計算機工程與應用,2023,59(20):200-207.
[21]晏" 朋,李遇鑫,李治林,等. 基于改進YOLO v7的高鐵異物入侵檢測算法[J]. 無線電工程,2024,54(5):1099-1109.
[22]郭明鎮(zhèn),汪" 威,申紅婷,等. 改進型YOLO v4-tiny的輕量級目標檢測算法[J]. 計算機工程與應用,2023,59(23):145-153.
[23]Ren S Q,He K M,Girshick R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.