董振華 田娟秀 阮志
摘?要:?在農(nóng)牧業(yè)生產(chǎn)和生態(tài)環(huán)境監(jiān)測(cè)領(lǐng)域,精確識(shí)別牧群對(duì)于管理和監(jiān)測(cè)工作至關(guān)重要。然而,傳統(tǒng)的牧群目標(biāo)檢測(cè)方法存在著檢測(cè)精度低和效率低等問題。針對(duì)這些問題,本文提出了一種改進(jìn)的YOLOv5牧群(本文以羊和牛為檢測(cè)對(duì)象)識(shí)別算法。首先,在網(wǎng)絡(luò)中嵌入SA注意力機(jī)制模塊,通過組卷積來減少計(jì)算負(fù)擔(dān),同時(shí)采用Channel?Shuffle操作來促進(jìn)不同組之間的信息交流。其次,我們引入CoordConv卷積,它有助于優(yōu)化神經(jīng)網(wǎng)絡(luò)在包含坐標(biāo)信息的任務(wù)中的表現(xiàn),同時(shí)提升精度和召回率。最后,用EIOU損失函數(shù)替代原模型中的CIOU,在提高模型收斂速度的同時(shí)獲得更好的定位效果。經(jīng)過實(shí)驗(yàn)證明,優(yōu)化后的模型在自行制作的數(shù)據(jù)集上的平均精度達(dá)到了92.3%,較于原始YOLOv5模型提升了1.4%。改進(jìn)后的模型在檢測(cè)精度和速度方面都有明顯提升,可以快速而準(zhǔn)確地進(jìn)行牧群的檢測(cè)和識(shí)別。
關(guān)鍵詞:YOLOv5模型?牧群識(shí)別?注意力機(jī)制?卷積神經(jīng)?損失函數(shù)
中圖分類號(hào):TD61;TM75;TP391.41
Detection?Methods?for?Herds?Based?on?the?Improved?YOLOv5?Model
DONG?Zhenhua??TIAN?Juanxiu*??RUAN?Zhi
College?of?Computer?and?Communication,?Hunan?Institute?of?Engineering,?Xiangtan,?Hunan?Province,?411104?China
Abstract:?The?accurate?identification?of?herds?is?essential?for?management?and?monitoring?in?the?fields?of?agricultural?and?animal?husbandry?production?and?ecological?environment?monitoring.?Nevertheless,?there?are?issues?in?the?conventional?target?recognition?method?of?herds,?like?low?detection?accuracy?and?low?efficiency.?This?paper?proposes?an?improved-YOLOv5?recognition?algorithm?of?herds?(sheep?and?cattle?are?used?as?detection?objects)?to?solve?these?issues.?First,?group?convolution?is?used?to?reduce?the?computational?load?by?embedding?the?SA?attention?mechanism?module?in?the?network,?and?the?information?exchange?among?different?groups?is?facilitated?by?Channel?Shuffle?operation.?Next,?the?CoordConv?convolution?is?introduced?to?help?optimize?the?performance?of?neural?networks?in?tasks?that?include?coordinate?information?while?enhancing?precision?and?the?recall?rate.?Lastly,?the?CIOU?in?the?original?model?is?substituted?with?the?EIOU?loss?function?to?obtain?better?localization?effects?while?improving?the?model's?rate?of?convergence.?Experimental?results?show?that?the?average?accuracy?of?the?optimized?model?on?the?self-produced?dataset?reaches?92.3%,?which?is?1.4%?higher?than?that?of?the?original?YOLOv5?model.?The?improved?model?have?significantly?improved?detection?accuracy?and?speed,?allowing?it?to?detect?and?identify?herds?rapidly?and?accuracely.
Key?Words:?YOLOv5?model;?Herd?recognition;?Attention?mechanism;?Convolutional?neural?network;?Loss?function
隨著農(nóng)牧業(yè)生產(chǎn)的發(fā)展和生態(tài)環(huán)境的變化,牧群的數(shù)量和分布情況需要及時(shí)準(zhǔn)確地監(jiān)測(cè)和管理。因此,對(duì)牧群進(jìn)行精確檢測(cè)成為提高牧民放牧效率的至關(guān)重要的一環(huán)。
早期的牧群檢測(cè)方法主要包括人工檢測(cè)法和無人機(jī)輔助檢測(cè)法等。雖然這些方法簡(jiǎn)單易行,但存在許多缺陷:目視檢測(cè)容易受到人員視覺水平和疲勞程度的影響;傳統(tǒng)無人機(jī)檢測(cè)精度較低,降低了牧民放牧效率。隨著計(jì)算機(jī)視覺技術(shù)的不斷發(fā)展,利用圖像處理技術(shù)進(jìn)行檢測(cè)已成為主流。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩大類:一類是兩階段目標(biāo)檢測(cè)算法,如R-CNN、Fast?R-CNN等,另一類是單階段目標(biāo)檢測(cè)算法,如SSD、YOLO等。兩階段算法通過卷積神經(jīng)網(wǎng)絡(luò)獲得可能包含物體的多個(gè)候選區(qū)域,然后對(duì)這些候選區(qū)域進(jìn)行處理以完成分類和定位任務(wù)。這種方法的優(yōu)點(diǎn)是精確度高,但計(jì)算量大,檢測(cè)速度慢。相比之下,單階段算法省略了提取候選區(qū)域的步驟,直接對(duì)每個(gè)特征圖進(jìn)行回歸預(yù)測(cè),因此檢測(cè)速度更快,但精確度較低。
Lin等人[1]在RetinaNet算法的基礎(chǔ)上,使用新的Focal?loss損失函數(shù)來解決背景類別不平衡的問題。Zhao等人[2]在YOLOv3算法的基礎(chǔ)上,提出了一種新的聚類算法來估計(jì)預(yù)測(cè)邊界框的初始寬度和高度,從而提高了模型的收斂速度,并使其能夠選擇更具代表性的預(yù)測(cè)邊界框的初始寬度和高度。Yu等人[3]引入改進(jìn)的PANet結(jié)構(gòu),使YOLOv4網(wǎng)絡(luò)在特征層具有更多的語義信息。王涵等人[4]使用DIoU-NMS方法替代傳統(tǒng)的NMS算法,以改善原YOLOv5模型中對(duì)重復(fù)遮擋目標(biāo)的識(shí)別。
通過大量的研究和不斷的優(yōu)化,YOLO算法在各個(gè)方面都得到了逐步的提升。本文基于YOLO系列中的YOLOv5原始模型,結(jié)合了牧群檢測(cè)的實(shí)際應(yīng)用場(chǎng)景,提出了一種改進(jìn)的YOLOv5算法。首先,在原模型中嵌入了SA?(Shuffle?Attention)注意力機(jī)制模塊,它首先將輸入在通道維度上拆分成多組,然后使用置換單元來描述特征在空間和通道維度上的相關(guān)性,最后,通過通道置換操作將所有特征整合在一起。其次,在檢測(cè)頭引入了CoordConv(Coordinate?Convolution)卷積,使網(wǎng)絡(luò)更好地感知特征圖中的位置信息。最后,使用EIOU(Efficient?Intersection?Over?Union-loss)損失函數(shù),以加快模型的收斂速度,從而提高了牧群檢測(cè)場(chǎng)景下的識(shí)別精度和效率。
2?YOLOv5概述
YOLOv5是一種目標(biāo)檢測(cè)模型,它基于YOLO的架構(gòu)。YOLOv5算法由Backbone(骨干特征提取網(wǎng)絡(luò)),Neck(特征融合層)和Detect(輸出端)三個(gè)部分組成。
YOLOv5的輸入端采用了和YOLOv4一樣的Mosaic數(shù)據(jù)增強(qiáng)方式。即將4張圖片進(jìn)行拼接以豐富檢測(cè)物體的背景,增加模型的魯棒性,同時(shí)減少對(duì)Batch?Size的需求。骨干網(wǎng)絡(luò)在YOLOv5s中充當(dāng)特征提取器的角色。它負(fù)責(zé)從輸入圖像中提取具有不同級(jí)別的抽象特征。YOLOv5使用CSPDarknet53作為其骨干網(wǎng)絡(luò),CSP(Cross-Stage?Partial?Network)是Darknet的改進(jìn)版本[5]。它包括多個(gè)卷積層和池化層,這些網(wǎng)絡(luò)層逐漸減小特征圖的尺寸,但保留了更高級(jí)別的特征。骨干網(wǎng)絡(luò)幫助模型識(shí)別圖像中的不同結(jié)構(gòu)和紋理,使得模型能夠理解物體的形狀和紋理等低級(jí)信息。Neck模塊位于骨干網(wǎng)絡(luò)和輸出端之間,由特征金字塔(Feature?Pyramid?Networks,F(xiàn)PN)和路徑聚合網(wǎng)絡(luò)(Path?Aggregation?Networks,PAN)[6]構(gòu)成特征融合網(wǎng)絡(luò)PANet。PANet通過融合不同層級(jí)的特征圖,以提升目標(biāo)檢測(cè)性能,有助于模型更好地理解目標(biāo)的尺度和背景信息。Detect(輸出端)層負(fù)責(zé)生成目標(biāo)物體的邊界框和類別概率分布,從而執(zhí)行對(duì)象檢測(cè)任務(wù)。這些核心組件相互配合,從而有效地提取多尺度特征信息進(jìn)行目標(biāo)檢測(cè)。YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x是YOLOv5的不同版本,它們?cè)谀P徒Y(jié)構(gòu)和性能方面有所不同。綜合考慮數(shù)據(jù)集規(guī)模與自身設(shè)備情況,本文選擇參數(shù)量小,運(yùn)行速率高的YOLOv5s模型來進(jìn)行模型的預(yù)訓(xùn)。
3?改進(jìn)的YOLOv5網(wǎng)絡(luò)模型
改進(jìn)后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,首先,將原網(wǎng)絡(luò)結(jié)構(gòu)中的第一個(gè)BottleneckCSP模塊替換為SA注意力機(jī)制模塊,它通過將輸入特征在通道維度上分組,然后利用置換單元來捕捉特征之間的空間和通道依賴性,促進(jìn)了特征之間的通信,進(jìn)一步提升了模型性能。其次,在檢測(cè)頭引入了CoordConv卷積,將位置信息嵌入到卷積操作中,有助于更精確地定位目標(biāo),減少了定位錯(cuò)誤的可能性。最后,使用EIOU損失函數(shù),它結(jié)合了交并比(IoU)和歐氏距離(Euclidean?distance)的度量,以更準(zhǔn)確地評(píng)估檢測(cè)框的質(zhì)量。這些改進(jìn)之處有助于網(wǎng)絡(luò)學(xué)習(xí)生成更準(zhǔn)確的檢測(cè)結(jié)果,減少了訓(xùn)練過程中的不穩(wěn)定性,提高了模型的魯棒性。
3.1?引入SA注意力機(jī)制
深度學(xué)習(xí)中,注意力機(jī)制具備獨(dú)特的能力,它能夠有針對(duì)性地突出基本特征,同時(shí)抑制不相關(guān)的特征,從而顯著提升模型在特征提取方面的效能。這種機(jī)制在目標(biāo)檢測(cè)中被廣泛采用,因?yàn)樗行岣吡藱z測(cè)的準(zhǔn)確性。為了更進(jìn)一步提升模型的特征提取潛力,本文在YOLOv5模型的“頸部”引入了SA注意力機(jī)制。將輸入的特征圖設(shè)為,其中c代表通道數(shù),h代表高度,w代表高度。為了提高計(jì)算效率,主干網(wǎng)絡(luò)對(duì)特征圖進(jìn)行分組,用來將X沿通道分為g個(gè)子特征圖分支,每個(gè)在訓(xùn)練中逐漸捕獲具體的語義回應(yīng),然后通過注意力模塊為每個(gè)子特征生成對(duì)應(yīng)的系數(shù),表示為。這些分支在特征提取過程中并行計(jì)算,從而加快了運(yùn)算速度。此外,每個(gè)分支在特征提取過程中還經(jīng)過一個(gè)注意力模塊,以獲取新的權(quán)重參數(shù)。在每個(gè)分支進(jìn)入注意力模塊后,再將沿通道細(xì)分為兩個(gè)子分支,以進(jìn)一步優(yōu)化特征提取,表示為。如圖2所示,和分別利用通道內(nèi)部和子特征圖之間的特征信息,生成了初步的通道注意力特征圖和空間注意力特征圖,以協(xié)助模型捕獲不同特征圖的來源信息。
為了在捕獲通道之間的特征信息時(shí)避免引入過多的參數(shù)量,該方法采用了以下步驟:首先,通過全局平均池化(Global?Averaging?Pooling,GAP)得到子圖的通道特征,記為:
接著使用增強(qiáng)的特征表示,最后通過激活函數(shù)控制增強(qiáng)后的特征信息,得到。式中,:
由于空間注意力更加注重信息的來源,我們不僅要計(jì)算獲得的通道注意力輸出后,還要計(jì)算的空間注意力,以確保兩個(gè)分支在合并時(shí)充分獲取所有特征信息。使用GN(Group?Normalization)處理以提取空間特征,接著利用強(qiáng)化的特征表示,最后通過激活函數(shù)控制增強(qiáng)后的特征信息以得到。式中,:
將兩個(gè)注意力特征子圖連接合并,記為。由于和GN超參數(shù)都是產(chǎn)生于SA模塊,因此減少了參數(shù)量的引入。最后,用Channel?Shuffle算子在通道維度對(duì)跨組信息進(jìn)行融合,合并后的輸出與X的尺寸保持一致,使得SA很容易加入到各種骨干網(wǎng)絡(luò)中。
3.2?EIOU損失函數(shù)
在目標(biāo)檢測(cè)領(lǐng)域,損失函數(shù)的選擇對(duì)于模型的性能至關(guān)重要。而目標(biāo)檢測(cè)模型通常使用分類損失、定位損失和目標(biāo)置信度損失這三個(gè)部分來構(gòu)建總損失函數(shù)。其中,位置損失函數(shù)通常采用(Intersection?over?Union)來衡量,用于評(píng)估預(yù)測(cè)邊界框和實(shí)際目標(biāo)邊界框之間的重疊程度。如果兩個(gè)邊界框(通常稱為A框和B框)的重疊面積較大,值將更高,表明模型的預(yù)測(cè)較為準(zhǔn)確。相反,如果值較低,那么模型的預(yù)測(cè)效果將較差。計(jì)算公式如(4)所示。
原YOLOv5s模型使用?CIOU?作為目標(biāo)框的位置回歸損失函數(shù),其中A和B為兩個(gè)邊界框,分別為預(yù)測(cè)框和真實(shí)框的中心點(diǎn)坐標(biāo),?分別為預(yù)測(cè)框和真實(shí)框的寬和高。真實(shí)框和預(yù)測(cè)框中心點(diǎn)的歐式距離用表示,?為其最小外接矩陣的對(duì)角線距離。為衡量縱橫比一致性參數(shù),是權(quán)重函數(shù)。
雖然考慮了邊界框回歸的重疊面積、中心點(diǎn)距離、縱橫比。但公式中的參數(shù)主要反映了縱橫比的差異,而沒有充分考慮寬高分別與置信度的真實(shí)差異,這可能會(huì)限制模型有效的優(yōu)化相似性。針對(duì)這一問題,本文引入EIOU損失函數(shù)來更準(zhǔn)確地對(duì)比縱橫比和尺寸差異:
和為預(yù)測(cè)框與真實(shí)框的最小外接矩陣的寬和高,和分別為兩框在寬度和高度上的歐式距離。該方法繼承了CIOU的重疊損失和中心距離損失,但對(duì)寬高損失進(jìn)行了調(diào)整。通過在懲罰過程中直接懲罰寬度和高度的預(yù)測(cè)結(jié)果,更準(zhǔn)確地反映了預(yù)測(cè)框與目標(biāo)框之間的寬高差異,從而提高網(wǎng)絡(luò)的收斂速度和回歸精度。
3.3?引入CoordConv卷積
為了使卷積能夠更好的感知空間信息,本文引入CoordConv卷積(見圖3?坐標(biāo)卷積)。傳統(tǒng)卷積層通常具有三個(gè)特性:參數(shù)較少、計(jì)算高效以及平移不變性。然而,CoordConv模塊只保留了前兩個(gè)特性,同時(shí)讓模型可以自主決定平移不變性的程度。這有助于提升模型的泛化性能。
在輸入特征圖后面引入了i和j兩個(gè)坐標(biāo)通道,分別表示原始輸入的x和y坐標(biāo)。當(dāng)CoordConv的坐標(biāo)通道與卷積的權(quán)重為零時(shí),它的行為與傳統(tǒng)卷積相似,保持了完全的平移不變性。但一旦權(quán)重不為零,CoordConv會(huì)表現(xiàn)出一定的平移依賴性。從而允許模型學(xué)習(xí)具有一定程度平移依賴性的能力,類似于殘差連接的靈活性。因此,在需要感知空間信息的任務(wù)中使用CoordConv不會(huì)增加額外的計(jì)算負(fù)擔(dān),同時(shí)也不完全消除平移不變性,使得網(wǎng)絡(luò)可以根據(jù)具體任務(wù)需求學(xué)習(xí)平移不變性或者一定程度的平移依賴。
4?結(jié)果與討論
4.1?實(shí)驗(yàn)環(huán)境與數(shù)據(jù)集
網(wǎng)絡(luò)訓(xùn)練基于深度學(xué)習(xí)框架PyTorch實(shí)現(xiàn),并使用CUDA11.1進(jìn)行訓(xùn)練。實(shí)驗(yàn)GPU為RTX3090,顯存24GB,CPU為?Intel(R)?Xeon(R)?Gold?6330?CPU?@?2.00GHz。本文以YOLOv5s為基礎(chǔ)模型,輸入圖像大小為640*640,采用SGD方法訓(xùn)練150輪,batchsize設(shè)置為16,初始學(xué)習(xí)率為1.5,同時(shí)學(xué)習(xí)率衰減策略設(shè)置為余弦退火(Cosine?annealing)。
由于目前還沒有統(tǒng)一的牧群檢測(cè)的數(shù)據(jù)集,因此通過網(wǎng)絡(luò)爬蟲和視覺中國視頻抽幀自行構(gòu)建數(shù)據(jù)集,同時(shí)對(duì)采集到的圖片采用Mosaic數(shù)據(jù)增強(qiáng),最終得到約3?150張圖片,并按照7:1:2比例劃分訓(xùn)練集、驗(yàn)證集、測(cè)試集。
4.2?評(píng)價(jià)指標(biāo)
本文實(shí)驗(yàn)采用平均精度均值(mAP)、召回率(Recall)和每秒檢測(cè)幀數(shù)(FPS)作為評(píng)價(jià)指標(biāo)。召回率(Recall)代表正確預(yù)測(cè)為正占全部正樣本的比例,mAP為平均精度均值,是所有類別檢測(cè)精度的平均值,F(xiàn)PS指的是模型每秒處理的圖片數(shù)量,用來衡量檢測(cè)速度。
TP為模型正確地將正類別的樣本預(yù)測(cè)為正類別的數(shù)量,F(xiàn)N為被預(yù)測(cè)成負(fù)類的正樣本數(shù)。AP代表一個(gè)目標(biāo)的檢測(cè)精度,k代表檢測(cè)類別數(shù)。Frames代表幀數(shù),Time表示檢測(cè)時(shí)間。
4.3?消融實(shí)驗(yàn)
在相同硬件和數(shù)據(jù)集條件下,我們進(jìn)行了一系列消融實(shí)驗(yàn),包括使用不同的模型變體:原始YOLOv5s網(wǎng)絡(luò)、YOLOv5s-EIOU網(wǎng)絡(luò)(單獨(dú)加入EIOU損失函數(shù))、YOLOv5s-EIOU-SA網(wǎng)絡(luò)(同時(shí)加入EIOU損失函數(shù)和SA注意力機(jī)制),以及(ours)網(wǎng)絡(luò)(同時(shí)加入EIOU損失函數(shù)、SA模塊和CoordConv卷積)。
通過對(duì)實(shí)驗(yàn)結(jié)果數(shù)據(jù)的分析,我們可以總結(jié)如下:EIOU損失函數(shù)相較于CIOU更精確地考慮了目標(biāo)的尺度和長寬比信息,從而提高了邊界框之間的重疊度度量,優(yōu)化了定位精度。因此,單獨(dú)使用EIOU損失函數(shù)的YOLOv5s-EIOU模型相對(duì)于原始YOLOv5s在平均檢測(cè)精度上提高了0.6%。雖然YOLOv5s-EIOU-SA引入了注意力模塊,導(dǎo)致模型復(fù)雜度略有增加,檢測(cè)時(shí)間略有減慢(約0.1?s),但平均精度mAP提高了0.2%。這進(jìn)一步證明了注意力模塊通過增強(qiáng)關(guān)鍵特征的識(shí)別能夠提高檢測(cè)精度。我們提出的模型(ours)在保證檢測(cè)速度的同時(shí),將平均精度提高了1.4%。改進(jìn)前后檢測(cè)效果如圖5,圖6所示。
綜合考慮各種因素,我們的模型在保持高精度的同時(shí),也提高了圖像檢測(cè)速度。為了更清晰地比較改進(jìn)前后模型檢測(cè)效果,我們選取了一些明顯的檢測(cè)結(jié)果進(jìn)行對(duì)比,具體檢測(cè)結(jié)果如圖5所示。通過比對(duì)檢測(cè)結(jié)果圖像,可以看出,原始YOLOv5s模型在檢測(cè)時(shí)存在漏檢情況,召回率相對(duì)較低,而改進(jìn)的YOLOv5s-EIOU-SA-Coordconv(ours)模型明顯提升了檢測(cè)結(jié)果。
5?結(jié)語
本文針對(duì)傳統(tǒng)檢測(cè)算法精度低,效率低等問題,提出了一種改進(jìn)的YOLOv5牧群檢測(cè)算法。首先,通過在網(wǎng)絡(luò)中嵌入SA注意力機(jī)制模塊,能夠提高模型對(duì)特征的提取能力;同時(shí),在頸部和頭部引入CoordConv卷積,使網(wǎng)絡(luò)能夠更好的感受特征圖中的空間位置信息,從而提高檢測(cè)精度;此外,采用EIOU損失函數(shù)優(yōu)化輸出預(yù)測(cè)邊界框,避免出現(xiàn)過大的檢測(cè)框,進(jìn)一步提升定位效果。實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的模型網(wǎng)絡(luò)對(duì)圖像中的目標(biāo)識(shí)別有著較高的準(zhǔn)確率,檢測(cè)速度也較于原YOLOv5模型有所提升,在未來的工作中,可以將本文算法在無人機(jī)上進(jìn)行部署上,使得智能無人機(jī)設(shè)備對(duì)牧群檢測(cè)有更高的檢測(cè)精度,進(jìn)一步提高模型的實(shí)用性,從而大大提高牧民的放牧效率。
參考文獻(xiàn)