陳 磊,張孫杰,王永雄
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
近年來,目標(biāo)檢測(cè)已成為計(jì)算機(jī)視覺的研究熱點(diǎn),其廣泛應(yīng)用于機(jī)器人導(dǎo)航[1,2]、智能視頻監(jiān)控[3-5]、工業(yè)檢測(cè)[6,7]、航空航天[8,9]等諸多領(lǐng)域,其不僅需要確定目標(biāo)在圖像中的類別,還需給出其精確位置.遙感圖像中的目標(biāo)呈現(xiàn)低分辨率,特征不明顯的特點(diǎn),導(dǎo)致識(shí)別率不高.因此,小目標(biāo)檢測(cè)仍是一項(xiàng)挑戰(zhàn)[10].
在過去的幾年中,研究者們發(fā)現(xiàn)設(shè)計(jì)深度卷積神經(jīng)網(wǎng)絡(luò)可以大大提高圖像分類和目標(biāo)檢測(cè)的性能[11],因?yàn)樗粌H可以從圖像中提取出目標(biāo)的強(qiáng)語義高級(jí)特征,而且將特征提取、特征選擇和特征分類融合到一個(gè)模型中,通過端到端的訓(xùn)練,從整體上進(jìn)行功能優(yōu)化,增強(qiáng)了特征的可分性.當(dāng)前用于目標(biāo)檢測(cè)的卷積神經(jīng)網(wǎng)絡(luò)主要分為以下兩類:
1)兩階段檢測(cè)算法,該類算法首先生成一系列的候選區(qū)域,然后再精確地分類,這類典型的算法代表有Fast R-CNN[12]、Faster R-CNN[13]、Mask R-CNN[14]等,然而以上方法不適用于實(shí)時(shí)的場(chǎng)景檢測(cè);
2)相反,單階段檢測(cè)器直接從原始圖像直接進(jìn)行目標(biāo)預(yù)測(cè),比較典型的算法有YOLO[15-17]三個(gè)版本、SSD[18]和Retina-Net[19]等.因此,單步檢測(cè)算法同時(shí)具有更高的檢測(cè)精度和更快的檢測(cè)速度.
圖像分類可以預(yù)測(cè)圖像中單個(gè)目標(biāo)的類別,目標(biāo)檢測(cè)有其自身的挑戰(zhàn),需要在單個(gè)圖像中預(yù)測(cè)多個(gè)目標(biāo)類別和相應(yīng)的位置.為了解決這個(gè)問題,以多尺度表示目標(biāo)特征層的金字塔特征方法被提出,特征金字塔(feature pyramid network)[20]是生成用于目標(biāo)檢測(cè)的金字塔特征表示的代表性模型架構(gòu)之一.它采用自頂向下、橫向連接組合主干網(wǎng)絡(luò)模型中兩個(gè)相鄰特征層的方式來構(gòu)建特征金字塔,生成高分辨率、強(qiáng)語義的特征.近期文獻(xiàn)[21]和文獻(xiàn)[22]提出了各種跨尺度連接或操作,以組合特征的方式生成金字塔特征.YOLOv3借鑒了以上特征金字塔模型的思想,如圖1所示.其是基于Darknet53的主干網(wǎng)絡(luò)模型,共有75個(gè)卷積層,5個(gè)殘差塊,進(jìn)行5次降采樣,其分別利用主干模型輸出的8倍、16倍、32倍降采樣特征圖作目標(biāo)的預(yù)測(cè).用深層提供的強(qiáng)語義信息預(yù)測(cè)大目標(biāo).通過自頂向下、橫向連接的方式與包含更多空間位置信息的淺層特征相融合,用于預(yù)測(cè)小目標(biāo).因此,該模型能夠很好地兼顧大、中、小三種不同尺寸的目標(biāo)檢測(cè).
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv3 network structure
受文獻(xiàn)[20-22]啟發(fā),本文提出了雙向金字塔特征融合的體系結(jié)構(gòu).以單階段目標(biāo)檢測(cè)算法YOLOv3為基礎(chǔ),提出在FPN模塊上添加額外的自底向上、橫向連接的路徑改善低分辨率特征的性能,對(duì)YOLOv3的網(wǎng)絡(luò)架構(gòu)作改進(jìn).首先,將網(wǎng)絡(luò)的最后一層的卷積層特征輸出與相鄰上一層的卷積層特征輸出相融合,構(gòu)成自頂向下的金字塔特征層.還考慮將淺層的卷積層特征輸出與相鄰下一層的卷積層特征輸出相結(jié)合,構(gòu)成自底向上的金字塔特征層,融合雙向結(jié)合的金字塔特征.這不僅結(jié)合了深層特征的全局語義信息,還加入了淺層卷積的細(xì)節(jié)局部紋理信息.并將原網(wǎng)絡(luò)的第一個(gè)降采樣層改為兩個(gè)3×3的卷積層,使得網(wǎng)絡(luò)在初始階段可以保留更多的小目標(biāo)位置特征信息.最后,為了提高網(wǎng)絡(luò)的檢測(cè)速度,采用1×1的卷積減小網(wǎng)絡(luò)模型的維度.在遙感圖像VEDAI[23]和NWPU VHR[24]公開數(shù)據(jù)集上與目前最先進(jìn)的目標(biāo)檢測(cè)網(wǎng)絡(luò)YOLOv3相比,改進(jìn)的網(wǎng)絡(luò)對(duì)小目標(biāo)的識(shí)別率有了明顯的提升,且檢測(cè)速度幾乎保持不變.
YOLOv3中使用的先驗(yàn)框?qū)b感圖像數(shù)據(jù)集不太適用.因此,首先利用k-means++聚類算法對(duì)遙感圖像數(shù)據(jù)集的目標(biāo)框個(gè)數(shù)和寬高比進(jìn)行聚類,然后修改網(wǎng)絡(luò)的架構(gòu),最后對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練與檢測(cè).
YOLOv3借鑒了Faster R-CNN中使用先驗(yàn)框的思想.先驗(yàn)框是一組寬高固定的初始預(yù)測(cè)框,不同的數(shù)據(jù)集聚類出的先驗(yàn)框的個(gè)數(shù)和寬高不同.YOLOv3使用了k-means聚類算法對(duì)數(shù)據(jù)集的目標(biāo)框進(jìn)行聚類分析.本文采用了k-means++聚類算法對(duì)遙感圖像數(shù)據(jù)集進(jìn)行了聚類分析,與k-means聚類算法相比,它采用初始中心點(diǎn)彼此盡可能遠(yuǎn)離的策略作為目標(biāo)聚類平均重疊度的度量,使得聚類結(jié)果不受隨機(jī)選擇初始聚類中心點(diǎn)距離的影響,聚類出的先驗(yàn)框更貼近數(shù)據(jù)集的目標(biāo)框.聚類的Avg IOU目標(biāo)函數(shù)如下:
(1)
式中,B表示目標(biāo)的真值.C表示簇的中心,nk表示第k個(gè)聚類中心樣本數(shù),n表示總樣本數(shù).
圖2 k-means++聚類分析Fig.2 K-means++ cluster analysis
本文對(duì)遙感圖像VEDAI和NWPU VHR公開數(shù)據(jù)集進(jìn)行聚類.如圖2所示,k分別取19時(shí),對(duì)數(shù)據(jù)集進(jìn)行聚類分析,到k與Avg IOU之間的曲線走勢(shì).隨著k值的增大,曲線開始變得平緩,拐點(diǎn)處k=3時(shí),既可以加快損失函數(shù)的收斂,又可以消除候選框帶來的誤差,在公開數(shù)據(jù)集VEDAI上得到的3組寬和高的預(yù)測(cè)框分別為(9,18)、(18,8)、(18,17);相應(yīng)地,在NWPU VHR-10的車輛數(shù)據(jù)集上對(duì)應(yīng)的3組寬和高的預(yù)測(cè)框分別為(16,23)、(18,35)、(29,26).
圖3 改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Improved YOLOv3 network structure
YOLOv3使用主干網(wǎng)絡(luò)輸出的8倍降采樣特征圖來檢測(cè)小目標(biāo),當(dāng)遙感圖像中目標(biāo)分辨率低于8pixel×8pixel時(shí),被檢測(cè)目標(biāo)的特征在輸出的特征圖中幾乎沒有了,為了使網(wǎng)絡(luò)能夠獲取更多小目標(biāo)的位置信息,如圖3所示,本文將網(wǎng)絡(luò)的第一個(gè)降采樣層改為兩個(gè)3×3的卷積層,以保留更多的小目標(biāo)位置特征信息.此外,本文將網(wǎng)絡(luò)最后一層的卷積層特征輸出與相鄰上一層的卷積層特征輸出相融合,構(gòu)成自頂向下的金字塔特征層,還考慮將淺層的卷積層特征輸出與相鄰下一層的卷積層特征輸出相融合,構(gòu)成自底向上的金字塔特征層,融合雙向結(jié)合的金字塔特征.其不僅利用了深層特征的全局語義信息,還加入了淺層卷積的細(xì)節(jié)局部紋理信息,使得中間層對(duì)小目標(biāo)的檢測(cè)更加準(zhǔn)確,最后采用1×1的卷積減小網(wǎng)絡(luò)模型的維度,提高網(wǎng)絡(luò)的檢度速度.
分別使用遙感影像VEDAI和NWPU VHR-10公開數(shù)據(jù)集來訓(xùn)練和檢測(cè)網(wǎng)絡(luò)識(shí)別性能,VEDAI數(shù)據(jù)集包含可見光和紅外兩種圖像,包含各種車輛和復(fù)雜背景,圖像中除包含很小的車輛外,還表現(xiàn)出不同的可變性,例如多個(gè)方向,光照、陰影的變化和遮擋,是典型應(yīng)用于監(jiān)視偵察的場(chǎng)景.為了使目標(biāo)的檢測(cè)更富有挑戰(zhàn)性,兩個(gè)數(shù)據(jù)集圖像都被縮放或裁剪為512pixel×512pixel和416pixel×416pixel.VEDAI數(shù)據(jù)集包含九類車輛對(duì)象,即“car、truck、pickup、tractor、campingcar、boat、van、other and airplane”.平均每張圖像包含5.5個(gè)車輛目標(biāo),約占圖像總像素的0.7%.該數(shù)據(jù)集中的目標(biāo)尺寸大小在11.5pixel×11.5pixel到24.1pixel×24.1pixel之間.NWPU VHR-10數(shù)據(jù)集是一個(gè)公開的10級(jí)地理空間物體檢測(cè)的航空影像數(shù)據(jù)集,包含“airplane、ship、storage tank、baseballdiamond、tennis court、basketball court、ground track field、harbor、bridge and vehicle”10個(gè)類別.由于數(shù)據(jù)集中大多數(shù)目標(biāo)類別尺寸偏大,例如“tennis court、basketball court、ground track field”,因此選取“vehicle”作為單類檢測(cè)的目標(biāo).每張圖像平均包含11個(gè)目標(biāo),約是VEDAI數(shù)據(jù)集的兩倍多,該數(shù)據(jù)集的目標(biāo)尺寸在19pixel×19pixel到94pixel×94pixel之間.YOLOv3在大、中、小3種不同尺度上對(duì)目標(biāo)作預(yù)測(cè),提高了遙感圖像的小目標(biāo)識(shí)別率.因此,本文與YOLOv3目標(biāo)檢測(cè)算法進(jìn)行對(duì)比實(shí)驗(yàn).
為驗(yàn)證本文改進(jìn)后網(wǎng)絡(luò)的識(shí)別性能,本文與YOLOv3網(wǎng)絡(luò)模型進(jìn)行比對(duì),實(shí)驗(yàn)采用512pixel×512pixel和416pixel×416pixel兩種尺寸的圖像作為輸入,在CPU為2.10GHz,顯存為16GB的1080GPU工作站上進(jìn)行訓(xùn)練和測(cè)試,深度學(xué)習(xí)框架為Pytorch,利用圖像旋轉(zhuǎn)、裁剪等方法對(duì)數(shù)據(jù)集進(jìn)行增強(qiáng)和擴(kuò)充.在VEDAI數(shù)據(jù)上:批尺寸為8,初始學(xué)習(xí)率為0.001,動(dòng)量項(xiàng)系數(shù)β=0.9,分別在迭代到45000步和60000步時(shí),學(xué)習(xí)率降為0.0001和0.00001.在NWPU VHR數(shù)據(jù)集上,批尺寸為8,初始學(xué)習(xí)率為0.001,動(dòng)量項(xiàng)系數(shù)設(shè)置為β=0.9,分別在迭代到30000步和45000步時(shí),學(xué)習(xí)率降為0.0001和0.00001.
實(shí)驗(yàn)1.
表1是在VEDAI數(shù)據(jù)集上測(cè)試的模型檢測(cè)結(jié)果,在輸入為416pixel×416pixel分辨率圖像上,檢測(cè)精度和速度分別為47.7%和42.3F/S,相較原先的YOLOv3模型,檢測(cè)精度被提高了5%,檢測(cè)速度幾乎保持不變.在輸入為512pixel×512pixel分辨率圖像上,檢測(cè)精度和速度分別為66.8%和38.4F/S,相較原先的YOLOv3模型,檢測(cè)精度被提高的12.8%,檢測(cè)速度幾乎保持不變.
表1 在VEDAI數(shù)據(jù)集上的檢測(cè)性能對(duì)比Table 1 Comparison of detection performance on VEDAI dataset
實(shí)驗(yàn)2.
表2是在NWPU VHR的單類數(shù)據(jù)集VEDAI上的模型檢測(cè)結(jié)果,在輸入為416pixel×416pixel分辨率圖像上,檢測(cè)精度和速度分別為和75.5%和19.2F/S,相較原先的YOLOv3模型,檢測(cè)精度提高的1.1%,檢測(cè)速度幾乎保持不變.在輸入為512pixel×512pixel分辨率圖像上,檢測(cè)精度和速度分別為88.3%和40.0F/S,比較原先的YOLOv3模型,檢測(cè)精度被提高的3.2%,檢測(cè)速度幾乎保持不變.
表2 在NWPU VHR數(shù)據(jù)集上的檢測(cè)性能對(duì)比Table 2 Comparison of detection performance on NWPU VHR dataset
圖4 改進(jìn)YOLOv3與原網(wǎng)絡(luò)的檢測(cè)結(jié)果對(duì)比(VEDAI)Fig.4 Results comparison of between improved YOLOv3 and original network on VEDAI datasets
圖5 改進(jìn)YOLOv3與原網(wǎng)絡(luò)的檢測(cè)結(jié)果對(duì)比(NWPU VHR)Fig.5 Results comparison of between improved YOLOv3 and original network on NWPU VHR datasets
圖4和圖5為512pixel×512pixel輸入尺寸的檢測(cè)結(jié)果圖,第1行為原圖,第2行為原網(wǎng)絡(luò)檢測(cè)圖,第3行為改進(jìn)的YOLOv3檢測(cè)圖.從縱向看:(a)組實(shí)驗(yàn)中改進(jìn)后的網(wǎng)絡(luò)可以解決原網(wǎng)絡(luò)出現(xiàn)的漏檢問題,(b)組實(shí)驗(yàn)說明改進(jìn)后網(wǎng)絡(luò)可以解決原網(wǎng)絡(luò)出現(xiàn)的錯(cuò)檢問題,(c)組實(shí)驗(yàn)表明改進(jìn)后的網(wǎng)絡(luò)可以使得預(yù)測(cè)框定位更加準(zhǔn)確,改進(jìn)后的網(wǎng)絡(luò)提高了遙感圖像的小目標(biāo)識(shí)別率.
本文提出了在FPN模塊上添加額外的自底向上、橫向連接的路徑改善低分辨率特征的性能,構(gòu)造自頂向下和自底向上的特征金字塔網(wǎng)絡(luò),融合雙向結(jié)合的金字塔特征層,并應(yīng)用于遙感圖像的目標(biāo)檢測(cè),對(duì)網(wǎng)絡(luò)的主要改進(jìn)如下:首先網(wǎng)絡(luò)層的第1個(gè)下采樣層不利于保留更多的小目標(biāo)位置信息,將第1個(gè)降采樣層改為兩個(gè)3×3的卷積層.其次,將YOLOv3三個(gè)不同尺度輸出改為針對(duì)小目標(biāo)輸出的特征圖,雙向金字塔融合高低層次的特征用以檢測(cè)小目標(biāo).然后采用1×1的卷積減少網(wǎng)絡(luò)模型的維度,提高網(wǎng)絡(luò)的檢測(cè)速度.在VEDAI和NWPU VHR遙感車輛數(shù)據(jù)集上和最先進(jìn)的YOLOv3網(wǎng)絡(luò)做了定量和定性對(duì)比分析.結(jié)果表明,改進(jìn)后的網(wǎng)絡(luò)檢測(cè)性能比原網(wǎng)絡(luò)有了明顯提高,網(wǎng)絡(luò)的檢測(cè)速度幾乎沒有改變.