喬鵬飛,邵 成,覃月明
(中國船舶重工集團有限公司第七一〇研究所,湖北 宜昌 443003)
水下目標的檢測、識別和跟蹤是近年來的研究熱點之一,其應用非常廣泛,包括海床的建模與繪制、海上打撈與救助、海底管道探測等方面,在軍事上可用于水雷、潛艇、UUV等水下目標的探測和跟蹤,具有重要的軍事戰略意義。水下目標一般可通過聲吶設備探測,其利用目標對聲波的反射形成圖像。現有的聲吶設備主要包括前視聲吶[1]、側掃聲吶[2]和合成孔徑聲吶[3]3種:側掃聲吶和合成孔徑聲吶通常用來采集航行器左右兩側下方的海底圖像,具有分辨率高、覆蓋范圍廣的優點,但其在航行器的正下方存在一定的視野盲區;前視聲吶安裝在水下航行器的頭部,可以采集航行器前下方的圖像數據,常用于水下航行器的自主避障和補充側掃及合成孔徑聲吶的盲區間隙。
傳統聲吶圖像識別技術的關鍵在于特征的提取、匹配,如水下目標的形狀、紋理等特征,然而由于聲學圖像成像質量差、對比度低、邊緣模糊、海洋環境復雜以及水下目標的多變,這類方法已經無法滿足水下目標檢測和識別的要求[4]。近年來,隨著人工智能技術的發展,基于深度學習的方法被廣泛應用到目標檢測中,并發展出一系列的檢測模型,這些模型可以自動學習圖像中豐富的分層特征[5],在光學圖像檢測領域中取得巨大成功。本文將目標檢測模型YOLOv3[6]引入聲吶圖像的檢測任務中,驗證算法的可行性和高效性。
多波束聲吶圖像普遍存在分辨率低、噪聲和旁瓣干擾嚴重[7]等特點,增加了探測識別的難度,需要盡可能地濾除噪聲并增強圖像的對比度;且多波束前視聲吶直接輸出的數據是一個M行N列的矩陣,是航行器前方扇形區域以距離—方位為二維極坐標的回波強度信號,如圖1(a)所示。橫坐標為波束個數N,縱坐標為采樣點個數M,每一個方格都代表一個回波點,我們需要把二維極坐標的回波強度數據在笛卡爾坐標系下顯示才能更好地表示扇形掃描區域內目標的特征與分布,如圖1(b)所示。

圖1 坐標系變換示意圖Fig.1 Schematic diagram of coordinate system transformation
1)極坐標系轉換為笛卡爾坐標系。設多波束前視聲吶水平視角為α,波束數為N,采樣點數為M,采樣間隔為 T,水中聲速為 c,假設聲吶的二維可視區域關于y軸對稱,極坐標系的原點和笛卡爾坐標系的原點重合,則前視聲吶的二維可視界面模型如圖2所示。

圖2 聲吶二維可視界面模型示意圖Fig.2 Schematic diagram of two-dimensional visual interface model of sonar
現有一點A位于聲吶成像矩陣的m行n列,則該點在極坐標系下的坐標為

A點在笛卡爾坐標系下的坐標為

通過坐標系的裝換,則極坐標系下的回波點(r,θ)的強度就可以采用笛卡爾坐標系下(x,y)的強度值進行表示,但對比圖1(a)和圖1(b),可以發現在角度方向,靠近扇形圓心的圖形被壓縮,遠離圓心的圖形被拉伸,這會導致圖像中出現“空洞”,需要進行數據插值來填充。本文對比了最鄰近插值(INTER-NEAREST)、雙線性插值(INTERLINEAR)、雙立方插值(INTER-CUBIC)、Lanczos插值(INTER-LANCZOS4)4種算法的圖像效果,發現INTER-LINEAR、INTER-CUBIC、INTER-LANCZOS4的圖像效果相似,且都比INTERNEAREST好,但INTER-LINEAR算法的效率更高,所以本文采用雙線性插值算法填充圖像。
2)聲吶數據中攜帶的噪聲大部分是由海底或海面反射、水中的水汽或漂浮物影響等產生,大部分屬于椒鹽噪聲,本文采用中值濾波的方法去除噪聲,其能夠在平滑圖像的同時,盡量減少圖像細節信息的損失,是一種簡單有效的濾波降噪方法。
3)本文采用動態亮度分配的方法增強圖像的對比度。動態亮度分配[8]是將回波強度映射到線性灰度[0,255]的過程,可以通過優化映射函數增強目標與背景之間的對比度及圖像的亮度,其映射函數如公式(3):

式中:L為圖像回波強度的最小值;H為圖像回波強度前10%的平均值;zin為輸入的回波強度值;zout為輸出的灰度值;γ為映射參數,用于增加圖像的對比度;λ為映射參數,用于增加圖像的亮度。
YOLO(You Only Look Once)是一種基于回歸思想的CNN目標檢測模型,其經歷了YOLOv1、YOLOv2和YOLOv3共3個版本的改進,目前已經發展到YOLOv4。YOLO系列與之前的檢測模型不同,其不需要提取圖像中目標候選區域,而是直接對整幅圖片進行回歸訓練,擁有更高的運行速度(40幀/s),可以滿足聲吶識別的實時性要求。
雖然YOLOv4的識別精度與YOLOv3相比有了稍微的提升,但其網絡更復雜,計算耗時更長,并且YOLOv3具有C語言版本,程序運行更快、更穩定,適合于工程實際運用,所以本文采用YOLOv3進行探測識別。YOLOv3的網絡結構如圖3所示:其中 DBL組件為網絡的基本單元,由卷積層、批歸一化和激活函數構成;resn表示res模塊中含有 n個殘差單元。YOLOv3結合殘差網絡ResNet[9]中的跳躍連接和特征金字塔網絡(Feature Pyramid Networks,FPN)等算法思想,用步幅為2的卷積層替代池化層完成對特征圖的下采樣,同時在每個卷積層后增加批量歸一化操作(Batch Normalization,BN)[10],并使用激活函數 LeakyRelu來避免梯度消失及過擬合,最終形成53層的骨干網絡DarkNet-53來提取圖像的分層特征。在對目標物體進行分類時,其使用多個獨立的邏輯回歸分類器,這些分類器對于目標邊框中出現的物體只判斷其是否屬于當前標簽,即簡單的二分類,這樣便實現了多標簽分類。

圖3 YOLOv3的網絡結構圖Fig.3 Structure diagram of YOLOv3 network
在利用 YOLOv3訓練模型及檢測目標時,其輸入的圖片都需要有固定的尺寸(416×416),然而采集到的扇形聲吶圖片一般都不符合這個尺寸(本文的聲吶圖像為2 600×1 300)。如果我們直接對大的聲吶圖片進行縮放會導致圖片模糊及損失一定的特征信息,所以本文對聲吶圖片進行了切片,如圖4所示將一張聲吶圖片分成10份,并確保每一張切片與相鄰的切片有部分的重合區域,以防止將目標區域分開。并且如果切片后仍不符合YOLOv3模型的輸入尺寸,則可以直接對圖片進行縮放,因為切片后的圖片已經接近于YOLOv3的輸入尺寸,直接進行縮放導致的圖像損失較小,對識別的影響可忽略不計。如果是較大目標,雖然切片時可能會將其分開,對識別造成影響,但由于基于深度學習的方法在學習圖像的特征時,學習的是圖像的本質特征,將目標分開這一因素對目標的本質特征影響不大,并且目標在聲吶圖像的顯示中所占的像素較少。本文切片時還預留了重疊區域,目標分開的概率較小,所以將較大目標切開對識別的影響不大。

圖4 聲吶扇形圖像的切片示意圖Fig.4 Slice diagram of fan-shaped sonar images
試驗表明,將基于卷積神經網絡的 YOLOv3模型運用在聲吶圖像的目標檢測中具有很高的識別率[4],但YOLO系列算法的基本思想:將輸入圖像看成一個S×S的柵格,若某個目標的中心位置落在一個柵格內,那么這個柵格就負責檢測這個物體,如圖5所示。圖中某個目標的中心點(紅色原點)落入第4行、第3列的格子內,則這個格子負責預測該目標,即每個柵格只能用來檢測一個目標,所以如果一個柵格內存在多個小目標,則可能存在誤檢。

圖5 YOLOv3檢測示意圖Fig.5 Schematic diagram of YOLOv3 detection
本文設計了一種降低誤檢率的方法,基本原理如下:首先,在單幀圖像中利用 YOLOv3檢測目標,將檢測出的目標作為疑似目標并根據水聲定位計算其經緯度;然后判斷后續的4幀圖像序列中該經緯度處是否都具有 YOLOv3檢測的目標,如果是,則將該目標判斷為正確目標,反之,則為虛假目標,圖6為算法的流程圖。計算疑似目標的經緯度方法如下:首先根據系統中的水聲定位儀器我們可得聲吶的經緯度;然后按式1、2可將圖像中檢測出的疑似目標的位置(x,y)轉換成距離-方位形式(r,θ),則就可根據目標距聲吶的距離和方向及聲吶的經緯度推算出目標的經緯度。

圖6 算法流程圖Fig.6 Algorithm flowchart
本實驗使用保利天同科技公司的400 d多波束前視聲吶探測水下靜態目標,整個探測系統如圖7所示,其將聲吶安裝在拖魚的頭部,并采用船載拖曳式的方法拖動拖魚。我們利用該探測系統在水庫和海域采集了 2組數據用于訓練 YOLOv3模型和評估算法的有效性。

圖7 水下探測系統示意圖Fig.7 Schematic diagram of underwater detection system
圖8左右2幅圖分別為采用中值濾波前后的對比圖,其滑動窗口大小為 5×5,從圖中可看出椒鹽噪聲得到了去除,且保留了圖像的邊緣信息。圖9為映射參數γ=0.4,0.6,0.8,1及γ=0時的聲吶扇形圖像,從圖中可以看出隨著γ的減小,目標和背景的對比度不斷增強,但當γ=0.4時,過大的對比度又損失了部分細節,因此選擇映射參數γ=0.6對圖像進行預處理。

圖8 中值濾波前后對比圖Fig.8 Comparison diagram before and after median filtering

圖9 對比度增強效果圖Fig.9 Effect diagram of contrast enhancement
本實驗的待測目標為球形目標(globoid,GL)和圓柱形目標(cylinder,CY)2類,通過改變目標的位置及從多個方向進行探測,共采集了1 000張具有目標的聲吶圖片,利用圖4所示的切片方法將所有的圖片共分成了 1 000×10張圖片,其中具有目標的圖片有1 600張,對其中的1 000張圖片利用Labelimg標注組成訓練數據集,剩下的600張圖片組成測試數據集。本文采用YOLO官網提供的基于C語言開發的YOLOv3模型,使用搭配 NVIDIA 2080顯卡、CUDA9.0的計算機進行訓練和測試。圖 10展示了對聲吶圖像的檢測結果示例,圖中的目標是將切片的檢測結果轉換到整幅圖像中進行標記顯示的,可以看到在背景噪聲較大的情況下,YOLOv3模型仍能夠準確檢測出目標。

圖10 YOLOv3探測結果示例圖Fig.10 Sample gram of YOLOv3 detection result
表1展示了第2 791~2 795幀圖片的YOLOv3檢測結果,可以看到第2 791和2 792幀中一共檢測到3個目標,但通過計算圖中3個目標的經緯度,且與布放目標時記錄的經緯度比較,可以確定第1個目標(從上往下排列)為虛假目標,而我們通過查看第2 793~2 795幀的檢測結果,可以發現第1個目標都沒有被檢測到,因此可以判斷第1個目標為虛假目標,其與真實情況相同。

表1 第2 791~2 795幀檢測結果Table 1 Detection results of picture frame 2 791-2 795
為了驗證所提算法的高效性,文中引入了支持向量機(SVM)結合方向梯度直方圖特征(HOG)的識別方法,HOG通過計算和統計圖像局部區域的梯度方向直方圖來構成特征,HOG 特征結合SVM分類器是經典的傳統圖像識別算法。3種算法的試驗對比結果如表2所示,其中識別率為600張測試圖片中正確識別個數所占的百分比。從表中我們可以看到:采用 YOLOv3的識別率明顯高于傳統的 HOG+SVM方法,并且加入去除虛假目標方法后,YOLOv3的識別率又得到了提高;在檢測速度上,YOLOv3檢測一張完整的聲吶圖片只需要0.63 s,幾乎比HOG+SVM快了一倍。

表2 不同方法對聲吶圖像的檢測結果Table 2 Detection results of sonar images by different methods
本文通過中值濾波和動態亮度分配預處理,顯著改善了多波束前視聲吶的圖像質量,為后續的探測識別創造了有利條件;將基于卷積神經網絡的YOLOv3模型用于聲吶圖像的識別,試驗結果證明該方法比傳統的特征提取方法更高效;對單幀圖像中有無目標先不進行判斷,而根據圖像序列中檢測目標的出現次數進行判斷,實驗表明這樣可以降低識別的誤檢率。本算法不僅可以滿足民事上的運用,也可以在軍事上運用于水雷和UUV等相似形狀的目標探測中,擁有廣泛的應用范圍。