劉夢菲,毛建華,陸小鋒,2
(1.上海大學 通信與信息工程學院,上海 200444;2.上海大學 溫州研究院,浙江 溫州 325000)
中國擁有廣闊的領海以及綿長的海岸線,這是天然財富。改革開放以來國內經濟發展迅速,一些漁民為了利益鋌而走險,使用違禁的工具非法捕撈,不但危及到捕魚和食用者的人身安全,而且破壞了海洋生態平衡和漁業的可持續發展。除了“電、毒、炸”魚,“絕戶網”等非法捕撈行為之外,執法人員在巡航中還發現采用桿狀物攔網圍漁的行為,然而由于木樁體積小且在海面分布稀疏,其執法取證的效率低、難度大。
漁樁的絕對大小為5 pixel×20 pixel左右,相對原圖尺寸占比約0.005%,目標分辨率低、特征少,主干網絡能夠提取到的特征有限,因此導致模型誤檢率高、檢測效果差;其次漁樁在每幅圖中占比少,樣本稀缺,致使前景背景分布不均衡,模型漏檢率高。現有的通用目標檢測算法,無論是一階段還是兩階段模型,小目標與中尺度和大尺度目標在檢測性能上存在著十分顯著的差距。
針對小目標檢測存在的難點,國內外學者從多方面入手,在主流目標檢測器的基礎上進行改進,研究小目標檢測算法的技巧與改進[1]。
SNIP[2]對Anchor進行篩選,只將落在給定的候選區域的真實框判定為有效框,同時引入多尺度圖像金字塔,并且在訓練過程中挑選大小合適的目標,以此提高小目標的檢測效果。Stitcher[3]提出了一種拼接圖像的方法,將四張圖像以相同尺寸拼接為原圖大小,并且使用損失指導拼接圖在訓練過程中的使用,使小目標得到充分的訓練。TridentNet[4]同時結合了圖像金字塔和特征金字塔結構的特點,通過改變空洞卷積的參數來控制感受野的大小,分別用以檢測不同尺度的目標。
針對海面漁樁小目標檢測中存在的難點,該文在YOLOv5模型的基礎上進行改進,利用標簽上下文信息輔助小目標的訓練;設計了注意力增強的亞像素上采樣結構,使得上采樣過程可以獲得更多的細節特征;采用高效解耦頭,加快網絡收斂速度,提高訓練過程穩定性;同時,改進原先CIoU[5]損失函數的位置度量, 使預測結果更加貼近真實場景。實驗證明,改進后的AECA-YOLO模型在準確率及召回率上都優于目前主流的目標檢測算法。
YOLOv5是一種典型的一階段目標檢測算法,與大多數經典的目標檢測框架相比,它兼具檢測精度高和識別速度快的優勢。YOLOv5網絡主要由三個部分組成:主干網絡(Backbone)、頸部網絡(Neck)和頭部網絡(Head)。
主干網絡的主要作用為提取圖像的特征,YOLOv5的主干網絡采用CSPDarknet53,通過拼接和過渡等操作,實現更豐富的梯度組合信息。在CSPDarknet53結構的后面,YOLOv5還添加了SPPF模塊,不僅解決了目標框和特征圖的對齊問題,還增大了預測框的感受野。主干網絡是模型檢測精度高和推理速度快的保證。
頸部網絡由特征金字塔(Feature Pyramid Networks,FPN)[6]和路徑聚合網絡(Path Aggregation Networks,PAN)[7]組成,其主要作用為增強網絡模型對不同尺度對象的檢測能力。FPN把深層的語義信息傳遞到淺層,在多個尺度上提高了語義表達,從而提升了目標檢測的效果,尤其是小尺度目標的檢測效果。而PAN則相反,將淺層的位置信息傳遞到深層,從而在多個尺度上提高了定位能力。
頭部網絡主要用于模型最終的推理與檢測,采用多尺度檢測的方法,通過下采樣將特征圖分為三種尺度,不同大小的感受野依次負責不同尺度物體的檢測,即大輸出特征圖用以檢測小物體[8],小輸出特征圖用以檢測大物體,克服了單一特征圖對于多尺度目標檢測的局限性。
由于海面漁樁目標分辨率低,且易受背景噪聲干擾,面臨著漏檢率較高的情況。針對以上問題,基于YOLOv5模型進行改進,最終得到AECA-YOLO漁樁小目標檢測模型,其網絡結構如圖1所示。

圖1 AECA-YOLO網絡結構
在骨干網絡的SPPF模塊前加入坐標注意力機制,使特征提取過程更加關注小目標的位置信息;為了保證在特征融合過程中獲取更多的小目標信息,在頸部網絡采用融合注意力機制和上下文信息的上采樣結構(FAC-UpSample);頭部網絡采用解耦結構,分別利用紋理內容與邊緣信息預測類別和定位目標,加快網絡收斂速度;最后對模型的損失函數進行優化,減小位置偏移對小目標的劇烈影響。
位置信息對于小目標至關重要[9],針對海面漁樁小目標像素分辨率低、缺乏通道信息等難點,加入坐標注意力機制,加強網絡捕獲通道間特征的能力,從而提高漁樁識別的準確率。坐標注意力(CoordAttention,CA)[10]是一種適用于移動網絡的新型注意力機制,在通道注意力的基礎上嵌入位置信息,使網絡能夠在避免引入過大開銷的情況下獲取更大的感受野,坐標注意力的結構如圖2所示。

圖2 坐標注意力模塊
為了捕捉精確的位置信息,坐標注意力模塊將通道注意力分解為水平和豎直兩個方向,首先分別對這兩個方向的特征采用平均池化,進行一維特征編碼,計算過程如公式(1)和(2)。設輸入特征圖為x,高度為h的第c通道的輸出可以表示為:

(1)
同樣,寬度為w的第c通道的輸出可以表示為:
(2)
接著在空間維度上采用拼接和卷積操作壓縮通道,通過批歸一化和非線性回歸來編碼水平和垂直方向的空間信息,得到同時具備空間和通道維度特征的注意力圖f,其中δ是非線性激活函數,F表示1×1的卷積函數:
f=δ(F([zh,zw]))
(3)
然后再將fh,fw進行分離,各自通過1×1的卷積變換通道數,得到一組方向感知和位置敏感的注意力圖gh,gw,最后把空間信息通過在通道上加權的方式融合,其中σ為sigmoid函數:
gh=σ(F(fh))
(4)
gw=σ(F(fw))
(5)
(6)
通過這種方式,坐標注意力機制沿一個空間方向捕獲通道依賴關系,同時沿另一個空間方向保留位置信息,兩者互補以用于增強目標特征的表達。在SPPF模塊前加入坐標注意力機制,使得局部特征和全局特征融合的過程更加關注漁樁。
上下文信息對于檢測小目標非常重要[11]。針對漁樁小目標信息有限的難點,該文提出一種聚合上下文信息和注意力的上采樣模塊,采用亞像素卷積對注意力增強的通道特征進行重組,從而得到細節更豐富的高分辨率特征圖。
常用的上采樣方法包括最近鄰上采樣和雙線性上采樣,它們僅僅利用像素的空間位置關系來生成新的像素,感受野通常非常小。亞像素上采樣則是將原來低分辨的特征圖均勻劃分為N個小格,利用相對應的N個特征圖按規則填充這些小格,在這一過程中模型可以通過調整通道的權重來不斷優化生成的結果。為了提高頸部網絡對于小目標的檢測精度,該文在FPN中引入融合注意力機制和上下文信息的上采樣結構(FAC-UpSample),如圖3所示。

圖3 FAC-UpSample模塊結構

圖4 解耦檢測頭結構
FAC-UpSample上采樣模塊由兩部分組成,第一部分為注意力模塊,對于形狀為H×W×C的深層特征圖x,經過坐標注意力模塊融合空間信息,得到形狀相同的特征圖x'。

最后對原特征圖x上以點l為中心的kup×kup大小的鄰域,與預測得到的上采樣核ωl'作點積,得到最終輸出的高分辨率特征圖x'',其中r=?kup」,同一位置l的不同通道共享同一個上采樣核:
(7)
由此,輸出特征圖的每個像素點都充分利用了周圍區域的信息,通過這樣的特征重組并加入通道增強,相比網絡原來采用的最鄰近上采樣,FAC-UpSample使得特征圖具有更大的感受野,語義信息也更加豐富。
漁樁小目標在圖像中覆蓋面積小,其邊界框的定位相對更加困難,像素點的偏移對小目標的影響也遠大于大尺度目標。并且大多數的目標檢測器在訓練過程中采用錨框來匹配目標,而小目標匹配到的錨框數量遠低于其他尺度目標,導致模型對小目標的關注度低。
實際上目標檢測網絡分類和定位任務的關注點并不相同,分類更加關注所提取的紋理內容,而定位更加關注邊緣信息。該文在頭部網絡(Head)采用解耦檢測頭(Decoupled Head)代替耦合頭部(Coupled Head),提高小目標的定位準確度。
DecoupledHead會先通過1×1的CBL模塊將頸部網絡輸出特征圖的通道數降為256,以降低計算量,隨后再使用兩個并行的分支,每個分支分別經過2個CBL卷積層,形成分類檢測頭和回歸檢測頭。解耦檢測頭將檢測任務解耦合從而避免了兩個任務之間的沖突,提高了網絡定位小目標邊界框的能力。
除了學習目標本身可判別的特征外,訓練過程中定位損失函數對小目標檢測任務來說也很重要。然而位置準確度指標對于像素少的小目標十分敏感,輕微的位置偏移就會導致其預測框與標定框之間的誤差急劇增大。因此提出R-CIoU損失函數,緩解位置偏移對小目標的劇烈影響。
CIoU[12]全稱全局交并比(Complete Intersection over Union),是用來評價目標檢測算法邊界框準確度的標準,如圖5,CIoU在IoU的基礎上充分考慮了框的重疊面積、中心點之間的距離以及長寬比,加快了網絡的收斂速度,提升了模型的精度。該文提出的R-CIoU在此基礎上針對小目標的位置敏感性改進中心點間距的表示方式,其計算公式如下:

圖5 CIoU示意圖
(8)
其中,ρ(b,bgt)為預測框與真實框中心點之間的歐氏距離的開方,c為預測框與真實框的最小閉包區域的對角線距離。
(9)
(10)
(w,h)(wgt,hgt)分別為預測框和真實框的寬和高;v為衡量長寬比一致性的懲罰項,使得預測框快速接近目標框的同時,預測框的長寬比也快速接近目標框,提高模型預測位置的準確度。
該文主要針對海面違法漁樁進行無人機視頻采集,對采集到的視頻數據進行初步篩選和劃分,等間隔抽取視頻幀得到數據集,共計380張圖像,分辨率為640×640,其中訓練集和驗證集的數量為8∶2。將數據集按照模型讀取數據的要求,使用LabelImg軟件進行標注,如圖6(a)。漁樁目標像素少且長寬比跨度大,模型漏檢率高,因此通過輪廓檢測和調整長寬比,連接小目標的特征和上下文的特征增加小目標的信息,改善標簽質量,使模型能夠更好地檢測目標,新的標簽如圖6(b),將其稱為IFPS數據集。

圖6 標簽添加上下文信息
實驗操作系統為Windows 10,CPU為AMD Ryzen7 5800X,GPU為Nvidia GeForce GTX 3080,采用的集成開發環境是Anaconda3,深度學習框架為Windows 10系統下的PyTorch深度學習框架,開發環境為Python 3.8,PyTorch 1.8.0,CUDA 11.1。為了保證訓練結果的有效性,算法的消融實驗均在同一訓練參數下進行,模型的具體參數值設置如表1所示。

表1 消融實驗訓練參數
為了準確分析模型的性能,采用平均精度(Average Precision,AP)、平均召回率(Average Recall,AR)、平均精度均值(mean Average Precision,mAP)以及每秒識別的圖像幀數(Frame Per Second,FPS)作為評價指標。計算公式分別如下:
(11)
(12)

(13)
(14)
其中,TP、FP、FN分別表示測試正樣本被預測為正樣本、負樣本被預測為負樣本以及正樣本被預測為負樣本的目標數量,APi表示單類別精確率,N表示類別的數量。
3.4.1 對比分析實驗
該文將AECA-YOLO模型與現有的主流目標檢測模型Faster-RCNN[13]、SSD[14]、Centernet[15]、YOLOv3[16]和YOLOv5在數據集IFPS上進行對比分析,對比不同模型的mAP、AR指標以及FPS,驗證AECA-YOLO的高效性。對比實驗結果如表2所示,其中為了對比YOLO系列模型性能,統一采用最淺的網絡主干深度與寬度,名稱后以s作為標記。Faster-RCNN是最重要的兩階段檢測算法之一,包括深度全卷積和Fast-RCNN檢測器兩個模塊,分別用以選擇性搜索生成候選框和計算分類與回歸,雖精度較高但算法最為復雜,檢測速度較慢;SSD作為一階段檢測器,綜合了Faster RCNN和YOLO的優缺點,加入特征金字塔,精度和速度都有明顯的優勢;Centernet是一種Anchor-free的目標檢測算法,去除了錨框和后處理操作,然而對于下采樣后中心點重疊的目標則無法區分,因此效果較差;YOLOv1是一種只用一個CNN網絡實現的端到端目標檢測算法,YOLOv2在YOLOv1的基礎上提升了定位精度和召回率,YOLOv3是在YOLOv2的基礎上對骨干網絡和分類方法進行改進,YOLOv5則進一步通過數據增強、采用Focus和CSP結構、引入FPN+PAN等方法提升性能,雖然在精度和召回率上有不同提升,但仍然達不到應用需求。由表2可以看出,該文提出的算法在檢測精度、召回率以及識別速度三個方面均優于主流的目標檢測算法。

表2 主流目標檢測模型在IFPS上的表現
3.4.2 消融實驗
為了進一步證實AECA-YOLO算法中各個改進對檢測模型的優化效果,在YOLOv5基礎上逐步添加改進措施進行消融實驗,實驗結果的數據對比如表3,訓練過程中精度和召回率的變化趨勢如圖7所示。

圖7 消融實驗過程中性能變化折線圖
分析表3和圖7得,在漁樁標簽中添加上下文信息后,模型的漏檢率有了明顯的下降,召回率提升了16.22百分點,mAP也得到了27.64百分點的提升;在骨干網絡末端添加坐標注意力機制加強了網絡的提取通道特征的能力,有效減少背景噪聲的干擾,使得精度和召回率都有小幅提升;采用新的解耦檢測頭后,網絡的定位回歸能力有了明顯的提升,召回率提高了2.4%,并且網絡收斂速度加快、訓練過程更加穩定,但精度略有下降;在頸部網絡的金字塔結構引入融合注意力的亞像素上采樣模塊后,精度提升至91.11%;最后對損失函數進行優化,改善漁樁目標的位置敏感性,模型的精度和召回率都達到了最高值。圖8依次為消融實驗得到的后六種模型的最后一次迭代檢測框的分布,可以直觀看出模型減輕了背景噪聲的干擾,更加關注于漁樁目標,極大地降低了誤檢率和漏檢率。綜合上述五種改進后,相對于原始的YOLO模型,提出的優化模型AECA-YOLO在基本保持原有檢測速度的基礎上,有效地將平均檢測精度提高了29.7百分點,召回率提高了18.9百分點,FPS為52.37,滿足實時檢測幀率大于25的要求,說明改進算法AECA-YOLO更具實用性。

圖8 消融實驗模型預測框分布
將目標檢測技術應用于海面漁樁的識別與定位,是漁政執法智能化的迫切需求。為實現漁樁小目標的快速識別和準確定位,將坐標注意力和上下文信息融入YOLOv5目標檢測算法中,提高模型對漁樁目標的關注度以及位置敏感性,增強模型的檢測性能。改進的方法平均精度達到94.50%,召回率達到97.30%,速度為52.37 FPS,滿足了實際應用場景中高效率和高精度的要求。但是該方法給網絡增加了冗余,導致訓練模型較大,推理速度較慢,在未來工作中,在增強算法魯棒性的同時,優化網絡結構,對網絡進行輕量化改造,使其可以部署于移動終端。