陳承源 彭晨 程云芬 王玉琦 鄒順?biāo)?/p>
(重慶科技學(xué)院智能技術(shù)與工程學(xué)院,重慶 401331)
農(nóng)業(yè)是全球糧食供應(yīng)和經(jīng)濟(jì)發(fā)展的基石,而農(nóng)作物的生長和產(chǎn)量受到諸多因素的影響。其中常見的重要因素是雜草的存在,其同農(nóng)作物競爭養(yǎng)分、陽光和水分資源,極大危害了糧食作物的生長發(fā)展[1]。目前我國的除草方式主要分為人工除草和化學(xué)用品除草,人工除草主要是通過人力進(jìn)行手動(dòng)除草,存在費(fèi)時(shí)費(fèi)力且效率低下的缺點(diǎn);而化學(xué)用品除草主要是通過各類雜草對(duì)應(yīng)的除草劑進(jìn)行清除,雖然效率很高,但是殘留的化學(xué)藥物會(huì)影響農(nóng)作物的品質(zhì)質(zhì)量,同時(shí)也會(huì)對(duì)土壤造成化學(xué)污染[2]。隨著智慧農(nóng)業(yè)的發(fā)展,如何實(shí)現(xiàn)高效無污染的農(nóng)業(yè)生產(chǎn)方式具有極強(qiáng)的研究意義,有利于推動(dòng)農(nóng)業(yè)在可持續(xù)發(fā)展的道路上持續(xù)發(fā)展[3]。
近年來,基于深度學(xué)習(xí)和圖像數(shù)據(jù)增強(qiáng)技術(shù)的目標(biāo)檢測方法得到了廣泛應(yīng)用,特別是在智慧農(nóng)業(yè)發(fā)展上取得了諸多成就[4-6]。姜紅花等[7]通過對(duì)Mask R-CNN的區(qū)域建議網(wǎng)絡(luò)和輸出模塊優(yōu)化,成功實(shí)現(xiàn)了用于解決玉米田間雜草的識(shí)別檢測;樊湘鵬等[8]通過對(duì)Faster R-CNN的特征提取網(wǎng)絡(luò)進(jìn)行重新選取,實(shí)現(xiàn)棉花幼苗和雜草的識(shí)別定位方法;宋建熙等[9]通過對(duì)Retina-Net進(jìn)行多尺度特征融合和池化層改進(jìn)實(shí)現(xiàn)草坪雜草的檢測識(shí)別;趙輝等[10]通過對(duì)Dense Net模型進(jìn)行改進(jìn)實(shí)現(xiàn)了玉米幼苗及其伴生雜草的種類識(shí)別問題。該類方法雖能夠較好地完成雜草種類的檢測任務(wù),但模型復(fù)雜度較高,難以實(shí)現(xiàn)在邊緣設(shè)備上的部署。
為實(shí)現(xiàn)田間糧食作物和雜草的準(zhǔn)確高效識(shí)別,利用深度學(xué)習(xí)方法解決復(fù)雜環(huán)境下農(nóng)作物與雜草遮擋以及光線等干擾,本文提出了一種改進(jìn)YOLOv5的輕量化識(shí)別模型,所提方法相比改進(jìn)前對(duì)小目標(biāo)檢測率更高,多目標(biāo)漏檢率更低,模型體積更輕,因此具備更好的泛化能力,對(duì)生產(chǎn)實(shí)踐具備指導(dǎo)意義。
YOLOv5是一種目標(biāo)檢測算法,其是YOLO(You Only Look Once)系列算法之一。YOLO算法是一種實(shí)時(shí)目標(biāo)檢測算法,以其高效的速度和準(zhǔn)確性而聞名。YOLOv5在YOLOv4的基礎(chǔ)上進(jìn)行了改進(jìn)和優(yōu)化,YOLOv5算法網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
YOLOv5網(wǎng)絡(luò)主要由3部分組成,分別由Backbone(主干網(wǎng)絡(luò))、Neck(特征融合模塊)和Head(檢測頭部)構(gòu)成。主干網(wǎng)絡(luò)負(fù)責(zé)從輸入圖像中提取特征,YOLOv5使用CSPDarknet53[11]作為默認(rèn)的主干網(wǎng)絡(luò),其是一個(gè)深度殘差網(wǎng)絡(luò),具有較強(qiáng)的特征提取能力。特征融合模塊負(fù)責(zé)將不同尺度的特征圖進(jìn)行融合,以提高目標(biāo)檢測的精度。YOLOv5中使用了PANet[12]作為特征融合模塊,其通過逐層上采樣和下采樣來融合特征圖。檢測頭部負(fù)責(zé)生成目標(biāo)的邊界框和類別概率。YOLOv5使用CIOU Loss校準(zhǔn)預(yù)測框位置并通過非極大值抑制對(duì)目標(biāo)進(jìn)行篩選,包括多個(gè)卷積層和全連接層,用于預(yù)測目標(biāo)的位置和類別。
在YOLOv5網(wǎng)絡(luò)模型中,在特征提取階段往往會(huì)消耗較大的計(jì)算量,為了減少模型體積并提高運(yùn)算速度,引入了GhostNet網(wǎng)絡(luò)結(jié)構(gòu),以降低模型自身的復(fù)雜度。GhostNet[13]作為一種輕量級(jí)的網(wǎng)絡(luò)模型,可以使用更少的參數(shù)量來生成更多的特征圖,即可以實(shí)現(xiàn)保證網(wǎng)絡(luò)模型精度的同時(shí)減少網(wǎng)絡(luò)模型參數(shù)數(shù)量及浮點(diǎn)數(shù)運(yùn)算次數(shù)。
相比于傳統(tǒng)卷積所使用的方法,GhostNet通過常規(guī)卷積、Ghost生成和特征圖拼接3步來進(jìn)行特征信息提取。首先使用少量的傳統(tǒng)卷積生成部分特征圖,然后對(duì)這部分的特征圖進(jìn)行線性運(yùn)算處理去除冗余的特征層,新生成特征圖的操作稱為Ghost生成,最后將卷積生成的特征層與線性操作生成的特征層拼接,組成一個(gè)完整的特征層,如圖2所示。
圖2 Ghost卷積
自然環(huán)境下的糧食作物與雜草生長過程中存在重疊和枝葉遮擋等問題,使得對(duì)最終檢測要求有所提高,因此在本文研究的YOLOv5算法網(wǎng)絡(luò)中添加注意力機(jī)制,通過提高糧食作物和雜草的局部特征信息[14]來提高識(shí)別效果。目前常用的通道注意力機(jī)制通常會(huì)忽略位置信息,位置信息對(duì)于生成空間選擇注意圖會(huì)造成極大的影響,本文使用一種將位置信息與通道信息相結(jié)合的坐標(biāo)注意力機(jī)制[15]增加對(duì)糧食作物和雜草的區(qū)分,提高自然環(huán)境下對(duì)兩者的識(shí)別區(qū)分。
在坐標(biāo)注意力機(jī)制(Coordinate attention,CA)中,通過通道注意力機(jī)制分解為2個(gè)一維特征編碼過程,分別在2個(gè)空間方向?qū)崿F(xiàn)聚合特征,不僅可以在第1個(gè)空間方向?qū)崿F(xiàn)捕獲遠(yuǎn)程依賴關(guān)系,還能夠在第2個(gè)空間方向保留精確的位置信息,從而實(shí)現(xiàn)增強(qiáng)關(guān)注目標(biāo)的表示,CA注意力機(jī)制流程如圖3所示。
圖3 CA注意力機(jī)制
在CA注意力機(jī)制中,為了獲取圖像在寬度和高度上的注意力并對(duì)其精確的位置信息進(jìn)行編碼,使用尺寸大小為(H,1)和(1,W)的池化核對(duì)輸入特征圖分別在寬度和高度2個(gè)方向進(jìn)行全局平均池化處理,進(jìn)而得到在寬度和高度2個(gè)方向的特征圖,公式:
(1)
(2)
將獲得的在寬度和高度2個(gè)方向的特征圖進(jìn)行拼接,將拼接結(jié)果送入卷積核為1×1的卷積模塊,將維度降低為初始的C/r,通過批量歸一化處理和Sigmoid激活函數(shù)后得到在高度上的注意力權(quán)重gh和在寬度上的注意力權(quán)重gw,在原始特征圖上通過乘法加權(quán)計(jì)算,得到在寬度和高度上都帶有注意力權(quán)重的特征圖yc,公式:
f=δ(F1([zh,zw]))
(3)
gh=σ(Fh(fh))
(4)
gw=σ(Fw(fw))
(5)
(6)
圖像特征信息在Neck層進(jìn)行融合時(shí),空間信息逐步向通道傳輸,并且每次特征圖的空間壓縮和通道擴(kuò)展都會(huì)使得語義信息部分丟失,這會(huì)影響最終的預(yù)測結(jié)果。本文在YOLOv5的Neck層中使用GSconv[16]替換傳統(tǒng)卷積,當(dāng)特征圖傳輸?shù)絅eck層時(shí),通道維度達(dá)到最大,寬高維度達(dá)到最小,此時(shí)使用GSconv進(jìn)行上采樣和下采樣操作,特征圖則不需要再進(jìn)行任何變換,同時(shí)可以降低模型復(fù)雜度并保持準(zhǔn)確性。
假設(shè)輸入特征圖通道數(shù)為C1,輸出特征圖通道數(shù)為C2。首先通過一個(gè)標(biāo)準(zhǔn)卷積進(jìn)行下采樣操作,得到通道數(shù)為C2/2的特征圖;再通過一個(gè)深度可分離卷積操作,得到另一個(gè)通道數(shù)為C2/2的特征圖;然后將生成的2個(gè)特征圖進(jìn)行拼接,得到通道數(shù)為C2的拼接特征圖;最后使用通道混洗操作得到輸出目標(biāo)通道數(shù)的特征圖,Gsconv模塊如圖4所示。
圖4 Gsconv模塊
本研究中使用的數(shù)據(jù)集來自公共數(shù)據(jù)集[17],該數(shù)據(jù)集由1118幅圖像組成,其中包含了6種糧食作物和8種雜草。通過英特爾D435、佳能800D和索尼W800 3臺(tái)相機(jī)在不同生長階段的受控環(huán)境和田間條件下拍攝制成,部分實(shí)驗(yàn)圖像如圖5所示。
對(duì)本次數(shù)據(jù)集的圖像使用翻轉(zhuǎn)、旋轉(zhuǎn)、平移、改變亮度和對(duì)比度的方法隨機(jī)組合實(shí)現(xiàn)數(shù)據(jù)增強(qiáng),防止在訓(xùn)練期間出現(xiàn)過擬合現(xiàn)象,共獲得2500張訓(xùn)練集、238張驗(yàn)證集和118張測試集,并使用LabelImg圖像標(biāo)注軟件對(duì)數(shù)據(jù)集中的圖像進(jìn)行標(biāo)注。
本文實(shí)驗(yàn)使用的CPU型號(hào)為Intel(R)Xeon(R)Gold 6230R@2.00GHz,GPU為NVIDA RTX3090,顯存為24G,深度學(xué)習(xí)環(huán)境搭載于CUDA11.1和Pytorch1.9.0框架。
網(wǎng)絡(luò)訓(xùn)練參數(shù)設(shè)置:權(quán)重文件選擇為YOLOv5s.pt,總迭代次數(shù)為150次,每次迭代的訓(xùn)練圖片樣本為32,初始學(xué)習(xí)率為0.01,權(quán)重衰減系數(shù)為0.0005,動(dòng)量大小為0.937。
本文使用的評(píng)價(jià)指標(biāo)主要包括平均精度mAP(mean Average Precision)、參數(shù)量、浮點(diǎn)計(jì)算量FLOPs和模型體積大小。計(jì)算公式:
(7)
(8)
(9)
式中,TP(True Positive)為模型預(yù)測為正類的正樣本;FP(False Positive)為模型預(yù)測為正類的負(fù)樣本;FN(False Negative)為模型預(yù)測為負(fù)類的正樣本;P(Precision)表示精確率;R(Recall)表示召回率;AP(Average Precision)表示單類別平均準(zhǔn)確率;mAP(mean Average Precision)表示多類別平均準(zhǔn)確率度的平均值。
為驗(yàn)證本文改進(jìn)的模型具備有效性,在本次數(shù)據(jù)集上設(shè)置了消融實(shí)驗(yàn),如表1所示。在加入GhostNet后YOLOv5s的參數(shù)量下降了2.0M,計(jì)算量下降了5.2GFLOPs,模型體積下降3.6MB,但mAP值也下降了1.6%。在YOLOv5s中加入Gsconv模塊后,mAP值上升了1.4%,參數(shù)量、計(jì)算量和模型體積僅部分下降。通過GhostNet和Gsconv模塊的結(jié)合,參數(shù)量下降了2.4M,計(jì)算量下降了5.8GFLOPs,模型體積下降了4.4MB,同時(shí)mAP值上升了0.1%。本文將GhostNet、Gsconv模塊和CA注意力機(jī)制相結(jié)合,參數(shù)量下降了2.4M,計(jì)算量下降了5.7GFLOPs,模型體積下降了4.3MB,同時(shí)mAP值上升1.4%。對(duì)于本文實(shí)驗(yàn)所使用的數(shù)據(jù)集,所提改進(jìn)方法在目標(biāo)檢測的性能指標(biāo)實(shí)驗(yàn)下均有所提高,在提高檢測精度的同時(shí)大大降低了模型復(fù)雜度。
表1 消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證本文所提出算法具備有效性,分別于SSD、YOLOv3、YOLOv4等主流算法進(jìn)行對(duì)比實(shí)驗(yàn),選取Map、參數(shù)量、計(jì)算量、模型大小和FPS等5個(gè)性能指標(biāo)進(jìn)行記錄,實(shí)驗(yàn)結(jié)果如表2所示。
由表2可知,對(duì)比mAP,本文算法在mAP上達(dá)到了71.7%,相較于其他模型(SSD、YOLOv3、YOLOv4、YOLOv5)有明顯的優(yōu)勢(shì)。對(duì)比參數(shù)量和計(jì)算量,從結(jié)果中可以看出,本文算法在參數(shù)量(4.6M)和計(jì)算量(10.1GFLOPs)上都較其他模型較低,說明本文算法在保持高檢測性能的同時(shí)具有較高的效率。對(duì)比模型大小,本文算法的模型大小為9.4MB,在所有比較的模型中相對(duì)較小,這對(duì)于模型的部署和存儲(chǔ)是有益的。對(duì)比FPS,本文算法在FPS(200)上表現(xiàn)較好,說明該算法在保持高檢測性能的同時(shí)能夠?qū)崿F(xiàn)較快的實(shí)時(shí)處理。
綜上所述,本文提出的算法在目標(biāo)檢測任務(wù)中取得了較高的mAP(71.7%),同時(shí)具有較低的參數(shù)量和計(jì)算量,并且模型大小較小。此外,該算法還能夠以較高的幀率(200 FPS)進(jìn)行實(shí)時(shí)處理。因此,本文算法在目標(biāo)檢測領(lǐng)域具有潛力,可用于高效準(zhǔn)確地檢測目標(biāo)并滿足實(shí)時(shí)應(yīng)用的需求。檢測對(duì)比如圖6所示。
圖6 檢測效果對(duì)比
本文針對(duì)糧食作物和雜草的識(shí)別提出了一種改進(jìn)的輕量化YOLOv5檢測算法。使用GhostNet替換了YOLOv5中的特征提取模塊,大大減少了模型的復(fù)雜度并提高了檢測速度。同時(shí)加入CA注意力機(jī)制,維持了算法本身的檢測精度。最后加入Gsconv卷積進(jìn)一步減少冗余信息并平衡語義信息。通過實(shí)驗(yàn)分析,改進(jìn)后的算法在平均精度上有所提升,同時(shí)模型參數(shù)量和計(jì)算量也符合輕量化要求,更適合部署在硬件設(shè)備中使用。