喻 鈞,康秦瑀,陳中偉,初 苗,胡志毅,姚紅革
(1 西安工業(yè)大學(xué), 西安 710021; 2 海軍研究院, 北京 100161; 3 陸軍研究院工程設(shè)計研究所, 北京 100043)
隨著衛(wèi)星成像技術(shù)、傳感器技術(shù)的迅速發(fā)展,艦船作為海上的運輸載體和重要軍事目標,高分辨率的艦船遙感圖像[1]檢測具有重要的應(yīng)用價值。例如,在民用領(lǐng)域,監(jiān)控特定海域和港口的海運交通,搜救遇難船只等;在軍事領(lǐng)域可以監(jiān)視敵方重點港口和海域的艦船部署,協(xié)助分析敵方的海上作戰(zhàn)實力[2],形成海上作戰(zhàn)情報等。因此,對于復(fù)雜海洋環(huán)境下的海面目標檢測,提高檢測精確率并減少虛警率具有重要的意義。
針對不同的目標,國內(nèi)外學(xué)者提出了不同的目標檢測算法[3]。文獻[4]提出了基于卷積神經(jīng)網(wǎng)絡(luò)特征的區(qū)域方法(R-CNN),利用“選擇性搜索算法+CNN+SVM”的方式進行檢測,整個訓(xùn)練過程運算量大且耗時。文獻[5]采用了多任務(wù)聯(lián)合損失函數(shù),將位置回歸任務(wù)加入到了網(wǎng)絡(luò)中,簡化了訓(xùn)練步驟,加快了訓(xùn)練速度。文獻[6]提出的Faster R-CNN,將區(qū)域推薦過程融入到網(wǎng)絡(luò)模型中,實現(xiàn)了端對端的目標檢測技術(shù)結(jié)構(gòu),但速度(7 幀/s)仍然達不到實時。為了解決檢測精度與速度的平衡問題,文獻[7]提出的YOLO(you only look once)算法,將整幅圖劃分為S×S個小網(wǎng)格,對每個網(wǎng)格預(yù)測2個邊界框,計算這些網(wǎng)格的置信度和所屬類別的概率,實現(xiàn)了實時檢測,但由于劃分的網(wǎng)格數(shù)目較少且網(wǎng)格區(qū)域較大,使得小目標的檢測效果不好,相比文獻[6]而言,檢測精度有所下降。YOLO的核心是將整張圖作為網(wǎng)絡(luò)的輸入,將目標的邊界框位置及其類別作為網(wǎng)絡(luò)的輸出。隨著YOLOv2[8]和YOLOv3[9]相繼問世,也進一步提高了YOLO的泛化能力和檢測速度。
文中針對海面目標難以識別、易漏檢等問題,對YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)進行了改進。利用Kmeans++生成新的anchor box值,通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和坐標預(yù)測函數(shù),獲得一種新的網(wǎng)絡(luò)結(jié)構(gòu)。實驗結(jié)果表明,相比于其他算法,平均檢測率提高了5.34%,可以有效防止海面目標的漏檢等問題。
相對于傳統(tǒng)的目標檢測方法,基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的目標檢測可以進行端到端的訓(xùn)練,并將特征進行融合,有效地解決了特征不易提取的問題。圖1是YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)示意圖。它借鑒了殘差結(jié)構(gòu)的思想,使得YOLOv3可以包含53個卷積層,其網(wǎng)絡(luò)結(jié)構(gòu)主要是由5個殘差塊(Res1,Res2,Res8,Res8,Res4)構(gòu)成,每個殘差塊由多個殘差單元組成。殘差塊的結(jié)構(gòu)如圖2所示。

圖1 YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)
在圖2中,每個殘差結(jié)構(gòu)均有一個卷積層(Conv)、批歸一化層(Batch Normalization)和激活函數(shù)(Leaky Relu)。卷積層主要負責(zé)提取圖像特征;批歸一化層是將提取到的特征進行歸一化處理;激活函數(shù)的作用是增強網(wǎng)絡(luò)層之間的非線性關(guān)系,使網(wǎng)絡(luò)能夠完成復(fù)雜的任務(wù)。

圖2 殘差塊的結(jié)構(gòu)
原有的YOLOv3檢測網(wǎng)絡(luò)中,主要存在三方面問題:一是anchor box值(anchor box即先驗框)是由Kmeans方法生成的,不同的初始聚類中心可能導(dǎo)致不同的聚類結(jié)果,從而對檢測結(jié)果造成影響;二是遙感數(shù)據(jù)集中的檢測結(jié)果的平均精確率(mean Average Precision,mAP)較低;三是原有的目標邊界框是可以優(yōu)化的,使之更趨于目標的實際大小和位置。基于上述問題,做如下改進:
1)使用Kmeans++生成anchor box值。
2)采用“FPN”思想進行特征融合。
3)選用GIOU作為坐標預(yù)測的損失函數(shù)。
下面分別加以描述。
1.2.1 使用Kmeans++生成anchor box值
使用Kmeans++聚類算法對數(shù)據(jù)集進行分析,并生成適合數(shù)據(jù)集的anchor box值。Kmeans++算法保證了初始聚類中心之間的相互距離盡可能遠,并選用anchor box與真值框的交并比(intersection over union, IoU )作為距離的衡量標準,計算公式如式(1)所示。距離d的值介于[0,1]之間,值越小,代表先驗框越接近真值框,即聚類效果越好。
d(box,centroid)=1-IoU(box,centroid)
(1)
其中:box為數(shù)據(jù)標簽的真值框坐標;centroid為先驗框的坐標;IoU(box,centroid)表示先驗框與真值框的交并比。
文中針對每種輸出尺度設(shè)定了3種先驗框,3種輸出尺度共聚類出9種尺寸的先驗框(k=9),生成的anchor box值為(22,26), (63,59), (167,121), (30,79), (103,95), (105,217), (55,137), (224,158)和(263,256)。
1.2.2 采用“FPN”思想進行特征融合
改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。它采用了feature pyramid networks(FPN)架構(gòu)思想,在殘差網(wǎng)絡(luò)提取特征的最后階段加入了一個殘差塊,輸出特征分別與其他3個尺度的特征進行融合[10]。從圖3可知:尺度4的特征圖經(jīng)過3次上采樣分別與尺度3、尺度2、尺度1的特征圖進行拼接;尺度3的特征圖經(jīng)過1次上采樣與尺度2 進行拼接,依此類推。多個尺度的特征圖進行了拼接操作,充分利用了低層特征的細節(jié)信息與高層特征的語義信息,提高了網(wǎng)絡(luò)的檢測性能。不同尺度的特征圖拼接完成之后,網(wǎng)絡(luò)會輸出3種不同的尺度框,即:當輸入的圖像尺寸為786×768時,輸出的3個尺度框為:(24×24)、(48×48)、(96×96)。最后,利用非極大值抑制(non-maximum suppression,NMS)的方法刪除重復(fù)的預(yù)測框(預(yù)測框是指待檢測目標的邊界框),得到最終的檢測結(jié)果。

圖3 改進后的網(wǎng)絡(luò)結(jié)構(gòu)圖
1.2.3 選用GIoU作為坐標預(yù)測的損失函數(shù)
在目標檢測中,IoU常用來評價預(yù)測框(predict box)和真值框(ground-truth)的距離。IoU的值介于[0,1]之間,其值越大,代表預(yù)測框越接近真值框。當IoU作為坐標預(yù)測的損失函數(shù)時,存在兩個問題:一是當預(yù)測框與真值框沒有公共區(qū)域時,損失函數(shù)的值為零,無法優(yōu)化模型;二是損失函數(shù)的值無法精確反映兩框的重合度大小。針對IoU的上述缺點,文獻[11]提出了GIoU(generalized intersection over union)新指標,它不僅關(guān)注預(yù)測框與真值框的重疊區(qū)域,還關(guān)注其他非重疊區(qū)域,能更好反映預(yù)測框與真值框的重合度。GIoU的值介于[-1,1]之間,1代表預(yù)測框與真值框重合;-1代表預(yù)測框與真值框無交集且無限遠。
圖4是將L2范數(shù)、IoU、GIoU分別作為損失函數(shù)的對比示意圖。圖中虛線表示預(yù)測框,實線表示真值框,分別由它們的左上角和右下角的坐標位置表示,即(x1,y1,x2,y2)。圖4(a)中,當L2范數(shù)的值相同時,IoU、GIoU值依據(jù)不同的情況得到不同的數(shù)值,該值直接反映了預(yù)測框與真值框的重合度情況,即重合度越大,IoU、GIoU的值越大,圖4(a)中右邊的回歸效果最好。圖4(b)中,兩組對比圖的IoU值相等,而左圖的GIoU值大于右圖的GIoU值,即左圖的回歸效果比右圖好。所以,GIoU能更好地反映預(yù)測框與真值框的重合度大小。

圖4 各損失函數(shù)的對比示意圖
將GIoU作為損失函數(shù)算法的步驟如下:
步驟1:分別計算Bg、Bp的面積Ag、Ap。
步驟2:計算Bg,Bp的重疊面積I。
步驟3:計算Bg,Bp最小閉包區(qū)域的面積Ac。
步驟4:分別計算IoU、GIoU的值,公式分別如式(2)、式(3)所示。
(2)
(3)
步驟5:計算最終的損失函數(shù),如式(4)所示。
LGIoU=1-GIoU
(4)
實驗的總框架如圖5所示。實驗流程包括兩大部分:數(shù)據(jù)集的準備、網(wǎng)絡(luò)的訓(xùn)練。為了確保實驗結(jié)果的精確性,數(shù)據(jù)集制作的重點是數(shù)據(jù)預(yù)處理。

圖5 實驗的總框架
2.1.1 數(shù)據(jù)集的準備
艦船類型包括5類:客船、貨船、集裝箱船、航母、軍艦。實驗數(shù)據(jù)來源于Kaggle競賽平臺和Google Earth。該數(shù)據(jù)集中,貨船和客船居多,集裝箱船、軍艦、航母數(shù)目類別較少,且遙感數(shù)據(jù)集大多數(shù)是俯拍,艦船的朝向變化很大。為了使數(shù)據(jù)集中的艦船朝向盡可能全面,使得學(xué)習(xí)到的模型具有廣泛性,對數(shù)據(jù)集進行了擴增。數(shù)據(jù)擴增主要包括如下4種方法,擴增后的結(jié)果如圖6所示。

圖6 數(shù)據(jù)擴增
1)水平或垂直翻轉(zhuǎn);
2)按不同角度旋轉(zhuǎn)圖像(如圖6(b)所示);
3)添加隨機噪聲(如圖6(c)所示);
3)導(dǎo)入數(shù)據(jù)后應(yīng)檢查其合理性,如影像和POS是否一一對應(yīng),航拍3D視圖中的各點位是否與實際情況一致等。
4)按指定的量模糊圖像。
2.1.2 網(wǎng)絡(luò)的訓(xùn)練
實驗環(huán)境的主要硬件配置為:處理器Intel(R) XEON W-2133;內(nèi)存2×16 GB DDR4 RDIMM;顯卡Nvidia TITAN XP 12 GB;操作系統(tǒng)為Ubuntu 16.04。訓(xùn)練完成后,對整個網(wǎng)絡(luò)模型的檢測性能進行測試。表1是檢測網(wǎng)絡(luò)的主要參數(shù)值。在訓(xùn)練過程中,如果學(xué)習(xí)率太小,會降低模型的訓(xùn)練速度,導(dǎo)致網(wǎng)絡(luò)收斂變慢;學(xué)習(xí)率太大,會使得模型在最優(yōu)值兩側(cè)來回擺動,阻礙網(wǎng)絡(luò)收斂。因此,文中設(shè)置的學(xué)習(xí)率會根據(jù)不同迭代次數(shù)而改變,不僅保證了良好的訓(xùn)練效率,還兼顧了后期訓(xùn)練的穩(wěn)定性。

表1 檢測網(wǎng)絡(luò)的主要參數(shù)值
實驗結(jié)果如圖7所示。每張圖片中的艦船目標被框選出來,在標記框上顯示了目標的類別名和置信度。

圖7 實驗結(jié)果圖
從圖7可以看出,各種復(fù)雜海面背景下的艦船目標都可以被有效地檢測出來,包括不同顏色、不同尺度和不同方向的艦船。尤其在圖7(a)、圖7(d)中,受海岸和云霧干擾較大,但艦船目標仍然可以被精確地檢測。
為了驗證文中方法的有效性,對4種檢測方法進行了對比,分別是Faster RCNN-vgg16(FR-vgg16)、Faster RCNN-res101(FR-res101)、原始YOLOv3網(wǎng)絡(luò)以及文中方法。對4種檢測方法的訓(xùn)練模型在1 689張數(shù)據(jù)集上進行了測試,具體實驗結(jié)果如表2、表3所示。

表3 4種檢測方法的實驗結(jié)果對比
從表2所示的結(jié)果中,可以得出:

表2 4種檢測方法的平均檢測精度(mAP)對比 %
相同網(wǎng)絡(luò)結(jié)構(gòu)在不同艦船類別中的檢測結(jié)果比較。在FR-vgg16方法中,對于航母的檢測效果最好,客船的檢測效果最差。其他3種方法的檢測效果也是如此。
不同網(wǎng)絡(luò)結(jié)構(gòu)在相同類別中的檢測結(jié)果比較。在文中方法中,除了航母,其他類別對應(yīng)的mAP值都是最高的。
對于前面的3種方法,文中方法對客船的檢測精度分別提升了28.0%、24.8%、2.0%;貨船的檢測精度分別提升了6.6%、6.2%、0.9%;mAP值分別提升了7.86%、6.78%、1.38%。
從表3可以看出,文中方法的漏檢率最低,相比于前面3種方法分別降低了10.7%、9.5%、2.8%。在單張圖片測試時間方面,F(xiàn)R-res101的測試時間最長,為0.291 s;YOLOv3的測試時間最短,為0.104 s。測試時間比YOLOv3慢了0.011 s,但比FR-res101快了大約2.7倍。
綜上所述,文中方法在檢測精度和速度兩方面,均比其他3種方法有所提升,尤其針對客船和貨船的檢測,檢測精度有了大幅度的提升。
針對遙感圖像中海面目標較難識別、易漏檢等問題,以原有YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ),通過改進殘差網(wǎng)絡(luò)結(jié)構(gòu)和坐標預(yù)測的損失函數(shù),獲得一種新的網(wǎng)絡(luò)結(jié)構(gòu),使檢測性能大大提高。由實驗結(jié)果得出了如下結(jié)論:1)通過數(shù)據(jù)擴增的方法,豐富了數(shù)據(jù)集中艦船的朝向,使得學(xué)習(xí)到的模型具有廣泛性。2)原有YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)與anchor box值僅適用于常規(guī)目標,而優(yōu)化后的網(wǎng)絡(luò)結(jié)構(gòu)與新的anchor box值更適用于遙感圖像海面目標的檢測。3)使用“FPN”思想進行特征融合,使網(wǎng)絡(luò)層數(shù)加深,檢測精度平均提高了5.34%。4)選用GIoU作為坐標預(yù)測的損失函數(shù),整體上進一步優(yōu)化了模型的檢測結(jié)果。