周紹發(fā) 肖小玲 劉忠意 魯力
摘要:針對目前在復雜環(huán)境下蘋果樹葉病害檢測準確度低、魯棒性差、計算量大等問題,提出一種改進的基于YOLOv5s蘋果樹葉病害的檢測方法。首先,該方法在YOLOv5s網(wǎng)絡基礎上,選擇考慮方向性的SIoU邊框損失函數(shù)替代CIoU邊框損失函數(shù),使網(wǎng)絡訓練和推理過程更快,更準確。其次,在特征圖轉換成固定大小的特征向量的過程中,使用了簡單化的快速金字塔池化(SimSPPF)替換快速金字塔池化(SPPF)模塊,在不影響效率的情況下丟失的信息更少。最后在主干網(wǎng)絡中使用BoTNet(bottleneck transformers)注意力機制,使網(wǎng)絡準確的學習到每種病害的獨有特征,并且使網(wǎng)絡收斂更快。結果表明,相比于基準網(wǎng)絡YOLOv5s,改進后的YOLOv5s網(wǎng)絡mAP精度為86.5%,計算量為15.5GFLOPs,模型權重大小為13.1 MB,相對于基準YOLOv5s,平均精度提升了6.3百分點、計算量降低了0.3GFLOPs、模型權重壓縮了1 MB。并適用于遮擋、陰影、強光、模糊的復雜環(huán)境。本研究所提出的方法,在降低了網(wǎng)絡大小、權重、計算量的情況下提高了復雜環(huán)境下蘋果樹葉病害的檢測精度,且對復雜環(huán)境具有一定的魯棒性。在預防和治理蘋果樹葉病害上有較高的實際應用價值,在后續(xù)研究上,會擴充更多類別的病害數(shù)據(jù)集,部署到無人機等物聯(lián)網(wǎng)設備,從而為實現(xiàn)智能果園種植提供技術參考。
關鍵詞:蘋果樹葉病害;目標檢測;YOLOv5s;bottleneck transformers;SIoU
中圖分類號:TP391.41? 文獻標志碼:A
文章編號:1002-1302(2023)13-0212-09
據(jù)國家統(tǒng)計局2016—2018年全國果園數(shù)據(jù),蘋果園的占比達到了18%,在所有種植水果種類中,是僅次于柑橘的第二大果類,其產(chǎn)量已經(jīng)達到了 4 139萬t[1]。蘋果產(chǎn)量受到氣候、土壤地質(zhì)、灌溉、病害等多種因素的影響。在眾多因素中,蘋果病害是影響產(chǎn)量的最重要因素之一,而樹葉的病害是最常見的。蘋果樹葉病害的特點是種類多且某些病害表現(xiàn)相似,用肉眼難以區(qū)分,導致無法準確定位病害,最終導致產(chǎn)量下降。因此,準確識別出蘋果樹葉病害的類別,是防治病害與對癥下藥的重要前提[2]。
傳統(tǒng)的病害檢測方法主要為對含有病害的圖片進行分析,一般是基于圖片的機器學習方法,其代表方法有基于支持向量機(SVM)和圖片RGB特性分析,以及利用優(yōu)化算法提高其他機器學習方法組合類方法[3]。但是以上方法表現(xiàn)的好壞太依賴于特征提取的方法以及原本數(shù)學方法的局限。
深度學習法對于圖像的特征提取與整合有著較大的進步,已被用于各種植物病害檢測。根據(jù)網(wǎng)絡結構的不同,Bari等使用改進的Fast R CNN(卷積神經(jīng)網(wǎng)絡)實現(xiàn)了對稻葉的常見病害檢測并具有高精度實現(xiàn)效果[3];王超學等使用YOLOv3來檢測葡萄的病蟲害并實現(xiàn)了實際部署[4];Richey等使用YOLOv4實現(xiàn)了低時延的玉米病害檢測[5];Haque等使用YOLOv5實現(xiàn)了蔬菜病害檢測,提高了對小范圍病害的檢測和定位效果[6];雷建云等使用改進的殘差網(wǎng)絡實現(xiàn)了多種類的水稻害蟲識別,并實現(xiàn)了77.12%的高準確率和強魯棒性[7]。
上述方法大多數(shù)都能對研究目標實現(xiàn)較為準確的檢測,但是很少考慮所提出方法在面對不同環(huán)境下的蘋果樹葉病害是否能夠實現(xiàn)高準確率、更小計算量的檢測。為解決此類問題,本研究提出一種以YOLOv5網(wǎng)絡為基礎,加入Bottleneck Transformers注意力機制,并使用簡單化后的快速金字塔池化(SimSPPF)代替原有的快速金字塔池化(SPPF)網(wǎng)絡,以期實現(xiàn)在復雜環(huán)境下高準確率的蘋果樹葉病害檢測。
1 材料與方法
1.1 數(shù)據(jù)集來源
本研究的蘋果樹葉病害數(shù)據(jù)是自建數(shù)據(jù)集,一部分來自AI Studio,為收集不同環(huán)境下的蘋果病害圖片,使用網(wǎng)絡爬蟲、谷歌搜索等技術獲取另外一部分,總計2 041張,圖片格式為jpg,像素為1 000×750。為防止數(shù)據(jù)集過少產(chǎn)生過擬合和泛化性差的現(xiàn)象,通過旋轉、平移、等比例縮放、垂直和水平翻轉等數(shù)據(jù)增強方法,數(shù)據(jù)集總量為4 082張。葉片病害的種類有4類:蛙眼?。╢rog eye)、白粉病(powdery mildew)、銹葉病(rust)、斑點?。╯cab),具體見圖1。
1.2 數(shù)據(jù)預處理及分析
收集到的數(shù)據(jù)是沒有標注或者標注不準確的。使用Label-Img對全部蘋果樹葉做病害標注。采用最大矩形框標注明顯病害處,標注格式為YOLO的txt格式。每張圖片至少有1個病害標注。葉片標注示例與標簽分布見圖2。
1.3 YOLOv5網(wǎng)絡
YOLOv5網(wǎng)絡是在YOLOv4的基礎上改進的1階段(one-stage)目標檢測方法[8],相較于生成候選區(qū)域(region proposal),再通過卷積神經(jīng)網(wǎng)絡預測目標的分類與定位的2階段(two-stage)檢測方法更加簡潔有效。YOLOv5具體的改進是增加了自適應錨框和K-means算法聚類,并采用遺傳算法在訓練過程中調(diào)整錨框。使得整個訓練過程可以找到更好的先驗框,提高檢測準確率。YOLOv5根據(jù)不同的使用場景目的有YOLOv5l、YOLOv5m、YOLOv5s等版本,為保證算法的實時性和大小可控,本研究選擇了YOLOv5s版本,具體結構見圖3。
YOLOv5s網(wǎng)絡結構大致分成4個部分:輸入(input)、主干網(wǎng)絡(backone)、頸部(neck)及預測頭(head)。首先輸入部分是對圖像進行預處理,如Mosaic增強。主干網(wǎng)絡通過卷積神經(jīng)網(wǎng)絡提取圖片特征信息,頸部負責將信息上采樣,不同網(wǎng)絡層的特征信息融合并將圖像特征傳遞到預測層。預測頭對圖像特征進行預測,生成邊界框并預測類別。
1.4 YOLOv5s網(wǎng)絡的改進
1.4.1 SIoU 邊界框回歸損失是評價目標檢測算法準確度的重要評判標準之一,而最常用的計算指標是交并比(IoU),即目標檢測中預測框與真實框的重疊程度,具體見式1。IoU值越高說明A框與B框重合程度越高,代表模型預測越準確。
IoU=|A∩B||A∪B|。(1)
式中:A代表預測框;B代表真實框。
但是IoU對尺度不敏感,如果2個框沒有相交,根據(jù)定義,IoU=0,不能反映2個框的距離大小,會造成Loss=0沒有梯度回傳,無法進行學習訓練。隨著目標檢測技術的不斷改進,隨后出現(xiàn)不同的IoU改進算法:在IoU的基礎上,解決邊界框不重合時的問題的GIoU[9];在IoU和GIoU的基礎上,考慮邊界框中心點距離信息的DIoU[10];在DIoU的基礎上,考慮邊界框寬高比尺度信息的CIoU[11]。YOLOv5s默認使用CIoU。
SCYLLA-IoU (SIoU)是Gevorgyan在2022年提出的新邊界框回歸損失函數(shù),重新定義了懲罰指標,極大改進了目標檢測算法的訓練和推理速度。通過在損失函數(shù)代價中引入方向性,與現(xiàn)有方法CIoU損失相比,訓練階段的收斂速度更快,推理性能更好[12]。主要由角度損失(angle cost)、距離損失(distance cost)、形狀損失(shape cost)、IoU損失(IoU cost)4個損失函數(shù)組成。
Angle cost的目的是如果α≤π4就最小化α,反之最小化β=π2-α。具體見圖4-a和式(2)。
Λ=1-2×sin2arcsinx-π4
x=chσ=sinα
σ=(bgtcx-bcx)2+(bgtcy-bcy)2
ch=max(bgtcy,bcy)-min(bgtcy,bcy)。(2)
式中:ch為真實框和預測框中心點的高度差;σ為真實框和預測框中心點的距離;sinα在訓練過程中若大于45°取β,否則取α;bgtcx、bgtcy為真實框中心坐標;bcx、bcy為預測框中心坐標。
Distance cost是真實框和預測框的最小外接矩形相關。具體見圖4-b和式(3)。
Δ=∑t=x,y(1-e-γρt)
ρx=bgtcx-bcxcw2,ρy=bgtcy-bcych2,γ=2-Λ。(3)
式中:cw、ch為真實框和預測框最小外接矩形的寬和高;ρt指距離損失使用2次冪來賦權重。
Shape cost具體見式(4):
Ω=∑t=w,h(1-e-ωt)θ
ωw=|w-wgt|max(w,wgt),ωh=|h-hgt|max(h,hgt)。(4)
式中:w、h,wgt、hgt分別為預測框和真實框的寬和高;θ控制對形狀損失的關注程度;ωt是由w、h共同確定的冪數(shù)值。
最終的損失函數(shù)包含了IoU cost,詳見圖4-c和式(5)。
Lbox=1-IoU+Δ+Ω2
IoU=|B∩BGT||B∪BGT|。(5)
1.4.2 SimSPPF SPP(spatial pyramid pooling)結構又被稱為空間金字塔池化,是He等在2015年提出的,它能將任意大小的特征圖轉換成固定大小的特征向量[13]。這避免了對圖像區(qū)域裁剪、縮放等操作導致的圖像失真等問題,解決了提取到重復特征的問題,極大地提高了產(chǎn)生候選框的速度,且節(jié)省了計算成本。而YOLOv5在SPP的基礎上將原本并行的Maxpool替換成串行Maxpool,并行和串行的效果一樣,但串行的效率更高,稱之為SPPF。而SimSPPF將SPPF的激活函數(shù)SiLU替換為ReLU,更加高效,具體改變見圖5。
1.4.3 BoTNet 當前,注意力機制在目標檢測領域已經(jīng)得到廣泛應用[14]。注意力機制的靈感來自于人類視覺面對不同事物時會選擇性地關注重要的信息部分,忽略其他不重要的信息。在注意力機制的幫助下,神經(jīng)網(wǎng)絡可以將有限的計算能力去捕捉更重要的圖像特征,最終達到更好的檢測精度。
為了使網(wǎng)絡能夠在不加大計算量的前提下獲取到更重要的蘋果樹葉病害特征,引入了BoTNet(bottleneck transformers)——基于ResNet改進的一種多頭自注意力機制(multi-head self-attention,MHSA)[15]。BoTNet與ResNet相比,是在一個標準的bottleneck block中將空間3×3卷積層替換成MHSA,差異見圖6,而MHSA原理見圖7。
不同的注意力層對應不同的樹葉病害類別,在自注意力部分采用的是相對位置編碼[16]。具體計算見式(6)至式(8)。
Attention(Q,K,V)=softmaxQKTdkV。(6)
式中:Attention(Q,K,V)為得到的注意力的值;Q、K、V分別為查詢量(query)、鍵(key)和值(value);dk是key的維度。
MHSA是由多個不同的單注意力組成,具體見式(7)~式(8)。
headi=Attention(QWQi,KWKi,VWVi);(7)
MultiHead(Q,K,V)=Concati(headi)WO。(8)
式(7)至式(8)中:Wi和WO為參數(shù)矩陣。
綜上,改進后的網(wǎng)絡結構對不同病害添加了注意力機制,能夠學習到每種病害獨有的特征,在提取特征時,使用更加高效的SimSPPF,并在預測階段引入了具有方向性的SIoU,提高了推理速度及準確度。整體改進的結構見圖8。
2 結果與分析
2.1 試驗環(huán)境與參數(shù)設置
本研究試驗的環(huán)境:CPU為AMD R5 5600,GPU為NVIDIA RTX 3070,操作系統(tǒng)為Windows10,編譯環(huán)境為Python3.7、Pytorch1.12.1深度學習框架,GPU訓練加速為CUDA11.6。試驗時間為2022年7—9月,試驗地點為長江大學農(nóng)學院與計算機科學學院。試驗初始參數(shù)設置見表1。
表1中圖像大小是調(diào)整大小之后得來的,學習率下降方式采用余弦退火(cosine annealing),實現(xiàn)動態(tài)的學習率。Batch size為16,訓練總的輪次為300次(epoch)。在每個epoch中,對圖片的色調(diào)、飽和度、亮度進行變化調(diào)整,并使用了Mosaic方式將多張圖片進行拼接,以實現(xiàn)每個輪次的數(shù)據(jù)都是不同的,增加網(wǎng)絡的泛化性。將原始數(shù)據(jù)集按照? 8 ∶1 ∶1 的比例劃分為訓練集、驗證集和測試集。
2.2 評價指標
本研究采用目標檢測領域常見的精準率(precision,P)、召回率(recall,R)、IoU閾值設置為0.5的平均精度均值mAP(mean average precision,mAP)和計算量(GFLOPs)作為評價指標。其中GFLOPs代表10億次浮點運算量,其他具體計算見式(9)~式(12)。
P=TpTp+Fp;(9)
R=TpTp+Fn;(10)
PmAP=∫10P(R)dR;(11)
PmAP=∑PmAPn;(12)
式中:TP(true postives)是預測正確的正類樣本數(shù)量;FP(false postives)是預測錯誤的正類樣本數(shù)量;Fn(false negatives)是預測錯誤的負類樣本數(shù)量;n為預測的類別數(shù)。
2.3 對比試驗
2.3.1 損失對比 對本研究改進后的YOLOv5s與原YOLOv5s進行對比試驗,除本研究改進部分,其他網(wǎng)絡參數(shù)都參照表1設定,類別訓練損失與類別驗證損失的過程見圖9。由圖9可知,改進后的網(wǎng)絡,在同樣的迭代輪次的情況下,損失更小,網(wǎng)絡訓練更高效。
2.3.2 注意力機制對比 為驗證本研究所提出的BoTNet注意力機制的有效性,在基準模型采用YOLOv5s,且在超參數(shù)和圖像輸入設置相同的情況下,分別將其與當前比較熱門的SE(squeeze-and-excitation)、CBAM(convolutional block attention module)、SimAM(simple attention module)注意力機制進行對比,試驗結果見表2、圖10。
由表2、圖10可知,本研究提出的BoTNet注意力機制在更小的計算量和模型權重的情況下,能實現(xiàn)更高的目標檢測精度。
2.3.3 網(wǎng)絡對比及消融試驗 為體現(xiàn)本研究所提出網(wǎng)絡性能的優(yōu)越性,選取SSD、YOLOv3、YOLOv4、YOLOX等幾種熱門目標檢測網(wǎng)絡。都使用默認網(wǎng)絡參數(shù),且其他條件相同的情況下進行了對比試驗。各種網(wǎng)絡試驗結果見表3。
由表3可知,在最重要的評價指標mAP上,改進后的YOLOv5s網(wǎng)絡比SSD網(wǎng)絡提升27.9百分點;比YOLOv3網(wǎng)絡提升26.6百分點;比YOLOv4提升20.6百分點;比YOLOX網(wǎng)絡提升16.2百分點;比基準YOLOv5s網(wǎng)絡提升6.3百分點。在精準率和召回率上也都遠高于其他網(wǎng)絡。
為全面地驗證本研究所提出每個改進部分的有效性,對每個改進部分進行消融試驗(ablation experiment),即在網(wǎng)絡其他條件不變下,每次只增加1個改進部分的試驗。試驗結果見表4。
通過表4的試驗數(shù)據(jù)可知,每個改進的部分都有效果,在將IoU損失函數(shù)改成SIoU后,mAP上升,同時權重大小有微小的下降,說明SIoU相較于CIoU是更高效的。使用了SimSPPF和BoTNet后,在權重大小和計算量(GFLOPs)下降的情況下,mAP實現(xiàn)了明顯的上升。說明在將任意大小的特征圖轉換成固定大小的特征向量的過程中,SimSPPF丟失的信息更少。而BoTNet讓整個網(wǎng)絡更好地學習到了每種病害的獨有特征。
2.4 實例檢測
選取測試集的圖片,使用上述訓練好的各個網(wǎng)絡進行實例檢測,實例檢測結果見圖11。
由圖11可知,本研究所提出的方法,在識別病害時平均置信度是最高的,實現(xiàn)了更準確的檢測。
為驗證本研究所提出網(wǎng)絡在不同環(huán)境下的魯棒性,選擇遮擋、陰影、強光、模糊4種非正常環(huán)境的部分測試集圖片。環(huán)境實例檢測見圖12。由圖12可知,本研究所提出的方法在復雜的環(huán)境下也能達到較高的準確度。
3 結論
針對目前蘋果樹葉病害檢測準確度低的問題,本研究提出了一種基于YOLOv5s的方法,首先將邊界框損失函數(shù)替換成考慮方向性的SIoU,實現(xiàn)了更高效的網(wǎng)絡訓練,更加準確的推理。在提取圖片特征并轉換為固定特征的過程中,使用了更優(yōu)的SimSPPF,丟失的圖片特征信息更少。在網(wǎng)絡訓練過程中加入了BoTNet注意力機制,使網(wǎng)絡能學習到每種病害的獨有特征。試驗表明,所改進的網(wǎng)絡相比于其他網(wǎng)絡,有著更高的mAP,更低的計算量,更小的模型權重。對復雜環(huán)境下采集到的葉片病害圖片也能準確地檢測,具有一定的環(huán)境魯棒性。在
實際的病蟲害防護中,具有一定的應用價值。后續(xù),會收集更加復雜環(huán)境下的數(shù)據(jù),增加數(shù)據(jù)集,并采用不同數(shù)據(jù)預處理方法來提取不同環(huán)境下的圖片特征,來達到更好的模型泛化性能與精確度。
參考文獻:
[1]李會賓,史 云. 果園采摘機器人研究綜述[J]. 中國農(nóng)業(yè)信息,2019,31(6):1-9.
[2]李書琴,陳 聰,朱 彤,等. 基于輕量級殘差網(wǎng)絡的植物葉片病害識別[J]. 農(nóng)業(yè)機械學報,2022,53(3):243-250.
[3]Bari B S,Islam M N,Rashid M,et al. A real-time approach of diagnosing rice leaf disease using deep learning-based faster R-CNN framework[J]. Peer J Computer Science,2021,7:e432.
[4]王超學,祁 昕,馬 罡,等. 基于YOLOv3的葡萄病害人工智能識別系統(tǒng)[J]. 植物保護,2022,48(6):278-288.
[5]Richey B,Shirvaikar M V. Deep learning based real-time detection of northern corn leaf blight crop disease using YOLOv4[C]//Real-Time Image Processing and Deep Learning. 2021:39-45.
[6]Haque M E,Rahman A,Junaeid I,et al. Rice leaf disease classification and detection using YOLOv5[EB/OL]. (2022-09-04)[2022-10-10]. https://arxiv.org/pdf/2209.01579.pdf.
[7]雷建云,陳 楚,鄭 祿,等. 基于改進殘差網(wǎng)絡的水稻害蟲識別[J]. 江蘇農(nóng)業(yè)科學,2022,50(14):190-198.
[8]Ultralytics.YOLOv5[EB/OL]. (2020-06-26)[2022-02-22]. https://github.com/ultralytics/YOLOv5.
[9]Rezatofighi H,Tsoi N,Gwak J Y,et al. Generalized intersection over union:a metric and a loss for bounding box regression[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019:658-666.
[10]Zheng Z,Wang P,Liu W,et al. Distance-IoU loss:faster and better learning for bounding box regression[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2020:12993-13000.
[11]Zheng Z H,Wang P,Ren D W,et al. Enhancing geometric factors in model learning and inference for object detection and instance segmentation[J]. IEEE Transactions on Cybernetics,2022,52(8):8574-8586.
[12]Gevorgyan Z.SIoU loss:more powerful learning for bounding box regression[EB/OL]. (2022-05-25)[2022-10-10]. https://arxiv.org/abs/2205.12740.
[13]He K M,Zhang X Y,Ren S Q,et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2015,37(9):1904-1916.
[14]Guo M H,Xu T X,Liu J J,et al. Attention mechanisms in computer vision:a survey[J]. Computational Visual Media,2022,8(3):331-368.
[15]Srinivas A,Lin T Y,Parmar N,et al. Bottleneck transformers for visual recognition[C]//2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Nashville:IEEE,2021:16514-16524.
[16]Shaw P,Uszkoreit J,Vaswani A.Self-attention with relative position representations[EB/OL]. (2018-04-12)[2022-09-10]. https://arxiv.org/pdf/1803.02155.pdf.