張 曼,葉 曦,李 杰,沈 霽
(上海航天電子技術研究所,上海 201109)
衛星影像中目標自動檢測是遙感圖像智能分析領域的重要研究方向[1],它要求對包含多目標衛星影像自動定位標記,并判別該目標所屬類別,對船只、飛機、油罐等軍事目標信息采集具有重要作用[2]。
傳統衛星影像目標檢測算法主要利用滑動窗口搜索策略切割整幅遙感圖像,然后依據目標固有特征(如幾何、紋理、顏色等)定位標記[3-5]。這種方法無法同時對多種類別目標同時定位區分,且易受光照、拍攝角度等外界環境變化,魯棒性差。自2012年AlexNet[6]在ImageNet競賽[7]上大獲成功,卷積神經網絡技術在目標檢測領域獲得廣泛應用。2014年Ross B.Girshick提出RCNN[8]算法,檢測圖像通過選擇性搜索法(selective search)[9]進行圖像分塊,分割后的候選區域通過多層卷積網絡提取特征,最后進行分類與位置回歸。該算法中候選區域的大量重合導致運算速度低,檢測過程中需保存大量特征信息,內存消耗大。針對這一情況,Ross B.Girshick一年后提出了Fast-RCNN[10]算法,算法通過對整張圖像卷積得到特征圖像,利用分類與邊框回歸結合的多任務損失函數迭代優化,由于候選區域提取同樣依賴selective search方法,檢測速度較慢。2015年提出的Faster-RCNN[11]算法舍棄以往候選區域提取策略,候選區域由可訓練優化的RPN網絡提取,有效減少候選區域數量,提高了檢測效率。由此可見,基于區域建議框的R-CNN系列算法檢測過程主要分為兩步:第一步提取候選區域,第二步檢測分類,具有網絡結構復雜、檢測效率低、工程實現困難等缺陷。2016年,端對端檢測策略的YOLO[12]被提出,該算法將目標定位檢測問題轉化為回歸問題處理,通過一個卷積神經網絡直接所有候選區域進行回歸,對其預測相應的類別的概率,解決候選區域重疊問題,實現實時目標檢測。2017年提出YOLO-V2[13]算法,在YOLO的基礎上進行多方面改進,進一步提高定位精度。Tiny-Yolo-V2為YOLO-V2算法的簡化版本,通過減少卷積層數,提高檢測效率,便于工程實現。
在航天對地觀測領域,衛星影像分辨率隨技術的發展不斷提升,地物目標信息的也逐漸豐富,采用深度學習技術進行目標檢測成為研究趨勢。端對端類型的Tiny-Yolo-V2算法通在保證一定檢測精度的情況下,具有模型規模小、檢測效率高的優勢,節約了計算資源,便于硬件部署。本文提出的基于深度可分離卷積神經網絡衛星影像檢測算法基于Tiny-Yolo-V2算法進行優化,利用深度可分離卷積方法優化Tiny-Yolo-V2卷積層,減小算法計算量,提高檢測效率,同時針對衛星影像地物目標大小差異較大問題,結合特征金字塔(FPN)[14]思想,利用多種尺度特征圖融合技術,提高目標檢測精度。
卷積層的主要作用是特征提取。標準卷積將輸入特征圖通過卷積核卷積過程中,需要同時學習空間特征與通道特征,而于2017年Andrew G.Howard提出的深度可分離卷積[15]通過將卷積層空間相關性與通道相關性解藕,在標準卷積過程中添加一層過渡層,將其分解為深度卷積(depthwise convolution)與逐點卷積(pointwise convolution),分別考慮空間相關性與通道相關性。相對標準卷積,深度可分離卷積可以在保證精度損失不多情況下,大幅降低參數量與計算量[16]。
假設輸入為DF×DF×M的特征圖,與DK×DK×M×N大小的卷積核卷積,標準卷積操作過程如圖1所示,每張輸入特征圖分別與N類中M個DK×DK卷積核卷積后求和加上偏置得到一個輸出,最后輸出為DF×DF×N大小。深度可分離操作過程如圖2所示,圖2(a)為深度卷積過程,圖2(b)為逐點卷積過程。深度卷積時,每張輸入特征圖只與對應卷積核卷積加偏置,輸出大小為DF×DF×M。逐點卷積時,DF×DF×M的特征圖與N個1×1的卷積核做標準卷積,改變通道個數,最后輸出特征圖大小為DF×DF×N。

圖1 標準卷積操作示意圖

圖2 深度可分離卷積操作示意圖
標準卷積卷積過程計算量如下式所示
DF×DF×M×N×DK×DK
(1)
深度可分離卷積中,深度卷積過程計算量如下式所示
DF×DF×M×DK×DK
(2)
逐點卷積過程計算量如下式所示
DF×DF×M×N
(3)
深度可分離卷積相當于標準卷積的n倍,n的表達式如下所示
(4)
深度學習算法Tiny-Yolo-V2是一種端到端的目標檢測算法,算法的網絡結構簡單,參數量少,工程化實現相對容易,本論文選擇此算法為基礎算法進行優化。Tiny-Yolo-V2算法具體網絡結構參數如表1所示,包括9個卷積層和6個池化層。卷積層使用3×3大小的卷積核操作,最后1層卷積層卷積核大小為1×1,池化層為最大池化方式,池化大小為2×2,步長為2。每次池化操作相當于做一次下采樣,特征圖縮小1倍。前12層,卷積層后做池化操作,池化后,卷積層卷積核個數擴增1倍,卷積層提取特征,池化層做特征壓縮。除最后1層卷積層外,每層卷積層引入BatchNormal算法穩定訓練過程,加快收斂。

表1 Tiny-Yolo-V2算法網絡結構參數
衛星影像中地物信息豐富,能同時存在車輛、飛機、港口等差異較大的地物目標,單一尺度的目標檢測算法無法很好地對不同類別不同大小的目標進行預測,本文希望通過添加一個維度的尺度特征圖預測,改善這一問題。在深度學習領域,增加預測尺度方式有多種,本論文結合特征金字塔(FPN)結構進行優化。
在目標檢測算法中,由于池化層進行了特征壓縮,網絡中不同卷積層輸出特征圖尺寸不同。淺層輸出的特征圖尺寸更大,保留更多的細節信息,更有利于目標位置信息的預測,同時由于經過的卷積層數少,提取的信息不夠精煉,不利于進行目標類別的預測。深層的特征圖尺寸小,在多次卷積后,特征圖提取的信息更加抽象,進行目標分類準確度更高,相對地,多次卷積池化信息提煉過程中丟失了很多細節信息,易出現目標位置信息預測不精準現象。特征金字塔結構將深層特征與淺層特征結合,提高目標檢測算法預測的類別正確率和定位準確度。
改進算法是基于Tiny-Yolo-V2算法進行優化實現的,記為FD-Tiny-Yolo-V2算法,在原有13×13大小的預測尺度上,增加26×26大小的預測尺度,提高小目標、多目標的檢測精度。FD-Tiny-Yolo-V2算法網絡結構如圖3所示,包括7個卷積層、5個深度可分離卷積層、6個池化層、1個上采樣層和1個特征融合層。輸入圖像尺寸為3通道416×416的衛星影像,經過4個卷積層與4個池化層特征提取與壓縮后,得到128維26×26大小特診圖。得到的特征度經歷兩種操作最后得到不同尺度的預測信息。26×26大小特診圖通過圖中上通道一系列卷積層、深度卷積層和池化層作用,最后得到的特征圖大小為13×13,是第一種預測尺度。輸入圖像經過5個卷積層、5個池化層與2個深度可分離卷積層操作后,得到256維13×13大小特征圖,這256維13×13大小特征圖包含高維特征信息,上采樣后與上述128維26×26大小特征圖相融合,得到的384維26×26大小特征圖,經過卷積層操作后得到特征圖大小為26×26,是第二種預測尺度。FD-Tiny-Yolo-V2將高語義信息的深層特征與高細節信息的淺層特征相互融合的方式,課得到多種尺度的信息,提高目標檢測的定位精度于類別預測正確率。卷積層操作如圖3中模塊1所示,包括標準卷積、批量歸一化(BN)和非線性變換三種操作,深度可分離卷積層包括3×3深度卷積、BN、非線性變換、1×1標準卷積、BN和非線性變換六種操作。

圖3 FD-Tiny-Yolo-V2算的的多尺度網絡結構
FD-Tiny-Yolo-V2算法最后做兩種尺度預測,分別為13×13和26×26。假設每個珊格預測B個框,訓練圖像包含C個類別,最后特征圖輸出結果為
S×S×B×(5+C)
(5)
此處,5表示每個預測邊框的坐標信息(邊框中心點坐標與邊框長寬共4個值)加預測表框置信度信息。這里選擇的數據集包括15個類別,根據K-means[17]聚類算法可知,當一個珊格預測5個邊框時。因此,最后兩種特診圖輸出為13×13×100與26×26×100大小。
衛星影像開源數據量少,寬幅影像無法直接用于深度學習目標檢測算法處理,因此,訓練前需進行數據集増廣與切塊操作。如圖4所示為FD-Tiny-Yolo-V2算法訓練框架,具體分為三步,第一步増廣數據集,第二步進行數據集切塊,第三步開展模型訓練工作。數據集増廣時,采用旋轉、顏色抖動、模糊處理及縮放操作擴充衛星影像與對應標簽。數據集切塊時,利用滑動窗口將大小不一的衛星影像切塊處理,對應標簽隨之變化,切塊后剔除不包含目標信息的圖像切塊與標簽。網絡模型訓練過程中,將訓練圖像分批次輸入FD-Tiny-Yolo-V2網絡模型中,將模型輸出的預測值與實際標簽比較,利用二值的誤差值優化模型參數,多次迭代后,保存網絡模型。訓練過程中,誤差為預測坐標誤差、預測類別誤差與預測置信度誤差之和,具體計算公式如下式所示

圖4 算法訓練框架
(6)

本文實驗采用DOTA[18]作為實驗的數據集。衛星影像數據集DOTA是由武漢大學和華中科技大學聯合團隊標注完成的,共標注了包含飛機、船只、小轎車、油罐等在內的15種目標類別,圖像大部分來自谷歌地球。DOTA數據集中尺寸不一的寬幅衛星影像數據集經過滑動窗口切塊與數據集増廣操作后,得到160000張圖像切塊,做訓練測試使用的數據集,具體數據集示例如圖5所示。

圖5 數據集示例
本文選擇精準率、召回率和平均精準率(Average Precision,AP)為目標檢測算法評價指標。精準率為預測正確邊框數量與所有預測邊框數量之比,召回率為預測正確邊框數量與標注為該類別邊框數量之比,AP值為精確率隨召回率變化曲線在從0到1上的積分。精準率、召回率與AP值越大,代表檢測效果越好。
實驗由CPU為i8、內存為32G、GPU為2片NVIDIA的1080Ti 的臺式計算機完成。程序設計平臺為Visual Studio2015,操作系統為ubuntu16.0.4。
訓練時,最大迭代次數為50020次,每次訓練8個批次,每個批次訓練32張圖片,初始學習率為0.0001。訓練時IOU閾值為0.3,測試時IOU閾值為0.5。
本文算法是基于Tiny-Yolo-V2進行優化改進的,表2為兩種算法性能評估結果表。可以發現,大體來說,FD-Tiny-Yolo-V2算法在精準率、召回率與AP值上優于Tiny-Yolo-V2算法。對于籃球場、田徑場、足球場、游泳池等中型、大型目標,兩種算法精準率、召回率與AP值差別不大;對于小汽車、橋梁等小型目標來說,本文提出的FD-Tiny-Yolo-V2算法目標檢測評估結果更好。說明FD-Tiny-Yolo-V2算法通過增加預測尺度,達到了提高小目標檢測的精準率效果,驗證了結合特征金字塔優化Tiny-Yolo-V2方案的有效性。

表2 目標檢測算法性能評估結果
表3為YOLO-V1、YOLO-V2、Tiny-Yolo-V2與本文提出的FD-Tiny-Yolo-V2四種不同目標檢測算法性能對比表,mAP為AP的平均值??梢园l現,本文提出的FD-Tiny-Yolo-V2算法mAP值為0.427,比Tiny-Yolo-V2算法高了0.084,排四種算法的第三位置。FD-Tiny-Yolo-V2算法在檢測時間與參數量方面表現更好,一張圖像切塊僅需1.44ms,參數量為21.5M,排四種算法中第一位置。驗證了結合深度可分離卷積優化檢測算法方案的有效性。本文提出算法工程化實現更容易。

表3 目標檢測算法檢測性能對比
圖6為FD-Tiny-Yolo-V2算法在寬幅衛星影像上的檢測結果。圖6(a)圖像主要為飛機目標,圖6(b)圖像主要為車輛目標??梢园l現FD-Tiny-Yolo-V2算法在不同衛星影像種,目標基本檢出,檢測效果良好。

圖6 寬幅衛星影像檢測結果
圖7為Tiny-Yolo-V2和FD-Tiny-Yolo-V2兩種算法在同一張寬幅衛星影像上的檢測結果。上幅為Tiny-Yolo-V2算法目標檢測結果,下幅為FD-Tiny-Yolo-V2檢測結果,右邊圖像為圖中邊框內細節放大圖。可以發現,Tiny-Yolo-V2算法小型目標更容易漏檢,FD-Tiny-Yolo-V2算法目標基本檢出。如圖中所示車輛目標中FD-Tiny-Yolo-V2算法檢測效果更好。

圖7 圖像切塊檢測結果
本文提出一種基于Tiny-Yolo-V2的優化算法用于衛星影像目標的自動定位與檢測。針對Tiny-Yolo-V2算法目標檢測精準度低問題,本文提出的FD-Tiny-Yolo-V2算法結合特征金字塔概念,在單一13×13預測尺度基礎上增加了26×26尺度進行預測,融合深層語義特征與淺層細節特征,提高目標檢測精度。同時,利用深度可分離卷積思想,優化標準卷積層,減小模型參數量,提升算法檢測效率。在衛星影像數據集DOTA上驗證了兩種優化策略的有效性。相對Tiny-Yolo-V2算法,mAP值提高了0.084,模型參數量減小了49%,檢測效率提高了48%。下一步將探究深度學習模型量化、剪紙等優化方法,進一步提升算法檢測效率,為工程化部署做鋪墊。