張 鵬,楊露菁,黃 亮*,魏鴻波
(1.海軍工程大學(xué)電子工程學(xué)院,武漢 430033;2.解放軍92808 部隊,???570100)
水面無人艇即無人駕駛操作的水面艦艇,是將傳統(tǒng)船舶技術(shù)與無人智能技術(shù)相結(jié)合的新產(chǎn)物,具有體積小,機動性強,隱身性能好,成本較低,無人員傷亡等優(yōu)點[1]。近年來,無人艇在海洋環(huán)境監(jiān)測、海上救援、海上軍事行動等領(lǐng)域的作用越來越顯著[2]。潘磊等提出可以利用無人艇與反潛巡邏機互補,大幅提高反潛效能[3]。實際任務(wù)中,無人艇需要在無干預(yù)的情況下,借助各類傳感器對自身狀態(tài)與周邊環(huán)境進行感知研判,規(guī)避各類障礙,自主航行。與其他傳感器相比,相機類圖像傳感器具有獲取信息豐富、便于監(jiān)控、成本較低等優(yōu)勢,在無人艇環(huán)境感知任務(wù)中意義重大。
根據(jù)先驗知識可知,在海上遠距離平視狀態(tài)下,海上的目標在視場中通常按照位置遠近關(guān)系從海天線位置向畫面邊緣分布。確定海天線的位置,能夠在進行海上障礙物識別時輔助確定候選區(qū)域,減少計算量,加快目標識別速度,抑制噪聲干擾,降低虛警率。且無人艇可根據(jù)海天線在畫面中的位置及傾斜程度對自身姿態(tài)進行判斷。
現(xiàn)有的海天線檢測算法多是基于海天線線性或像素梯度特性,結(jié)合不同的梯度增強、噪聲抑制及目標篩選算法而來。韓嘉隆等使用二維的OTSU算法對圖像進行分割,協(xié)助生成海天線[4]。徐良玉等提出利用結(jié)構(gòu)森林算子實現(xiàn)快速邊緣檢測,再利用Hough 變換擬合海天線[5]。孫熊偉等提出基于邊緣相位編碼的海天線生成方法[6]。王學(xué)偉將求取海天線方程歸結(jié)為一個回歸分析問題,利用最小二乘法擬合得出海天線[7]。詹維等借助LSD 線段檢測算法獲取圖像中局部直線輪廓輔助提取海天線[8]。李慧玲等借助線性濾波器擴大海天線附近的灰度梯度差,用門限分析法提取邊緣坐標提取海天線[9]。李林豐等將梯度圖像區(qū)域累加結(jié)果的極大值位置作為海天線候選位置,通過隨機抽樣一致(RANSAC)算法擬合直線,篩選出海天線[10]。LI F X 等根據(jù)海天線區(qū)域在時域上灰度變化差異較大的特征來提取海天線區(qū)域,進而檢測海天線[11]。
近年來,圖像處理逐漸向深度學(xué)習(xí)方向發(fā)展,神經(jīng)網(wǎng)絡(luò)也逐漸被引入海天線檢測領(lǐng)域。YANG W H等采用語義分割的方法,利用高斯混合模型分割圖像區(qū)域提取海天線[12]。胡耀輝等利用VGG 網(wǎng)絡(luò)對圖像海天線區(qū)域進行分割,然后利用邊緣檢測和Hough 變換提取海天線[13]。張志祥等利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,劃分圖像場景,選擇合適的方法進行海天線檢測[14]。LIU J Y 等利用高斯混合模型(GMM)來擬合海洋圖像的語義模型,再從水體邊界點估算海天線[15]。
本文利用目標檢測算法,將YOLOv5 網(wǎng)絡(luò)模型與ShuffleNetV2 網(wǎng)絡(luò)[16]相結(jié)合,搭建輕量化特征提取網(wǎng)絡(luò),形成海天線提取模型。該模型容量小,檢測速度快,能夠快速準確檢測海天線,為無人艇駕駛及海上目標檢測提供了技術(shù)支持。
在海上遠距離平視狀態(tài)下,視場內(nèi)的畫面通常可分為海面、天空和海天線3 部分,海面和天空在遠處延伸交接處即為海天線,故可通過識別畫面中的海面與天空,提取海天線區(qū)域,抑制畫面中其他區(qū)域的噪聲干擾,再利用線性檢測的方法檢測海天線。
海天線檢測通常是為檢測海上目標等任務(wù)做準備,對檢測速度要求較高,且畫面中的海天線只存在一處,占畫面的比例較大,不需要過于復(fù)雜龐大的檢測網(wǎng)絡(luò)。本文基于YOLOv5 算法設(shè)計了海天線檢測模型YOLOv5-SH,模型使用ShuffleNetV2 網(wǎng)絡(luò)單元搭建特征提取網(wǎng)絡(luò),提取海天線區(qū)域,而后采用Canny 邊緣檢測算子與Hough 變換結(jié)合的直線檢測方法提取海天線[17]。檢測模型如圖1 所示。
圖1 海天線檢測模型圖Fig.1 Model diagram of sea-sky line detection
近年來,基于神經(jīng)網(wǎng)絡(luò)的目標檢測技術(shù)發(fā)展日漸成熟,各類快速準確的目標檢測算法層出不窮。YOLOv5 是YOLO 網(wǎng)絡(luò)中最新的網(wǎng)絡(luò)模型,在前代YOLO 網(wǎng)絡(luò)的基礎(chǔ)上,增加了數(shù)據(jù)增強、自適應(yīng)錨框計算以及網(wǎng)絡(luò)深度寬度按比例縮放等模塊。模型由輸入端(Input)、主干網(wǎng)絡(luò)(Backbone)、頸部(Neck)和輸出端(Prediction)4 部分組成。
輸入端采用Mosaic 數(shù)據(jù)增強[18]、自適應(yīng)錨框計算和自適應(yīng)圖片縮放方式對輸入圖像進行預(yù)處理。
主干網(wǎng)絡(luò)使用Focus 結(jié)構(gòu)對圖像進行切片操作,利用兩種CSP 模塊劃分基礎(chǔ)層的特征映射,然后將其通過跨階段層次結(jié)構(gòu)合并,SPP 層用來分離最重要的上下文特征。
頸部采用FPN+PAN 結(jié)構(gòu)的路徑聚合網(wǎng)絡(luò)結(jié)構(gòu),能加快網(wǎng)絡(luò)中推理信息的傳輸,加強網(wǎng)絡(luò)的特征融合。
輸出端針對檢測目標的大小不同,設(shè)計了3 個不同尺寸的輸出通道,分別檢測大、中、小目標。最后通過非極大抑制(NMS)方法保留置信度最高的預(yù)測框,完成目標檢測過程。
ShuffleNetV2 網(wǎng)絡(luò)是Ningning Ma 等2018 年在ECCV 會議提出的一種輕量化網(wǎng)絡(luò)。該網(wǎng)絡(luò)以降低內(nèi)存訪問成本(memory access cost,MAC)為目標改進而來。具體改進為:1)在開始處增加通道分割操作,將輸入特征的通道分成兩個寬度相同的通道,模擬分組過程,并保證通道數(shù)相同,實現(xiàn)通道寬度平衡;2)將1×1 的分組卷積改為普通卷積,減少不必要的分組卷積;3)將通道混淆操作移到了拼接操作之后,降低網(wǎng)絡(luò)碎片化程度;4)將stride=1 時的add 操作替換成concat,減少元素級操作。其網(wǎng)絡(luò)基本單元如圖2 所示。
圖2 ShuffleNetV2 網(wǎng)絡(luò)單元Fig.2 ShuffleNetV2 network unit
為實現(xiàn)快速準確提取海天線區(qū)域,充分利用YOLOv5 網(wǎng)絡(luò)模型與ShufflenetV2 網(wǎng)絡(luò)各自的優(yōu)點,對兩種網(wǎng)絡(luò)進行結(jié)合和改進,得到Y(jié)OLOv5-SH 網(wǎng)絡(luò)模型。
原始的ShufflenetV2 網(wǎng)絡(luò)單元使用ReLU 函數(shù)作為激活函數(shù),該損失函數(shù)計算簡單,應(yīng)用范圍廣,但存在容易出現(xiàn)“壞死”而減少模型有效容量的情況。本文采用Hardswish 替換ShufflenetV2 網(wǎng)絡(luò)單元中的激活函數(shù)[19],在增加少量計算量的情況下,保證網(wǎng)絡(luò)單元的“活性”。Hardswish 函數(shù)的計算公式為:
使用ShufflenetV2 網(wǎng)絡(luò)單元搭建特征提取網(wǎng)絡(luò)。步長(stride)為2 的網(wǎng)絡(luò)單元(SHU-2)可以對特征圖進行下采樣,并增加通道數(shù);步長為1 的網(wǎng)絡(luò)單元(SHU-1)可以在進行特征信息提取的同時,避免出現(xiàn)特征退化。參考ShufflenetV2 網(wǎng)絡(luò)的搭建方式,以1 個SHU-2 連接3 個SHU-1 為一組,對特征圖進行下采樣及特征提取。將以上過程重復(fù)4 次,得到所需的輕量化特征提取網(wǎng)絡(luò),如表1 所示。
表1 輕量化特征提取網(wǎng)絡(luò)的總體架構(gòu)Table 1 Overall architecture of lightweight feature extraction network
將YOLOv5 的骨干網(wǎng)絡(luò)由Darknet53 替換為輕量化特征提取網(wǎng)絡(luò),連接SPP 層。由于海天線區(qū)域在畫面中只存在一處且占據(jù)畫面比例較大,檢測過程中無需融合不同大小的特征圖,頸部只需一個3×3 卷積層連接輸出端模塊。輸出端同時調(diào)整,只保留一個輸出通道。
Hough 變換能夠通過將原圖像上的點映射到用于累加的參數(shù)空間,實現(xiàn)對直線的識別。海天線區(qū)域檢出后,在檢出區(qū)域中使用canny 算子進行邊緣跟蹤,再使用Hough 變換的方法,提取線性特征,即可得到海天線。
YOLOv5-SH 模型整體結(jié)構(gòu)如下頁圖3 所示。
圖3 YOLOv5-SH 模型結(jié)構(gòu)圖Fig.3 Structure diagram of YOLOv5-SH model
損失函數(shù)是神經(jīng)網(wǎng)絡(luò)中重要的組成部分,其利用檢測結(jié)果與標注數(shù)據(jù)的誤差評價檢測網(wǎng)絡(luò)的準確性,通過反向傳播調(diào)整網(wǎng)絡(luò)參數(shù)完成網(wǎng)絡(luò)的訓(xùn)練。YOLOv5-SH 模型的損失與一般的目標檢測算法相同,分為分類損失(classification loss)、位置損失(localization loss)及置信度損失(confidence loss)??倱p失可表示為:
本研究為單類目標,分類損失恒為0,置信度損失使用二元交叉熵損失函數(shù)的方法計算,位置損失使用CIoU(Complete IoU)來計算Bounding box 回歸。
二元交叉熵函數(shù)是二分類問題中常用的一個損失函數(shù),其計算過程可表示為:
式中,N 表示樣本的數(shù)量;yi表示二元標簽0 或者1;p(yi)表示輸出為yi的概率。
在YOLOv5s 模型中用來計算Bounding box 回歸的GIoU(Generalized IOU),由于沒有考慮預(yù)測框與真實框中心點與長寬比的回歸,位置損失計算收斂不夠快且回歸不夠精確。
2019 年ZHENG Z H 等提出計算預(yù)測框與真實框重疊面積與中心點距離的DIOU(Distance IoU)來加速收斂,并在DIOU 的基礎(chǔ)上,加入預(yù)測框與真實框長寬比的損失計算提出CIOU,進一步提高收斂速度和回歸精度[20]。其計算方法為:
式中,IoU 表示預(yù)測框與真實框的交集與并集的比值;d 表示預(yù)測框與真實框中心點的距離;c 為預(yù)測框與真實框的最小外接矩形的對角線長度;υ 為度量預(yù)測框與真實框?qū)捀弑纫恢滦缘膮?shù);α 為一個大于零的權(quán)重系數(shù),其計算過程如下:
式中,w0與h0表示真實框的寬和高;w 與h 表示預(yù)測框的寬和高。
本文采用的數(shù)據(jù)集,來自于人工查找互聯(lián)網(wǎng)上各類情景海面視頻通過分幀生成圖片,包括海天線清晰、海天線模糊、海天線易混淆等情景,共計5 306幅圖像,圖像示例如圖4 所示。
圖4 各類場景下的海天線圖片F(xiàn)ig.4 Pictures of the sea-sky line in various scenarios
為方便網(wǎng)絡(luò)訓(xùn)練,將所有圖像采用邊緣補充像素的方法統(tǒng)一補充為正方形并縮放為608×608 像素大小。檢測的對象為海天線區(qū)域的海面和天空,使用LabelImg 標注工具,用矩形選定框選定海天線區(qū)域海面和天空,生成xml 格式的標簽文件。按照8∶1∶1 的比例將數(shù)據(jù)集分為訓(xùn)練集、驗證集與測試集。
本文進行海天線檢測模型YOLOv5-SH 的訓(xùn)練和測試環(huán)境為Ubuntu20.04 操作系統(tǒng),Python3.8 編程語言,Pytorch1.8.0 深度學(xué)習(xí)框架。
訓(xùn)練階段的超參數(shù)設(shè)置:初始學(xué)習(xí)率為0.003 2,衰減系數(shù)為0.12,動量為0.843,批大?。╞atch size)為32,訓(xùn)練次數(shù)(epoch)為200 次。
檢測階段參數(shù)統(tǒng)一設(shè)置為:Canny 算子閾值為(50,150),sobel 算子為3,Hough 變換的閾值設(shè)置為80,不調(diào)用GPU 參與計算。
目標檢測中通常用平均精準度AP(average precision)和平均精準度的均值mAP(mean average precision)來評價模型的檢測效果和性能,AP 為召回率(recall)和精確率(precision)曲線下的面積,本研究為單類目標,AP 即等同于mAP。計算公式如下:
式中,Pr 為檢測的準確率;Re 為模型的召回率;TP為準確預(yù)測的個數(shù);FP 為誤檢數(shù);FN 為漏檢數(shù)。
檢測速度用FPS(frames per second)即模型每秒能處理的圖片數(shù)量來表示。用模型權(quán)重大小、參數(shù)量以及浮點數(shù)來衡量模型的復(fù)雜程度。
為驗證模型的有效性,需要進行消融實驗。本文構(gòu)建兩種模型來與YOLOv5-SH 模型做對比。1)直接用YOLOv5 中最輕量的YOLOV5s 網(wǎng)絡(luò)結(jié)合Canny 算子與Hough 變換對畫面中的海天線進行檢測,命名為YOLOv5s+H;2)使用文獻[1]中所提的基于二維OTSU 的海天線提取算法對海天線進行檢測,命名為OTSU-H。
圖5 為YOLOv5s+H 模型與本文所提的YOLOv5-SH 模型訓(xùn)練期間的損失與AP 變化對比圖,從圖中可以看出,改進后的YOLOv5-SH 模型收斂的較慢且損失更高。在準確率方面,YOLOv5-SH經(jīng)過15 輪訓(xùn)練之后即達到了和原始YOLOv5s 網(wǎng)絡(luò)一致的準確性。
表2 為YOLOv5-SH 模型與YOLOv5s+H 模型在復(fù)雜度上的對比。由表2 可知經(jīng)過輕量化改進后的網(wǎng)絡(luò)模型的大小、參數(shù)量以及浮點運算量相較于原始的YOLOv5s 網(wǎng)絡(luò)下降明顯。
表2 兩種網(wǎng)絡(luò)復(fù)雜度對比Table 2 Complexity comparison of two kinds of models
綜上所述,本文所提YOLOv5-SH 模型與YOLOv5s+H 模型相比,在檢測速度與模型復(fù)雜度方面有較大優(yōu)勢,更易于在工程上應(yīng)用。
根據(jù)模型流程設(shè)計,在進行海天線檢測時,先檢測畫面中的海天線區(qū)域。圖6 為本文所設(shè)計模型與原始的YOLOv5s 網(wǎng)絡(luò)在示例圖片中的海天線區(qū)域檢測效果。
圖6 海天線區(qū)域檢測效果對比Fig.6 Comparison of detection effect of sea-sky line area
對比圖6 中的海天線檢測效果可以看出,經(jīng)過輕量化改進后的YOLOv5-SH 模型在檢測海天線區(qū)域的檢測結(jié)果的置信度評分略低于原始的YOLOv5s 網(wǎng)絡(luò),在一般場景中能夠滿足海天線檢測的需要。
圖7 為本文所提模型與文獻[1]所用方法對示例圖像進行海天線檢測的效果對比。由圖7 可知,在海天線清晰的場景中,兩種方法的檢測效果不相上下,但在較復(fù)雜的場景中本文所提方法明顯優(yōu)于傳統(tǒng)的線性提取方法。
3 種方法對測試集中的531 張圖片的海天線檢測效果統(tǒng)計結(jié)果如表3 所示。經(jīng)過目標檢測網(wǎng)絡(luò)提取海天線區(qū)域后,海天線檢測的準確度明顯提高。
表3 檢測結(jié)果統(tǒng)計Table 3 Statistical table of detection results
分析可知,在YOLOv5-SH 模型中目標檢測網(wǎng)絡(luò)抑制了圖像中的大部分干擾像素,海天線檢測針對性更強,檢測也更準確;傳統(tǒng)的算法需要對整張圖片進行OTSU 極化、邊緣檢測及Hough 變換,容易被具有直線邊緣特征的干擾因素影響,難以準確檢測出海天線。
YOLOv5-SH 模型精度高、檢測速度快,能夠滿足海天線實時檢測任務(wù)。
針對海天線檢測這一任務(wù),提出了一種基于輕量化改進的YOLOv5 網(wǎng)絡(luò)的YOLOv5-SH 模型用于檢測海天線。該模型以YOLOv5 網(wǎng)絡(luò)為基礎(chǔ),利用ShuffleNetV2 網(wǎng)絡(luò)單元搭建主干特征提取網(wǎng)絡(luò),并加入Canny 算子與Hough 變換相結(jié)合的直線檢測算法,在檢測精度少量下降的情況下,大幅降低模型的規(guī)模,提高了模型檢測速度。
在自制數(shù)據(jù)集上的檢測結(jié)果表明,所提模型在各類海況下檢測海天線準確率達87.95%,檢測速度為32.9 FPS,權(quán)重大小僅244.6 K,具有準確性優(yōu)、魯棒性好、檢測速度快、可移植性高的優(yōu)勢。相較于傳統(tǒng)的OTSU 結(jié)合Hough 檢測算法,本模型檢測精度提高22.36%,且檢測速度符合實時檢測需求;同時模型權(quán)重小,有利于移植到低性能的設(shè)備平臺上。