
























摘要:水電站一般通過視覺檢測的方法保證門機運行工況安全. 在門機工作區域內,人員和車輛是主要的危險源. 基于深度學習方法,針對檢測圖像中人員和車輛目標尺度不一、存在遮擋的問題,對YOLOv8s模型進行改進. 主干使用引入EMA 注意力機制和動態卷積的Dy?EMA_C2f模塊替代原有C2f,提高對空間與通道跨維依賴關系的學習能力和對不同尺度目標的特征提取能力,減少運算開銷;頸部引入SEAM注意力機制,增強特征融合能力;提出損失函數Focaler-SIoU,聚焦中等處理難度的樣本,改善邊界回歸精度. 在網絡數據集進行驗證實驗,改進后的模型精確率P 提高了10. 3%,召回率R 提高了5. 5%,平均精度均值mAP提升了8. 2%,對遮擋和小尺度的漏檢、誤檢情況明顯改善.
關鍵詞: 深度學習;目標檢測;YOLOv8;注意力機制
中圖分類號:TP39 文獻標志碼:A DOI:10. 19907/j. 0490-6756. 240297
1引言
水電站是我國重要的能源基地,在保障國家能源供應和維護社會穩定方面有著重要意義. 門機[1]作為水電站不可或缺的關鍵設備,起到控制閘門、運輸材料和監控汛情等作用,針對門機運行工況安全的防侵入監控工作必不可少. 對門機來講,工作區域內的危險源在于妨礙門機運行的人員和車輛,因此對于人員與車輛的監控是門機防侵入監控的重點關注內容[2].
目前多數水電站門機監控系統仍采用傳統的人工監控方式,然而,傳統方式需要較高的人力成本,且人員反應到環境現場的速度較慢,難免出現疏漏,存在安全隱患. 近年來,隨著人工智能技術的發展與應用,人們的生產生活水平在各個方面都有了不同程度的進步,尤其是智能監控與環境警戒方面,如智慧工地、智能交通和行為分析等[3].深度學習的飛速發展使得基于神經網絡的目標識別與分類得到重視,深度學習應用于人員車輛檢測的研究也越來越多[4,5].
行人車輛的檢測難點一方面在于復雜多變的背景環境,另一方面在于尺度變化范圍大并且經常出現遮擋情況的檢測目標[6]. 黃金貴等[7]提出了專門針對夜間黑暗條件下的車輛檢測模型MMDYOLOv7,使用多通道注意力模塊MCCA 和多尺度卷積模塊MSC,提升模型捕捉全局與局部特征信息的能力,更好適應低照度和惡劣環境,提高檢測精度. 王娟敏等[8]針對行人和車輛檢測中多尺度與遮擋問題提出基于YOLOv8的RDRFMYOLO,分別設計RFD-Rep 模塊和SFMS 模塊提高對多尺度以及遮擋目標的特征提取能力. 許德剛等[9]在YOLOv8主干尾部添加EMA 注意力機制,通過維度交互進一步挖掘像素級特征,基于多尺度輕量化卷積模塊MLConv 重構C2f 模塊以提高特征提取能力,采用WIOU 損失函數優化邊界框損失.
本文選取YOLOv8s為基線算法,針對行人及車輛目標密集時出現遮擋情況以及尺度變化大的情況造成目標特征難以提取的問題,對模型進行研究與改進.
2 YOLOv8算法
YOLO(You Only Look Once)系列算法[10-14]是典型的一階段目標檢測算法,實現從輸入圖像到輸出結果的端到端處理,在檢測速度、準確性、魯棒性方面具有顯著優勢. 該系列算法自2016 年首個版本YOLOv1 發布以來,經過逐個版本的更新演進,不斷改進優化,提高模型的改進速度和精度,在各個領域受到廣泛應用,并衍生了大量的相關研究. 2023 年,Ultralytics 團隊推出YOLOv8 算法,在以往版本上引入了新的改進,進一步提高了算法的靈活性和檢測性能.
YOLOv8 具有和YOLOv5相同的可擴展性,設計了適用于不同需求場景的不同模型尺寸:n,s, l, m, x模型規模依次變大,參數量也依次增多,計算復雜度依次提高. 根據數據集大小和算力資源限制,本文選用YOLOv8s 作為基線算法進行改進.
YOLOv8s 在模型結構上也與YOLOv5相似,包括輸入端、主干、頸部、檢測頭等4部分,具體模型結構圖如圖1 所示.
輸入端的作用在于對輸入的原圖像進行尺寸統一化,通過填充、縮放等操作調整輸入模型的圖像尺寸,以滿足采樣要求;還會通過Mosiac 等方式進行數據增強,提高數據的多樣性.
主干部分負責處理輸入圖像,提取并輸出多尺度特征圖. C2f 模塊是YOLOv8n 網絡的主要構成部分,相比于YOLOv5 的C3 模塊,在特征提取方面表現出更高的水平,同時殘差思想與瓶頸結構的應用和使模塊大小更為輕量化,減小模型尺寸而提高整體性能.
頸部采用FPN 與PAN 結構,對主干提取的不同尺度特征圖進行融合,PAN 自底向上和自頂向下的路徑起到增強特征融合的作用,有效提升了網絡的特征表達水平,FPN 使網絡能更高效地處理不同大小的目標檢測與分類.
YOLOv8 根據不同任務輸入結果對檢測頭引入解耦結構,將其分為檢測頭與分類頭,采用無錨框檢測機制,簡化模型,賦予網絡更高的檢測速度和準確性.
3改進策略
本文從以下3 個方面對YOLOv8 進行改進:基于EMA 注意力機制[15]和動態卷積[16]構建Dy?EMA_C2f 模塊,替換主干原有的C2f 模塊,提升網絡對跨維相關關系的學習能力和對不同尺度目標的特征提取能力;頸部加入SEAM 模塊[17],加強模型對目標遮擋情況的應對能力和特征融合水平;結合Focaler_IoU[18]和SIoU[19]提出新的后處理算法Focaler_SIoU,并替換YOLOv8 默認的CIoU,改善邊界回歸速度與精度. 圖2 為改進后的YOLOv8模型結構圖.
3. 1主干
YOLOv8 的主干網絡主要依靠C2f 模塊提取圖像特征,該模塊結構如圖3 所示. 輸入數據經過一個卷積層后分成兩個部分,一部分跳過處理過程,另一部分進行多個Bottleneck 模塊處理,兩部分結果拼接后再經過一個卷積層得到C2f 模塊輸出. C2f 模塊提取數據中不同層次和抽象程度的特征,因而以該模塊為主要構成的主干部分負責輸出多尺度特征圖以供后續處理.
注意力機制可以提高模型對數據中關鍵信息的提取能力,學習圖像中的重要特征,關注目標信息,增強特征提取能力. 目前普遍應用的注意力機制有3 類:通道注意力、空間注意力和兩者兼具.SE 模塊[20]是通道注意力的代表,通過模擬跨維相互作用賦予不同通道相應的權重. CBAM模塊[21]利用圖像特征在空間與通道兩個維度之間的依賴關系,融合通道與空間注意力. 針對CBAM 計算開銷大、長距離依賴關系捕捉能力低的問題,Hou等[22]提出CA 模塊,將特定方向的信息沿空間維度方向嵌入信道注意,并進行適當降維. 在CA 的基礎上,Ouyang等[15]改進其順序處理方法,提出一種新型的高效多尺度注意力模塊,即EMA 模塊.
EMA模塊設計了一個多尺度并行子網絡,將部分通道重組到批次維度,并將通道維度分組為多個子特征. 通過全局信息編碼對每個分支的通道權重進行重新校準,從跨維關系學習像素級信息,建立短期與長期的依賴關系,達到較高的檢測效果和參數效率. EMA 的模塊結構如圖4所示.
對模型的改進要求在檢測效果與運算開銷方面達到均衡,因此模型參數量也是改進過程中需要考慮的重要方面. 動態卷積能以有限的計算量提升達到更高的收斂速度與精度. 動態卷積源于Chen 等[16]提出的動態感知器,其定義如下. 其中y即為動態感知器,πk 是注意力權重,W,b分別表示權值和偏置,g為激活函數.
動態卷積不使用固定卷積核,而是將其進行共享和動態組合,根據輸入圖像的特性自動調整選用卷積核的權值,將注意力機制引入卷積核參數,實現高參數量與低運算成本的結合,并賦予網絡更強的特征表達能力.
為提高網絡主干對不同尺度人與車輛的特征提取能力,減少通道降維對提取深度特征帶來的副作用,本文將EMA 機制加入C2f 的Bottleneck模塊中;另外,為進一步減少運算開銷,提高參數效率,將Bottleneck模塊中的卷積替換為動態卷積,將改進后的Bottleneck 命名為DyEMA_Bottleneck,改進前后結構如圖5 所示. 再用Dy?EMA_Bottleneck 替換YOLOv8 主干中的C2f,構成DyEMA_C2f 模塊,其結構如圖6所示.
3. 2頸部
YOLOv8頸部的功能是對主干提取的不同尺度特征圖進行融合,進一步增強特征表達. 交通監控視角下,人員目標尺度小,且經常出現互相遮擋的情況,基線模型多有漏檢情況出現. 本文在模型頸部加入YOLO-Face 提出的SEAM 模塊,該模塊學習遮擋與未遮擋部分之間的關系,通過增強未遮擋部分的響應來補償遮擋部分的相應損失,進而提高對各個尺度目標的檢測效果.
SEAM 的模塊結構如圖7 所示. 該模塊的架構自上而下包括3 個不同尺寸的CSMM 子模塊、平均池化、通道拓展,以及相乘增強. SEAM 的核心是CSMM 模塊,其詳細結構如圖8 所示. CSMM模塊利用不同的patch 尺寸對應多尺度特征,并且使用深度可分離卷積和逐點卷積挖掘空間和通道的跨維相關關系,提高對遮擋部分特征的學習效果,使得SEAM 在提高特征提取能力和高效計算之間達到較好的均衡.
3.3損失函數
邊界框回歸對于模型的檢測效果有重要影響. YOLOv8 采用CIoU 計算邊界框的回歸損失,忽視了不同處理難度的樣本對邊界框回歸的影響. 因此,本文基于Focaler-IoU 和SIoU 提出一種改進的損失函數以替換YOLOv8 默認的CIoU.
4實驗與分析
4. 1數據集與實驗環境
本文選用網絡數據集訓練模型,圖像主要來自國內道路交通監控圖像,拍攝高度與角度以及畫面質量均與門機環境監控有較高的相似性,同時加入部分COCO數據集圖像以豐富數據集,并且覆蓋各種天氣與不同能見度下的場景,檢測類別為行人與車輛兩類. 數據集共有5607 張圖像,按照4∶1的比例劃分為訓練集和驗證集.
本文的實驗平臺為Linux 操作系統,搭載顯卡NVIDIA GeForce RTX 2080Ti,內存11G. 訓練超參數設置如表1 所示.
式中,TP 是檢測正確的正樣本數;FP 是檢測錯誤的正樣本數;FN 是檢測錯誤的負樣本數;N 是總類別數. 精確度、召回率和均值平均精度3 個指標從檢測結果的正確與齊全程度衡量模型的性能.
4. 3實驗結果與分析
對改進模塊進行消融實驗和組合實驗,檢驗模型改進效果,探究模塊之間的影響關系和作用,消融實驗結果如表2 所示,模塊組合模型和實驗結果見表3 和表4.
從表2可以看出,3種改進方法對模型的性能均有一定程度的提升,并且所有改進方法疊加之后的整體改進模型表現更佳. 主干替換Dy?EMA_C2f 模塊加強網絡在空間和通道維度的相關關系捕捉能力和對不同尺度目標特征的提取能力,模型精確率P 提高了5. 6%,召回率R 提高了0. 5%,平均精度均值mAP 提升了1. 2%;頸部引入SEAM 注意力機制通過增強未遮擋部分的響應彌補對遮擋目標的學習能力,模型精確率P 提高了9. 6%,召回率R 提高了4. 9%,平均精度均值mAP提升了7. 1%;應用新的損失函數Focaler-SIoU 聚焦中等處理難度的回歸樣本,模型精確率P 提高了7. 7%,召回率R 提高了0. 7%,平均精度均值mAP提升了3.3%.
結合表4 可以看出,SEAM 模塊對精確率P 和召回率R 的提升作用最佳,配合DyEMA_C2f模塊或Focaler-SIoU 構成的Ⅰ -YOLOv8s 和Ⅲ -YOLOv8s相比于YOLOv8s+SEAM 模型兩個指標均有小幅度上升. 3個組合模型的評價指標都比單獨改進一個模塊時表現更好,進而整體改進模型表現出最佳水平.
圖9是模型改進前后檢測結果對比組圖,左側為基線算法檢測結果,右側為改進算法檢測結果.可以看出,對于第1 幅圖像,基線算法對人員和車輛漏檢較多,改進算法減少了漏檢情況,尤其是對遠距離小尺度目標的找全能力有所提高;對于第2幅圖中的車輛和第3 幅圖像中的人員,原模型都因局部遮擋造成了誤檢,改進模型則提高了對遮擋情況的應對能力,準確分辨出局部重疊目標的位置,得到正確的檢測結果.
實驗結果表明,改進后的YOLOv8s 模型在精確率、召回率及平均精度均值上均有顯著提升,特別是對于遮擋和小尺度目標的漏檢、誤檢情況有了明顯的改善. 與基線模型相比,最終改進模型的精確率提高了10. 3%,召回率提高了5. 5%,平均精度均值提升了8. 2%.
5結論
針對水電站門機傳統人工監控系統存在的成本高,效率低以及精確性差等問題,本文提出了基于深度視覺的門機運行工況中人員車輛的檢測方案. 通過對YOLOv8s 模型的主干、頸部和損失函數進行了針對性的改進,提高了模型對不同尺度目標以及遮擋情況下目標的檢測性能. 具體而言,基于 EMA 注意力機制和動態卷積構建了Dy?EMA_C2f 模塊,替換網絡主干中的原C2f 模塊,增強了模型對空間與通道跨維依賴關系的學習能力,提高了對不同尺度目標特征的提取能力,并提高了參數效率. 在模型頸部引入SEAM 注意力機制,提升了對遮擋目標的檢測效果. 此外,提出了新的損失函數Focaler-SIoU,該函數能夠聚焦中等處理難度的樣本,從而改善了邊界框回歸的精度與速度. 后續研究將著眼于減小模型體量,以適應更多邊緣計算場景的需求,還需進一步提升模型在不同光照條件和天氣狀況下的魯棒性,以達到水電站門機運行工況的安全檢測要求.