?

基于可變尺度先驗框的聲吶圖像目標檢測

2024-03-05 10:21黃思佳宋純鋒
系統工程與電子技術 2024年3期
關鍵詞:聲吶先驗聚類

黃思佳, 宋純鋒, 李 璇,*

(1. 中國科學院聲學研究所水下航行器信息技術重點實驗室, 北京 100190;2. 中國科學院大學電子電氣與通信工程學院, 北京 100049;3. 中國科學院自動化研究所智能感知與計算研究中心, 北京 100190)

0 引 言

伴隨著計算機的普及以及互聯網的飛速發展,信息的傳遞變得更加方便快捷,人們的交流媒介逐漸從文字轉變成圖片以及視頻。相比傳統處理圖像的方法而言,深度學習方法憑借其強大的處理數據和提取信息的能力、較高的準確率和快速計算等優點,脫穎而出成為圖像識別和目標檢測領域的研究熱點[1]。

傳統的聲吶圖像目標識別一般采用機器學習的方法,主要由候選區域生成、特征提取器以及分類器三部分組成。傳統的目標識別方法對于目標的先驗信息,形狀等都有一定的要求,特征提取非常依賴人工的選擇,若圖像的像素太少或者特征不夠有代表性,識別目標的效果就會比較差。然而,由于水下環境復雜,回波受到混響噪聲、環境噪聲的影響,導致聲吶圖像分辨率低,邊緣細節較為模糊,很難找到像素和具有代表性的良好特征。另外,由于水下環境的不確定性很大,人工獲取先驗信息的代價也比較高,因此傳統的目標檢測算法在聲吶圖像的目標檢測中效果并不理想。

近些年,深度學習在人臉識別[2-4]、醫學圖像識別[5-7]、遙感圖像分類[8-10]等領域都有了廣泛應用,許多學者開始將深度學習的模型遷移到聲吶圖像的目標檢測中進行應用,提高了水下聲吶圖像的識別精度和速度。文獻[11]提出利用輕量級的CPU卷積神經網絡(lightweight CPU convolutional neural network, PP-LCNet)替換原Yolov5網絡中的跨階段局部網絡結構(cross stage partial darkNet, CSPDarknet)主干網絡,在不降低檢測精度的前提下減少了模型參數量和網絡計算量,能夠更好地滿足低功耗平臺的在航檢測要求。文獻[12]針對聲吶圖像數據量不足的情況,建立了水下目標的仿真模型,并且利用仿真樣本與真實樣本相結合進行實驗,在不同的模型下都有一定的提升效果,為聲吶圖像數據不足的問題提供了解決思路。文獻[13]針對聲吶圖像像素空缺,成像效果不好的問題,采用雙線性插值算法進行像素填充,讓聲吶圖像變得更加清晰飽滿,并且在Yolov3模型上進行實驗,取得了良好的效果。文獻[14]針對聲吶圖像散斑噪聲強、分辨率低、圖像質量差等問題,提出了一種基于快速曲線變換的去噪算法,有效提高了混響干擾下聲吶圖像的質量。文獻[15]結合顯著性分割和金字塔池化的檢測模型,減小了輸入數據的維度并且減小了圖像背景對目標提取的干擾,有效提高了水下目標識別的準確率。文獻[16]利用聲吶圖像模擬器來模擬聲吶傳感器的成像機制,結合各種退化效應來合成訓練圖像,一定程度上緩解了聲吶圖像數據量不足的問題。文獻[17]利用生成對抗網絡(generative adversarial networks, GAN)合成真實聲吶圖像作為目標物體的訓練圖像,該方法可以合成不同角度和不同環境的真實訓練數據,為其他基于聲吶圖像的算法提供了一定參考。 文獻[18]針對聲吶圖像噪聲干擾嚴重的問題,提出了一種自適應全局特征增強網絡,能夠獲取聲吶圖像多尺度語義特征,在噪聲嚴重的情況下仍然能對目標進行準確的檢測和定位。文獻[19]提出一種基于Yolov4改進的聲吶圖像目標檢測算法,將Yolov4中的路徑聚合網絡(path aggregation network, PANet)特征增強模塊替換為自適應空間特征融合(adaptively spatial feature fusion, ASFF)模塊,來獲得了更好的特征融合效果。文獻[20]針對前視聲吶圖像中的小目標檢測問題提出了一種基于脈沖耦合神經網絡和Fisher判別的實時目標檢測方法,該算法結合模糊c均值聚類和K均值聚類獲得感興趣的區域,在低虛警概率下檢測誤差小,實時性好。文獻[21]根據實測過程中不同原因造成的成像差異進行了數據的增強與擴充,并改進了池化方式,提升了檢測效果。

上述研究通過借鑒深度學習在計算機視覺領域的成果,提升了聲吶圖像目標檢測的性能。然而,聲吶圖像的目標檢測方法仍然存在數據獲取難、數據量少、目標尺度分布集中、檢測性能不佳、模型實時性差的問題,因此本文提出了一種基于輕量級目標檢測模型Yolov5改進的水下目標檢測方法。針對聲吶數據集與COCO數據集在目標大小上的差異,利用目標尺度的先驗信息,自適應地生成可變尺度的先驗錨框,有效提高了聲吶圖像中目標的尺度適應性。深度學習的模型訓練需要大量的數據支撐,因此本文采用了數據增強的方法對訓練集進行有選擇性的擴充,進一步增強模型的魯棒性。此外,本文還探索了模型的輕量化,在不犧牲模型精度的前提下,通過刪減大目標檢測層降低了模型復雜度,可更好地適應實時檢測的要求。

1 基于可變尺度先驗框的聲吶圖像目標檢測方法

1.1 網絡結構介紹

(1) 輕量化目標檢測模型概述

相比于快速局部卷積神經網絡(fast region-convolutional neural network, Fast R-CNN)[22]以及Faster R-CNN[23]等兩階段目標檢測算法,Yolo系列作為單階段目標檢測算法的代表,不需要生成候選區域,而是直接通過網格進行坐標回歸,大大提高了目標檢測的速度。Yolov1[24]將圖像分成S×S個網格,如果物體的中心點落在某網格內,那么該網格就負責預測這個目標。在Yolov1當中,每個網格對應兩個預測邊界框,并且每個網格只對應一個類別,所以對于比較密集的小目標檢測效果較差,會出現漏檢的情況。Yolov1在預測目標位置的時候,是通過直接預測目標的寬高以及中心點坐標,這種預測方法導致目標框與物體的位置之間偏移量很大。針對Yolov1當中定位不準的問題,Yolov2[25]開始采用基于先驗框進行預測,相比于直接預測目標邊界框,采用先驗框偏移的方式進行預測使得網絡更容易學習且更快收斂。Yolov2中每個網格對應5個先驗框,且每個先驗框可以預測不同類別,改善了較為密集物體的目標檢測的問題。除此之外,Yolov2還進行了一些嘗試,例如多尺度訓練、通過passthrough層更好地提取目標的細粒度特征等,速度和精度相對Yolov1都有了一定的提升。Yolov3[26]采用Darknet-53作為骨干網絡,引入了空間金字塔池化(spatial pyramid pooling, SPP)的思想。在頸部引入了特征金字塔池化(feature pyramid network, FPN)的思想,可以融合不同特征圖的信息,能夠更好地提取目標的特征。與FPN不同的是,Yolov3是在深度方向上進行拼接,可以更好地保留特征信息。Yolov3在3個預測特征層上進行預測,在每個預測特征層上分別使用3個不同大小的先驗框,可以檢測不同大小的目標。Yolov4[27]采用CSPDarknet53作為骨干網絡,在Darknet53的基礎上引入了跨階段部分(cross stage partial, CSP)結構,增強了CNN學習的能力以及降低了顯存的使用。Yolov4將(rectified linear activation function, ReLU)激活函數改為Mish激活函數,Mish激活函數的圖像更加平滑,還采用了一些優化策略,例如Mosaic增強,引入縮放因子來消除網格的敏感度等。與Yolov4相比,Yolov5在骨干網絡中增加了Focus層,在不影響算法精度的情況下提高了每秒浮點運算量(floating-point operations per second, FLOPS),Yolov5還引入了C3模塊,促進特征融合,與Yolov4相比性能更強。除此之外,Yolov5網絡還能通過改變參數來改變網絡的深度和寬度以更好地適應不同數據量規模的需求,這種改進對于聲吶圖像這類數量較少的數據集有一定作用,可以根據聲吶數據集的大小調整模型的參數,實現更好的自適應。

(2) 本文采用的骨干模型

Yolov5的網絡結構可以分為Backbone和Head兩大部分。輸入通過骨干網絡下采樣5次,選取3個特征層作為Head部分的輸入。在骨干網絡部分,輸入首先經過一個Focus層,將數據的寬度和高度減小為原來的一半,減少了參數量,同時也提高了網絡的前向傳播速度。然后,通過4個卷積層和C3層,C3層是在Yolov4網絡CSP層的基礎上提出的,C3層可以幫助骨干網絡更好地提取特征信息。Yolov5將激活函數改為Silu函數,Silu函數更為光滑且處處可導。最后,Yolov5在最后一個卷積層和C3層中間增加了SPP模塊,SPP將輸入并行通過多個不同大小的最大池化,然后進一步做融合,可以在一定程度上解決目標多尺度的問題。

(3) 可變尺度先驗框模型

本文提出的可變尺度先驗框模型如圖1所示,首先對聲吶圖像的訓練集進行分布統計,獲取目標的尺度信息,并利用(intersection over union, IoU)聚類的方法重新設定先驗框;其次利用平移、旋轉、改變亮度、加噪聲、cutout、鏡像等方式選擇性的對數據集進行增強,將擴增后的數據集輸入到Yolov5骨干網絡提取目標特征信息;最后在兩個尺度的目標檢測層進行目標定位以及類別判定。

圖1 可變尺度先驗框模型Fig.1 Variable scale prior box model

1.2 可變尺度先驗框目標檢測模型

1.2.1 基于數據統計的目標尺度分布獲取

本文所使用的數據集來源于2022年全國水下機器人大賽(underwater robot professional contest, URPC)的比賽數據集[28],該數據集共有9 200張前視聲吶圖像,分別由人體模型、球體、圓籠、方籠、輪胎、金屬桶、立方體、圓柱體、飛機模型以及水下機器人10類目標組成。

在進行目標檢測之前,需要先對數據集的目標進行分析。深度學習算法是以數據驅動的, 雖然數據集有9 200張圖片,但對于深度學習而言,數據量還是偏少。針對數據量不足的問題,本文根據聲吶圖像的特點進行相應的增強。在獲取水下目標的聲吶圖像時,由于聲吶檢測的角度不同、水底地形的干擾、水下深淺不一導致信號有偏差以及各種環境噪聲、混響噪聲的影響,導致水下目標檢測困難。為增強圖像的魯棒性,本文采用旋轉、平移、改變亮度、加噪聲等圖像增強的方式對數據集進行增強,能夠有效的提高檢測目標的精度。

目標尺度的統計結果如圖2所示,圖2(a)給出了目標框最長邊與圖片邊長的比例,可以看到大多集中在0.04~0.16左右,圖2(b)給出了所有目標的面積與圖片面積的比例,大部分集中在0.002~0.008附近。通過各類比例可以發現,該數據集的目標基本上都是小目標,而Yolov5網絡的先驗框是以COCO數據集聚類得到的,與本文所使用的數據集差異較大,所以本文根據該數據集的特點重新設定先驗框。除此之外,Yolov5的head部分有3個不同尺寸的檢測頭,分別用來預測大目標、中目標以及小目標,由于本文所使用的數據集多為小目標,所以對Yolov5進行剪枝操作,減少一個檢測頭,在參數量減少的基礎上保持精度不變且提升了檢測速度。

圖2 目標尺度分析結果Fig.2 Target scale analysis results

1.2.2 先驗框計算

由于Yolov1直接計算目標框的方法效率和精度都很低,因此Yolov2基于Fast R-CNN的思想引入了錨框,能夠更好地匹配樣本的尺寸大小。Yolov3和Yolov4都使用了K均值聚類方法來計算錨框,而Yolov5將手動計算錨框的方式改為自動計算錨框,并將K均值聚類和遺傳算法相結合。Yolov5的初始錨框通過統計COCO數據集的目標尺寸獲得,而本文所使用的數據集大多為小目標,與COCO數據集的寬高比有較大的差異,因此需要根據聚類結果重新設定初始錨框的大小。原始Yolov5中的聚類方式使用的是傳統的K均值聚類,以歐式距離函數作為判斷類別是否相近的標準。本文首先嘗試了Yolov5默認的聚類方式,由于使用歐式距離函數會使得較大的目標框比較小的目標框具有更大的偏差,因此本文提出利用IoU替換歐氏距離函數,利用IoU作為距離函數能夠更好地判斷錨框與目標框的匹配程度,提高預測邊界框的準確度和精度。

不同聚類方案的結果如圖3所示,不同的顏色代表訓練集中真實框不同的寬度以及高度分布,五角星分別代表9個類的中心錨框的高度和寬度分布。從圖3(a)可以看到,IoU K均值聚類方法得到的錨框與訓練集真實框大小的匹配度為85.39%,而圖3(b)中使用傳統的K均值聚類方法得到的錨框與訓練集真實框大小之間的匹配程度為84.23%,平均IoU匹配度提高了1.16%左右。在最小的特征圖上,由于其感受野最大,所以用來檢測大目標,因此大尺度的先驗框應用在小特征圖上用來檢測大目標,而小尺度的先驗框用在大特征圖上用來檢測小目標。表1給出了特征圖與先驗框的對應關系。本文將傳統的K均值聚類方法替換成IoU-K均值聚類方法,可以有效提高錨框與目標框之間的匹配程度,能夠更好的定位目標,減少損失。

圖3 聚類結果對比Fig.3 Comparison of clustering results

表1 先驗框尺寸Table 1 Prior box size

1.2.3 選擇性聲吶數據擴增

深度學習網絡訓練過程中需要大量的數據支撐,模型樣本越多越充足,網絡模型的泛化性就越好,魯棒性越強。本文的數據集一共有9 200張,與經典的COCO數據集以及VOC數據集相比,數據量遠遠不夠,所以本文針對該數據集的特點,對圖像進行有選擇性的增強。聲吶圖像通常會因為波浪起伏、拖魚傾斜等原因造成回波強度的起伏,導致圖像出現灰度不均的情況[29]。在利用聲吶進行水底探測的過程中,同一個目標由于探測角度、船行方向等原因也會有一定差異,且水下環境復雜,聲陰影、混響噪聲以及環境噪聲等都會影響聲吶圖像的質量。為了增加數據量和增強圖像的魯棒性,本文采用平移、旋轉、改變亮度、加噪聲、cutout、鏡像等方式隨機對圖像進行增強。數據集按8∶2的比例劃分訓練集和驗證集,對訓練集進行數據增強,將原訓練集的每張圖片進行兩次隨機增強,得到新訓練集,數量為原訓練集的3倍。數據增強的效果如圖4所示。

圖4 數據增強Fig.4 Data enhancement

1.2.4 基于Yolov5的輸出分支裁剪

原Yolov5s網絡中存在3個目標檢測層,分別對應檢測大目標、中目標以及小目標。而本文所使用的數據集小目標居多且不存在大目標,如果保留大目標檢測層,反而對小目標的檢測有所干擾。所以本文對原Yolov5s網絡中的目標層進行了刪減,剔除了大目標檢測層如圖5所示。每個特征檢測層的每個網格可以得到3×(5+num) 個檢測結果,其中num為目標的類別數量。

圖5 大目標層刪減示意圖Fig.5 Schematic diagram of deleting large target layers

由于20×20大小的特征層下采樣次數最多,感受野最大,所以用來檢測大目標。而在不斷下采樣的過程中,很有可能會丟失小目標的特征信息,因此20×20的檢測層對本文所采用的數據集檢測意義不大,所以本文選擇刪除20×20大小的大目標檢測層,網絡模型的層數由原來的283層縮減為現在的201層,每秒10億次浮點運算次數(giga FLOPs, GFLOPs)由16.5減少至14.9,在降低網絡模型復雜度的同時,精度較原來有所提升。

2 實驗與結果分析

2.1 數據集

本節基于各類模型對聲吶圖像進行目標檢測,所使用的數據集為2022年全國水下機器人大賽的比賽數據集,共有9 200張前視聲吶圖像,分別由人體模型、球體、圓籠、方籠、輪胎、金屬桶、立方體、圓柱體、飛機模型以及水下機器人10類目標組成。對于各算法的數據集劃分,通過隨機種子按8∶2的比例劃分為訓練集和驗證集,針對訓練集的數據,采用平移、旋轉、改變亮度、加噪等方式隨機增強,將原訓練集擴大了3倍。為驗證模型的有效性,本文選取了2021年URPC的比賽數據集[30]對模型進行驗證,該數據集有6 000張前視聲吶圖像,分別由人體模型、球體、圓籠、方籠、輪胎、金屬桶、立方體和圓柱體8類目標組成。由于該數據集的目標也大多為小目標,且有在航檢測的需求,所以本文提出的模型對于該數據集同樣適用。

2.2 實驗環境與模型訓練

實驗環境配置使用Ubuntu16.04操作系統,使用NVIDIA GeForce GTX 2080Ti 顯卡,CUDA版本為11.6,Pytorch版本為1.12.1,Python版本為3.8.15。本實驗將epochs設置為150次,batch_size設置為8。在訓練過程中,首先將圖像輸入到檢測器中,Backbone生成特征圖,然后利用Neck對特征進行增強和融合,最后利用Head從特征空間映射到標簽空間。計算預測的標簽與真實標簽之間的損失,采用隨機梯度下降(stochastic gradient descent, SGD)對參數進行更新。

2.3 評價指標

本文采用平均精度均值mAP來評價各網絡模型在前視聲吶圖像目標檢測中的性能。平均精度AP由精確率P和召回率R決定,指的是P-R曲線的面積,而mAP代表的是各類目標P-R曲線面積的平均值。當IoU大于或等于設置的閾值且類別判斷正確時,那么該預測框為正確檢測框TP,隨著IoU指標的提升,目標檢測的定位回歸標準就越嚴格。在本文中,分別采用0.5和0.75的IoU標準來評價網絡的性能。此外,結合IoU從0.5變化到0.95的平均mAP值,用以衡量每個模型的精度。

本文采用GFLOPs來衡量模型的復雜度。FLOPs為浮點運算數,可以用來衡量模型的計算量;而一個GFLOPs代表每秒十億次的浮點運算。GFLOPs越大,模型越復雜。

2.4 實驗結果及分析

2.4.1 模型消融實驗

消融實驗經常用來探索某些網絡改進或者訓練策略對網絡模型性能的影響[31]。針對本文提出的簡化網絡結構,基于目標框進行聚類得到先驗框以及數據增強3部分改進方案,為了驗證其有效性,設置了多組消融實驗,實驗結果如表2所示。

表2 消融實驗結果Table 2 Results of ablation experiment

(1) 各項改進對網絡模型的影響

表2第一行是以原Yolov5s網絡訓練得到的結果,由于數據集中都為小目標,與COCO數據集的目標大小有較大差異,所以在不改變先驗框大小的時候,檢測效果一般。雖然本文數據集一共有9 200張圖片,但是對于以數據驅動的深度學習模型而言,數據量還是偏少,所以在劃分完測試集與驗證集以后,對測試集進行擴增,數量為原測試集的3倍,對精度有了一定提升。原Yolov5s網絡有3個目標檢測層,分別檢測大目標、中目標以及小目標。由于本文數據集大多為小目標,所以取消了大目標的檢測層,在不影響網絡精度的前提下,降低了模型復雜度,提高了目標檢測速度。

(2) 不同大小網絡模型的影響

本文還比較了幾種不同深度和寬度的YOLO網絡的性能,Yolov5m和Yolov5l在一定程度上提高了模型的檢測精度,但效果并不明顯。由于聲吶圖像的數據量有限,更深層次的網絡并沒有突出其優越的檢測性能。同時,由于模型的深度和寬度增加,GFLOPs大幅提升,網絡模型復雜度增加,檢測速度進一步降低。

(3) 各類模型結果分析

通過比較各模型的訓練和測試性能,發現本文提出的改進方案在前視聲吶圖像的目標檢測中表現最好,檢測精度mAP@0.5、mAP@0.75以及mAP@0.5:0.95分別達到了0.971、0.585和0.559,與原Yolov5s網絡模型相比,mAP@0.5提升了0.9%,mAP@0.75提升了5.8%,mAP@0.5:0.95提高了3.1%。由于減少了目標檢測層,網絡模型復雜度降低,所以GFLOPs也有所下降。綜上,本文提出的改進方案不僅有效提升了檢測精度,同時也降低了運算量,為后續基于深度學習的聲吶圖像目標檢測提供了一定的參考。

2.4.2 多數據集驗證

為驗證本文算法的有效性,在其他的前視聲吶數據集上也進行了相應的驗證,數據集來源于2021年的URPC比賽數據集,針對該數據集,以8∶2的比例隨機劃分訓練集與驗證集進行實驗。各模型的測試結果如表3所示。

表3 URPC(2021)數據集實驗結果Table 3 URPC(2021) dataset experimental results

(1) 各類方法對比

表3第一行是以原Yolov5s網絡模型訓練得到的結果,與兩級檢測模型的代表Faster R-CNN相比有明顯的優勢,準確率比Faster R-CNN高,GFLOPs僅為Faster R-CNN的1/4。由于Faster R-CNN需要先提取候選區域,所以模型更為復雜。文獻[32]提出了一種基于Yolov5模型改進的聲吶圖像檢測方法,通過實驗表明,本文提出的可變尺度先驗框模型優于文獻[32]的方法。

(2) 各部分改進對比

針對該數據集的目標重新進行聚類得到先驗框,與原Yolov5s網絡相比,mAP@0.75和mAP@0.5:0.95都有了一定提升,由于mAP@0.5的值已經非常高了,所以有一定的波動是正?,F象。該數據集也大多為小目標,所以針對網絡結構部分,也刪減了大目標檢測層。雖然檢測精度有所下降,但是降低了模型復雜度,提升了檢測速度。結合先驗框和網絡簡化兩部分的改進,mAP@0.5達到了0.979,GFLOPs下降到14.9,與原Yolov5網絡相比都有了一定提升。實驗結果表明,針對類似的數據集,本文的改進方案具有一定的參考價值,有良好的泛化性。

3 結束語

本文根據聲吶圖像目標檢測的特點以及使用場景,提出了一種基于可變尺度先驗框的目標檢測方法。首先,對于聲吶圖像目標較小的問題,利用先驗統計重新設定錨框的大小,有效提高目標物的尺度適應性,加快訓練速度。其次,針對聲吶圖像數據量不足的問題,對圖像進行有選擇性的增強,豐富訓練數據集,增強模型魯棒性。最后,為滿足聲吶圖像在航檢測的需求,通過刪減大目標檢測層簡化模型結構,在不降低模型精度的條件下加快檢測速度。

實驗結果表明,本文提出的改進方案檢測精度最高且模型復雜度最低,對聲吶圖像的目標檢測有一定的參考意義。然而由于水下環境復雜、噪聲嚴重,導致聲吶圖像質量不高,目標邊緣模糊,且存在部分目標樣本稀少等問題,嚴重影響了目標檢測準確率。為了獲得更好的檢測性能,下一步將開展邊緣檢測、模型壓縮和少樣本學習等研究。

猜你喜歡
聲吶先驗聚類
探索大洋的“千里眼”——聲吶
一種便攜式側掃聲吶舷側支架的設計及實現
聲吶
基于無噪圖像塊先驗的MRI低秩分解去噪算法研究
基于DBSACN聚類算法的XML文檔聚類
基于自適應塊組割先驗的噪聲圖像超分辨率重建
基于高斯混合聚類的陣列干涉SAR三維成像
基于平滑先驗法的被動聲信號趨勢項消除
先驗的廢話與功能的進路
一種層次初始的聚類個數自適應的聚類方法研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合