(長(zhǎng)沙理工大學(xué)電氣與信息工程學(xué)院, 湖南長(zhǎng)沙 410114)
合成孔徑雷達(dá)(Synthetic Aperture Radar, SAR)有分辨率高、能全天時(shí)、全天候?qū)崟r(shí)工作的特點(diǎn),廣泛應(yīng)用于軍事偵察和遙感領(lǐng)域。隨著SAR技術(shù)不斷成熟、成像分辨率不斷提高,使得通過(guò)SAR圖像的目標(biāo)檢測(cè)技術(shù)[1-2]受到越來(lái)越廣泛的關(guān)注。傳統(tǒng)的SAR圖像目標(biāo)檢測(cè)方法一般由濾波、分割、特征提取等多個(gè)相互獨(dú)立的部分組成,復(fù)雜的流程限制了檢測(cè)的速度,同時(shí)多個(gè)獨(dú)立步驟很難整體優(yōu)化,提升檢測(cè)精度。
近年來(lái),基于深度卷積神經(jīng)網(wǎng)絡(luò)[3]的目標(biāo)檢測(cè)算法相比于傳統(tǒng)的方法顯現(xiàn)出了巨大的優(yōu)越性,主流的算法主要分為兩大類(lèi),一類(lèi)為基于候選區(qū)域的two-stage檢測(cè)方法,該種方法首先通過(guò)卷積神經(jīng)網(wǎng)絡(luò)產(chǎn)生候選區(qū)域(region proposals),然后對(duì)候選區(qū)域分類(lèi)和定位,如Faster-RCNN[4]、RFCN[5]等;另一類(lèi)為基于回歸的one-stage方法,在實(shí)現(xiàn)目標(biāo)分類(lèi)的同時(shí)直接對(duì)目標(biāo)畫(huà)框定位。因此前者精確度較高,后者速度較快。2017年以來(lái),one-stage方法得到迅速發(fā)展,殘差網(wǎng)絡(luò)等方法的提出,使其速度不僅有提升,精確度上也比主流的two-stage方法高,如YOLOv3[6]、RetinaNet[7]、SSD[8]等。但上述算法的檢測(cè)結(jié)果都是基于傳統(tǒng)光學(xué)圖像的檢測(cè)。然而高分辨率SAR圖像中不同目標(biāo)的尺寸區(qū)別很大以及目標(biāo)特征不明顯的問(wèn)題,導(dǎo)致了深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法在SAR圖像目標(biāo)檢測(cè)上進(jìn)展緩慢。
本文針對(duì)如上問(wèn)題,基于YOLOv3的研究成果,提出了SAR-YOLO-960檢測(cè)算法。本方法通過(guò)分析城鎮(zhèn)和電塔在目標(biāo)中的尺寸,提出了輸入為960×960像素的大圖檢測(cè)模型;手工制作了數(shù)據(jù)集;采用K-Means[9]方法聚類(lèi)選取初始候選框;并將YOLOv3的殘差網(wǎng)絡(luò)[10]、批規(guī)范化(BN)[11]、多尺度訓(xùn)練與多尺度檢測(cè)等融入新形成的網(wǎng)絡(luò)結(jié)構(gòu),整體采用了64倍降采樣,使得其速度不落后于主流的算法,最后基于SAR圖像特征改進(jìn)了損失函數(shù),進(jìn)一步提升檢測(cè)精度。
利用PS軟件,手工從原始的10張SAR圖像(像素大約為20 000×20 000,分辨率大小約為1 m)中,截取了包含目標(biāo)的2 308張960×960像素的圖像。并利用labellmg工具進(jìn)行voc數(shù)據(jù)集格式標(biāo)注,其中含城鎮(zhèn)目標(biāo)6 374個(gè)、電塔目標(biāo)3 745個(gè)。
在圖像的深度學(xué)習(xí)中,訓(xùn)練樣本過(guò)少,網(wǎng)絡(luò)模型容易過(guò)擬合。訓(xùn)練樣本的增強(qiáng)可提高樣本的多樣性,提升網(wǎng)絡(luò)的泛化能力。在制作數(shù)據(jù)集時(shí)考慮到原始圖像中電塔朝向性單一、顏色過(guò)淺,城鎮(zhèn)目標(biāo)大部分集中在樣本正中央。故本文對(duì)原始數(shù)據(jù)集進(jìn)行了±90o旋轉(zhuǎn)、飽和度、曝光度變化以及向上平移150像素操作。若平移后樣本中目標(biāo)消失,則放棄標(biāo)注。
經(jīng)增強(qiáng)后,生成27 696張圖像,44 096個(gè)電塔,73 418個(gè)城鎮(zhèn)從中隨機(jī)挑選19 387張作為訓(xùn)練集,8 309張作為測(cè)試集。數(shù)據(jù)集處理結(jié)果如表1所示。
表1 數(shù)據(jù)集以及數(shù)據(jù)量
聚類(lèi)分析是在數(shù)據(jù)中發(fā)現(xiàn)數(shù)據(jù)對(duì)象之間的關(guān)系,將數(shù)據(jù)進(jìn)行分組,組內(nèi)的相似性越大,組間的差別越大,則聚類(lèi)效果越好。在訓(xùn)練深度學(xué)習(xí)目標(biāo)檢測(cè)網(wǎng)絡(luò)時(shí),需要設(shè)置網(wǎng)絡(luò)的初始候選框大小以及數(shù)量,隨著網(wǎng)絡(luò)的正向傳播,在最后,網(wǎng)絡(luò)通過(guò)標(biāo)簽對(duì)比候選框與真實(shí)框的差距,計(jì)算損失,再通過(guò)反向傳播更新候選框參數(shù),然后網(wǎng)絡(luò)不斷的迭代,最終使得候選框接近真實(shí)框。
為了加快網(wǎng)絡(luò)的收斂速度,提升檢測(cè)精度,本文采用K-Means算法對(duì)訓(xùn)練圖像中目標(biāo)標(biāo)注框的長(zhǎng)與寬進(jìn)行聚類(lèi),得到與圖像中目標(biāo)最接近的初始候選框參數(shù),用來(lái)代替?zhèn)鹘y(tǒng)的初始候選框。候選框(ab,anchor boxes)與真實(shí)框(gt,ground truth)所在位置的面積交并比(IOU)是反應(yīng)差異的重要指標(biāo),如式(1)所示,IOU越接近1,表明差異越小。
(1)
綜上所述,因此K-Means聚類(lèi)函數(shù)式(2)為
(2)
式中,k為聚類(lèi)的候選框個(gè)數(shù),n為訓(xùn)練樣本中真實(shí)框個(gè)數(shù),ab[k]為對(duì)應(yīng)的候選框規(guī)格,gt[n]為對(duì)應(yīng)的真實(shí)框規(guī)格。通過(guò)不斷迭代,更新候選框參數(shù),當(dāng)Smin收斂到最小值時(shí),記錄此時(shí)的ab[k]規(guī)格,用以代替初始候選框規(guī)格。其候選框聚類(lèi)結(jié)果如表2所示。
表2 K-Means聚類(lèi)結(jié)果
YOLOv3目標(biāo)檢測(cè)方法是目前最先進(jìn)的檢測(cè)方法之一,在檢測(cè)速度和精確度上都比以往的主流算法SSD,F(xiàn)aster-RCNN等有大幅提升。其分類(lèi)網(wǎng)絡(luò)為Darknet-53,由53個(gè)卷積層和21個(gè)殘差層組成?;窘Y(jié)構(gòu)為殘差模塊(resnet),用以解決網(wǎng)絡(luò)的梯度彌散或者梯度爆炸的現(xiàn)象。其中還采用了BN、多尺度訓(xùn)練等方法提升精度和網(wǎng)絡(luò)的泛化能力。
如圖1所示,YOLOv3檢測(cè)方法采用多尺度檢測(cè)目標(biāo)(類(lèi)FPN[12])。網(wǎng)絡(luò)首先輸入大小為416×416的像素圖;然后通過(guò)Darknet-53網(wǎng)絡(luò),整體進(jìn)行32倍的降采樣;接著通過(guò)多層卷積生成13×13大小的第一尺度特征圖作檢測(cè),該特征圖圖中每個(gè)像素對(duì)應(yīng)原始輸入32×32個(gè)像素的單元格,若某物體的中心落入該單元格中,則由該單元格中的候選框負(fù)責(zé)檢測(cè)目標(biāo),該尺寸主要負(fù)責(zé)檢測(cè)大目標(biāo);緊接著把13×13的深層特征圖進(jìn)行上采樣,再與26×26的淺層特征圖進(jìn)行拼接,生成26×26的特征圖,使得網(wǎng)絡(luò)能夠更好地獲得細(xì)粒度特征以提升檢測(cè)精度,最后進(jìn)行多次卷積生成26×26的第二尺度特征圖,圖中每個(gè)像素對(duì)應(yīng)原始尺寸16×16個(gè)像素的單元格,負(fù)責(zé)中型目標(biāo)檢測(cè);以上述方法進(jìn)一步類(lèi)推,最后生成第三尺度為52×52的特征圖負(fù)責(zé)小型目標(biāo)檢測(cè)。
圖1 YOLOv3檢測(cè)流程圖
其檢測(cè)目標(biāo)原理為:
1) 首先候選框在3種尺度的特征圖上分別判別目標(biāo)存在的置信度conf (object),以及預(yù)測(cè)單元格中目標(biāo)的類(lèi)別概率。其中conf(object)公式(3)如下:
Pr(object)∈{0,1}
(3)
W×H×[B×(X,Y,w,h,conf(object),P)]
W,H表示特征圖的長(zhǎng)寬,B表示每個(gè)單元格中候選框的個(gè)數(shù),X,Y為候選框的中心坐標(biāo),w,h為候選框的長(zhǎng)寬,P為候選框中目標(biāo)的類(lèi)別概率。
2) 然后網(wǎng)絡(luò)通過(guò)非極大值抑制(NMS)算法,選擇置信度最高的候選框檢測(cè)目標(biāo)。
3) 最后網(wǎng)絡(luò)通過(guò)與標(biāo)簽對(duì)比,計(jì)算整體損失,通過(guò)反向傳播BP算法[13],更新網(wǎng)絡(luò)的權(quán)重參數(shù)。
圖2為YOLOv3在第一尺度特征圖上作檢測(cè)。
圖2 YOLOv3在第一尺度特征圖上作檢測(cè)
初始標(biāo)注416×416像素?cái)?shù)據(jù)集訓(xùn)練YOLOv3網(wǎng)絡(luò)進(jìn)行檢測(cè)時(shí)發(fā)現(xiàn)效果不理想,達(dá)不到預(yù)期檢測(cè)精度,其中部分城鎮(zhèn)和電塔有漏檢、誤檢現(xiàn)象出現(xiàn)。如圖3所示,圖3(a)、圖3(b)、圖3(c)為測(cè)試原圖,圖3(d)、圖3(f)、圖3(g)為分別對(duì)應(yīng)的YOLOv3檢測(cè)圖,其中黃色方框標(biāo)記為電塔,綠色方框標(biāo)記為城鎮(zhèn)。檢測(cè)圖3(d)、圖3(f)、圖3(g)中手工標(biāo)注的紅色圓圈為漏檢部分,可看出圖3(d)中出現(xiàn)了城鎮(zhèn)漏檢,圖3(e)中出現(xiàn)了電塔漏檢;藍(lán)色圓圈標(biāo)記為誤檢測(cè)部分,可看出圖3(d)中將電塔誤檢測(cè)為城鎮(zhèn),圖3(f)中兩個(gè)靠近遮擋的電塔誤檢測(cè)為一個(gè)電塔。則說(shuō)明其檢測(cè)精度還有很大提升空間。
圖3 YOLOv3漏檢、誤檢現(xiàn)象
通過(guò)觀察訓(xùn)練樣本發(fā)現(xiàn),城鎮(zhèn)目標(biāo)尺寸過(guò)大,大部分充滿(mǎn)整個(gè)訓(xùn)練樣本。因?yàn)樵糞AR圖像中城鎮(zhèn)分辨率大,416×416像素圖只能獲取局部信息,學(xué)習(xí)到的特征有限,最終訓(xùn)練出的候選框也接近于圖像大小,沒(méi)有訓(xùn)練意義;同時(shí)電塔的重疊、尺寸較小與特征的不明顯也導(dǎo)致了漏檢、誤檢現(xiàn)象的出現(xiàn)。
上述問(wèn)題的常規(guī)解決方法為先截取高分辨率圖再下采樣成416×416小像素圖作為輸入訓(xùn)練。但電塔目標(biāo)本身就較小,特征不明顯,下采樣后很容易失真,網(wǎng)絡(luò)學(xué)習(xí)不到目標(biāo)特征。因此針對(duì)綜上所述問(wèn)題,本文提出了一種SAR-YOLO-960檢測(cè)網(wǎng)絡(luò),如圖4所示。該網(wǎng)絡(luò)能充分學(xué)習(xí)到城鎮(zhèn)與電塔的特征,使得檢測(cè)精度上有大幅提升,改善了漏檢、誤檢現(xiàn)象。
圖4 SAR-YOLO-960 檢測(cè)網(wǎng)絡(luò)
該算法對(duì)比原始YOLOv3算法改動(dòng)為:
1) 選取960×960像素尺寸作為輸入,能完整地包含城鎮(zhèn)與電塔目標(biāo)。
2) 修改了網(wǎng)絡(luò)層結(jié)構(gòu):首先搭建了一個(gè)Dark- net-SAR網(wǎng)絡(luò),改變了Darknet-53網(wǎng)絡(luò)中的卷積和殘差層構(gòu)造,為避免高分辨率圖像帶來(lái)的計(jì)算量,整體采用64倍降采樣最后得到特征圖的大小為15×15,使得中心像素對(duì)應(yīng)輸入圖像的中心單元格,能更好地檢測(cè)大目標(biāo),因?yàn)榇竽繕?biāo)一般集中在圖片中央。然后采用YOLOv3的方式融合低層次特征圖,形成3種不同尺度的特征圖進(jìn)行檢測(cè)。
3) 結(jié)合Focal Loss思想改進(jìn)了損失函數(shù),提升檢測(cè)精度。
傳統(tǒng)的YOLOv3損失函數(shù),采用誤差平方和(sum-squared error),由3部分求和組成:候選框與真實(shí)框的坐標(biāo)誤差、置信度誤差以及分類(lèi)誤差。其公式(4)如下:
但在實(shí)際檢測(cè)中,樣本類(lèi)別數(shù)量的不均衡,以及樣本中目標(biāo)的識(shí)別難易會(huì)影響模型的訓(xùn)練。如本文中城鎮(zhèn)數(shù)量多于電塔;電塔特征不明顯較難識(shí)別。訓(xùn)練中希望模型更關(guān)注于難以識(shí)別的目標(biāo)和樣本中類(lèi)別數(shù)量較少的目標(biāo)。而傳統(tǒng)的平方差分類(lèi)損失并不能很好地解決此問(wèn)題。因此本文借鑒了Focal Loss損失函數(shù)的思想,對(duì)YOLOv3損失函數(shù)的分類(lèi)誤差部分作出了改進(jìn),其公式(5)如下:
(5)
式中,At為樣本均衡權(quán)重。因本文為2分類(lèi)檢測(cè),則定義At=[a,1-a], 當(dāng)標(biāo)簽(label)為城鎮(zhèn)時(shí)定義At=a,當(dāng)label為電塔時(shí)定義At=1-a,通過(guò)調(diào)節(jié)a的大小平衡樣本的不均衡問(wèn)題。其次易分類(lèi)樣本的(1-pi(c))接近于0,難分類(lèi)樣本的(1-pi(c))接近1,則可以使得模型更注重于難以分類(lèi)的樣本訓(xùn)練。
本文實(shí)驗(yàn)環(huán)境如下:CPU Intel Core i7-6800k;GPU(單)NVIDIA TITAN Xp;操作系統(tǒng):64位 Ubuntu 16.04 LTS;內(nèi)存:16G DDR4;圖形加速:CUDA 8.0.44,cudnn 5.0。在該實(shí)驗(yàn)環(huán)境下,SAR-YOLO-960在測(cè)試集上的檢測(cè)速度達(dá)32.8 fps。
設(shè)置初始學(xué)習(xí)率為0.001,學(xué)習(xí)率策略為steps,總共迭代80 000次,在40 000次與60 000次時(shí)學(xué)習(xí)率分別乘以0.1;動(dòng)量系數(shù)0.9;一批訓(xùn)練16張圖片;采用多尺度訓(xùn)練,圖片大小從640×640~1 216×1 216,每隔16張圖片尺寸變化64×64大小。若檢測(cè)出的標(biāo)記框與真實(shí)標(biāo)記框的IOU大于0.75,則認(rèn)為檢測(cè)出了該物體。
本文使用公式(6)準(zhǔn)確率(Precision,P),公式(7)召回率(Recall,R),公式(8)F1值(平衡準(zhǔn)確率和召回率的函數(shù)),以及檢測(cè)速度f(wàn)ps來(lái)評(píng)價(jià)高分辨率SAR圖像檢測(cè)的性能。準(zhǔn)確率、召回率越高,fps越大,表明性能越好。
(6)
(7)
(8)
式中,TP為預(yù)測(cè)為正、實(shí)際為正的目標(biāo)個(gè)數(shù),F(xiàn)P為預(yù)測(cè)為正、實(shí)際為負(fù)的目標(biāo)個(gè)數(shù),F(xiàn)N為預(yù)測(cè)為負(fù)、實(shí)際為正的目標(biāo)個(gè)數(shù)。
SAR-YOLO-960網(wǎng)絡(luò)訓(xùn)練損失與迭代次數(shù)關(guān)系如圖5所示。從圖5(a)可以看出該網(wǎng)絡(luò)收斂迅速,在100~200次迭代時(shí)迅速下降;從圖5(b)可以看出最終損失趨于0。經(jīng)測(cè)試集驗(yàn)證效果,最終選取第70 000次迭代結(jié)果作為最終權(quán)重模型。
圖5 網(wǎng)絡(luò)迭代損失變化圖
為了綜合評(píng)估本文算法的有效性,本文選取了當(dāng)前主流的深度學(xué)習(xí)目標(biāo)檢測(cè)算法進(jìn)行試驗(yàn)作對(duì)比,包括Faster-RCNN,SSD,RetinaNet,YOLOv3,也與損失函數(shù)未改進(jìn)前的SAR-YOLO-960作對(duì)比,結(jié)果如表3所示。
表3 SAR圖像目標(biāo)檢測(cè)算法性能對(duì)比
其中SAR-YOLO-9601為損失函數(shù)改進(jìn)后的網(wǎng)絡(luò),SAR-YOLO-9602為損失函數(shù)改進(jìn)前的網(wǎng)絡(luò)。從表3可以看出,本文算法在損失函數(shù)改進(jìn)后與改進(jìn)前,其在準(zhǔn)確率和召回率上分別有2.3%和1.4%的提升;同時(shí)SAR-YOLO-9601對(duì)比主流中最好的YOLOv3 算法在準(zhǔn)確率和召回率上分別有7.1%和4.2%的提升;其速度上也比Faster-RCNN、SSD、RetinaNet快很多,但比YOLOv3慢1.5倍左右。原因?yàn)楸舅惴ㄝ斎氪笮?60×960像素比YOLOv3的輸入416×416像素大5倍左右,中間也新增了卷積層和殘差層,但速度上32.8幀/秒也可達(dá)到實(shí)時(shí)檢測(cè),不影響檢測(cè)性能。綜合分析下,其性能對(duì)比于目前的主流算法有了很大的提升。
為了更好地證明本文算法性能的優(yōu)越性,可以改善漏檢和誤檢的現(xiàn)象。本文利用該算法對(duì) 2.2節(jié)圖3中的原圖重新作檢測(cè),并將結(jié)果與其2.2節(jié)圖3中YOLOv3的檢測(cè)圖作對(duì)比,結(jié)果如圖6所示。圖6(a)、圖6(b)、圖6(c)為YOLOv3的檢測(cè)圖,其中綠色方框標(biāo)記為城鎮(zhèn),黃色方框標(biāo)記為電塔,藍(lán)色圓圈標(biāo)記為誤檢現(xiàn)象,紅色圓圈標(biāo)記為漏檢現(xiàn)象;圖6(d)、圖6(f)、圖6(g)為本文算法分別對(duì)應(yīng)的檢測(cè)圖,其中綠色方框標(biāo)記為電塔,粉紅色方框標(biāo)記為城鎮(zhèn)。從圖中可以看出,圖6(a)、圖6(b)、圖6(c)中出現(xiàn)大面積城鎮(zhèn)的漏檢;圖6(a)中將電塔檢測(cè)成城鎮(zhèn)的誤檢;圖6(c)中重疊電塔的誤檢都在本文算法的檢測(cè)圖中都得到了改善,并準(zhǔn)確檢測(cè)。因此可以看出該算法有效地改善了城鎮(zhèn)和電塔的漏檢、誤檢現(xiàn)象。
圖6 YOLOv3與SAR-YOLO-960檢測(cè)對(duì)比圖
本文針對(duì)SAR圖像的特點(diǎn),結(jié)合原有的YOLOv3算法和Focal Loss損失函數(shù),提出了一種基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的SAR-YOLO-960算法用于高分辨率SAR圖像檢測(cè)。本文實(shí)驗(yàn)表明該算法在高分辨率SAR圖像目標(biāo)檢測(cè)上比目前的主流算法SSD,RetinaNet等速度快、準(zhǔn)確度高。在方法設(shè)計(jì)時(shí),為了增強(qiáng)其檢測(cè)性能,對(duì)原始數(shù)據(jù)集進(jìn)行了增強(qiáng);采用K-Means對(duì)網(wǎng)絡(luò)候選框進(jìn)行聚類(lèi);修改了YOLOv3網(wǎng)絡(luò)結(jié)構(gòu);改進(jìn)了損失函數(shù)。然而,本文僅僅是基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)在SAR圖像2分類(lèi)檢測(cè)方法上的初步探索,如何進(jìn)一步提升準(zhǔn)確率、泛化能力,讓SAR圖像在多分類(lèi)檢測(cè)上以及在超高像素的圖像上也有良好的表現(xiàn)等仍是下一步探索的方向。