董振華 田娟秀 阮志



摘?要:?在農牧業生產和生態環境監測領域,精確識別牧群對于管理和監測工作至關重要。然而,傳統的牧群目標檢測方法存在著檢測精度低和效率低等問題。針對這些問題,本文提出了一種改進的YOLOv5牧群(本文以羊和牛為檢測對象)識別算法。首先,在網絡中嵌入SA注意力機制模塊,通過組卷積來減少計算負擔,同時采用Channel?Shuffle操作來促進不同組之間的信息交流。其次,我們引入CoordConv卷積,它有助于優化神經網絡在包含坐標信息的任務中的表現,同時提升精度和召回率。最后,用EIOU損失函數替代原模型中的CIOU,在提高模型收斂速度的同時獲得更好的定位效果。經過實驗證明,優化后的模型在自行制作的數據集上的平均精度達到了92.3%,較于原始YOLOv5模型提升了1.4%。改進后的模型在檢測精度和速度方面都有明顯提升,可以快速而準確地進行牧群的檢測和識別。
關鍵詞:YOLOv5模型?牧群識別?注意力機制?卷積神經?損失函數
中圖分類號: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
隨著農牧業生產的發展和生態環境的變化,牧群的數量和分布情況需要及時準確地監測和管理。因此,對牧群進行精確檢測成為提高牧民放牧效率的至關重要的一環。
早期的牧群檢測方法主要包括人工檢測法和無人機輔助檢測法等。雖然這些方法簡單易行,但存在許多缺陷:目視檢測容易受到人員視覺水平和疲勞程度的影響;傳統無人機檢測精度較低,降低了牧民放牧效率。隨著計算機視覺技術的不斷發展,利用圖像處理技術進行檢測已成為主流。
基于深度學習的目標檢測算法主要分為兩大類:一類是兩階段目標檢測算法,如R-CNN、Fast?R-CNN等,另一類是單階段目標檢測算法,如SSD、YOLO等。兩階段算法通過卷積神經網絡獲得可能包含物體的多個候選區域,然后對這些候選區域進行處理以完成分類和定位任務。這種方法的優點是精確度高,但計算量大,檢測速度慢。相比之下,單階段算法省略了提取候選區域的步驟,直接對每個特征圖進行回歸預測,因此檢測速度更快,但精確度較低。
Lin等人[1]在RetinaNet算法的基礎上,使用新的Focal?loss損失函數來解決背景類別不平衡的問題。Zhao等人[2]在YOLOv3算法的基礎上,提出了一種新的聚類算法來估計預測邊界框的初始寬度和高度,從而提高了模型的收斂速度,并使其能夠選擇更具代表性的預測邊界框的初始寬度和高度。Yu等人[3]引入改進的PANet結構,使YOLOv4網絡在特征層具有更多的語義信息。王涵等人[4]使用DIoU-NMS方法替代傳統的NMS算法,以改善原YOLOv5模型中對重復遮擋目標的識別。
通過大量的研究和不斷的優化,YOLO算法在各個方面都得到了逐步的提升。本文基于YOLO系列中的YOLOv5原始模型,結合了牧群檢測的實際應用場景,提出了一種改進的YOLOv5算法。首先,在原模型中嵌入了SA?(Shuffle?Attention)注意力機制模塊,它首先將輸入在通道維度上拆分成多組,然后使用置換單元來描述特征在空間和通道維度上的相關性,最后,通過通道置換操作將所有特征整合在一起。其次,在檢測頭引入了CoordConv(Coordinate?Convolution)卷積,使網絡更好地感知特征圖中的位置信息。最后,使用EIOU(Efficient?Intersection?Over?Union-loss)損失函數,以加快模型的收斂速度,從而提高了牧群檢測場景下的識別精度和效率。
2?YOLOv5概述
YOLOv5是一種目標檢測模型,它基于YOLO的架構。YOLOv5算法由Backbone(骨干特征提取網絡),Neck(特征融合層)和Detect(輸出端)三個部分組成。
YOLOv5的輸入端采用了和YOLOv4一樣的Mosaic數據增強方式。即將4張圖片進行拼接以豐富檢測物體的背景,增加模型的魯棒性,同時減少對Batch?Size的需求。骨干網絡在YOLOv5s中充當特征提取器的角色。它負責從輸入圖像中提取具有不同級別的抽象特征。YOLOv5使用CSPDarknet53作為其骨干網絡,CSP(Cross-Stage?Partial?Network)是Darknet的改進版本[5]。它包括多個卷積層和池化層,這些網絡層逐漸減小特征圖的尺寸,但保留了更高級別的特征。骨干網絡幫助模型識別圖像中的不同結構和紋理,使得模型能夠理解物體的形狀和紋理等低級信息。Neck模塊位于骨干網絡和輸出端之間,由特征金字塔(Feature?Pyramid?Networks,FPN)和路徑聚合網絡(Path?Aggregation?Networks,PAN)[6]構成特征融合網絡PANet。PANet通過融合不同層級的特征圖,以提升目標檢測性能,有助于模型更好地理解目標的尺度和背景信息。Detect(輸出端)層負責生成目標物體的邊界框和類別概率分布,從而執行對象檢測任務。這些核心組件相互配合,從而有效地提取多尺度特征信息進行目標檢測。YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x是YOLOv5的不同版本,它們在模型結構和性能方面有所不同。綜合考慮數據集規模與自身設備情況,本文選擇參數量小,運行速率高的YOLOv5s模型來進行模型的預訓。
3?改進的YOLOv5網絡模型
改進后的YOLOv5網絡結構如圖1所示,首先,將原網絡結構中的第一個BottleneckCSP模塊替換為SA注意力機制模塊,它通過將輸入特征在通道維度上分組,然后利用置換單元來捕捉特征之間的空間和通道依賴性,促進了特征之間的通信,進一步提升了模型性能。其次,在檢測頭引入了CoordConv卷積,將位置信息嵌入到卷積操作中,有助于更精確地定位目標,減少了定位錯誤的可能性。最后,使用EIOU損失函數,它結合了交并比(IoU)和歐氏距離(Euclidean?distance)的度量,以更準確地評估檢測框的質量。這些改進之處有助于網絡學習生成更準確的檢測結果,減少了訓練過程中的不穩定性,提高了模型的魯棒性。
3.1?引入SA注意力機制
深度學習中,注意力機制具備獨特的能力,它能夠有針對性地突出基本特征,同時抑制不相關的特征,從而顯著提升模型在特征提取方面的效能。這種機制在目標檢測中被廣泛采用,因為它有效提高了檢測的準確性。為了更進一步提升模型的特征提取潛力,本文在YOLOv5模型的“頸部”引入了SA注意力機制。將輸入的特征圖設為,其中c代表通道數,h代表高度,w代表高度。為了提高計算效率,主干網絡對特征圖進行分組,用來將X沿通道分為g個子特征圖分支,每個在訓練中逐漸捕獲具體的語義回應,然后通過注意力模塊為每個子特征生成對應的系數,表示為。這些分支在特征提取過程中并行計算,從而加快了運算速度。此外,每個分支在特征提取過程中還經過一個注意力模塊,以獲取新的權重參數。在每個分支進入注意力模塊后,再將沿通道細分為兩個子分支,以進一步優化特征提取,表示為。如圖2所示,和分別利用通道內部和子特征圖之間的特征信息,生成了初步的通道注意力特征圖和空間注意力特征圖,以協助模型捕獲不同特征圖的來源信息。
為了在捕獲通道之間的特征信息時避免引入過多的參數量,該方法采用了以下步驟:首先,通過全局平均池化(Global?Averaging?Pooling,GAP)得到子圖的通道特征,記為:
接著使用增強的特征表示,最后通過激活函數控制增強后的特征信息,得到。式中,:
由于空間注意力更加注重信息的來源,我們不僅要計算獲得的通道注意力輸出后,還要計算的空間注意力,以確保兩個分支在合并時充分獲取所有特征信息。使用GN(Group?Normalization)處理以提取空間特征,接著利用強化的特征表示,最后通過激活函數控制增強后的特征信息以得到。式中,:
將兩個注意力特征子圖連接合并,記為。由于和GN超參數都是產生于SA模塊,因此減少了參數量的引入。最后,用Channel?Shuffle算子在通道維度對跨組信息進行融合,合并后的輸出與X的尺寸保持一致,使得SA很容易加入到各種骨干網絡中。
3.2?EIOU損失函數
在目標檢測領域,損失函數的選擇對于模型的性能至關重要。而目標檢測模型通常使用分類損失、定位損失和目標置信度損失這三個部分來構建總損失函數。其中,位置損失函數通常采用(Intersection?over?Union)來衡量,用于評估預測邊界框和實際目標邊界框之間的重疊程度。如果兩個邊界框(通常稱為A框和B框)的重疊面積較大,值將更高,表明模型的預測較為準確。相反,如果值較低,那么模型的預測效果將較差。計算公式如(4)所示。
原YOLOv5s模型使用?CIOU?作為目標框的位置回歸損失函數,其中A和B為兩個邊界框,分別為預測框和真實框的中心點坐標,?分別為預測框和真實框的寬和高。真實框和預測框中心點的歐式距離用表示,?為其最小外接矩陣的對角線距離。為衡量縱橫比一致性參數,是權重函數。
雖然考慮了邊界框回歸的重疊面積、中心點距離、縱橫比。但公式中的參數主要反映了縱橫比的差異,而沒有充分考慮寬高分別與置信度的真實差異,這可能會限制模型有效的優化相似性。針對這一問題,本文引入EIOU損失函數來更準確地對比縱橫比和尺寸差異:
和為預測框與真實框的最小外接矩陣的寬和高,和分別為兩框在寬度和高度上的歐式距離。該方法繼承了CIOU的重疊損失和中心距離損失,但對寬高損失進行了調整。通過在懲罰過程中直接懲罰寬度和高度的預測結果,更準確地反映了預測框與目標框之間的寬高差異,從而提高網絡的收斂速度和回歸精度。
3.3?引入CoordConv卷積
為了使卷積能夠更好的感知空間信息,本文引入CoordConv卷積(見圖3?坐標卷積)。傳統卷積層通常具有三個特性:參數較少、計算高效以及平移不變性。然而,CoordConv模塊只保留了前兩個特性,同時讓模型可以自主決定平移不變性的程度。這有助于提升模型的泛化性能。
在輸入特征圖后面引入了i和j兩個坐標通道,分別表示原始輸入的x和y坐標。當CoordConv的坐標通道與卷積的權重為零時,它的行為與傳統卷積相似,保持了完全的平移不變性。但一旦權重不為零,CoordConv會表現出一定的平移依賴性。從而允許模型學習具有一定程度平移依賴性的能力,類似于殘差連接的靈活性。因此,在需要感知空間信息的任務中使用CoordConv不會增加額外的計算負擔,同時也不完全消除平移不變性,使得網絡可以根據具體任務需求學習平移不變性或者一定程度的平移依賴。
4?結果與討論
4.1?實驗環境與數據集
網絡訓練基于深度學習框架PyTorch實現,并使用CUDA11.1進行訓練。實驗GPU為RTX3090,顯存24GB,CPU為?Intel(R)?Xeon(R)?Gold?6330?CPU?@?2.00GHz。本文以YOLOv5s為基礎模型,輸入圖像大小為640*640,采用SGD方法訓練150輪,batchsize設置為16,初始學習率為1.5,同時學習率衰減策略設置為余弦退火(Cosine?annealing)。
由于目前還沒有統一的牧群檢測的數據集,因此通過網絡爬蟲和視覺中國視頻抽幀自行構建數據集,同時對采集到的圖片采用Mosaic數據增強,最終得到約3?150張圖片,并按照7:1:2比例劃分訓練集、驗證集、測試集。
4.2?評價指標
本文實驗采用平均精度均值(mAP)、召回率(Recall)和每秒檢測幀數(FPS)作為評價指標。召回率(Recall)代表正確預測為正占全部正樣本的比例,mAP為平均精度均值,是所有類別檢測精度的平均值,FPS指的是模型每秒處理的圖片數量,用來衡量檢測速度。
TP為模型正確地將正類別的樣本預測為正類別的數量,FN為被預測成負類的正樣本數。AP代表一個目標的檢測精度,k代表檢測類別數。Frames代表幀數,Time表示檢測時間。
4.3?消融實驗
在相同硬件和數據集條件下,我們進行了一系列消融實驗,包括使用不同的模型變體:原始YOLOv5s網絡、YOLOv5s-EIOU網絡(單獨加入EIOU損失函數)、YOLOv5s-EIOU-SA網絡(同時加入EIOU損失函數和SA注意力機制),以及(ours)網絡(同時加入EIOU損失函數、SA模塊和CoordConv卷積)。
通過對實驗結果數據的分析,我們可以總結如下:EIOU損失函數相較于CIOU更精確地考慮了目標的尺度和長寬比信息,從而提高了邊界框之間的重疊度度量,優化了定位精度。因此,單獨使用EIOU損失函數的YOLOv5s-EIOU模型相對于原始YOLOv5s在平均檢測精度上提高了0.6%。雖然YOLOv5s-EIOU-SA引入了注意力模塊,導致模型復雜度略有增加,檢測時間略有減慢(約0.1?s),但平均精度mAP提高了0.2%。這進一步證明了注意力模塊通過增強關鍵特征的識別能夠提高檢測精度。我們提出的模型(ours)在保證檢測速度的同時,將平均精度提高了1.4%。改進前后檢測效果如圖5,圖6所示。
綜合考慮各種因素,我們的模型在保持高精度的同時,也提高了圖像檢測速度。為了更清晰地比較改進前后模型檢測效果,我們選取了一些明顯的檢測結果進行對比,具體檢測結果如圖5所示。通過比對檢測結果圖像,可以看出,原始YOLOv5s模型在檢測時存在漏檢情況,召回率相對較低,而改進的YOLOv5s-EIOU-SA-Coordconv(ours)模型明顯提升了檢測結果。
5?結語
本文針對傳統檢測算法精度低,效率低等問題,提出了一種改進的YOLOv5牧群檢測算法。首先,通過在網絡中嵌入SA注意力機制模塊,能夠提高模型對特征的提取能力;同時,在頸部和頭部引入CoordConv卷積,使網絡能夠更好的感受特征圖中的空間位置信息,從而提高檢測精度;此外,采用EIOU損失函數優化輸出預測邊界框,避免出現過大的檢測框,進一步提升定位效果。實驗結果表明:改進后的模型網絡對圖像中的目標識別有著較高的準確率,檢測速度也較于原YOLOv5模型有所提升,在未來的工作中,可以將本文算法在無人機上進行部署上,使得智能無人機設備對牧群檢測有更高的檢測精度,進一步提高模型的實用性,從而大大提高牧民的放牧效率。
參考文獻