編輯丨AI約讀社
水下目标檢測旨在對水下場景中的物體進行定位和識别。這項研究由于在海洋學、水下導航等領域的廣泛應用而引起了持續的關注。但是,由于複雜的水下環境和光照條件,這仍然是一項艱巨的任務。是以近年來有多個賽事與水下目标檢測相關,如近期正在進行的2021全國水下機器人大賽,接下來我們将介紹在水下目标檢測領域的深度學習方法概述。

01
水下目标檢測的關鍵問題
1.1 水下圖檔模糊
在水下場景中,由于光照影響大大降低了水下圖像的品質,進而導緻了可見度損失,弱對比度和紋理失真,顔色變化等問題(如下圖所示),并且在水下場景中環境複雜,這導緻水下目标檢測更加困難。
1.2 小目标檢測
水下環境中的目标物體通常很小,如:海膽,扇貝,海參等,而目前基于深度學習的目标檢測器通常無法有效地檢測小物體,或者對小目标物體的檢測性能較差。
02
水下目标檢測的深度學習方法
緩解水下圖檔模糊主要是通過對水下圖檔進行增強,去噪,複原等方法,對于小目标檢測的問題可以通過資料擴增和改進網絡的方式來緩解,接下來我們将介紹近年來解決水下目标檢測問題的深度學習方法。
Underwater object detection using Invert
Multi-Class Adaboost with deep learning
論文連結:https://arxiv.org/pdf/2005.11552.pdf
代碼連結:https://github.com/LongChenCV/SWIPENet
主要方法:文中提出了一種用于水下目标小樣本檢測的SWIPENet,網絡中提出了一種樣本重權重算法IMA(Invert Multi-Class Adaboost),IMA會減少missed objects(丢失對象)的權重,以減少這些“幹擾”樣本的影響。并且在SWIPENet中引入了具有RELU的空洞卷積層(dilated conv)它們可以在不犧牲特征圖分辨率的情況下獲得大的接受區域。
IMA算法:首先順序訓練多個基本分類器,并根據其錯誤率Em配置設定權重值α。然後,将由前面的分類器分類錯誤的樣本配置設定較高的權重,進而使後面的分類器專注于學習這些樣本。最後,将所有弱基礎分類器組合在一起,形成具有相應權重的整體分類器。IMA還訓練了M次SWIPENet,然後将它們整合為一個統一模型。不同的是,在每次訓練疊代中,IMA都會減少丢失對象的權重,以減少這些“幹擾”樣本的影響。
實驗結果:達到URPC 2017的冠軍結果,45.0map,冠軍為45.1map。
SWIPENet的網絡結構圖:
RoIMix: Proposal-Fusion among Multiple Images for Underwater Object Detection
論文連結:https://arxiv.org/abs/1911.03029
主要方法:URPC 2019水下目标檢測競賽冠軍方案:多圖像融合增強,針對水下場景重疊和遮擋(水下生物喜歡聚在一起)、模糊(水中沉澱物導緻)的問題,提出一種基于候選框融合的圖像增強方法,以生成模拟重疊、遮擋、模糊的訓練樣本,進而提高模型的mAP和魯棒性。RoIMix算法使用RPN産生ROI,并以随機的比例混合它們。該比例是根據Beta分布産生的,然後,使用混合樣本來訓練模型。
下圖中:
即為用RoIMix圖像增強方法生成的模拟遮擋+模糊的訓練樣本
RoIMix的網絡結構圖:
實驗結果:達到URPC 2019的冠軍方案,ROIMIX和BaseLine之間的最大性能差異為9.05%個mAP值。
An Underwater Image Enhancement Benchmark Dataset and Beyond
論文連結:https://arxiv.org/abs/1901.05495v1
代碼連結:https://github.com/Li-Chongyi/Water-Net_Code
主要方法:文中提出了一個新的具有950張水下圖檔的資料集UIEBD,包含各個水下場景,以及水下各種特征退化(光線不足、霧)的情況,用資料集UIEBD對12種現階段主流的水下圖檔增強算法進行評測和驗證。并且提出基于fusion的水下圖檔增強模型DuwieNet。
12種水下資料擴增方法比較:
DUIENet:
基于所建構的UIEBD資料集,作者提出了一種用于水下圖像增強的CNN模型,稱為DuwieNet。DuwieNet是—種門控融合網絡,它将輸入與預測的置信度圖融合以獲得增強的結果。首先通過FTUs将輸入轉換為精确的輸入,然後預測置信度圖。最後,将改進後的輸入與相應的置信度圖進行融合,得到增強後的結果。其結構圖如下所示:
實驗結果:
03
水下目标檢測比賽的開源方案
在去年的2020年全國水下機器人(湛江)大賽水下目标檢測比賽衆多,部分選手公開了他們的參賽方案,他們在比賽中的經驗這對我們研究水下目标檢測具有很大的參考價值,下面我根據使用的檢測架構進行分類,簡單介紹其中的幾個開源方案
3.1 mmdection
和鲸社群Kesci 水下目标檢測算法賽(光學圖像賽項)三等獎 單模方案
代碼連結:https://github.com/milleniums/underwater-object-detection-mmdetection
方法簡述:
- 使用兩階段檢測架構,保證精度要求;
- 使用FPN,增強小目标的檢測效果;
- 使用Mixup、旋轉等無損的資料增強技術,減輕網絡過拟合,并提升模型泛化能力;
- 使用多尺度訓練與預測,适應圖檔分辨率差異,可以讓參與訓練的目标大小分布更加均衡,使模型對目标大小具有一定的魯棒性;
- 參考ResNet論文,使用Global Context ROI為每個候選框添加上下文資訊,充分利用資料分布特點,提升了檢測精度。
消融實驗:
和鲸社群Kesci 水下目标檢測算法賽(光學圖像賽項)30(A榜) / 31(B榜)
代碼連結:https://github.com/Wakinguup/Underwater_detection
方法簡述:
1、資料增強:
采用Mixup、執行個體平衡增強、模糊(Median Blur和 Motion Blur)、Retinex、泊松融合、标簽平滑。
2、模型架構:
mmdetection代碼庫中的Cascade R-CNN模型,其中backbone是ResNeXt101-64x4d (64是基數Cardinality,X101的一個block的group數量。而4d是指bottleneck的寬度)。模型同時也搭配了FPN[3],增強模型對小目标的檢測能力。
3.2 EfficientDet
EfficientDet訓練水下目标檢測資料集
代碼連結:https://github.com/DataXujing/EfficientDet_pytorch
方法簡述:
這個使用EfficientDet進行水下目标檢測,僅是baseline無任何tricks,Step by Step示範如何訓練最近開源的相對SOTA的Pytorch版的EfficientDet的訓練,評估,推斷的過程。像paper中提到的一樣,我們并沒有使用任何資料增強或模型融合等後處理的trick來提高模型的精度,如果你想增加資料增強的政策可以在
efficientdet/dataset.py
中實作;
3.3 YOLOV5
我們團隊這次也參加了2021年全國水下機器人(湛江)大賽,為大家開源了YOLOV5檢測的baseline,大家可以這篇文章水下目标檢測算法比賽 Baseline分享 -- 送出成績:0.500 [124/678]擷取代碼
04
總結
水下目标檢測目前任然還是一個具有挑戰的領域, 相比于傳統圖像處理方法分多個步驟和環節處理檢測任務, 基于深度學習的方法将其統一為端到端的特征提取和分類。雖然水下目标檢測技術已經不斷地從學術研究走向成熟的工業應用, 但是依然有一些需要解決的問題。