陳 磊,張孫杰,王永雄
(上海理工大學 光電信息與計算機工程學院,上海 200093)
近年來,目標檢測已成為計算機視覺的研究熱點,其廣泛應用于機器人導航[1,2]、智能視頻監控[3-5]、工業檢測[6,7]、航空航天[8,9]等諸多領域,其不僅需要確定目標在圖像中的類別,還需給出其精確位置.遙感圖像中的目標呈現低分辨率,特征不明顯的特點,導致識別率不高.因此,小目標檢測仍是一項挑戰[10].
在過去的幾年中,研究者們發現設計深度卷積神經網絡可以大大提高圖像分類和目標檢測的性能[11],因為它不僅可以從圖像中提取出目標的強語義高級特征,而且將特征提取、特征選擇和特征分類融合到一個模型中,通過端到端的訓練,從整體上進行功能優化,增強了特征的可分性.當前用于目標檢測的卷積神經網絡主要分為以下兩類:
1)兩階段檢測算法,該類算法首先生成一系列的候選區域,然后再精確地分類,這類典型的算法代表有Fast R-CNN[12]、Faster R-CNN[13]、Mask R-CNN[14]等,然而以上方法不適用于實時的場景檢測;
2)相反,單階段檢測器直接從原始圖像直接進行目標預測,比較典型的算法有YOLO[15-17]三個版本、SSD[18]和Retina-Net[19]等.因此,單步檢測算法同時具有更高的檢測精度和更快的檢測速度.
圖像分類可以預測圖像中單個目標的類別,目標檢測有其自身的挑戰,需要在單個圖像中預測多個目標類別和相應的位置.為了解決這個問題,以多尺度表示目標特征層的金字塔特征方法被提出,特征金字塔(feature pyramid network)[20]是生成用于目標檢測的金字塔特征表示的代表性模型架構之一.它采用自頂向下、橫向連接組合主干網絡模型中兩個相鄰特征層的方式來構建特征金字塔,生成高分辨率、強語義的特征.近期文獻[21]和文獻[22]提出了各種跨尺度連接或操作,以組合特征的方式生成金字塔特征.YOLOv3借鑒了以上特征金字塔模型的思想,如圖1所示.其是基于Darknet53的主干網絡模型,共有75個卷積層,5個殘差塊,進行5次降采樣,其分別利用主干模型輸出的8倍、16倍、32倍降采樣特征圖作目標的預測.用深層提供的強語義信息預測大目標.通過自頂向下、橫向連接的方式與包含更多空間位置信息的淺層特征相融合,用于預測小目標.因此,該模型能夠很好地兼顧大、中、小三種不同尺寸的目標檢測.

圖1 YOLOv3網絡結構圖Fig.1 YOLOv3 network structure
受文獻[20-22]啟發,本文提出了雙向金字塔特征融合的體系結構.以單階段目標檢測算法YOLOv3為基礎,提出在FPN模塊上添加額外的自底向上、橫向連接的路徑改善低分辨率特征的性能,對YOLOv3的網絡架構作改進.首先,將網絡的最后一層的卷積層特征輸出與相鄰上一層的卷積層特征輸出相融合,構成自頂向下的金字塔特征層.還考慮將淺層的卷積層特征輸出與相鄰下一層的卷積層特征輸出相結合,構成自底向上的金字塔特征層,融合雙向結合的金字塔特征.這不僅結合了深層特征的全局語義信息,還加入了淺層卷積的細節局部紋理信息.并將原網絡的第一個降采樣層改為兩個3×3的卷積層,使得網絡在初始階段可以保留更多的小目標位置特征信息.最后,為了提高網絡的檢測速度,采用1×1的卷積減小網絡模型的維度.在遙感圖像VEDAI[23]和NWPU VHR[24]公開數據集上與目前最先進的目標檢測網絡YOLOv3相比,改進的網絡對小目標的識別率有了明顯的提升,且檢測速度幾乎保持不變.
YOLOv3中使用的先驗框對遙感圖像數據集不太適用.因此,首先利用k-means++聚類算法對遙感圖像數據集的目標框個數和寬高比進行聚類,然后修改網絡的架構,最后對數據集進行訓練與檢測.
YOLOv3借鑒了Faster R-CNN中使用先驗框的思想.先驗框是一組寬高固定的初始預測框,不同的數據集聚類出的先驗框的個數和寬高不同.YOLOv3使用了k-means聚類算法對數據集的目標框進行聚類分析.本文采用了k-means++聚類算法對遙感圖像數據集進行了聚類分析,與k-means聚類算法相比,它采用初始中心點彼此盡可能遠離的策略作為目標聚類平均重疊度的度量,使得聚類結果不受隨機選擇初始聚類中心點距離的影響,聚類出的先驗框更貼近數據集的目標框.聚類的Avg IOU目標函數如下:
(1)
式中,B表示目標的真值.C表示簇的中心,nk表示第k個聚類中心樣本數,n表示總樣本數.

圖2 k-means++聚類分析Fig.2 K-means++ cluster analysis
本文對遙感圖像VEDAI和NWPU VHR公開數據集進行聚類.如圖2所示,k分別取19時,對數據集進行聚類分析,到k與Avg IOU之間的曲線走勢.隨著k值的增大,曲線開始變得平緩,拐點處k=3時,既可以加快損失函數的收斂,又可以消除候選框帶來的誤差,在公開數據集VEDAI上得到的3組寬和高的預測框分別為(9,18)、(18,8)、(18,17);相應地,在NWPU VHR-10的車輛數據集上對應的3組寬和高的預測框分別為(16,23)、(18,35)、(29,26).

圖3 改進的YOLOv3網絡結構Fig.3 Improved YOLOv3 network structure
YOLOv3使用主干網絡輸出的8倍降采樣特征圖來檢測小目標,當遙感圖像中目標分辨率低于8pixel×8pixel時,被檢測目標的特征在輸出的特征圖中幾乎沒有了,為了使網絡能夠獲取更多小目標的位置信息,如圖3所示,本文將網絡的第一個降采樣層改為兩個3×3的卷積層,以保留更多的小目標位置特征信息.此外,本文將網絡最后一層的卷積層特征輸出與相鄰上一層的卷積層特征輸出相融合,構成自頂向下的金字塔特征層,還考慮將淺層的卷積層特征輸出與相鄰下一層的卷積層特征輸出相融合,構成自底向上的金字塔特征層,融合雙向結合的金字塔特征.其不僅利用了深層特征的全局語義信息,還加入了淺層卷積的細節局部紋理信息,使得中間層對小目標的檢測更加準確,最后采用1×1的卷積減小網絡模型的維度,提高網絡的檢度速度.
分別使用遙感影像VEDAI和NWPU VHR-10公開數據集來訓練和檢測網絡識別性能,VEDAI數據集包含可見光和紅外兩種圖像,包含各種車輛和復雜背景,圖像中除包含很小的車輛外,還表現出不同的可變性,例如多個方向,光照、陰影的變化和遮擋,是典型應用于監視偵察的場景.為了使目標的檢測更富有挑戰性,兩個數據集圖像都被縮放或裁剪為512pixel×512pixel和416pixel×416pixel.VEDAI數據集包含九類車輛對象,即“car、truck、pickup、tractor、campingcar、boat、van、other and airplane”.平均每張圖像包含5.5個車輛目標,約占圖像總像素的0.7%.該數據集中的目標尺寸大小在11.5pixel×11.5pixel到24.1pixel×24.1pixel之間.NWPU VHR-10數據集是一個公開的10級地理空間物體檢測的航空影像數據集,包含“airplane、ship、storage tank、baseballdiamond、tennis court、basketball court、ground track field、harbor、bridge and vehicle”10個類別.由于數據集中大多數目標類別尺寸偏大,例如“tennis court、basketball court、ground track field”,因此選取“vehicle”作為單類檢測的目標.每張圖像平均包含11個目標,約是VEDAI數據集的兩倍多,該數據集的目標尺寸在19pixel×19pixel到94pixel×94pixel之間.YOLOv3在大、中、小3種不同尺度上對目標作預測,提高了遙感圖像的小目標識別率.因此,本文與YOLOv3目標檢測算法進行對比實驗.
為驗證本文改進后網絡的識別性能,本文與YOLOv3網絡模型進行比對,實驗采用512pixel×512pixel和416pixel×416pixel兩種尺寸的圖像作為輸入,在CPU為2.10GHz,顯存為16GB的1080GPU工作站上進行訓練和測試,深度學習框架為Pytorch,利用圖像旋轉、裁剪等方法對數據集進行增強和擴充.在VEDAI數據上:批尺寸為8,初始學習率為0.001,動量項系數β=0.9,分別在迭代到45000步和60000步時,學習率降為0.0001和0.00001.在NWPU VHR數據集上,批尺寸為8,初始學習率為0.001,動量項系數設置為β=0.9,分別在迭代到30000步和45000步時,學習率降為0.0001和0.00001.
實驗1.
表1是在VEDAI數據集上測試的模型檢測結果,在輸入為416pixel×416pixel分辨率圖像上,檢測精度和速度分別為47.7%和42.3F/S,相較原先的YOLOv3模型,檢測精度被提高了5%,檢測速度幾乎保持不變.在輸入為512pixel×512pixel分辨率圖像上,檢測精度和速度分別為66.8%和38.4F/S,相較原先的YOLOv3模型,檢測精度被提高的12.8%,檢測速度幾乎保持不變.

表1 在VEDAI數據集上的檢測性能對比Table 1 Comparison of detection performance on VEDAI dataset
實驗2.
表2是在NWPU VHR的單類數據集VEDAI上的模型檢測結果,在輸入為416pixel×416pixel分辨率圖像上,檢測精度和速度分別為和75.5%和19.2F/S,相較原先的YOLOv3模型,檢測精度提高的1.1%,檢測速度幾乎保持不變.在輸入為512pixel×512pixel分辨率圖像上,檢測精度和速度分別為88.3%和40.0F/S,比較原先的YOLOv3模型,檢測精度被提高的3.2%,檢測速度幾乎保持不變.

表2 在NWPU VHR數據集上的檢測性能對比Table 2 Comparison of detection performance on NWPU VHR dataset

圖4 改進YOLOv3與原網絡的檢測結果對比(VEDAI)Fig.4 Results comparison of between improved YOLOv3 and original network on VEDAI datasets

圖5 改進YOLOv3與原網絡的檢測結果對比(NWPU VHR)Fig.5 Results comparison of between improved YOLOv3 and original network on NWPU VHR datasets
圖4和圖5為512pixel×512pixel輸入尺寸的檢測結果圖,第1行為原圖,第2行為原網絡檢測圖,第3行為改進的YOLOv3檢測圖.從縱向看:(a)組實驗中改進后的網絡可以解決原網絡出現的漏檢問題,(b)組實驗說明改進后網絡可以解決原網絡出現的錯檢問題,(c)組實驗表明改進后的網絡可以使得預測框定位更加準確,改進后的網絡提高了遙感圖像的小目標識別率.
本文提出了在FPN模塊上添加額外的自底向上、橫向連接的路徑改善低分辨率特征的性能,構造自頂向下和自底向上的特征金字塔網絡,融合雙向結合的金字塔特征層,并應用于遙感圖像的目標檢測,對網絡的主要改進如下:首先網絡層的第1個下采樣層不利于保留更多的小目標位置信息,將第1個降采樣層改為兩個3×3的卷積層.其次,將YOLOv3三個不同尺度輸出改為針對小目標輸出的特征圖,雙向金字塔融合高低層次的特征用以檢測小目標.然后采用1×1的卷積減少網絡模型的維度,提高網絡的檢測速度.在VEDAI和NWPU VHR遙感車輛數據集上和最先進的YOLOv3網絡做了定量和定性對比分析.結果表明,改進后的網絡檢測性能比原網絡有了明顯提高,網絡的檢測速度幾乎沒有改變.