張 鋆,李溫溫
(1.吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022;2.白城師范學(xué)院 機(jī)械與控制工程學(xué)院,吉林 白城 137000)
除草是農(nóng)業(yè)生產(chǎn)中十分重要的一環(huán),據(jù)統(tǒng)計(jì)我國(guó)每年因雜草造成的主要糧食作物損失約3 000 千噸[1]。目前廣泛采用的除草方法是大范圍地噴灑除草劑,這不但會(huì)造成嚴(yán)重的環(huán)境污染,還會(huì)使殘留的農(nóng)藥通過飲食等途徑進(jìn)入人體。隨著農(nóng)業(yè)技術(shù)的發(fā)展,自動(dòng)化精準(zhǔn)除草成為一種趨勢(shì),針對(duì)雜草識(shí)別領(lǐng)域的研究也在不斷深入,其關(guān)鍵點(diǎn)在于如何對(duì)作物幼苗與雜草進(jìn)行精準(zhǔn)且實(shí)時(shí)地識(shí)別與定位[2]。
針對(duì)作物的識(shí)別定位,傳統(tǒng)機(jī)器學(xué)習(xí)算法通常利用植株的顏色、形狀、紋理等一種或多種特征組合來實(shí)現(xiàn)。張小龍[3]等人分析豌豆苗與雜草背景的顏色特征,基于色差分量完成了對(duì)作物幼苗與雜草的識(shí)別,準(zhǔn)確率為83.5%,并使用Canny算子實(shí)現(xiàn)了對(duì)雜草的定位。李先鋒[4]等人對(duì)葉片提取了包括幾何特征與矩特征的17個(gè)特征,結(jié)合蟻群優(yōu)化和SVM在棉田環(huán)境中的雜草實(shí)現(xiàn)了95%的分類準(zhǔn)確率。近年來,深度學(xué)習(xí)開始廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域,強(qiáng)大的計(jì)算能力使它可以提取圖像深層次的特征,進(jìn)而完成目標(biāo)的識(shí)別與定位。國(guó)內(nèi)已有一些學(xué)者將深度學(xué)習(xí)方法應(yīng)用在農(nóng)業(yè)目標(biāo)檢測(cè)領(lǐng)域。王根[5]等以YOLOv3為基準(zhǔn),改進(jìn)模型先驗(yàn)框的選取方法和損失函數(shù),在茶樹與雜草檢測(cè)數(shù)據(jù)集上的精確率為82.41%。彭明霞[6]等以田間棉花與雜草為研究對(duì)象,使用融合了FPN的Faster-RCNN模型完成了目標(biāo)的識(shí)別與定位,通過構(gòu)建特征金字塔融合來自不同特征層的信息,在該任務(wù)上達(dá)到95.5%的MAP。亢潔[7]等從多尺度融合與特征增強(qiáng)的角度對(duì)SSD算法模型進(jìn)行了改進(jìn),在甜菜與雜草數(shù)據(jù)集上的MAP為88.84%,并提高了模型的檢測(cè)速度。
在上述相關(guān)研究中,傳統(tǒng)算法需要人工手動(dòng)設(shè)計(jì)特征,難度較高,且田間環(huán)境較為復(fù)雜,在不同光照條件、背景等干擾下人工設(shè)計(jì)的特征往往魯棒性較差,實(shí)際應(yīng)用中檢測(cè)精度會(huì)有所降低。深度學(xué)習(xí)方法可以通過建立模型從數(shù)據(jù)中學(xué)習(xí)到復(fù)雜特征,魯棒性較強(qiáng),相較于傳統(tǒng)算法具有一定的優(yōu)勢(shì)。但已有方法中所使用的模型結(jié)構(gòu)較為復(fù)雜,計(jì)算量大,由于嵌入式設(shè)備通常算力較小,考慮到實(shí)時(shí)性問題,應(yīng)使用更為輕量且高效的模型結(jié)構(gòu)來應(yīng)用于檢測(cè)任務(wù),以達(dá)到檢測(cè)精度與速度的均衡[8]。此外,為提高模型的特征提取能力,上述部分文獻(xiàn)使用了基于注意力的方法,但缺少了對(duì)空間局部信息與全局信息的關(guān)注以及信息間的交互。文獻(xiàn)中所使用的定位損失函數(shù)也存在收斂較慢,定位不準(zhǔn)確的缺點(diǎn),影響了最終的模型精度。
為解決以上問題,本文選擇結(jié)構(gòu)較為輕量的YOLOv5s作為基準(zhǔn)網(wǎng)絡(luò)并進(jìn)行改進(jìn),提出一種基于CA(坐標(biāo)注意力)[9]的改進(jìn)模塊DCA充分利用特征中的空間信息,來提高模型的檢測(cè)精度。其次,在定位損失的計(jì)算部分將原模型使用的GIOU替換為EIOU[10],從而更精確地指導(dǎo)模型參數(shù)的更新。實(shí)驗(yàn)證明,改進(jìn)后的算法對(duì)比原模型檢測(cè)能力得到提高,相較于其他主流目標(biāo)檢測(cè)算法也擁有更好的性能。
YOLOv5s是目前較為先進(jìn)的目標(biāo)檢測(cè)模型,根據(jù)模型的寬度和深度不同可分為s、m、x、l四個(gè)版本,本文選用速度與精度兼顧的YOLOv5s-5.0作為基礎(chǔ)模型,如圖1所示。整個(gè)模型可分為Backbone、Neck、Head三個(gè)部分。

圖1 YOLOv5s模型結(jié)構(gòu)圖
Backbone部分負(fù)責(zé)主要的特征提取工作由CBS、Focus、C3、SPP[11]等多個(gè)模塊堆疊而成。其中CBS模塊是Conv(卷積層)、BN(歸一化層)以及SiLU(激活函數(shù))的組合,用來對(duì)圖像進(jìn)行特征的提取、歸一化,并賦予模型非線性的能力。輸入圖像經(jīng)過Focus模塊會(huì)被切片成原圖像一半的高和寬,并在通道維度上進(jìn)行拼接,然后通過CBS結(jié)構(gòu)進(jìn)行特征提取,來整合各通道的信息。該模塊可以在不損失原始圖像信息的情況下對(duì)圖像進(jìn)行下采樣。C3模塊則由一系列的CBS結(jié)構(gòu)結(jié)合殘差網(wǎng)絡(luò)[12]思想構(gòu)建而成,對(duì)進(jìn)一步增強(qiáng)模型的特征提取能力,優(yōu)化訓(xùn)練過程中的梯度傳播路徑起到了重要作用。最后的SPP結(jié)構(gòu)通過使用不同大小的池化核,對(duì)輸入特征圖進(jìn)行多尺度的最大池化下采樣,并在通道維度進(jìn)行拼接,豐富了特征的維度。
Neck部分采用了FPN+PAN的結(jié)構(gòu),對(duì)來自主干網(wǎng)絡(luò)的三個(gè)不同尺度大小的特征層,首先建立自頂向下連接,使得頂層的強(qiáng)語義信息能夠傳遞給底層的特征圖,再通過自底向上的PAN結(jié)構(gòu),將底層的細(xì)節(jié)信息傳遞給高層特征。通過不同尺度特征圖間的信息流動(dòng)與特征融合,可以為后續(xù)的多尺度大小目標(biāo)檢測(cè)提供更有效的特征。
YOLOv5s的Head部分負(fù)責(zé)最后的預(yù)測(cè)輸出,由三個(gè)不同大小的檢測(cè)器構(gòu)成,分別對(duì)應(yīng)了來自Neck部分的三個(gè)特征圖。每個(gè)檢測(cè)器又使用了三種不同大小的錨框在對(duì)應(yīng)特征圖上尋找目標(biāo),最終我們會(huì)使用9種不同尺度大小的錨框來搜索目標(biāo)。淺層的特征圖含有更多的細(xì)節(jié)信息,有助于小目標(biāo)的檢測(cè),深層的特征圖語義信息豐富,適合用來檢測(cè)較大的目標(biāo)。檢測(cè)器會(huì)輸出位置信息,類別信息以及得分情況,再經(jīng)過非極大值抑制算法過濾掉冗余的預(yù)測(cè)框,就得到了最終的預(yù)測(cè)結(jié)果。
為提高模型的特征提取能力,同時(shí)保證整體具有較低的計(jì)算量,需要設(shè)計(jì)高效的結(jié)構(gòu)來進(jìn)行特征提取。不同的特征對(duì)模型最終預(yù)測(cè)的貢獻(xiàn)不同,我們希望模型能更加關(guān)注關(guān)鍵信息。注意力機(jī)制可以通過模型訓(xùn)練得到一組權(quán)重作用在輸入特征圖上,從而達(dá)到強(qiáng)化關(guān)鍵信息的目的。CA注意力(如圖2所示)是2021年被提出的一種輕量化的注意力結(jié)構(gòu),與通常采用的二維全局池化的方式來提取特征的通道注意力不同,CA注意力使用兩個(gè)一維的特征編碼,沿一個(gè)方向捕獲遠(yuǎn)程依賴關(guān)系的同時(shí)可以沿另一個(gè)方向保留精確的位置信息,并對(duì)這組信息進(jìn)行特征提取。最后作用于輸出特征圖上來強(qiáng)化網(wǎng)絡(luò)對(duì)感興趣區(qū)域的表示,并抑制噪聲干擾等無關(guān)信息。

圖2 CA注意力模型結(jié)構(gòu)圖
CA注意力使用了平均池化的方式來進(jìn)行一維的特征編碼,我們認(rèn)為平均池化的采樣方式能夠更好地包含物體的背景信息,有助于模型的分類,但會(huì)忽略掉一些細(xì)節(jié)。而最大池化的采樣方式,可以關(guān)注目標(biāo)的紋理等細(xì)節(jié)信息。在實(shí)際生產(chǎn)環(huán)境下,作物與雜草的背景信息是相似的,紋理及邊緣信息對(duì)作物與雜草的識(shí)別能夠起到重要作用。因此本文為CA注意力添加了一個(gè)分支,使用最大池化來提取這部分關(guān)鍵特征,并在最后與平均池化的分支合并。兩分支共同作用于輸出特征圖,強(qiáng)化最終的分類和定位效果。本文將其命名為DCA注意力模塊,該模塊是一種輕量的網(wǎng)絡(luò)結(jié)構(gòu),只會(huì)略微增加參數(shù)量和計(jì)算量。DCA注意力結(jié)構(gòu)如圖3所示。

圖3 DCA注意力模型結(jié)構(gòu)圖
對(duì)輸入的特征圖,首先使用(1,W),(H,1)兩個(gè)一維的平均池化核以及相同大小的兩個(gè)最大池化核分別對(duì)通道信息進(jìn)行編碼。以對(duì)特征圖的高度信息編碼為例:通過平均池化核,高度為h的第c個(gè)通道的輸出如公式(1)所示。
(1)
而通過最大池化核,高度為h的第c個(gè)通道的輸出如公式(2)所示。
(2)

(3)
(4)

(5)
(6)
其中σ是sigmoid激活函數(shù)。Fh與Fw是兩組不同的卷積層,分別接受來自寬和高的特征信息,并恢復(fù)通道數(shù)。將得到的兩組特征張量作為學(xué)習(xí)到的權(quán)重作用在特征圖上,完成對(duì)特征的強(qiáng)化表示。當(dāng)輸入的特征圖為xc(i,j)時(shí),通過整個(gè)注意力結(jié)構(gòu)的輸出可表示為公式(7)。
(7)
由此,便完成了利用注意力模塊對(duì)特征加權(quán)的過程,使得模型能夠更為關(guān)注重要的特征,同時(shí)抑制背景等無關(guān)信息。
在目標(biāo)檢測(cè)的相關(guān)任務(wù)中,常用IOU來判斷預(yù)測(cè)結(jié)果的定位準(zhǔn)確程度,它表示預(yù)測(cè)框與真實(shí)框的交集面積與兩框并集面積的比值,如公式(8)所示。
(8)
式中B和Bgt分別指代模型的預(yù)測(cè)框與標(biāo)簽給定的真實(shí)框。在YOLOv5s中損失函數(shù)可分為類別損失,定位損失以及置信度損失三部分,原模型的定位損失使用了GIOU損失函數(shù)。相對(duì)于IOU,GIOU引入了能夠同時(shí)包含預(yù)測(cè)框與真實(shí)框的最小外接矩形的面積,作為衡量預(yù)測(cè)結(jié)果與真實(shí)標(biāo)簽差異的因子,解決了預(yù)測(cè)框與真實(shí)框不相交時(shí)梯度為0,訓(xùn)練過程難以優(yōu)化的問題。但當(dāng)預(yù)測(cè)框或真實(shí)框在另一框的內(nèi)部時(shí),該函數(shù)無法度量?jī)?nèi)部位置關(guān)系,導(dǎo)致定位精度降低以及模型收斂較慢。
EIOU損失函數(shù)是在IOU的基礎(chǔ)上,將兩框的中心點(diǎn)距離,寬和高的比值等因素均作為懲罰項(xiàng),來度量?jī)煽蛟谌魏吻闆r的位置關(guān)系,EIOU定位損失計(jì)算如公式(9)所示。
(9)

本文以YOLOv5s為基礎(chǔ)模型,將DCA注意力模塊與YOLOv5s進(jìn)行融合,以強(qiáng)化重要特征的權(quán)重,用于后續(xù)Neck部分的特征融合。在YOLOv5s中C3模塊借鑒了CSPnet[13]的設(shè)計(jì)思想,是主要的特征提取模塊,在主干網(wǎng)絡(luò)中有三種不同結(jié)構(gòu)的C3模塊,我們將DCA模塊添加在Backbone中的4組C3模塊之后,構(gòu)成DCAC3模塊,以達(dá)到強(qiáng)化重要特征權(quán)重的目的。此外,引入了EIOU損失函數(shù)來替換YOLOv5s原有的定位損失,從而更好地量化模型在訓(xùn)練階段的預(yù)測(cè)框回歸情況,指導(dǎo)模型梯度更新。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。

圖4 改進(jìn)的YOLOv5s模型結(jié)構(gòu)圖


圖5 部分?jǐn)?shù)據(jù)增強(qiáng)方法
本文實(shí)驗(yàn)的操作系統(tǒng)為ubuntu20.04,采用pytorch1.11.0版本深度學(xué)習(xí)框架。具體的實(shí)驗(yàn)硬件環(huán)境:CPU型號(hào)為Intel(R) Xeon(R) CPU E5-2680 v4,顯卡型號(hào)為GeForce RTX 3060,顯存大小為12GB,內(nèi)存大小為20GB。
在數(shù)據(jù)加載階段,我們將輸入圖像調(diào)整為640*640的固定大小以適應(yīng)模型的輸入,訓(xùn)練過程使用Adam作為優(yōu)化器,并將初始學(xué)習(xí)率設(shè)置為0.001,采用余弦退火策略來動(dòng)態(tài)調(diào)整學(xué)習(xí)率。為了加快收斂速度,結(jié)合遷移學(xué)習(xí)的思想,將部分預(yù)訓(xùn)練模型權(quán)重加載進(jìn)模型作為初始化的參數(shù)。Batchsize設(shè)置為8。為了使初始先驗(yàn)框能更好地適配數(shù)據(jù)集,使用Kmeans聚類算法來生成9個(gè)大小尺度不同的先驗(yàn)框。觀察模型在訓(xùn)練過程中,驗(yàn)證集損失的下降情況,在模型收斂后保存權(quán)重文件,并在測(cè)試集進(jìn)行測(cè)試,從而得出實(shí)驗(yàn)結(jié)果。
針對(duì)多目標(biāo)檢測(cè)任務(wù),本文采用mAP(平均精度),FPS(檢測(cè)速度),Params(模型參數(shù)量)作為評(píng)估指標(biāo)。平均精度可由Precision(精確率),Recall(召回率)來計(jì)算得出。Precision反映了檢測(cè)到的目標(biāo)中有多少是分類正確的,如公式(10)所示。
(10)
Recall表示所有的待檢測(cè)目標(biāo)中有多少被正確地檢測(cè)到了,如公式(11)所示。
(11)
式中,P和R分別表示精確率和召回率;TP和FP表示被預(yù)測(cè)為正類的正樣本數(shù)量以及被預(yù)測(cè)為正類的負(fù)樣本數(shù)量;FN表示被預(yù)測(cè)為負(fù)類的正樣本數(shù)量;N表示了數(shù)據(jù)集中的樣本類別數(shù),在本文中取N=5。
mAP是目標(biāo)檢測(cè)中最重要的指標(biāo),它綜合考慮了精確率和召回率,能夠反映模型檢測(cè)效果的整體性能。
其中,單類別平均精度計(jì)算過程如公式(12)所示。

(12)
所有類別的平均精度計(jì)算如公式(13)所示。
(13)
為了衡量定位性能,在計(jì)算mAP時(shí)需要指定IOU的閾值,只有當(dāng)預(yù)測(cè)的結(jié)果框圖與真實(shí)值的標(biāo)簽IOU超過閾值且類別預(yù)測(cè)正確時(shí),我們才認(rèn)為模型成功檢測(cè)到了目標(biāo),一般普遍使用的IOU閾值為0.5。此外,另一種常用的評(píng)估方式是將IOU在0.5到0.95這個(gè)區(qū)間范圍內(nèi),每間隔0.05,做一次mAP計(jì)算,并最終在整個(gè)區(qū)間內(nèi)取平均。這種方式能更好地評(píng)估模型在更高定位要求下的表現(xiàn)。FPS也是一項(xiàng)重要的參考指標(biāo),表示每秒能處理的圖片數(shù)量。Params在一定程度上體現(xiàn)了模型的復(fù)雜程度,參數(shù)量越小越容易移植在移動(dòng)設(shè)備上。
為驗(yàn)證不同注意力結(jié)構(gòu)對(duì)實(shí)驗(yàn)結(jié)果的影響,本文將所提方法與常用注意力結(jié)構(gòu)做了對(duì)照實(shí)驗(yàn),在網(wǎng)絡(luò)的相同位置添加了不同模塊,結(jié)果如表1所示。

表1 YOLOv5s結(jié)合不同注意力結(jié)構(gòu)的作用效果對(duì)比

在損失函數(shù)的選擇上,本文對(duì)添加了DCA模塊之后的網(wǎng)絡(luò)設(shè)置對(duì)照實(shí)驗(yàn),探究多種主流損失函數(shù)的作用效果,如表2所示。

表2 基于YOLOv5s+DCA的不同損失函數(shù)對(duì)照實(shí)驗(yàn)
由于損失函數(shù)的選擇不影響推理過程的速度以及模型本身的參數(shù)量,因此實(shí)驗(yàn)只取了前兩項(xiàng)評(píng)估指標(biāo),由表2可知,CIOU,SIOU,EIOU三種損失函數(shù)均優(yōu)于原本的GIOU損失。EIOU在實(shí)驗(yàn)中達(dá)到了最好的效果,因此本文選擇該損失函數(shù)作為模型的定位損失。
各模塊對(duì)網(wǎng)絡(luò)的作用效果,設(shè)置消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。

表3 消融實(shí)驗(yàn)

將該方法與其他主流目標(biāo)檢測(cè)模型進(jìn)行對(duì)照實(shí)驗(yàn),結(jié)果如表4所示。

表4 與其他主流目標(biāo)檢測(cè)方法效果對(duì)比

模型改進(jìn)前后檢測(cè)效果對(duì)比見圖6。

圖6 模型改進(jìn)前后檢測(cè)效果對(duì)比
如圖6所示,(a1),(b1),(c1),(d1)為YOLOv5s的檢測(cè)結(jié)果圖,(a2),(b2),(c2),(d2)為本文所提出模型的檢測(cè)結(jié)果。可以看出(a1)存在對(duì)植株類別的誤檢,(a2),(a3)發(fā)生了對(duì)圖像邊緣部分目標(biāo)的漏檢情況,(a4)也存在對(duì)小目標(biāo)的漏檢問題。本文提出的算法在結(jié)合了DCA注意力模塊和EIOU損失函數(shù)后,增強(qiáng)了模型的特征提取能力以及定位能力,成功檢測(cè)到了以上誤檢,漏檢的目標(biāo)。
