黃勃學(xué), 韓 玲, 王 昆, 楊朝輝, 黃五超
(長安大學(xué)地質(zhì)工程與測繪學(xué)院, 西安 710054)
隨著遙感技術(shù)的發(fā)展,基于遙感影像進(jìn)行艦船檢測成為了沿海國家的重要任務(wù),并且在艦船尋找與救助、漁船監(jiān)視、非法移民、保衛(wèi)領(lǐng)土、反毒品以及艦船非法傾倒油污的監(jiān)視管理等方面發(fā)揮著重要作用[1-2]。合成孔徑雷達(dá)(synthetic aperture radar,SAR)是一種主動探測的成像傳感器,成像不受云霧、光照的影響,可以對目標(biāo)實(shí)現(xiàn)多波段、多極化、多視角的觀測[3]。在艦船檢測任務(wù)中,SAR不受海洋天氣多變的限制,能夠?qū)ε灤繕?biāo)進(jìn)行全方位實(shí)時監(jiān)測。
SAR影像艦船檢測雖然起步較早,但大部分研究是基于傳統(tǒng)的目標(biāo)檢測思想,仍然是半自動化的檢測算法。近年來,中外對SAR影像艦船檢測開展了大量的研究。文獻(xiàn)[4-6]提出了雙參數(shù)恒虛警率(constant false alarm rate,CFAR)算法;加拿大商用軟件OMW(ocean monitoring workstation)[7]使用基于K分布的CFAR算法進(jìn)行艦船檢測;Kapur等[8]將信息論中的熵引入圖像分割,提出了最佳熵雙閾值檢測算法;Tello等[9]、Wardlow[10]使用小波變換來檢測艦船目標(biāo);張風(fēng)麗等[11]提出了基于小波變換和相關(guān)運(yùn)算結(jié)合的艦船目標(biāo)檢測算法;Liu等[12]利用多極化特性進(jìn)行艦船目標(biāo)檢測。
近年來,隨著深度學(xué)習(xí)在各學(xué)科的泛化發(fā)展,目標(biāo)檢測算法也有了實(shí)質(zhì)性進(jìn)展,推動了SAR影像艦船檢測任務(wù)從半自動化進(jìn)入到全自動化時代,目前比較流行的檢測算法可以分為兩大類。一類是基于區(qū)域建議(region proposal)的分步式目標(biāo)檢測方法,代表性的有:區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region-based convolutional neural networks, R-CNN)[13]、SPP(spatial pyramid pooling)[14]、Fast R-CNN[15]、Faster R-CNN[16],這些是two-stage算法,需要先使用選擇性搜索(selective search)或者區(qū)域建議網(wǎng)絡(luò)(region proposal networks,RPN)產(chǎn)生建議區(qū)域,然后再在建議區(qū)域上進(jìn)行邊框回歸和二次分類,實(shí)現(xiàn)目標(biāo)檢測;另一類是基于回歸思想的一步式目標(biāo)檢測方法,代表性的有:YOLO(you only look once)[17]、SSD(single shot multibox detector)[18]等,這些是one-stage算法,將目標(biāo)檢測問題簡化為回歸問題,沒有顯式的區(qū)域提名過程,僅使用一個卷積神經(jīng)網(wǎng)絡(luò)直接預(yù)測不同目標(biāo)的類別和位置。為此,以one-stage的YOLOv3算法作為框架基礎(chǔ),對錨點(diǎn)框(anchor boxes)生成機(jī)制進(jìn)行改進(jìn),并與多種聚類算法進(jìn)行對比分析,以期提高YOLOv3艦船檢測的效果。
YOLOv3是在YOLOv2基礎(chǔ)上改進(jìn)而來的目標(biāo)檢測模型,是目前速度和精度最為均衡的檢測網(wǎng)絡(luò),它采用一個單獨(dú)的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)實(shí)現(xiàn)end-to-end的目標(biāo)檢測。
圖1 Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Darknet-53 network architecture
YOLOv3相比YOLOv2,進(jìn)行如下改進(jìn):①加入了多尺度預(yù)測,借鑒特征圖金字塔網(wǎng)絡(luò)(feature pyramid networks, FPN)思想,通過融合多層特征映射信息預(yù)測3種不同尺度的先驗框;②使用K-means聚類得到邊界框(bounding box)的先驗框,選擇9個簇以及3個尺度,然后將這9個簇均勻分布在這3個尺度上,即每種尺度預(yù)測3個anchor boxes,對于每種尺度,引入新的卷積層進(jìn)一步提取特征,最后在各尺度上輸出邊界框(bounding box)的信息;③分類器不再使用softmax,而是使用獨(dú)立的多個logistic分類器代替;④在訓(xùn)練過程中,使用二元交叉熵?fù)p失(binary cross-entropy loss)來進(jìn)行類別預(yù)測;⑤用Darknet-53代替Darknet-19進(jìn)行特征提取,如圖1所示,即借鑒殘差網(wǎng)絡(luò)[19]的思想,交替使用3×3與1×1的卷積神經(jīng)網(wǎng)絡(luò),簡化了ResNet神經(jīng)網(wǎng)絡(luò),加快訓(xùn)練速度。
艦船目標(biāo)檢測的整體流程如圖2所示。
圖2 艦船目標(biāo)檢測流程Fig.2 Ship target detection process
圖3 SAR船艦數(shù)據(jù)集可視化Fig.3 SAR ship data set visualization
anchor boxes是用來預(yù)測邊界框(bounding box)的,錨點(diǎn)框算法最初是在Faster R-CNN中提出的,原文用128×128、256×256、512×512尺度,以及1∶1、1∶2、2∶1縱橫比共計9個anchors來預(yù)測邊界框。每個anchor預(yù)測2 000個框左右,使得目標(biāo)檢出率大大提高。從YOLOv2開始增加了錨點(diǎn)框機(jī)制,到Y(jié)OLOv3已由5個增加到了9個anchors。由于作者是在PASCAL VOC數(shù)據(jù)集得到的這組anchor,對于自然數(shù)據(jù)集比較敏感,但是對于遙感影像數(shù)據(jù)集,尤其是SAR數(shù)據(jù)集來說,宜使用新的錨點(diǎn)框組合進(jìn)行數(shù)據(jù)集的訓(xùn)練。在數(shù)據(jù)集11 853張船艦SAR影像中,共有16 174只船艦?zāi)繕?biāo),以標(biāo)注框的標(biāo)準(zhǔn)化寬高作為坐標(biāo)維度,可視化數(shù)據(jù)集分布,如圖3所示,可以發(fā)現(xiàn)95%以上的目標(biāo)的尺寸集中在0.5×0.5,并且數(shù)據(jù)聚集特別緊密,存在少部分離群樣本。還對訓(xùn)練集標(biāo)注框的標(biāo)準(zhǔn)化寬高進(jìn)行統(tǒng)計分析,如圖4、圖5所示,發(fā)現(xiàn)有83.45%和 83.10%的目標(biāo)標(biāo)準(zhǔn)化寬高分布于0.02~0.18,也就是說絕大部分目標(biāo)不足圖像1/10,因此SAR船艦數(shù)據(jù)集的小目標(biāo)居多。
圖4 SAR船艦數(shù)據(jù)集標(biāo)注框?qū)挾冉y(tǒng)計結(jié)果Fig.4 Statistical results of the box width of SAR ship data set
圖5 SAR船艦數(shù)據(jù)集標(biāo)注框高度統(tǒng)計結(jié)果Fig.5 Statistical results of the box height of SAR ship data set
對于距離的選擇,如果按照傳統(tǒng)K-means算法使用歐氏距離,則大的boxes會比小的boxes產(chǎn)生更多的損失誤差。YOLO作者在設(shè)計錨點(diǎn)框思想時希望可以通過anchor boxes獲得更好的IOU scores,并且IOU scores與bounding box的尺寸無關(guān),為此設(shè)計了新的距離公式為
d(box,centroid)=1-IOU(box,centroid)
(1)
式(1)中:box為各anchor box;centroid為當(dāng)前簇群的定位框;IOU(box,centroid)為anchor和當(dāng)前定位框的交并比。
2.2.1K-median++
由于K-means算法需要不斷的更換聚類中心,通過平均值來重新計算每個簇群的中心。對于數(shù)據(jù)聚集緊密且有明顯離散點(diǎn)的數(shù)據(jù),使用平均值確定聚類中心會使處于離散點(diǎn)簇的中心不穩(wěn)定,容易受到噪聲點(diǎn)的影響;同時K-means算法初始聚類中心需要人為確定,不同的初始聚類中心可能導(dǎo)致完全不同的聚類結(jié)果。針對這兩點(diǎn)不足,對于YOLOv3的錨點(diǎn)框聚類算法進(jìn)行改進(jìn),以使其更加符合艦船SAR影像數(shù)據(jù)集的特點(diǎn),得到更能反映艦船樣本尺寸的anchors參數(shù)。
對于數(shù)據(jù)離散點(diǎn)較多,致使尺寸較大的bounding box的簇群的中心不能被真實(shí)反映,用中位數(shù)代替均值計算新的聚類中心。這樣針對數(shù)據(jù)集中某些離群點(diǎn),中位值的變化也不是很大,甚至無變化,因此魯棒性會比K-means好很多;對于初始聚類中心的選擇,應(yīng)使初始聚類中心之間的相互距離要盡可能的遠(yuǎn)。因此將本文的聚類方法命名為K-median++。
2.2.2K-median++算法實(shí)現(xiàn)
K-median++算法實(shí)現(xiàn)偽代碼如下。
(1)從數(shù)據(jù)集點(diǎn)群隨機(jī)選擇一個點(diǎn)作為第一個聚類中心。
(2)對于數(shù)據(jù)集中的每一個點(diǎn)X,計算其與最近的聚類中心(指已選擇的聚類中心)的距離,記為D(X)。
(3)再從數(shù)據(jù)集中隨機(jī)挑選一個隨機(jī)點(diǎn)作為“種子點(diǎn)”。
(4)對于每個點(diǎn)X,計算其和最近的一個“種子點(diǎn)”的距離并保存在一個數(shù)組中,然后把這些距離加起來得到Sum[D(X)]。
(5)取一個能落在Sum[D(X)]中的隨機(jī)值Random,執(zhí)行Random=D(X),直到Random≤0,此時的點(diǎn)就是下一個 “種子點(diǎn)。
Random的取法:為使Random落在Sum[D(X)]中,設(shè)計Random=Sum[D(X)]α,其中0<α<1,Random是隨機(jī)的,那么它有更大的概率落在D(X)較大的區(qū)域內(nèi),如圖6所示,Random更有可能落在D(Xi)中,Xi為數(shù)據(jù)集的第i個點(diǎn);此時利用Random=D(X),直到Random≤0,便可知道Random落在了哪個區(qū)間段,因此Xi就是下一個選擇的隨機(jī)聚類中心。
(6)重復(fù)步驟(2)~(5),直到K個初始聚類中心被選擇出。
(7)利用K個初始聚類中心,執(zhí)行K-median聚類算法。
在對數(shù)據(jù)集進(jìn)行預(yù)處理之后,利用K-means、K-means++、K-median及K-median++4種算法進(jìn)行聚類,并以各自的meanIOU作為評價標(biāo)準(zhǔn),對比結(jié)果如表1所示。
對4種聚類算法的meanIOU變化曲線可視化,如圖7(a)所示,K-means在第7次迭代時meanIOU到達(dá)峰值74.52%,之后隨著迭代的收斂,meanIOU呈緩慢下降趨勢,最終經(jīng)過34次迭代,meanIOU達(dá)到73.40%;如圖7(b)所示,K-means++與K-means的曲線走勢大致相同,在第6次迭代meanIOU達(dá)到峰值75.60%之后會緩慢下降,最終經(jīng)過26次迭代,meanIOU達(dá)到75.41%,相比K-means提升了個2.01百分點(diǎn);如圖7(c)所示,K-median并未出現(xiàn)meanIOU隨迭代而明顯下降的問題,同時,僅通過17次迭代,meanIOU便穩(wěn)定在了74.99%,相比K-means
圖6 隨機(jī)聚類中心選擇Fig.6 Random cluster center selection
表1 4種聚類算法的對比結(jié)果
圖7 平均交并比變化曲線Fig.7 The curve of the mean intersection over union
提升了1.59個百分點(diǎn);如圖7(d)所示,K-median++的整個曲線走勢是很平穩(wěn)地上升,并且起始聚類的meanIOU高達(dá)73.04%,這一點(diǎn)和K-means++很相近,這也是自動生成初始聚類中心算法的突出優(yōu)勢,初始聚類中心的選取很可靠,因此后續(xù)達(dá)到收斂要求迭代次數(shù)少,在經(jīng)過9次迭代之后,meanIOU穩(wěn)定在了77.10%,相比K-means提升了個3.7百分點(diǎn)。因此經(jīng)過對比發(fā)現(xiàn),K-median++作為YOLOv3的錨點(diǎn)框聚類算法是可行的,相比其他三種聚類算法,meanIOU最高,迭代次數(shù)最少,可以使anchor boxes的精度得到較大的提高,計算量得到大幅度降低。
本文算法在開源目標(biāo)檢測框架Darknet上實(shí)現(xiàn),具體相關(guān)配置環(huán)境如表2所示。
表2 實(shí)驗配置環(huán)境
由于遙感影像數(shù)據(jù)集較為缺乏,目前大部分目標(biāo)檢測數(shù)據(jù)集都是真實(shí)場景數(shù)據(jù),如PASCAL VOC2007/2012、COCO等數(shù)據(jù)集;近年來,由部分機(jī)構(gòu)、高校帶頭做了不少的遙感數(shù)據(jù)集,如DOTA、NWPUVHR-10、RSOD等。數(shù)據(jù)集是SAR船艦圖片,采用中科院遙感所王超團(tuán)隊構(gòu)建的“多模式SAR圖像船舶檢測數(shù)據(jù)集——CAESAR-RADI”,選取其中11 853張圖片。然后將數(shù)據(jù)集分為訓(xùn)練集、驗證集、測試集,分別用于模型訓(xùn)練、參數(shù)調(diào)優(yōu)和結(jié)果評價。
①將制作好的訓(xùn)練集的xml標(biāo)注文件轉(zhuǎn)換為對應(yīng)的txt標(biāo)注文件;②生成訓(xùn)練集、驗證集、測試集圖像路徑列表;③調(diào)整優(yōu)化部分網(wǎng)絡(luò)參數(shù),網(wǎng)絡(luò)配置參數(shù)如下(動量:0.9;權(quán)重衰減:0.000 5;飽和度:1.5;曝光度:1.5;色調(diào):0.1;最大迭代次數(shù):2 000;學(xué)習(xí)率:0.01、0.001、0.000 1);④利用K-means腳本和K-median++腳本得到訓(xùn)練集的9種anchors組合;⑤修改類名文件.names和.data文件;⑥加載預(yù)訓(xùn)練模型darknet53.conv.74,加快網(wǎng)絡(luò)收斂;⑦將K-means算法和K-median++算法得到的兩種anchors組合分別嵌入網(wǎng)絡(luò)配置文件,生成各自的訓(xùn)練權(quán)重文件。
對訓(xùn)練集分別用K-means和K-median++生成的anchors參數(shù)進(jìn)行訓(xùn)練,得到各自的權(quán)重文件,再進(jìn)行結(jié)果評估,模型訓(xùn)練的損失函數(shù)曲線如圖8所示,初始迭代損失(loss)高達(dá)974,隨著迭代進(jìn)行,在第70次迭代時,損失值值已降到了個位數(shù),在前500次迭代中,YOLOv3(K-means)和YOLOv3(K-median++)的損失值差距不明顯,曲線基本相互重疊;當(dāng)?shù)M(jìn)行到600次時,兩條損失曲線之間的差距逐漸拉開,后者較前者學(xué)習(xí)能力更強(qiáng),收斂速度更快,訓(xùn)練效果更好。
圖8 損失函數(shù)曲線Fig.8 Loss function curve
3.4.1 船艦檢測結(jié)果
在訓(xùn)練好YOLOv3(K-means)和YOLOv3(K-median++)的權(quán)重文件之后,在測試集上進(jìn)行檢測,檢測結(jié)果如圖9所示。由圖9可以發(fā)現(xiàn),YOLOv3(K-median++)對于小目標(biāo)的檢測有了明顯提升,使得更多的艦船目標(biāo)被檢測出來。
圖9 SAR影像艦船檢測結(jié)果Fig.9 SAR image ship detection results
3.4.2 評價指標(biāo)
實(shí)驗結(jié)果評價采用國際PASCAL VOC目標(biāo)檢測挑戰(zhàn)賽的度量標(biāo)準(zhǔn),即精確度(Precision)、召回率(Recall)、平均精度(AP)和平均精度均值(mAP)。精確率和召回率定義為
(2)
(3)
式中:TP為預(yù)測對的正樣本;FP為預(yù)測錯的正樣本;TN為預(yù)測對的負(fù)樣本;FN為預(yù)測錯的負(fù)樣本。精確率是針對預(yù)測結(jié)果而言,預(yù)測為正的樣本中有多少是真正的正樣本,即預(yù)測的正樣本中有多少是預(yù)測對的;召回率是針對數(shù)據(jù)集中的正樣本而言,表示數(shù)據(jù)集中正樣本有多少被正確預(yù)測到,即有多少正樣本被正確檢出。最終艦船目標(biāo)檢測結(jié)果評估如表3所示。
表3 艦船目標(biāo)檢測結(jié)果評估
通過改進(jìn)YOLOv3的anchor boxes聚類方法,提出了新的聚類算法K-median++,通過對艦船SAR數(shù)據(jù)集的標(biāo)注框進(jìn)行聚類分析,獲得了更為合理的anchors參數(shù)。得出如下結(jié)論。
(1)相較于傳統(tǒng)的K-means聚類方法,K-median++聚類算法對緊密數(shù)據(jù)集有更好的魯棒性,相比K-means、K-means++、K-median 3種聚類方法,通過K-median++得到的聚類中心更為合理,大幅度降低計算量,同時獲取的anchor boxes可以保持較高的meanIOU;K-median++算法不僅適用于本文數(shù)據(jù)集,也適用與類似緊密型聚集數(shù)據(jù)的聚類。
(2)基于K-median++的YOLOv3檢測效果也更為出色,對于不同尺寸的船艦?zāi)繕?biāo)都能保證較高的檢測準(zhǔn)確率,同時召回率獲得了明顯提升,即有更多不明顯船艦?zāi)繕?biāo)會被檢測出。