王 非 王欣宇 周景春 劉 淼
(大連海事大學信息科學技術學院 大連 116026)
目標檢測是計算機視覺中的一個基礎性的且具有挑戰性的問題,其目的是在輸入的圖像中找到待檢測目標的位置以及判斷目標的類別。隨著時代的發展和海洋強國戰略的提出,提高海洋資源開發能力,發展海洋經濟已成為我國的迫切需求。近年來,針對水下目標的檢測任務成為了非常活躍的研究領域之一,其應用非常廣泛,包括魚群定位、水深測量等方面,也可用于水雷、潛艇探測等軍事領域。但由于水下環境復雜多變和水下信號的獲取及處理存在困難,使得在水下采集到的數據信息往往不夠精確[1,2]。因此,如何在復雜多變的水下環境和噪聲、畸變等影響下準確地進行目標檢測是業界公認的關鍵點和研究難題。
對于水下目標檢測,前人已提出過許多有效的檢測方法,根據關注點不同,可大體分為基于像素、回波[3,4]和特征[5,6]的檢測方法。在深度學習的助力下,目標檢測領域出現了一系列里程碑式的檢測框架,根據其算法流程總體上可以分為兩類:兩階段目標檢測框架和單階段目標檢測框架。2014年Girshick等人[7]提出的基于卷積神經網絡的R-CNN目標檢測框架是2階段檢測的開端,該框架通過端到端的方式從大量數據中訓練出來檢測模型,再將模型應用于大量不同類別的目標,這成為了R-CNN系列的奠基框架,但此框架在目標檢測效率和物體識別等方面存在一定問題。Girshick[8]在R-CNN框架的基礎上進行改進,提出了Fast R-CNN框架,該框架將特征提取器和分類器合并,并且對特征提取的方式進行改進,使得原本對每一個候選框進行特征提取變為了一次性對一整張圖像進行特征提取,大大加快了訓練速度。后續提出的Faster R-CNN框架[9]考慮到因選取過多候選框而導致的模型訓練時間較長的問題,利用RPN(Regional Proposal Networks)負責目標預測框的選取,大幅度提升了網絡檢測速度。近幾年,He等人[10]提出的Mask R-CNN巧妙地更改了處理特征圖尺寸變化的方法,很大程度上減小了下游特征圖像向上游映射時的誤差,在提升了目標檢測效果的同時滿足了其算法語義分割任務的精確度的要求。在單階段目標檢測框架中,基于回歸算法不需要經過候選框選取階段,可直接從輸入圖像中直接預測結果。單階段檢測的代表性框架有YOLO系列和SSD系列,YOLOv1[11]將檢測任務表述成一個統一的、端到端的回歸問題,在最終的高維特征圖上通過一個全連接層對目標進行檢測及分類。但神經網絡粗糙、對小目標檢測有限制的問題也隨之產生。Liu等人[12]提出的SSD(Single Shot multibox Detector)算法結合了YOLO算法的回歸思想和Faster-RCNN的錨機制,使得算法更容易訓練。YOLOv2[13]是在YOLOv1的基礎上進行優化的,其在提升檢測速度的同時,對目標的檢測精度也得到了提高。與此同時,Jeong等人[14]提出了SSD算法的改進版R-SSD算法,解決了SSD算法存在的目標被重復檢出的問題。YOLOv3[15]在繼承了YOLOv1和YOLOv2的優點的同時做出了一些改進,使得其可進行多目標檢測任務。Law等人[16]提出的CornerNet采用預測識別框的左上角和右下角頂點信息來替代傳統的錨機制,檢測性能得到了明顯提高。
相較于先前的YOLO版本,YOLOv3首先對主干網絡進行了修改,引入了殘差結構進行特征提取,通過使用卷積層代替最大池化層提升了檢測效果。此外,YOLOv3網絡模型借鑒了特征金字塔網絡[17](Feature Pyramid Networks, FPN)的思想,先從主干網絡中提取3個不同尺度的特征圖,再通過上采樣和特征拼接的方式將高維特征圖信息與低維特征圖信息相融合,使得能夠對低維特征圖進行高精度預測的同時又能結合高維特征圖中的語義信息,達到了對特征圖的多尺度檢測效果,從而使模型對小目標的檢測效果大大提升。相比于R-CNN系列網絡的先對輸入圖像產生候選區域,再對候選區域圖像塊進行位置預測和分類的方式,YOLOv3采用端到端的方式,使用單個網絡對整張圖像直接進行目標檢測的方法更具實時性。
聲吶是一種利用聲波在水下的傳播特性,根據不同物體反射聲信號的強度和頻譜信息的不同,通過電聲轉換和信息處理,完成水下探測和通訊任務的電子設備。根據同時刻發出的波束數量不同又可分為單波束前視聲吶和多波束前視聲吶,本文利用的數據多為單束前視聲吶所測。
當處于水下這一3維空間進行檢測時,前視聲吶通過換能器發射像掃描線一樣的以?為半徑、以θ為水平跨越角度的波束,進而形成一個相應的扇形探測區,再以?作為俯仰角構成檢測的3維空間,并對覆蓋的目標區域進行條帶式測量。若取掃描線上的一點Q,那么該點在3維空間中的坐標可表示為Q(r,θ,?)。同時,利用基陣的自然方向性定向建立直角坐標系,對應的直角坐標為(x,y,z)。
球面坐標系和直角坐標系的轉化關系如式(1)所示。由于原始數據中缺少俯仰角?的信息,因此在處理數據時我們只能選擇將立體空間中的點投影到平面,將3維坐標轉換成2維進行計算。將球面Q點映射至投影平面P點,兩坐標之間的轉換關系如式(2)所示。
已發射的聲波遇到物體時會回射,聲吶裝置收到反射的波束,通過計算回波從發射到收回的時間與波束在水中的運動速度就能精確計算物體所在處與聲吶設備的距離,多個波束反射投影到聲吶裝置中便形成了一張畫有物體邊遠輪廓的原始聲吶圖片。
本文提出了一種基于YOLOv3的水下目標檢測模型YOLOv3F,以解決水下聲吶圖像的形狀失真和畸變的問題,網絡整體結構如圖1所示。將原始的聲吶圖像與對應生成的點云數據送入backbone分別對紋理特征和空間幾何形態特征進行特征提取,再通過對提取出的兩部分特征進行特征維度的相加,接著送入YOLOv3的neck網絡對相加之后特征進行不同維度的特征融合,最后通過預測網絡實現目標檢測。
本文使用式(1)和式(2)來計算每個聲吶掃描點對應的點云坐標,將生成的點云坐標存儲在一個N×2的矩陣中,其中N代表掃描點的總數,矩陣中每個元素定義為相應掃描點處的聲吶信號值。再根據每個像素點的不同強度值,利用圖像二值化(Image Binarization)算法,過濾掉大量強度值比較小的無用點,實現前后景的劃分和背景點的過濾。本文采用的固定閾值二值化技術是先統計出整張圖片中所有像素點的強度值,將算出的強度值的中值設為閾值,并將大于中值的值設為1,小于中值的值設為0,接著過濾掉值為0的掃描點。最后將得到的點云坐標信息以三通道(x,y,0)的形式保存。
本文使用基于YOLOv3模型的改進版YOLOv3F,采取的主干網絡由兩個Darknet-53網絡組成,每個Darknet-53網絡由26個殘差結構、6個卷積層和1個全連接層組成,每個殘差結構中包含2個卷積層,并且最后的全連接操作由卷積實現,整個網絡共進行了53次卷積操作。文中使用的網絡以原始聲吶圖像和點云數據分別作為兩個主干網絡的輸入,分別依次通過卷積層和包含1, 2, 8, 8, 4個殘差模塊的殘差網絡。當輸入通過步長為1的卷積層后特征圖大小不變,通過步長為2的卷積層后特征圖大小變為輸入大小的1/2。隨著網絡的前向傳播,特征圖尺寸越來越小,其中包含的語義信息越來越豐富,兩個主干網絡最終分別輸出低層特征圖、中層特征圖和高層特征圖。最后將從原始聲吶圖像提取的紋理特征和從點云中提取的空間幾何特征進行拼接,送入neck網絡進行特征融合。
由于本文在主干網絡中將聲吶圖像特征與點云特征進行特征維度的求和,所以neck結構的特征通道維度相較于原始的YOLOv3網絡翻了1倍,即輸入neck網絡的特征維度分別為2048, 1024和512。Neck網絡結構對高層特征圖一方面直接利用5次卷積進行特征提取,一方面對其進行上采樣,再與中層特征圖進行拼接,將拼接之后的特征圖重復上述操作,再與低層特征圖進行拼接。最后將3種尺寸的特征圖送入預測網絡進行目標預測。
本文所提出的模型使用端到端的方式對特征圖上的邊界框進行預測,網絡先通過K-means聚類算法得到9組不同尺寸的預設邊界框(Bounding Box Prior),再將這9組預設邊界框分別應用到3個不同尺度的特征圖上進行預測,每個預測特征層會預測S×S×k×(4+1+C)個參數,其中S×S表示特征圖的尺度,k為當前預測特征層的預設邊界框的個數,4為預設邊界框的4個偏置信息,1表示每個邊界框對目標預測的置信度。
如圖2所示,(cx,cy)表示當前單元格相對特征圖左上角的偏移量,(pw,ph)為預測框的寬和高,(tx,ty,tw,th)為網絡模型要預測的4個偏置信息。YOLOv3F為了使預測邊界框的中心點固定在一個單元格中,使用sigmoid函數將預測坐標歸一化到0~1之間。預測邊界框的坐標(bx,by,bw,bh)將由以式(3)—式(4)計算得到:
本文提出的模型的損失函數參照原始YOLOv3模型結構分為3個部分,分別是對目標偏移量損失lossb的計算,對目標置信度損失lossw的計算和對目標分類損失losss的計算。損失函數的3個部分分別如式(7)所示。
計算分類誤差時使用交叉熵損失函數,概率值p由sigmoid函數進行計算,當單元格內不存在待檢測目標時不會對分類錯誤進行懲罰。
YOLOv3F的總損失即為上述3部分損失函數之和,即
本文進行的實驗是在一個真實水下環境的公共數據集上對其進行測試,該數據集包含各種各樣的目標對象,并通過將本文提出的模型與原始YOLOv3, SSD, RetinaNet[18]網絡模型進行定性和定量對比,驗證了所提方法的有效性。
本實驗中使用的公共數據集由2021屆中國水下機器人專業比賽提供,可在https://www.heywhale.com/home/competition/605ab7f821e3f6003 b56a7e5進行查詢。該數據集由4000張聲吶圖像組成,涵蓋了水下場景的典型環境。它包含立方體、球體、圓柱體、人體模型、輪胎、圓形地籠、方形地籠、鐵桶8類物體。在實驗中,4000張圖像被分為訓練集(約60%)、驗證集(約20%)和測試集(20%)。
在本文的實驗中使用平均準確率(mAP)來對不同的模型進行評估。準確率指的是所有正樣本中預測為正樣本的比例,包括真正樣本和假正樣本。mAP衡量每個類別數據的平均精度,在評估模型定位性能,目標檢測模型性能和分割模型性能方面是非常重要的。
本實驗使用開源目標檢測框架MMDetection來實現所提出的方法,該框架的源碼網址為https://github.com/open-mmlab/mmdetection,其中包含了YOLOv3, SSD, RetinaNet 3個對比模型的實現源碼。這些代碼是用Python3.7和Pytorch1.8.1編寫的。所有實驗的服務器操作系統都是Ubuntu18.04, CUDA Toolkit11.1和CUDNN8.0。硬件包括Inter Core i9-10980XE(3.0GHz), 32GB RAM和Nvidia GeForce3090(24GB)。
對于本文所提方法及3種基線模型的訓練,實驗中采用了統一的參數設置,具體如下:使用隨機梯度下降(Stochastic Gradient Descent, SGD)算法進行參數優化,設置初始學習率為0.001,動量為0.9,權重衰減為0.0005,最大迭代次數為350次。
本實驗中分別對單目標和多目標的情形進行了檢測。圖3展示了分別使用RetinaNet, SSD512,YOLOv3以及本文提出的YOLOv3F模型對單目標物體的檢測效果,從圖中可以看出RetinaNet和YOLOv3將人體模型錯分為了輪胎和球體。圖4和圖5展示了4個模型對多目標的檢測效果,從圖4中可看出RetinaNet和YOLOv3將人體模型錯分類為了其他物體,SSD512并沒有檢測到人體模型;從圖5中我們可以觀察到RetinaNet和SSD512分別將圓形地籠錯分類為了方形地籠和圓柱體。從圖3—圖5反映的實驗結果來看,無論是單目標情形還是多目標情形,在使用YOLOv3F模型對原始聲吶圖像和點云數據進行特征融合后,均表現出了良好的檢測性能。
表1、表2和表3分別展示了RetinaNet, SSD512,YOLOv3和本文提出的改進模型YOLOv3F在給定數據集下設定檢測框不同交并比、對不同尺度以及不同類別的目標進行檢測的效果。從表1可以看出,當檢測框交并比閾值取[0.5,0.95]時,RetinaNet,SSD512和YOLOv3 3個模型的檢測效果非常接近,而本文所提方法YOLOv3F相較于其他3個模型,其mAP分別提高了3.4%, 3.4%和3.6%,當檢測框交并比閾值設置為大于0.5時,對應提高的mAP分別為7%, 3.8%和1.7%,這一數值在交并比設置為大于0.75時出現相對較大幅度的提升,分別為4.3%,6.8%和8.8%。因此由表2可知,本文提出的融合了點云特征的目標檢測框架繼承了原有YOLOv3的目標檢測良好性能,并且在對檢測框設置不同交并比的情況下,與其他3個模型相比均達到了最優的檢測效果。

表1 檢測框不同交并比mAP對照

表2 不同尺度目標檢測mAP對照

表3 不同類別目標檢測mAP對照
為了進一步凸顯融合了聲吶圖像與點云特征的YOLOv3F模型的改進作用,本實驗還分別就小尺度、中等尺度和大尺度目標的不同情形進行了mAP對照分析,如表2所示。在小目標情形下,YOLOv3F的檢測性能與SSD512相近,前者相較于后者性能提升了0.9%,與RetinaNet和YOLOv3相比,YOLOv3F的檢測性能提高了5%和3.3%。在檢測中等尺度目標時,其他3種網絡性能相近,其中RetinaNet優于另外兩種,而YOLOv3F與RetinaNet相比,性能提高了3.2%。在檢測大尺度目標時,本文提出的模型同樣達到了最優的檢測效果。
本實驗還對4種網絡模型檢測不同類別目標的mAP進行了對照,如表3所示。雖然在對球體類別進行檢測時,YOLOv3F模型的檢測效果略低于SSD512,但僅相差0.5%,相較于原始YOLOv3,本文提出的改進版在性能上提升了2.4%。此外,從表中可以看出,本文提出的模型在對除球體之外的其他7種類別物體的檢測效果均優于其他3種模型,這也驗證了融入點云特征后的改進效果。
本文以YOLOv3模型為基礎,提出了水下目標檢測模型YOLOv3F,該模型將從原始聲吶圖像中提取的紋理特征和從點云中提取的物體空間幾何形態特征相融合,并通過neck結構將低維特征與高維特征進行融合,增加上下文信息,改善對水下目標的檢測性能。通過主客觀對照實驗結果可以看出,YOLOv3F的總體檢測性能相較于RetinaNet,SSD512和YOLOv3均有不同程度的提升,在復雜的水下環境的情形下具有一定優勢。