雷建云,葉莎,夏夢,鄭祿,鄒金林
(中南民族大學 計算機科學學院&湖北省制造企業(yè)智能管理工程技術研究中心,武漢 430074)
我國是世界最大的鮮食葡萄生產(chǎn)國和消費國.葡萄在生長過程中,容易受到氣候和環(huán)境等因素的影響,在果實、莖、葉片等部位出現(xiàn)各種病害,從而影響葡萄的正常生長,導致葡萄的品質和產(chǎn)量下降.傳統(tǒng)的憑借經(jīng)驗和病理知識的人工確診方式,周期長且耗費人力[1].近年來,研究人員開始使用計算機視覺技術對植物病蟲害進行精準且高效的檢測[2-3],為快速準確識別葡萄病害提供了新的解決思路,同時對于葡萄病害防治、監(jiān)測、自動噴藥等后續(xù)工作具有重要研究意義.
植物病害研究主要分為傳統(tǒng)人工特征提取和深度學習兩種方法.魏麗冉等[4]首先對病害葉片進行預處理,然后使用Lab彩色空間模型進行葉片分割并提取特征,最后使用基于核函數(shù)的支持向量機多分類方法對4種病害進行檢測,最高識別準確率可達89.50%.JAISAKTHI等[5]使用全局閾值法提取葡萄葉片病害部位,然后通過支持向量機對葡萄葉片圖像進行分類,在測試圖像上獲得93.04%的準確率.以上傳統(tǒng)方法需要人工進行病害特征的提取,存在效率低、抗干擾能力弱、普適性差等問題,導致實際農(nóng)業(yè)生產(chǎn)中推廣嚴重受限.隨著深度學習技術的發(fā)展,卷積神經(jīng)網(wǎng)絡取代傳統(tǒng)人工特征提取的方式來進行特征提取,具有更強大的特征表達能力,對植物病害識別的精度和效率都有顯著提升.THET等[6]將VGG16網(wǎng)絡[7]中的最后兩個全連接層改為全局平均池化層,提高VGG16對葡萄葉片病害的分類精度到98.40%.劉闐宇等[8]首先用多角度建議區(qū)域Faster-RCNN[9]檢測圖像中的葡萄葉片,在此基礎上檢測葉片區(qū)域病害,對6種常見葡萄病害平均mAP為66.47%并極大地縮短檢測時間.JIANG等[10]通過引入Inception模塊和Rainbow級聯(lián)在SSD模型[11]中對蘋果葉片病害進行檢測,在ALDD數(shù)據(jù)集上檢測精度為78.80%.對國內外研究分析發(fā)現(xiàn),基于深度學習的植物病害檢測方法比傳統(tǒng)人工特征提取方法步驟更加簡單并且高效,魯棒性更好.目前對于植物病害分類的識別率達到一定的成效,但是對于植物病害分類和病斑同時檢測效果還有待提升.
為進一步提高葡萄病害識別效果,同時實現(xiàn)對病斑區(qū)域的精確定位,本文提出一種以YOLOv4模型[12]為基礎的葡萄葉片病害檢測模型.該模型首先使用多尺度特征提取網(wǎng)絡模塊,為后續(xù)預測網(wǎng)絡獲取更豐富的特征信息.同時,針對深層網(wǎng)絡具有較強語義信息的特點,引入注意力機制,對圖像特征信息進行不同的權重分配,從而有效地提高模型的檢測效果.
YOLOv4是ALEXEY Bochkovskiy等提出的一種端到端的目標檢測算法,其網(wǎng)絡結構主要由輸入端、主干網(wǎng)絡、頸部和頭部4個部分組成,具體結構如圖1所示.圖中Conv表示卷積層,BN表示批量正則化,Concat表示將特征圖的通道進行拼接,DownSampling表示下采樣操作.圖1(b)的CBM模塊表示使用批量正則化BN和Mish激活函數(shù)的卷積層,圖1(c)的CBL模塊表示使用批量正則化BN和Leaky Relu激活函數(shù)的卷積層.圖1(d)的Res_unit模塊表示殘差結構.圖1(e)的CSPn結構表示由n個殘差結構組成的跨階段連接部分,圖1(f)的SPP模塊表示空間金字塔池化結構.
圖1 YOLOv4總體結構Fig.1 YOLOv4 overall structure
YOLOv4輸入端圖像的大小為608×608,使用Mosaic數(shù)據(jù)增強和自對抗訓練(Self-Adversarial Training,SAT)方式,提升網(wǎng)絡的泛化性能.Mosaic數(shù)據(jù)增強對4張圖片進行隨機縮放、隨機裁剪和隨機排布,拼接成一張圖片,能夠增加樣本數(shù),并且減輕GPU壓力.自對抗訓練也是一種數(shù)據(jù)增強的方式,它能夠增加網(wǎng)絡的魯棒性,其包括兩個階段,第一個階段中,神經(jīng)網(wǎng)絡更改原始圖像;第二階段中,訓練神經(jīng)網(wǎng)絡以正常方式在修改后的圖像上執(zhí)行目標檢測任務.
主干網(wǎng)絡采用CSPDarknet53取代YOLOv3[13]中的Darknet53結構,CSP模塊將基礎層的特征映射劃分為兩部分,再通過跨階段層次結構合并,能夠在輕量化的同時保持準確性、降低計算瓶頸、減低內存成本.同時使用Mish激活函數(shù),穩(wěn)定網(wǎng)絡梯度流,提高性能.
頸部網(wǎng)絡采用空間金字塔池化SPP模塊和路徑聚合網(wǎng)絡PANet[14]的結構.SPP模塊對特征層進行1×1、5×5、9×9和13×13四種尺度的最大池化操作,使卷積神經(jīng)網(wǎng)絡的輸入不受固定大小的限制,增加感受野,有效分離重要的上下文特征,同時不降低網(wǎng)絡的運行速度.PANet可以充分利用淺層特征,對不同主干層進行特征融合,進一步提升特征提取能力和檢測性能.YOLOv4將原PANet中的特征層的addtion操作,修改為concatenation操作,以提高預測的準確性.
頭部網(wǎng)絡與YOLOv3保持一致,沿用多尺度預測的方式,輸出3個不同大小的Feature Map,實現(xiàn)對大目標、中目標和小目標的檢測.YOLOv4使用CIOU損失作為預測框回歸回歸誤差,置信度誤差和分類誤差采用交叉熵損失,充分考慮邊界框寬高比的尺度信息.
圖像特征提取效果影響目標檢測的結果.獲取準確的圖像特征信息,得到更多圖像屬性[15],是精確識別目標區(qū)域和位置的關鍵.葡萄葉片病害存在較小的病斑區(qū)域,這些小目標的覆蓋區(qū)域小,其分辨率低,圖像模糊,攜帶的信息少,位置缺少多樣性,特征(亮度、邊緣信息等)比較淺,表達能力弱[16].為提高主干網(wǎng)絡的特征提取能力,本文借鑒了EPSANet[17],引入PSA模塊,構建多尺度特征提取網(wǎng)絡.原主干網(wǎng)絡中的Res unit由一個1×1卷積和一個3×3卷積組成,本文使用PSA模塊替換3×3卷積,得到改進的Res unit_PSA模塊,形成最終的CSPn_PSA模塊,其結構如圖2所示.
圖2 CSPn_PSA模塊Fig.2 CSPn_PSA module
PSA模塊主要通過以下4個步驟實現(xiàn).首先,利用SPC模塊對輸入通道進行劃分,得到每個通道特征圖上的空間信息進行多尺度特征提取.其次,利用SEWeight模塊提取不同尺度特征圖的通道注意力,得到不同通道方向的注意力向量.第三,利用Softmax對多尺度通道注意力向量進行特征重新校準,得到新的多尺度通道交互之后的注意力權重.最后,對重新校準的權重和相應的特征圖進行點乘操作,輸出得到一個多尺度特征信息注意力加權之后的特征圖.其結構如圖3所示.
圖3 PSA模塊Fig.3 PSA module
在PSA模塊中實現(xiàn)多尺度特征提取的關鍵是SPC模塊.SPC模塊采用多分支的方法提取輸入特征圖的空間信息,每個支路的輸入通道維數(shù)為C.在輸入維度上獲取更加豐富的位置信息的同時能夠在多個尺度上進行并行處理.這樣就可以得到單一類型內核的特征映射.同時,在金字塔結構中使用多尺度卷積核可以產(chǎn)生不同的空間分辨率和深度.通過壓縮輸入張量的通道維數(shù),可以有效地提取每個通道特征圖上不同尺度的空間信息.最后,每一個不同尺度的特征圖Fi擁有相同的通道維度C′,其中C′由輸入通道維數(shù)C等分為S份.對于每個分支,可以獨立學習多尺度空間信息,并以局部方式建立跨通道交互.為了在不增加計算量的情況下處理不同核尺度下的輸入張量,將分組卷積應用于卷積核.多尺度內核大小和組大小之間的關系可以用式(1)表述.
式中,K表示卷積核大小,G表示組大小.最后,可以得到多尺度特征圖生成函數(shù):
式中,第i個特征核大小ki=2×(i+1)+1.整個多尺度預處理特征圖F可以通過拼接的方式得到:
通過從多尺度預處理特征圖中提取通道注意力權重信息,得到不同尺度的注意力權重向量.注意力權重向量可以表示為:
式中,Zi是注意力權重.SEWeight模塊用于從不同比例的輸入特征圖中獲取注意力權重.通過以上操作,PSA模塊可以融合不同尺度的上下文信息,并為高層次特征圖提供更好的像素注意力.為了實現(xiàn)注意力信息交互,在不破壞原始通道注意力向量的情況下融合交叉維度向量,整個多尺度通道注意力向量Z可以通過級聯(lián)方式獲得:
式中,⊕是拼接操作符,Zi是Fi來自的注意力值.空間尺度使用軟注意力進行跨通道的自適應選擇,軟分配權重表述為:
Softmax用于獲得多尺度通道的重校準權重atti,其中包含所有空間上的位置信息和通道注意力權重.至此,實現(xiàn)了本地和全局通道注意力之間的交互.隨后,對特征重校準的通道注意力進行拼接,得到完整的通道注意力向量:
式中,atti表示注意力交互后的多尺度注意力權重.將atti與Fi相乘可得到多尺度通道注意力權重的特征圖Yi,計算公式如下:
式中,☉表示通道乘法.使用特征拼接的方式能夠完整的維護特征信息,比求和的方式更加有效.因此,使用拼接的方式得到最終的優(yōu)化輸出為:
注意力機制通過對信息特征進行相關與不相關的抉擇建立動態(tài)權重參數(shù),以加強關鍵信息弱化無用信息,從而加大深度學習算法效率同時也改進了 傳 統(tǒng) 深 度 學 習 的 一 些 缺 陷[18].Coordinate Attention[19]是一種靈活高效的注意力機制,不僅能夠獲取跨通道的信息,還能獲取位置信息,在不引入大量計算開銷的前提下,幫助模型更加精準地定位和識別感興趣的目標.CA模塊通過坐標信息嵌入和坐標注意力生成兩個階段完成特征信息權重分配,其結構圖如圖4所示.
圖4 CA模塊Fig.4 CA module
首先,為了促使注意力模塊能夠捕捉具有精確位置信息的長程空間交互,坐標信息嵌入階段將全局池化分解為一對一維特征編碼操作.對輸入X,先使用尺寸(H,1)和(1,W)的池化核沿著水平坐標方向和豎直坐標方向對每個通道進行編碼.因此,高度為h的第c個通道的輸出表述如下:
類似,寬度為w的第c個通道的輸出表述如下:
上述2種變換分別沿水平和豎直兩個空間方向聚合特征,得到一對方向感知的注意力圖.這兩種變換使得注意力模塊沿著一個空間方向捕捉長程依賴,并沿著另一個空間方向保存精確的位置信息,這有助于網(wǎng)絡更準確地定位感興趣的對象.
坐標注意力生成階段將第一階段得到的XAvg Pool和YAvg Pool張量進行特征融合操作,并且使用一個共享的1×1卷積進行F1變換操作:
其中,[…]表示沿空間維度的特征融合操作,δ為非線性激活函數(shù),f h∈RC/r×(H+W)為在水平方向和垂直方向進行空間信息編碼的中間特征映射.然后沿著空間維度將f分成f h∈RC/r×H和f w=RC/r×W兩個獨立的張量.最后,利用兩個1×1的卷積變換操作Fh和Fw將fh和fw的通道數(shù)變?yōu)橐恢拢?/p>
式中,σ是sigmoid激活函數(shù).通過使用適當?shù)谋嚷蕆來減少f的通道數(shù),擴展輸出gh,gw并作為注意力權重.最后,得到CA模塊的輸出Y:
在深度神經(jīng)網(wǎng)絡中,卷積層特征具有層次性.淺層卷積層主要提取圖像的基本特征,幾何信息表征能力強.深層卷積層提取的是圖像的高階特征,有較強的語義信息,適合融入注意力機制進行調整.因此,本文在不顯著增加模型參數(shù)量和復雜度的原則上,將CA模塊添加到YOLOv4的頸部網(wǎng)絡中,具體結構如圖5所示.
圖5 CA模塊嵌入頸部網(wǎng)絡Fig.5 The CA module is embedded in the neck network
本文算法是基于YOLOv4算法之上,經(jīng)過主干網(wǎng)絡和頸部網(wǎng)絡優(yōu)化之后,得到改進的YOLOv4-PSA-CA算 法,結 構 如 圖6所 示.將 圖 像(608×608)輸入到改進的主干網(wǎng)絡中,其中CSPn_PSA模塊實現(xiàn)多尺度特征提?。浑S后,將主干網(wǎng)絡輸出的特征圖輸入到添加CA模塊的頸部網(wǎng)絡中,最后進入頭部檢測器中進行檢測,得到最終的輸出結果.
圖6 YOLOv4-PSA-CA總體結構Fig.6 YOLOv4-PSA-CAoverall structure
本文所用數(shù)據(jù)集來源PlantVillage(www.PlantVillage.org)中葡萄葉片的數(shù)據(jù)集和自建數(shù)據(jù)集.自建數(shù)據(jù)集為葡萄果園自拍攝圖像,圖像采集工作于2021年5月在湖南省益陽市葡萄果園完成.病害圖像采集過程中,綜合考慮天氣、光照強度影響,分別在早、中、晚不同光照強度和不同拍攝角度拍攝圖像,共收集葉片霜霉病圖像517張.為均衡數(shù)據(jù)樣本,將霜霉病圖像擴充至1017張,包括噪聲添加、亮度增強等數(shù)據(jù)增強方法.擴充后數(shù)據(jù)集共計4656張圖像,其中包括霜霉病1017張,黑腐病1180張,輪斑病1383張,褐斑病1076張.4種病害樣本如圖7所示.
圖7 4種病害樣本圖像Fig.7 Four images of disease samples
本實驗模型訓練使用硬件平臺為Intel(R)Xeon(R)CPU E5-2630 v4@2.20GHz,顯卡為NVIDIA GeForce GTX1060.軟件使用Ubuntu20.04的操作系統(tǒng),Python 3.7,Pytorch 1.7.0深度學習框架.模型訓練過程中,數(shù)據(jù)集按照8∶2的比例進行劃分,選擇Adam優(yōu)化器對網(wǎng)絡參數(shù)進行優(yōu)化,學習率的初始值為0.001,學習動量為0.949,Batchsize設為16,迭代次數(shù)500次,采用Mosaic數(shù)據(jù)增強技巧和Dropblock正則化方式.
本文采用準確率(Precision,P)、召回率(Recall,R)、平均準確率均值(Mean Average Precision,mAP)和浮點計算數(shù)(Float point Operations,F(xiàn)LOPs)4項性能指標驗證網(wǎng)絡的有效性.其中P、R的計算公式為:
式(16)(17)中,TP表示預測正確的正樣本數(shù),F(xiàn)P表示預測錯誤的正樣本數(shù),F(xiàn)N表示預測錯誤的負樣本數(shù).
平均準確率均值mAP是指所有類別的平均準確率AP的平均值.計算公式如下.
浮點計算數(shù)FLOPs在卷積神經(jīng)網(wǎng)絡中常用來衡量模型的計算復雜度.對于卷積層,其計算公式為:
式中,H表示輸入特征圖的高度,W表示出入特征圖的寬度,Ci表示輸入特征圖的通道維數(shù),K表示卷積核大小,Co表示輸出特征圖的通道維數(shù).
對于全連接層,其計算公式為:
式中,I表示輸出維數(shù),O表示輸出維數(shù).
3.4.1 不同改進策略性能對比
為了驗證對算法同時添加PSA模塊和CA模塊更有利于算法精度的提升,本文設置了一組消融實驗,對比分析了4種模型的性能:(1)原YOLOv4模型;(2)僅融合PSA模塊的YOLOv4-PSA模型;(3)僅添加CA模塊的YOLOv4-CA模型;(4)同時添加PSA模塊和CA模塊的YOLOv4-PSA-CA模型.在相同實驗條件下,在葡萄數(shù)據(jù)集上訓練以上4個模型進行結果比較,相關結果如表1所示.本文提出的YOLOv4-PSA-CA比 原YOLOv4模 型mAP值 提 升4.04%,霜霉病、黑腐病、輪斑病和褐斑病的準確率分別提升5.20%、5.65%、4.14%、6.41%,相對于YOLOv4-PSA模型和YOLOv4-CA模型提升效果更明顯.以上4種模型對黑腐病和霜霉病的檢測精度均高于輪斑病和褐斑病,主要原因在于黑腐病和霜霉病病斑區(qū)域大小形狀規(guī)則,利于模型的檢測.
表1 不同改進策略對性能的影響Tab.1 The impact of different improvement strategies on performance
為驗證改進模型在葡萄葉片病害識別上的優(yōu)勢,4種病害各選取一張測試圖像進行實驗,檢測結果如圖8所示.根據(jù)對比可以發(fā)現(xiàn),圖8(a)中原YOLOv4模型對于小病斑檢測中存在較多的漏檢,并且在病斑密集區(qū)域目標框的面積過大,單個病斑的區(qū)分度低.圖8(b)中YOLOv4-PSA模型和圖8(c)中YOLOv4-CA模型比原YOLOv4模型檢測效果都有一定提升.圖8(c)中YOLOv4-PSA-CA模型在融合PSA模塊和CA注意力機制后,對于葡萄葉片病斑檢測的漏檢率明顯降低,并且病斑的區(qū)域定位更加精確.同時在自然環(huán)境中能夠同時對不同葉片的病斑進行檢測,圖像邊緣區(qū)域的病斑也有較好的檢測效果.
圖8 YOLOv4及其改進模型檢測效果可視化對比Fig.8 Visual comparison of detection effects of YOLOv4 and its improved model
3.4.2 不同目標檢測模型性能對比
為了驗證改進后的模型與常用的目標檢測模型的效果,分別對Faster-RCNN模型,YOLOv3模型,YOLOv4模型和YOLOv4-PSA-CA模型使用相同的訓練參數(shù)和數(shù)據(jù)集進行訓練,得到實驗結果如表2所示.
表2 不同模型檢測結果比較Tab.2 Comparison of detection results of different models
本文提出的YOLOv4-PSA-CA模型進行葡萄葉片病害檢測時準確率P和mAP比原YOLOv4模型分別提升了5.35%,4.04%.Faster-RCNN模型中的區(qū)域建議網(wǎng)絡利用卷積層提取到的特征生成目標候選框,但是這些特征具有深層低分辨率的特點,忽略了目標的細節(jié)信息,從而不能較好地生成小目標的候選區(qū)域;YOLOv3模型引入特征金字塔網(wǎng)絡生成3個不同大小的特征圖,來實現(xiàn)多尺度預測,有利于提高對小目標的檢測效果,所以YOLOv3整體檢測精度高于Faster-RCNN模型.YOLOv4-PSA-CA模型相對于Faster RCNN,YOLOv3模型,在準確率、mAP值等方面,都有不同程度的提升.由于PSA模塊引入分組卷積能夠減少模型計算量,同時CA模塊不會顯著增加模型計算量,且YOLOv4-PSA-CA模型中PSA模塊遠大于CA模塊,所以本文提出的模型FLOPs值比YOLOv4模型有所降低.綜上所述,本文提出的YOLOv4-PSA-CA模型具有更優(yōu)秀的性能.
本文以葡萄葉片常見的霜霉病、黑腐病、輪斑病、褐斑病4種病害為研究對象,針對病害病斑小、檢測效果差的問題,提出了基于改進YOLOv4的葡萄葉片病害檢測算法.該算法首先構建了對多尺度金字塔特征提取網(wǎng)絡,在原主干網(wǎng)絡中引入PSA模塊以獲取更加豐富的特征信息.其次,將CA模塊嵌入頸部網(wǎng)絡中,對深層圖像特征進行不同權重分配,獲取通道信息和位置信息,提高模型的識別效果.本文提出的YOLOv4-PSA-CA算法相比原YOLOv4模型,mAP值提升了4.04%,在自然環(huán)境和簡單環(huán)境中都具有較好的檢測效果.葡萄病害不僅發(fā)生在葉片部位,還會發(fā)生在葡萄莖部和果實等部位,由于本文使用的實驗數(shù)據(jù)有限,因此在今后將擴大圖像數(shù)據(jù)集,建立更加豐富、圖像環(huán)境更加復雜的葡萄病害數(shù)據(jù)集.