李 靚,賀柏根,霍家道
(江蘇自動化研究所,江蘇 連云港 222061)
遙感圖像的目標檢測,是軍事領域的重要研究方向之一。如無人機、無人艇等具有光電傳感系統的很多設備都涉及圖像的目標檢測技術。但目前,這種涉及目標檢測技術并且需要識別定位的設備大多數都還采用的是“人在回路中”的控制模式。“人在回路中”的控制模式是指操作員在經過第一次指令輸入后,仍有機會進行第二次或不間斷的指令更正,即通過人為操作更改對目標的定位和檢測識別。這種方式雖能夠很好地進行目標檢測,但仍然存在著一些缺陷:操作員精力消耗大,工作強度大;且對于經驗性操作,有經驗的操作員的準確性更高;不同的操作人員在相同情境下判斷方法會影響判斷的結果;在連續場景,尤其是背景復雜或者同一場景多個目標的情況下,操作人員容易漏掉目標或做出誤判。
因此,自動目標檢測是一個非常值得研究的方向。在傳統的自動目標檢測中通常采用復雜的人工特征提取方法,比如說:尺度不變特征轉換[1](Scale-invariant Feature Transform, SIFT)、方向梯度直方圖[2](Histogram of Gradient, HoG)等,來獲取原始輸入中和目標有關的表達信息,并在提取的和目標有關的特征信息上學習分類器[3]。這些基于人工特征提取方法的檢測識別模型對于不同的目標任務,甚至是同一目標的不同種形態,都需要仔細思考如何更好地提取目標特征。此外在提取特征時,丟失的有用信息也無法從分類訓練中再次復原。因此,總體來說,傳統的方法識別率并不太理想,而且耗時較長,時間的利用率較低,并且圖像中背景的多樣化以及復雜性會對目標產生干擾、不同的視角變化也會為目標識別帶來一定的挑戰。
近年來,目標檢測技術有了新的進展,卷積神經網絡很好地應用于目標檢測。從2012年,Krizhevsky[4]等提出的AlexNet在大型圖像數據庫ImageNet[5]的圖像分類競賽中奪冠之后,各種深度學習檢測算法相繼被提出。目標檢測算法包括One-stage和Two-stage兩種。Two-stage方法主要的算法是RCNN系列。目前R-CNN框架已經發展了幾代,從R-CNN到Fast R-CNN[6]到Faster R-CNN[7],圖像檢測的速度在保證正確率的情況下一直提高;從Faster R-CNN到Mask R-CNN[8],則基于像素級為目標檢測算法開啟新的研究方向,不僅能夠用物體框標出物體的位置,還能基于像素級描出物體的邊界輪廓。其中基于Faster R-CNN+Resnet的檢測網絡模型在VOC+COCO數據集上飛行器單類的檢測準確率能達到92.1%。由于遙感圖像中的目標數量無規律、目標可能過小或密集等原因,Faster R-CNN檢測模型不一定能發揮與實驗理論相當的效果。
因此本文將通過研究Faster R-CNN算法以及其相關優化算法FPN進行遙感圖像飛行器的檢測,為軍事任務中的圖像檢測提供新的更為簡潔的研究方向。
Faster R-CNN算法由兩大模塊組成:RPN候選框提取模塊以及Fast R-CNN目標檢測模塊,通過共享卷積特征的方式將RPN和Fast R-CNN統一到一個網絡中,解決了提取Region Proposals過程中消耗大量時間的問題。
Fast R-CNN網絡關鍵的技術在于ROI池化層和輸出部分的多任務損失函數。
1) ROI池化層

2) 多任務損失函數
多任務損失函數將目標分類損失和目標框回歸損失整合在一起,提高了整個網絡的分類性能[12],多任務損失函數的定義如下:
L(p,u,tu,v)=Lcls(p,u)+λ[u≥1]Lloc(tu,v)
(1)
式中,u表示候選框所對應的目標的真實類別,[u≥1]表示,當u大于等于1時,取1,否則取0。p為輸出類別u對應的概率;Lcls(p,u)為分類損失,定義如下:
Lcls(p,u)=-lnpu
(2)

(3)
式中,SL1為SmoothL1Loss,定義如下:
(4)
RPN網絡是一個全卷積網絡用來提取候選框,它將任意大小的圖像作為輸入,輸出的是一系列矩形的目標候選框,并且每一個候選框都有相對應的得分。RPN網絡基本流程:先將通過共享卷積層得到的特征圖輸入至卷積網絡;再用滑動窗口在特征圖上滑動,每個滑窗的位置通過卷積層映射出一個低維的特征向量,并且為每個滑窗的位置考慮k個anchor boxes(對于一個W*H的特征圖,就會產生W*H*k個Region Proposals);再將低維的特征向量輸入兩個并行的卷積層:一個對候選框進行回歸修正位置(保存對原有位置的四個偏移量:4*k),另一個對候選區域的前景背景打分(2*k)。
RPN的目標函數是分類和回歸損失的和,分類中采用的是SoftMax分類,回歸中采用的是Smooth_L1_Loss。RPN的總體損失函數定義為:
(5)


(6)
(7)
Faster R-CNN網絡的改進之處在于提出了RPN網絡代替原有的Selective Search算法提取Region Proposals,并對兩個網絡的卷積層進行特征共享。這兩個改進使得Faster R-CNN相較于Fast R-CNN生成的候選框質量更好,速度更快,精度也更高。Faster R-CNN的算法流程如圖1所示。

圖1 Faster R-CNN 流程圖
Faster R-CNN的具體流程:
1)將任意大小的圖像輸入Fast R-CNN網絡,經過CNN網絡向前傳播進行特征提取,將得到的特征分別輸入給RPN網絡和Fast R-CNN網絡的后續卷積層;
2)特征圖輸入給RPN網絡后,得到候選框以及候選框相應的scores,并采用NMS算法對scores進行篩選將得分高的前N個候選框輸入ROI pooling層;
3)特征圖輸入Fast R-CNN網絡的后續卷積層后,得到高維的特征圖,得到的高維特征圖會與經RPN網絡得到的Region Proposals一起輸入RoI Pooling層中,進行特征映射;
4)后續與Fast R-CNN相同,通過全連接層得到兩個輸出,一個使用Softmax多分類做目標識別得到目標的類別,另一個是進行回歸模型對目標邊框進行位置和大小的調整得到回歸后的bounding box。
在Faster R-CNN網絡結構中,僅使用特征提取層的最后一層卷積層提取的特征信息來預測目標的檢測結果,相應的文獻結果表明Faster R-CNN的檢測結果不錯,但是在小目標的提取上還存在著缺陷,小目標的檢測也是目前目標檢測技術中需要攻克的難點。而遙感圖像中目標的特點就有背景信息過多,并存在數目較多且相鄰過近的小目標等。
對于卷積神經網絡提取的特征信息來說,包含的信息會隨著卷積層的深度而改變,低層卷積層提取的特征信息包含了底層的細節特征,高層的卷積層提取的特征信息包含了高層的語義特征。由于遙感圖像中存在數目較多且相鄰過近的小目標,在進行目標檢測時,理論上利用多層特征信息的檢測效果比僅利用單層特征信息的檢測效果好。因此,本文將通過訓練結合FPN算法思想的Faster R-CNN網絡模型,對遙感圖像飛行器進行檢測驗證。
FPN的基本思想:利用不同尺度的特征信息來預測不同尺度大小的目標,具體的結構如圖2所示。

圖2 FPN結構圖
其主要分為兩個流程:自底向上和自頂向下。
自底向上的過程:即普通的卷積網絡經過前饋計算提取特征的過程,如圖2所示,假設提取的特征為{C2,C3,C4,C5}。
自頂向下的過程:包含上采樣和橫向連接兩個步驟。首先將自底向上過程提取的特征{C2,C3,C4,C5}進行采樣,使得高層特征的尺度能夠滿足與低層的特征進行橫向連接的尺度大小,然后把得到的采樣特征與底層特征進行像素之間的相加,即橫向連接,得到特征{P2,P3,P4,P5}。
將RPN與FPN相結合,在不同尺度的特征圖上分別提取固定尺度大小的anchor,根據特征尺度的不同從而得到尺度大小不同的anchors,FPN+RPN的網絡結構如圖3所示。
在滿足RPN和Fast R-CNN結構都使用FPN結構后,整體網絡結構示意圖如圖4(b)所示,圖4為Faster R-CNN采用FPN算法前后對比圖。
在具有FPN結構的Faster R-CNN網絡架構中,根據如下公式確定的ROI在何種尺度的特征圖上進行映射:
(8)
其中,k對應的是FPN中的Pk層,w和h對應的是ROI的寬和高。

圖3 FPN+RPN網絡結構

圖4 Faster R-CNN不同結構對比圖
本文對遙感圖像的檢測對象是遙感圖像中的飛行器,如圖5所示。
檢測的過程包括兩個部分:模型的訓練階段和測試階段,整個訓練過程圖6所示。
1)訓練階段,通過Caffe框架構建FPN+Faster RCNN網絡;用預訓練好的卷積神經網絡模型,給自己構建的網絡賦初值;最后用自己的數據集,對自己的網絡進行訓練,得到需要的檢測模型。

圖5 數據集示例
2)檢測階段,使用預備好的測試數據集對生成的模型進行檢測,得到檢測結果,判斷模型的好壞。

圖6 模型訓練流程圖
訓練過程中,為了彌補數據樣本集過小的情況,使用的數據集除了由武漢大學收集的DOTA和中國科學技術大學實驗室收集的UCAS-AOD兩個數據集中包含的飛行器部分之外,還額外在網絡上搜集了部分含有飛行器的遙感圖像。然后對總的數據集進行一些預處理,包括對圖像進行幾何變換(水平翻轉,任意角度的旋轉,隨機的裁剪等),還對圖像隨機地添加了不同的噪聲以及遮擋。最終得到的數據集圖片數量為3000張。
實驗采用Caffe深度學習平臺,GPU型號為GTX1080ti。其中,預訓練模型為Resnet結構在Imagenet數據集上進行分類訓練的模型,使用該模型的參數分別給本文中要訓練的網絡進行參數初始化;然后對不同的網絡進行檢測模型的訓練,得到相應訓練模型。實驗中訓練了從單一的Faster R-CNN網絡結構到結合FPN思想的Faster R-CNN網絡結構,分別驗證了提取不同層的特征信息時,網絡模型的檢測準確率。卷積層特征提取的層次分布如圖7所示。

圖7 卷積層特征提取層次圖
測試過程中,將相同的測試集對不同的模型(提取不同層次的特征訓練得到的不同模型)分別進行測試,得到如表1的結果,mAP表示的是目標對應為飛行器時檢測結果的平均準確率。
表1中,每行代表的是增添FPN結構后,采用不同的尺度的特征圖進行預測,訓練模型的檢測結果。其中第6行模型的網絡結構等價于使用單一特征的原始Faster R-CNN網絡結構。實驗結果表明,對于遙感圖像中的飛行器類別的檢測:利用多尺度特征進行預測的結果好于單一尺度特征預測的結果;其中,結合P2-P5尺度的特征信息能達到預測的最好結果。實驗1-4,6表明,結合特征尺度數目越多,預測結果準確率越高,但當結合的特征信息全面后,再增加其他尺度特征信息對飛行器的檢測結果不會有太大影響;實驗結果4-6表明,增添低層特征信息后飛行器預測結果提升了5%左右;實驗結果6-7表明,僅有低層特征信息的預測結果沒有僅有高層特征信息的預測結果好,也表明僅有底層的細節信息的檢測模型難以得到更準確的預測結果。

表1 不同訓練模型之間的mAP對比
圖8和圖9分別展示了兩個不同網絡結構的檢測結果示例:基于Faster RCNN網絡模型和基于Faster RCNN+FPN(結合了P2-P5尺度的特征信息)網絡模型的檢測結果。首先是準確度,圖8中的相對較大目標以及距離較遠的目標識別率還是比較好的,但是遇到小目標以及相鄰較近的目標時,就會存在漏檢的狀況;而圖9中對應的模型基本上解決了小目標識別難的問題,距離較近的目標也沒有漏檢,并且對于目標的識別率也比圖8對應的網絡模型要高。其次,就目標定位方面,圖8中的檢測結果目標框比圖9中更精準;對于距離較近的目標也能夠很好的定位,不會有目標框的漏檢,同時相較于圖8,圖9對應的模型標定的目標框更精準。
圖9對應的檢測模型,由于使用FPN思想的網絡結構模型中不止包含了高層語義信息,還包含了底層的細節信息,使得整個模型包含的參數更多,模型比僅使用Faster R-CNN算法的模型要大。由實驗結果圖所示,檢測過程中圖9對應的模型檢測同一幅圖像中的目標時,所花的時間比圖8對應的模型檢測時間要長。

圖8 基于Faster RCNN網絡模型的檢測結果示例

圖9 基于Faster RCNN+FPN網絡模型的檢測結果示例
本文基于對Faster R-CNN和FPN算法的研究,分別訓練了采用不同的尺度的特征圖的檢測模型,并在遙感圖像飛行器類別上進行驗證。使用深度學習的方法對遙感圖像進行檢測識別,能避免使用傳統算法時遇到的一些問題,諸如:需要依賴人工設計特征,檢測過程繁瑣等。從不同模型實驗結果的對比來看,結合P2-P5層的特征對于遙感圖像飛行器的檢測效果最好,其準確率能夠達到98.2%。僅使用Faster R-CNN算法的模型能夠對遙感圖像進行檢測,但增加了FPN算法思想的模型結果更為精準。從整個檢測過程來說,基于深度學習的目標檢測方法,能夠應用于遙感圖像的目標檢測。針對待檢測數據集不同的特點,對基礎檢測框架進行相應的改進能夠使得檢測結果更為精準。
目前,本文研究的Faster R-CNN+FPN的方法可以準確地對遙感圖像中目標進行準確的識別和定位,并且獲得的結果較好。但是整個模型仍然存在可以優化的地方,比如:對于一些特殊環境的軍事場景下的目標檢測,對目標候選框更精準的定位以及減少模型參數等。這些問題都是可供研究的方向,本文通過優化基礎的Faster R-CNN網絡結構訓練檢測模型,為軍事上的圖像檢測提供一種新的方向,也為后續自動目標檢測技術的研究提供新的方向。