方青云,王兆魁
(清華大學 航天航空學院,北京 100084)
近年來,伴隨著航天遙感技術的快速發展,高分辨率大尺度遙感圖像數據不斷豐富,實現快速遙感目標檢測成為提升天基遙感應用能力的關鍵。遙感目標檢測是指在遙感圖像中找到興趣目標的具體位置并識別其類別,該技術在港口、機場流量監測、交通疏導、尋找丟失船只等民用、軍用領域有著重要的作用。然而,基于傳統機器學習的遙感目標檢測方法往往效果不理想,文獻[1]認為相比常規圖像,遙感圖像背景十分復雜,在數千米的視野半徑范圍內存在各種復雜背景,這些復雜背景對檢測器造成強烈的干擾。普通數據集大多是以與地面水平的視角拍攝的,目標方向相對地面具有一定的垂直方向性,而遙感目標由于是以俯視視角拍攝的,其方向在平面內可以是任意的,因此需要檢測器對方向具有魯棒性。此外,遙感目標大多為稠密的小目標,而提高稠密小目標檢測精度正是目前目標檢測面臨的挑戰之一。
傳統機器學習效率低,主觀性強,嚴重依賴于數據結構和專業知識,其特征泛化能力差,難以解決上述問題。近年來,深度學習逐漸成為研究熱點,它通過對大量數據的學習,自動提取出最有效的特征,并通過建立復雜的網絡結構實現精確檢測。自2012年KRIZHEVSKY[2]掀起學術界深度學習熱潮,深度卷積神經網絡憑借其包含的深層語義特征在計算機視覺領域取得了巨大成功,近年來越來越多地被應用到圖像的目標檢測任務中。目前廣泛使用的基于卷積神經網絡的目標檢測方法主要分為兩類:第一類是“兩個階段”方法,該類方法將目標檢測分為檢測與識別兩個階段,首先由算法或者網絡在圖像中尋找興趣目標區域,再對區域內的目標進行識別,如RCNN[3]、Faster-RCNN[4]、Mask-RCNN[5]等;第二類是“一個階段”方法,該類方法利用回歸思想同時完成檢測與識別,實現端到端檢測與識別,如YOLO[6]、SSD[7]等,它們相對第一類“兩個階段”方法,在速度方面快很多,但檢測識別精度相對較低。
目前已經有很多學者將深度學習應用于遙感圖像領域,并提出很多針對遙感目標檢測的網絡。2016年ZOU等[8]提出了一種SVDNet,將DCNN和機器學習的SVM相結合,在船只檢測中取得了很好效果。2018年YANG等[9]將深度殘差網絡ResNet和超矢量編碼(Super-Vector Coding)相結合,實現對飛機目標的高效檢測。2018年XU等[10]將多層特征融合技術應用到全卷積網絡(FCN)中,實現了對飛機目標的高精度定位。YAO等[11]提出一種多架構神經網絡(MSCNN),每個架構分別針對大中小三類遙感目標進行檢測,相比于單一框架網絡,該網絡在虛警率和召回率上都有較大的提升。
但在火災監測報警、海上目標搜救和地震、火山、海嘯災害評估等重大緊急任務中,地面離線處理星上傳回的圖像方法,耗時長久,會耽誤抗震救災、人員搜救的黃金時間,因此星上在線識別處理將成為未來遙感技術的重要發展方向。受衛星本身質量和功耗的限制,其攜帶的計算單元的內存、算力有限,雖然目前關于利用深度學習方法實現遙感目標檢測的論文不在少數,但此類論文提出的網絡規模和計算量都較大,難以在星上內存和算力都受限的情況下完成對目標的實時檢測。
針對上述問題,本文采用了YOLOv3-MobileNet網絡,利用輕量化網絡MobileNet[12]替代原先YOLOv3[13]的特征提取網絡DarkNet53,在大量減少網絡參數的同時顯著提升運行速度。在后續對比實驗中發現,在兩者平均精度均值(mAP)都在76%附近時,YOLOv3-MobileNet檢測速度是YOLOv3的3.7倍。此外,本文還提出了一種IoUK-medians算法,對數據集groundtruths進行尺度聚類分析,使得到的先驗框更加適合目標檢測。使用IoUK-medians算法后,在YOLOv3上的目標檢測mAP提升了7.0%,在YOLOv3-MobileNet上提升了2.3%。
與之前的YOLO算法相比,YOLOv3采用了精度更高的DarkNet53作為特征提取網絡,設計了目標多尺度檢測結構,使用了logistics函數代替傳統的softmax函數。DarkNet53借鑒了ResNet[14]殘差網絡的思路,在一些層之間設置了快捷路徑,實驗表明:DarkNet53相比于ResNet-152,在精度上接近,但速度更快[13]。此外,YOLOv3對小目標的檢測效果有明顯的提升,這得益于網絡新增的 top-down結構,分別在13×13、26×26、52×52特征圖上進行預測,解決了 YOLO算法檢測顆粒粗、對小目標檢測無力的問題。
雖然現在卷積神經網絡(如AlexNet[2]、ResNet[14]、GoogLeNet[15]和DenseNet[16]等)的特征提取能力隨著網絡層數的加深正在不斷地提升,但在實際工程中還需要考慮模型尺寸和模型預測速度。深度卷積神經網絡包含幾十層甚至上百層的網絡,有著大量的權重參數,保存這些權重參數對設備內存有很高的要求。此外,在實際應用中往往要求檢測速度在幾十毫秒甚至更少時間內完成目標檢測。
為解決上述問題,通常的方法是對訓練好的模型進行壓縮,在減少網絡參數的同時提升預測速度。輕量化網絡則通過更高效的卷積計算方式,使得網絡參數和計算量大大減少,且不損失網絡性能。MobileNet由2017年Google 團隊提出,它采用一種深度可分離卷積的高效卷積方法來提升運算速度。在深度可分離卷積中,一個卷積核負責一部分特征圖,且每個特征圖只被一個卷積核卷積。深度可分離卷積涉及另外兩個超參數:寬度乘法器和分辨率乘法器,這兩個超參數用于衡量網絡設計的大小和量化模型規模。MobileNet在計算量、存儲空間和準確率方面取得了很好的平衡,與VGG16[17]相比,在很小的精度損失情況下,將運算量減小為1/30。
圖1為YOLOv3-MobileNet網絡結構,相比于DarkNet53有53個卷積層,MobileNet只有1個卷積層和13個深度可分離卷積層。
從圖1中可以看出藍色的深度可分離卷積模塊將卷積操作分成了Depthwise和Pointwise兩個步驟。Depthwise對于不同輸入通道采取不同的卷積核進行卷積,卷積核和通道是一一對應的,再通過1×1 Pointwise 卷積完成對Depthwise輸出特征圖的整合,這樣就避免了普通卷積層中任意一個卷積核都需要對所有通道進行操作的缺陷。通過Depthwise和Pointwise兩個步驟實現卷積層,其參數僅約為普通卷積的1/9,乘法計算量僅為普通卷積的1/c+1/9,其中c為輸入通道數。基于這種高效卷積的MobileNet將大大精簡整個模型的規模,極大減少計算量。表1為在輸入圖片尺寸為416×416時YOLOv3-MobileNet與YOLOv3在參數量、計算量方面的比較,在模型規模方面 , YOLOv3-MobileNet參數相比于YOLOv3降低了1.5倍; 在浮點數計算量方面, YOLOv3-MobileNet浮點數計算量相比于YOLOv3降低了3.3倍。

圖1 YOLOv3-MobileNet 網絡結構Fig.1 YOLOv3-MobileNet architecture

表1 YOLOv3-MobileNet與YOLOv3對比
從圖1可看到,YOLOv3-MobileNet未改變YOLOv3 top-down結構,這種結構借鑒了特征金字塔網絡[18]的概念,對特定卷積神經網絡層數的特征圖(YOLOv3-MobileNet中第5、11、13深度可分離卷積層)進行處理,以生成反映此維度信息的特征。top-down結構處理后所生成的特征之間也有關聯,上層高維度特征會影響下層低維度特征的表達,最終所有維度的特征一起作為目標檢測的輸入,如圖2所示。不同維度的特征圖可以針對不同尺度的目標進行檢測;最上面的特征層,特征維度豐富但特征尺度壓縮嚴重,因此比較適合檢測大目標;最下面的特征層,特征維度少但特征尺寸大,適合檢測小目標;中間特征層居于上、下兩層中間,適合檢測中等目標。這種多尺度的檢測極大地改善了YOLO檢測粗糙的問題,特別是對小目標的檢測精度有了很大的提升。

圖2 自上向下結構Fig.2 Top-down architecture
Faster RCNN和SSD算法中都需要手動挑選先驗邊界框的尺寸,顯然這種方法過于主觀。統計學習中的K-means方法通過對訓練集中目標的邊界框尺寸進行聚類,自動挑選出更精準、更具代表性的邊界框尺寸,使得卷積神經網絡更容易準確預測目標位置。對于給定的樣本集,根據樣本間的距離大小,將樣本劃分為K個簇,通過一系列迭代使得簇內的樣本距離盡可能小,而讓簇間的距離盡量大,這是K-means的主要思想,其本質上是一種基于最大期望的無監督聚類方法。
K-means算法中通常以歐氏距離、曼哈頓距離、切比雪夫距離或者閔氏距離作為距離度量。設置先驗邊界框大小的目的是使得預測框與groundtruths 之間的交并比(IoU)結果更好,但使用這些傳統的度量往往得不到很好的效果。因此本文使用一種新的距離度量標準,即
d(B,C)=1-IoU(B,C)
(1)
式中:B表示為groundtruths集合;C為邊界框的簇中心集合;IoU(B,C)為groundtruths和邊界框簇中心的交并比。IoU在目標檢測中代表預測框與groundtruths之間的相關度,相關度越高,兩者越相近,預測框就越精確,IoU的具體計算式為
(2)
式中:bgti為第i個groundtruth;bpdj為第j個預測框。
K-means算法在簇迭代中采用求取均值后更新的方法,這樣會導致其對野值和噪聲比較敏感。在遙感圖像目標檢測中,由于衛星拍攝高度、相機分辨率以及物體本身實際尺寸大小均存在較大差異,會存在少數超大或者超小的目標出現,這些異常目標會對K-means聚類精度造成很大影響。為避免該現象,本文采用一種K-means的改進算法K-medians,將原先K-means簇迭代中求取均值替換為求取中位數。中位數對噪聲點或者野值具有很強的抗干擾性,避免了異常目標尺寸的影響,進而提升目標檢測精度。
圖3展示了以歐幾里得距離為度量的K-means、以 IoU為度量的K-means和K-medians三種方法在數據集上的平均 IoU隨聚類中心個數K的曲線圖。圖3驗證了使用普通的距離度量往往得不到一個理想的結果,甚至隨著簇中心個數K的增加,以歐氏距離為度量的K-means效果在有些情況下反而變差了。原因是在使用歐氏距離為度量時,尺寸大的預測框比尺寸小的預測框更容易產生損失誤差,這必然會導致K-means生成的預測框偏大,從而使得最后得到的平均IoU偏低。而直接以IoU為度量的聚類方法避免了預測框大小造成損失不平衡的情況,得到的IoU更好,且結果與預測框的尺寸無關。此外,本文提出的基于IoUK-medians方法相比其他兩者的平均IoU更高,得到的先驗框更精確也更具代表性。

圖3 不同聚類方法的平均IoU比較Fig.3 Average IoU for different methods
實驗使用的數據集是對NWPU-VHR10數據集的擴充,數據集原有650張圖像,擴充398張圖像,包含飛機、艦船、儲油罐、棒球場、網球場、籃球場、操場、港口、橋梁和車輛10類目標,總計6 686個目標。選取數據集中70%的圖像作為訓練樣本,其余30%作為測試樣本。
實驗結果指標采用國際PASCAL VOC 目標檢測挑戰賽的度量,即精度(Precision)、召回率(Recall)、平均精度(AP)和平均精度均值(mAP)。精度P是正確預測的實例占預測總數的百分比,可表示為
P=NTP/(NTP+NFP)
(3)
式中:NTP為正陽性實例;NFP為假陽性實例。NTP和NFP相加就是總預測數。召回率R是正確預測的實例占實例總數的百分比,可表示為
R=NTP/(NTP+NFN)
(4)
式中:NFN為假陰性實例。NFN和NTP相加就是實例總數。對于每一種類別,平均精度是精度隨召回率變化(PR)曲線的積分,以圖4中飛機目標為例,其平均精度是其PR曲線的積分,即圖中淡藍色區域的面積。mAP表示所有類別平均精度的均值。

圖4 飛機目標平均精度Fig.4 AP of airplane
實驗采用的軟硬件平臺配置如下。CPU:Intel(R) Core(TM) i9-7900X @ 3.30 GHz; GPU: NVIDIA Titan xp; 操作系統: ubuntu 16. 04LTS; 深度學習框架: Keras。
表2是YOLOv3和YOLOv3-MobileNet使用和不使用IoUK-medians算法的對比。通過對比可以發現:使用IoUK-medians算法能產生很好的效果,在YOLOv3上的mAP提升了7%,在YOLOv3-MobileNet上則提升了2.3%。檢測平臺界面如圖5所示。圖6是YOLOv3-MobileNet的部分檢測結果,最右側小圖中棒球場目標在圖像中只占很小一部分,但也能被正確檢測,側面反映了YOLOv3-MobileNet具有強大的學習能力。

表2 IoU K-medians效果
圖7中,YOLOv3-MobileNet相比于YOLOv3在檢測速度方面有很大的優勢,其檢測速度為GPU耗時的倒數,YOLOv3-MobileNet最快能達到101 frame/s,滿足實時檢測的需求。當YOLOv3-MobileNet和YOLOv3 兩者的mAP都在76%附近時,YOLOv3-MobileNet的檢測速度為78 frame/s,而YOLOv3的檢測速度只有21 frame/s,前者是后者的3.7倍。當YOLOv3-MobileNet的mAP達到82.2%時,其檢測速度仍能達到33 frame/s,是YOLOv3最快速度(21 frame/s)的1.6倍,并且比YOLOv3的mAP高6%。

圖5 遙感目標檢測系統界面Fig.5 System interface of remote sensing target detection

圖6 YOLOv3-MobileNet 檢測示例Fig.6 Some examples of YOLOv3-MobileNet detection

圖7 YOLOv3-MobileNet 與YOLOv3的mAP和檢測速度對比Fig.7 Comparison of mAP and detection speed between YOLOv3-MobileNet and YOLOv3
不同尺寸的輸入圖像對YOLOv3-MobileNet結果有很大的影響,總體來說,隨著網絡輸入圖像尺寸增大,mAP也在提升,如表3所示。大的輸入圖像能保留更加豐富的信息,因此其檢測精度也相對較高。值得注意的是,對于不同大小的目標,隨著輸入圖像尺度增加,檢測精度不一定提高。對于儲油罐和汽車這類小尺寸目標,隨著輸入尺度的增加,精度不斷提升;而對于操場、棒球場等超大尺寸的目標,隨著輸入尺度增加,精度會降低;對于飛機這類中等尺寸的目標,隨著輸入尺度增加,精度基本不變化。對于小目標,在輸入尺寸較小時,經過多層的卷積池化后,其大量信息丟失,使得最終特征的維度過低,從而難以區分出來。隨著輸入尺寸增大,保留下的信息變多,因而小目標檢測精度得到提升。大目標正好相反,輸入尺寸過大,使得提取特征的維度過高,最終導致精度下降。

表3 不同輸入尺寸YOLOv3-MobileNet各類目標AP檢測結果
本文針對將來星上實時檢測內存和計算能力都受限的情況,在YOLOv3的基礎上進行了改進,利用輕量化網絡MobileNet代替了DarkNet53,在保持檢測精度相差不多的情況下,極大減小了模型規模和計算量。此外還提出了一種IoUK-medians算法,通過對groundtruths進行聚類分析,得到更精準、更具代表性的先驗框,使得YOLOv3-MobileNet更容易預測目標準確位置,并通過實驗進行了驗證。該實驗也為將來在嵌入式平臺上對算法進行后續仿真驗證奠定了基礎。