?

基于通道非降維與空間協調注意力的改進YOLOv8養殖魚群檢測

2023-10-19 06:05涂萬于紅張鵬韋思學張鑫楊宗軼吳俊峰林遠山胡澤元
大連海洋大學學報 2023年4期
關鍵詞:魚群注意力卷積

涂萬,于紅*,張鵬,韋思學,張鑫,楊宗軼,吳俊峰,林遠山,胡澤元

(1.大連海洋大學 信息工程學院,遼寧省海洋信息技術重點實驗室,遼寧 大連 116023;2.設施漁業教育部重點實驗室(大連海洋大學),遼寧 大連 116023)

精準養殖是水產養殖的新趨勢,目標檢測技術是精準養殖的基礎[1-2]。然而,在真實的養殖環境中,模糊和遮擋對魚類目標檢測具有較強的干擾。傳統的圖像處理和機器視覺方法往往難以處理復雜的水下情況,導致檢測準確度不高[3-4]。近年來,深度學習為目標檢測提供了新的解決方法[5-6]。

深度學習中,YOLO算法因具有計算量較小、運行速度快等特點,廣泛應用于水下目標檢測中[7]。針對魚群模糊造成的特征丟失問題,Chen等[8]在YOLOv7[9]中使用不同采樣率的膨脹卷積[10],在不增加算法參數量的情況下,減少特征融合中細粒度信息的丟失,增強了模型的特征提取能力;Li等[11]利用先驗知識來增強目標特征,在水下魚群檢測中,精度和召回率分別達到94.92%和92.21%,但模型過度依賴先驗知識的數量,在魚群存在遮擋情況時,無法保持高識別精度;袁紅春等[12]使用GCBlock[13],并優化目標框回歸損失函數,在高密度遮擋情況下,以更低成本完成魚類檢測與識別,但YOLOv8n的識別能力有限,易產生目標漏檢。Li等[14]利用可變形卷積模塊[15],減少了魚類個體漏檢數量,但可變形卷積模塊缺乏有效的學習指導,會重點關注非必要特征,降低了模型的泛化能力。在模型的特征提取能力方面,注意力機制能夠提高模型對關鍵信息的感知能力。針對水下成像模糊、失真等導致魚群檢測準確率低的問題,趙夢等[16]將SKNet[17]注意力機制與YOLOv5融合,構成了關注像素級信息的特征提取網絡,提升了養殖魚群檢測和識別的整體效果,但SKNet的降維操作會丟失魚類個體的空間信息,導致目標定位精準度下降;韋思學等[18]提出融合通道非降維雙重注意力機制ECBAM來獲取更多的魚類細節特征,對養殖魚群目標檢測效果更佳,但ECBAM僅對氣泡造成的遮擋有所改善,仍具有局限性。

綜上可知,基于YOLO的水下魚群檢測方法存在如下問題:養殖環境中,模糊會造成特征信息嚴重缺失,導致檢測精度下降;高密度養殖會產生密集遮擋,目標間特征差異較小且會相互影響,使檢測的召回率降低。因此,針對上述問題,本研究中,提出基于通道非降維與空間協調注意力ECAM(efficient coordination attention module)的改進YOLOv8養殖魚群檢測方法YOLOv8-Head-ECAM,在FPN(feature pyramid network)[19]中增加大尺寸檢測頭,同時在特征融合后使用ECAM注意力機制,降低模糊、遮擋對魚群檢測的影響,以期為養殖魚群的檢測提供有效解決方案。

1 YOLOv8-Head-ECAM模型的構建

真實的養殖環境中,當相機鏡頭或水質發生變化時,會造成魚群圖像出現模糊現象,從而降低算法對魚群的識別能力。另外,以不同角度觀察魚群時常常存在魚群遮擋現象,造成部分魚類個體出現漏檢問題。為解決因模糊和遮擋導致的密集魚群檢測效果不佳的問題,提出以YOLOv8為基礎模型框架的YOLOv8-Head-ECAM,通過改進檢測頭和使用ECAM注意力機制,提升模型的檢測效果。

1.1 YOLOv8模型

YOLOv8是YOLO系列算法的最新版本,能夠以高精度和高速度檢測物體[20]。與YOLOv8相比,YOLOv5中的C3模塊僅對多個BottleNeck結構進行簡單的堆疊,限制了梯度在不同層之間的有效傳遞,模型提取到的特征只包含較少的上下文信息,導致對模糊和遮擋目標的檢測效果下降;而YOLOv7中一系列可訓練的技巧,需要更多的計算資源和訓練時間才能達到最佳性能[21]。YOLOv8在保證其輕量化的同時,可以獲得更豐富的梯度流信息,其算法系列包括5個模型,分別是YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l和YOLOv8x。相比于其他模型,YOLOv8x采用更深的網絡結構,引入了更多的卷積層和殘差連接,從而能夠學習到更多的特征。因此,本研究中采用YOLOv8x作為基礎模型框架。

YOLOv8模型由輸入端、骨干網絡和頭部網絡3部分組成。輸入端將圖像統一成分辨率為640×640的圖像;骨干網絡由用于提取圖像特征的卷積神經網絡組成,通過C2f結構獲取更豐富的梯度流,從而學習更多的特征;頭部網絡包括頸部(Neck)和檢測頭(Detect)兩部分,分別用于特征融合和目標預測。其中,Neck是連接Backbone和Detect的中間層,用于進一步提取特征和調整特征圖的分辨率,提升檢測頭的預測能力;Detect包括分類器和回歸器兩部分,根據Neck的輸出特征預測目標的位置和類別。

1.2 檢測頭的改進

YOLOv8使用Anchor-free檢測頭預測邊界框,通過去除一些不必要的卷積等優化操作,達到更快的檢測速度[20],但對于遮擋魚群的檢測效果并不理想。FPN結構在處理復雜的視覺場景時具有明顯優勢,其獨特的金字塔結構允許模型在不同尺度下進行特征融合,使模型能更好地理解圖像中的細節和上下文信息。最底層的C2f模塊接受的特征來自主干網絡更低層,從而能更好地提取圖像的細節信息,包括邊緣、角點和紋理等。因此,在FPN底層添加一個大尺寸檢測頭,與骨干網絡最底層的C2f進行特征融合,新增加的分辨率為160×160的檢測頭能提供更高的分辨率,捕捉更多的細節信息,可更加有效地檢測水下模糊的魚類目標個體。

1.3 ECAM注意力機制的添加

為了降低模糊背景對魚群檢測造成的干擾,采用ECAM注意力機制,使模型聚焦于圖像中特定的感興趣區域,抑制冗余和干擾信息,提高特征表達能力。ECAM結構如圖1所示,主要包括兩個部分,分別是高效通道注意力模塊(efficient channel attention block,ECAB)和協調空間注意力模塊(coordinated spatial attention block,CSAB)。

圖1 ECAM網絡結構Fig.1 ECAM network structure

針對魚群模糊造成的特征提取能力下降問題,ECAB使用通道注意力[22]學習不同特征通道之間的相關性,提高模型對重要特征的關注程度。為了避免降維操作帶來的性能下降問題,ECAB通過自適應選擇一維卷積核大小的方法,實現局部通道的高效交互,從而降低模型的復雜度。對于給定特征張量F∈RC×H×W(C為通道,H為高度,W為寬度),ECAB的輸出Mc(F)為

Mc(F)=σ{C1[G(F)]}。

(1)

式中:G為全局平均池化;C1為一維卷積;σ為Sigmoid函數。

(2)

(3)

經分解操作后,得到編碼空間信息的中間特征張量f,其計算公式為

f=δ[C2([Zh,Zw])]。

(4)

式中:[·,·]為拼接操作;C2為二維卷積;δ為非線性激活函數。

將f拆分后通過卷積變換得到注意力權重gh和gw,CSAB的最終輸出Ms為

(5)

因此,給定特征張量F,ECAM的輸出M(F)為

F′=Mc(F)?F,

(6)

M(F)=Ms(F′)?F′。

(7)

式中:F∈RC×H×W;?為逐元素相乘。

1.4 YOLOv8-Head-ECAM網絡結構

YOLOv8-Head-ECAM模型結構如圖2所示,在FPN中加入大尺寸檢測頭,捕捉魚類個體的細節信息,然后使用ECAM注意力機制抑制模糊背景帶來的干擾,增強模型的特征提取能力,有效提高了模型對模糊與遮擋目標的識別效果。

圖2 YOLOv8-Head-ECAM網絡結構Fig.2 YOLOv8-Head-ECAM network structure

2 養殖魚群檢測試驗

2.1 數據集和數據增廣

試驗所用數據采集自大連天正實業有限公司大黑石養殖場紅鰭東方鲀養殖車間,為了加大數據集樣本間的差異性,去除了部分高度相似數據,得到600張分辨率為1 280×720的圖像。

由于養殖環境中魚群游動方向不固定,而攝像機拍攝角度單一,為了增加魚群樣本的多樣性,對數據集進行水平、垂直和水平垂直混合翻轉。通過數據增廣后,數據集擴充1倍,共計1 200張分辨率為1 280×720的圖像。按照7∶2∶1的比例隨機劃分數據集,得到訓練集、驗證集和測試集數量分別為840、240和120張,部分數據集翻轉效果如圖3所示。

圖3 部分數據增強圖像Fig.3 Partial data augmentation images

2.2 數據標注

在魚類目標檢測中,數據集的標注是一個關鍵的環節。傳統的手工標注因主體理解和判斷的不同,導致標注結果出現主觀差異。本研究中數據標注由半自動化標注和人工微調兩部分組成。首先,采用Li等[14]試驗已標注的1 008張魚群檢測圖像訓練YOLOv8模型,再將本試驗中所需1 200張未標注圖像送入已訓練好的YOLOv8模型進行數據標注,文件保存為.txt格式。在試驗過程中發現,經過訓練的YOLOv8模型能對圖像中70%的魚類個體實現精準標注,但對模糊和遮擋的目標存在錯檢和漏檢問題。因此,對圖像中剩余30%無法準確標注的個體,通過LabelImg標注工具進行人工微調。

2.3 試驗環境和參數設置

對養殖魚群檢測模型的訓練和測試均在同一環境下運行。試驗所用的操作系統為Ubuntu 20.04,CPU型號為Intel(R)Xeon(R)Platinum 8255C CPU@2.50 GHz,GPU型號為Nvidia Geforce RTX 3080,顯存10 GB,使用的深度學習框架為Pytorch 1.10.0,編程語言為Python 3.8,GPU加速庫為CUDA 11.3。訓練參數設置如下:批大小(batch size)為8,訓練周期(epochs)為300輪,初始學習率(learning rate)為0.000 1。

2.4 評估指標

在模型檢測精度方面,選取準確率(precision rate,P)、召回率(recall rate,R)和平均精度均值(mean average precision,mAP@0.5)作為評價指標;在模型檢測性能方面,選取模型參數量(params)、檢測速度(detection speed)分別作為模型大小、檢測實時性的評價指標。計算公式為

P=PT/(PT+PF),

(8)

R=PT/(PT+NF),

(9)

(10)

(11)

式中:PT為正確預測為魚的樣本數;PF為錯誤預測為魚的樣本數;NF為未被預測為魚的樣本數;PA為精度均值;PmA為mAP,mAP@0.5為IoU閾值設置成0.5的平均精度均值;N為類別總數。

2.5 消融試驗

為驗證模型改進部分的有效性,設計了消融試驗。試驗方案如下:將Head模塊和ECAM分別添加到YOLOv8中,命名為YOLOv8-Head和YOLOv8-ECAM,與同時添加這兩個模塊的YOLOv8-Head-ECAM模型進行對比。

試驗結果如圖4、表1所示,在YOLOv8中,分別添加檢測頭Head與添加注意力機制ECAM后均增加了模型的參數量,降低了模型的檢測速度。這是因為檢測頭通常由一些卷積層和全連接層組成,添加檢測頭會加重模型的計算量;而添加注意力機制使得網絡在多個層級中進行計算和調整,導致計算量和檢測時間增加。而在YOLOv8模型中同時添加檢測頭和注意力機制,雖增加了計算時間,降低了檢測速度,但提高了模型檢測的準確性。YOLOv8-Head-ECAM模型的識別效果最好,與YOLOv8模型相比,準確率、召回率和平均精度均值分別提升了2.3%、1.7%和1.6%。

表1 添加Head與ECAM對模型檢測性能的影響Tab.1 Effects of adding Head and ECAM on model detection performance

圖4 YOLOv8與YOLOv8-Head-ECAM模型檢測效果對比Fig.4 Comparison of detection effects between YOLOv8 and YOLOv8-Head-ECAM model

2.6 ECAM模塊位置分析

為研究ECAM位置對檢測效果的影響,設計了位置對比試驗。將ECAM分別放在3個不同的位置,分別是Backbone的SPPF后、Neck的C2f中及Neck的C2f后。

試驗結果如表2所示,與添加到Backbone相比,將ECAM添加到Neck處,模型取得了更高的準確率和召回率。這是因為Backbone網絡主要提取圖像底層特征,不能很好地獲取魚類個體的全局信息;而Neck網絡利用Backbone網絡的輸出,能夠更好地提取和融合特征。另外,將ECAM放在Neck的C2f后能夠帶來更顯著的提升,因為將注意力機制添加到C2f模塊之后,網絡會對特征融合的結果進行更加精細的調整,使得模型能夠更好地關注與目標相關的特征信息,從而進一步提高目標檢測的精度。

表2 ECAM模塊不同位置對模型檢測性能的影響

2.7 模型對比試驗

為驗證算法對水下魚群檢測的效果,選擇該領域內目前檢測準確率較高的方法進行模型對比試驗,對比模型分別是Li等[11]將先驗知識融入YOLOv5中的水下群體目標檢測模型KAYOLO,Li等[14]融入可變形卷積模塊的水下群體目標檢測模型DCM-ATM-YOLOv5,趙夢等[16]引入SKNet注意力機制的養殖魚群檢測模型SK-YOLOv5,以及韋思學等[18]使用通道非降維雙重注意力機制的養殖魚群檢測模型ESB-YOLO。

試驗結果如表3、圖5所示,YOLOv8-Head-ECAM模型取得了最好的識別效果,雖然采用的對比模型都在一定程度上緩解了模糊、遮擋導致檢測效果不佳的問題,但各自都存在著不足。KAYOLO模型利用先驗知識增強待檢測對象的特征,但模型檢測結果過于依賴先驗知識的質量和數量,當先驗知識有噪聲或數量少時,對模型的檢測效果影響較大;DCM-ATM-YOLOv5模型采用的可變形卷積模塊,由于缺乏有效的學習指導,可能會重點關注非必要特征,造成特征提取能力下降;SK-YOLOv5模型由于采用了SKNet注意力機制,在基于全局上下文的特征融合后,會忽略局部細節信息,導致模糊魚群個體的檢測難度增加;ESB-YOLO模型在空間信息編碼操作中,未考慮空間位置信息交互,導致魚類個體無法精準定位。在檢測速度方面,YOLOv8-Head-ECAM模型雖慢于DCM-ATM-YOLOv5和ESB-YOLO模型,但該模型通過添加大尺寸檢測頭和ECAM注意力機制,在速度滿足實時性要求的情況下,不僅提取了模糊個體的細節信息,還增強了模型的位置感知能力,從而提高了水下養殖魚群目標檢測的準確性。

圖5 不同模型檢測效果對比Fig.5 Comparison of detection effects among different models

2.8 公開數據集的模型檢測性能對比

為了驗證算法的魯棒性,從中國農業人工智能創新創業大賽魚類數據集中隨機選取2 420張圖像,按照7∶2∶1的比例劃分數據集,與KAYOLO、DCM-ATM-YOLOv5、SK-YOLOv5和ESB-YOLO模型同時展開試驗,進行模型性能對比。

試驗結果如圖6、表4所示,YOLOv8-Head-ECAM的準確率、召回率和平均精度均值均高于其他模型,表明本研究中提出的添加ECAM模塊與改進Head模塊的YOLOv8-Head-ECAM模型具有較強的魯棒性。

表4 公開數據集的模型檢測性能對比

圖6 公開數據集的模型檢測效果對比Fig.6 Comparison of model detection effects on public datasets

3 討論

3.1 添加檢測頭對模型檢測性能的影響

將特征金字塔網絡結構引入YOLO模型中,能更好地捕捉不同尺度目標的細節信息,但考慮到每個檢測頭的尺度范圍是固定的,對于小尺度目標無法準確地定位邊界框,一般通過增加大尺度檢測頭來增強對小目標的感知能力。陳衛彪等[24]提出的基于深度可分離多頭網絡結構的目標檢測方法DSM-YOLOv5,在YOLOv5模型中增加一個分辨率為160×160的小目標檢測頭,并將其與高層網絡進行殘差連接,有效地解決了傳統無人機航拍圖像目標檢測算法存在漏檢率高、檢測成功率低和模型體積大等問題,DSM-YOLOv5的mAP@0.5較YOLOv5s提高了3.45%。袁磊等[25]通過在特征金字塔中增加分辨率為160×160的檢測層,提出了一種基于YOLOv5的道路目標檢測改進方法CTC-YOLO,該方法增強了對小目標的學習能力,彌補了檢測目標尺寸范圍小的缺點,在公開數據集KITTI、CITYSCAPES及BDD100K上的試驗結果表明,該方法的mAP@0.5相較基線模型分別提高了3.1%、2%和1.2%。本研究中,保留YOLOv8原有的3個檢測頭,在FPN底層添加一個大尺寸檢測頭,與骨干網絡最底層的C2f進行特征融合,新添加的分辨率為160×160的檢測頭能提供更高的檢測分辨率,捕捉更多的細節信息,更加有效地檢測水下模糊的魚類目標個體。

3.2 使用注意力機制對模型檢測性能的影響

引入注意力機制的方法能有效減少背景干擾,使模型更好地關注目標區域。祝志慧等[26]在主干網絡加入卷積注意力模塊CBAM[27],提出一種基于改進YOLOv7模型的復雜環境鴨蛋檢測方法,在干擾、遮擋等復雜環境下,該方法能夠加強網絡信息傳遞,提高模型對特征的敏感程度,減少復雜環境對鴨蛋的識別干擾,與YOLOv7相比,改進YOLOv7模型的F1值提高了7.6%。 齊向明等[28]通過引入SimAM注意力機制[29],提出了一種小目標檢測算法,有效地解決了圖像檢測中出現的相互遮擋、背景復雜和特征點少的問題,在公開數據集VOC2007+2012的試驗結果表明,與原始算法相比,mAP@0.5提升了3.35%。蔡竹軒等[30]為了較好地關注到目標信息,增強相關通道的特征表達,在空間金字塔池化層前置入有效通道注意力機制ECA[31],通過不降維的跨通道交互,增強了相關通道的特征表達并降低了性能損耗,從而提高了對水稻稻穗的檢測精度。本研究中,在特征融合后使用ECAM注意力機制,能夠忽略模糊背景對魚類個體的影響,聚焦魚類的關鍵特征,檢測精度比原來的模型有所提升,這與上述研究網絡模型改進的思想一致。

4 結論

1)本研究中,提出的基于YOLOv8的養殖魚群檢測模型,通過增加大尺寸檢測頭,捕捉魚類個體的細節信息,增強了模型對模糊目標的識別能力。

2)本研究中,在YOLOv8模型的基礎上,提出通道非降維與空間協調注意力機制ECAM,使模型聚焦于圖像中特定的感興趣區域,降低了模糊背景對魚群個體檢測造成的干擾,從而提高了特征表達能力,提升了檢測的準確性。

3)本研究中,提出的YOLOv8-Head-ECAM模型可以檢測模糊、遮擋的魚群,平均精度均值、準確率和召回率分別達到了96.6%、94.2%和92.4%,與已有檢測效果較好的水下魚群檢測模型相比,該方法具有更好的檢測性能,進一步提高了魚群檢測的有效性。然而,本研究中提出的算法主要針對攝像頭位于水下的魚群檢測,當攝像頭處于水上時,如何識別反光區域的養殖魚目標是未來有待研究解決的問題。

猜你喜歡
魚群注意力卷積
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
魚群漩渦
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
基于改進魚群優化支持向量機的短期風電功率預測
基于人工魚群算法的光伏陣列多峰MPPT控制策略
多子群并行人工魚群算法的改進研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合