李 靚,賀柏根,霍家道
(江蘇自動化研究所,江蘇 連云港 222061)
遙感圖像的目標檢測,是軍事領域的重要研究方向之一。如無人機、無人艇等具有光電傳感系統(tǒng)的很多設備都涉及圖像的目標檢測技術(shù)。但目前,這種涉及目標檢測技術(shù)并且需要識別定位的設備大多數(shù)都還采用的是“人在回路中”的控制模式?!叭嗽诨芈分小钡目刂颇J绞侵覆僮鲉T在經(jīng)過第一次指令輸入后,仍有機會進行第二次或不間斷的指令更正,即通過人為操作更改對目標的定位和檢測識別。這種方式雖能夠很好地進行目標檢測,但仍然存在著一些缺陷:操作員精力消耗大,工作強度大;且對于經(jīng)驗性操作,有經(jīng)驗的操作員的準確性更高;不同的操作人員在相同情境下判斷方法會影響判斷的結(jié)果;在連續(xù)場景,尤其是背景復雜或者同一場景多個目標的情況下,操作人員容易漏掉目標或做出誤判。
因此,自動目標檢測是一個非常值得研究的方向。在傳統(tǒng)的自動目標檢測中通常采用復雜的人工特征提取方法,比如說:尺度不變特征轉(zhuǎn)換[1](Scale-invariant Feature Transform, SIFT)、方向梯度直方圖[2](Histogram of Gradient, HoG)等,來獲取原始輸入中和目標有關(guān)的表達信息,并在提取的和目標有關(guān)的特征信息上學習分類器[3]。這些基于人工特征提取方法的檢測識別模型對于不同的目標任務,甚至是同一目標的不同種形態(tài),都需要仔細思考如何更好地提取目標特征。此外在提取特征時,丟失的有用信息也無法從分類訓練中再次復原。因此,總體來說,傳統(tǒng)的方法識別率并不太理想,而且耗時較長,時間的利用率較低,并且圖像中背景的多樣化以及復雜性會對目標產(chǎn)生干擾、不同的視角變化也會為目標識別帶來一定的挑戰(zhàn)。
近年來,目標檢測技術(shù)有了新的進展,卷積神經(jīng)網(wǎng)絡很好地應用于目標檢測。從2012年,Krizhevsky[4]等提出的AlexNet在大型圖像數(shù)據(jù)庫ImageNet[5]的圖像分類競賽中奪冠之后,各種深度學習檢測算法相繼被提出。目標檢測算法包括One-stage和Two-stage兩種。Two-stage方法主要的算法是RCNN系列。目前R-CNN框架已經(jīng)發(fā)展了幾代,從R-CNN到Fast R-CNN[6]到Faster R-CNN[7],圖像檢測的速度在保證正確率的情況下一直提高;從Faster R-CNN到Mask R-CNN[8],則基于像素級為目標檢測算法開啟新的研究方向,不僅能夠用物體框標出物體的位置,還能基于像素級描出物體的邊界輪廓。其中基于Faster R-CNN+Resnet的檢測網(wǎng)絡模型在VOC+COCO數(shù)據(jù)集上飛行器單類的檢測準確率能達到92.1%。由于遙感圖像中的目標數(shù)量無規(guī)律、目標可能過小或密集等原因,F(xiàn)aster R-CNN檢測模型不一定能發(fā)揮與實驗理論相當?shù)男Ч?/p>
因此本文將通過研究Faster R-CNN算法以及其相關(guān)優(yōu)化算法FPN進行遙感圖像飛行器的檢測,為軍事任務中的圖像檢測提供新的更為簡潔的研究方向。
Faster R-CNN算法由兩大模塊組成:RPN候選框提取模塊以及Fast R-CNN目標檢測模塊,通過共享卷積特征的方式將RPN和Fast R-CNN統(tǒng)一到一個網(wǎng)絡中,解決了提取Region Proposals過程中消耗大量時間的問題。
Fast R-CNN網(wǎng)絡關(guān)鍵的技術(shù)在于ROI池化層和輸出部分的多任務損失函數(shù)。
1) ROI池化層
2) 多任務損失函數(shù)
多任務損失函數(shù)將目標分類損失和目標框回歸損失整合在一起,提高了整個網(wǎng)絡的分類性能[12],多任務損失函數(shù)的定義如下:
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網(wǎng)絡是一個全卷積網(wǎng)絡用來提取候選框,它將任意大小的圖像作為輸入,輸出的是一系列矩形的目標候選框,并且每一個候選框都有相對應的得分。RPN網(wǎng)絡基本流程:先將通過共享卷積層得到的特征圖輸入至卷積網(wǎng)絡;再用滑動窗口在特征圖上滑動,每個滑窗的位置通過卷積層映射出一個低維的特征向量,并且為每個滑窗的位置考慮k個anchor boxes(對于一個W*H的特征圖,就會產(chǎn)生W*H*k個Region Proposals);再將低維的特征向量輸入兩個并行的卷積層:一個對候選框進行回歸修正位置(保存對原有位置的四個偏移量:4*k),另一個對候選區(qū)域的前景背景打分(2*k)。
RPN的目標函數(shù)是分類和回歸損失的和,分類中采用的是SoftMax分類,回歸中采用的是Smooth_L1_Loss。RPN的總體損失函數(shù)定義為:
(5)
(6)
(7)
Faster R-CNN網(wǎng)絡的改進之處在于提出了RPN網(wǎng)絡代替原有的Selective Search算法提取Region Proposals,并對兩個網(wǎng)絡的卷積層進行特征共享。這兩個改進使得Faster R-CNN相較于Fast R-CNN生成的候選框質(zhì)量更好,速度更快,精度也更高。Faster R-CNN的算法流程如圖1所示。
圖1 Faster R-CNN 流程圖
Faster R-CNN的具體流程:
1)將任意大小的圖像輸入Fast R-CNN網(wǎng)絡,經(jīng)過CNN網(wǎng)絡向前傳播進行特征提取,將得到的特征分別輸入給RPN網(wǎng)絡和Fast R-CNN網(wǎng)絡的后續(xù)卷積層;
2)特征圖輸入給RPN網(wǎng)絡后,得到候選框以及候選框相應的scores,并采用NMS算法對scores進行篩選將得分高的前N個候選框輸入ROI pooling層;
3)特征圖輸入Fast R-CNN網(wǎng)絡的后續(xù)卷積層后,得到高維的特征圖,得到的高維特征圖會與經(jīng)RPN網(wǎng)絡得到的Region Proposals一起輸入RoI Pooling層中,進行特征映射;
4)后續(xù)與Fast R-CNN相同,通過全連接層得到兩個輸出,一個使用Softmax多分類做目標識別得到目標的類別,另一個是進行回歸模型對目標邊框進行位置和大小的調(diào)整得到回歸后的bounding box。
在Faster R-CNN網(wǎng)絡結(jié)構(gòu)中,僅使用特征提取層的最后一層卷積層提取的特征信息來預測目標的檢測結(jié)果,相應的文獻結(jié)果表明Faster R-CNN的檢測結(jié)果不錯,但是在小目標的提取上還存在著缺陷,小目標的檢測也是目前目標檢測技術(shù)中需要攻克的難點。而遙感圖像中目標的特點就有背景信息過多,并存在數(shù)目較多且相鄰過近的小目標等。
對于卷積神經(jīng)網(wǎng)絡提取的特征信息來說,包含的信息會隨著卷積層的深度而改變,低層卷積層提取的特征信息包含了底層的細節(jié)特征,高層的卷積層提取的特征信息包含了高層的語義特征。由于遙感圖像中存在數(shù)目較多且相鄰過近的小目標,在進行目標檢測時,理論上利用多層特征信息的檢測效果比僅利用單層特征信息的檢測效果好。因此,本文將通過訓練結(jié)合FPN算法思想的Faster R-CNN網(wǎng)絡模型,對遙感圖像飛行器進行檢測驗證。
FPN的基本思想:利用不同尺度的特征信息來預測不同尺度大小的目標,具體的結(jié)構(gòu)如圖2所示。
圖2 FPN結(jié)構(gòu)圖
其主要分為兩個流程:自底向上和自頂向下。
自底向上的過程:即普通的卷積網(wǎng)絡經(jīng)過前饋計算提取特征的過程,如圖2所示,假設提取的特征為{C2,C3,C4,C5}。
自頂向下的過程:包含上采樣和橫向連接兩個步驟。首先將自底向上過程提取的特征{C2,C3,C4,C5}進行采樣,使得高層特征的尺度能夠滿足與低層的特征進行橫向連接的尺度大小,然后把得到的采樣特征與底層特征進行像素之間的相加,即橫向連接,得到特征{P2,P3,P4,P5}。
將RPN與FPN相結(jié)合,在不同尺度的特征圖上分別提取固定尺度大小的anchor,根據(jù)特征尺度的不同從而得到尺度大小不同的anchors,F(xiàn)PN+RPN的網(wǎng)絡結(jié)構(gòu)如圖3所示。
在滿足RPN和Fast R-CNN結(jié)構(gòu)都使用FPN結(jié)構(gòu)后,整體網(wǎng)絡結(jié)構(gòu)示意圖如圖4(b)所示,圖4為Faster R-CNN采用FPN算法前后對比圖。
在具有FPN結(jié)構(gòu)的Faster R-CNN網(wǎng)絡架構(gòu)中,根據(jù)如下公式確定的ROI在何種尺度的特征圖上進行映射:
(8)
其中,k對應的是FPN中的Pk層,w和h對應的是ROI的寬和高。
圖3 FPN+RPN網(wǎng)絡結(jié)構(gòu)
圖4 Faster R-CNN不同結(jié)構(gòu)對比圖
本文對遙感圖像的檢測對象是遙感圖像中的飛行器,如圖5所示。
檢測的過程包括兩個部分:模型的訓練階段和測試階段,整個訓練過程圖6所示。
1)訓練階段,通過Caffe框架構(gòu)建FPN+Faster RCNN網(wǎng)絡;用預訓練好的卷積神經(jīng)網(wǎng)絡模型,給自己構(gòu)建的網(wǎng)絡賦初值;最后用自己的數(shù)據(jù)集,對自己的網(wǎng)絡進行訓練,得到需要的檢測模型。
圖5 數(shù)據(jù)集示例
2)檢測階段,使用預備好的測試數(shù)據(jù)集對生成的模型進行檢測,得到檢測結(jié)果,判斷模型的好壞。
圖6 模型訓練流程圖
訓練過程中,為了彌補數(shù)據(jù)樣本集過小的情況,使用的數(shù)據(jù)集除了由武漢大學收集的DOTA和中國科學技術(shù)大學實驗室收集的UCAS-AOD兩個數(shù)據(jù)集中包含的飛行器部分之外,還額外在網(wǎng)絡上搜集了部分含有飛行器的遙感圖像。然后對總的數(shù)據(jù)集進行一些預處理,包括對圖像進行幾何變換(水平翻轉(zhuǎn),任意角度的旋轉(zhuǎn),隨機的裁剪等),還對圖像隨機地添加了不同的噪聲以及遮擋。最終得到的數(shù)據(jù)集圖片數(shù)量為3000張。
實驗采用Caffe深度學習平臺,GPU型號為GTX1080ti。其中,預訓練模型為Resnet結(jié)構(gòu)在Imagenet數(shù)據(jù)集上進行分類訓練的模型,使用該模型的參數(shù)分別給本文中要訓練的網(wǎng)絡進行參數(shù)初始化;然后對不同的網(wǎng)絡進行檢測模型的訓練,得到相應訓練模型。實驗中訓練了從單一的Faster R-CNN網(wǎng)絡結(jié)構(gòu)到結(jié)合FPN思想的Faster R-CNN網(wǎng)絡結(jié)構(gòu),分別驗證了提取不同層的特征信息時,網(wǎng)絡模型的檢測準確率。卷積層特征提取的層次分布如圖7所示。
圖7 卷積層特征提取層次圖
測試過程中,將相同的測試集對不同的模型(提取不同層次的特征訓練得到的不同模型)分別進行測試,得到如表1的結(jié)果,mAP表示的是目標對應為飛行器時檢測結(jié)果的平均準確率。
表1中,每行代表的是增添FPN結(jié)構(gòu)后,采用不同的尺度的特征圖進行預測,訓練模型的檢測結(jié)果。其中第6行模型的網(wǎng)絡結(jié)構(gòu)等價于使用單一特征的原始Faster R-CNN網(wǎng)絡結(jié)構(gòu)。實驗結(jié)果表明,對于遙感圖像中的飛行器類別的檢測:利用多尺度特征進行預測的結(jié)果好于單一尺度特征預測的結(jié)果;其中,結(jié)合P2-P5尺度的特征信息能達到預測的最好結(jié)果。實驗1-4,6表明,結(jié)合特征尺度數(shù)目越多,預測結(jié)果準確率越高,但當結(jié)合的特征信息全面后,再增加其他尺度特征信息對飛行器的檢測結(jié)果不會有太大影響;實驗結(jié)果4-6表明,增添低層特征信息后飛行器預測結(jié)果提升了5%左右;實驗結(jié)果6-7表明,僅有低層特征信息的預測結(jié)果沒有僅有高層特征信息的預測結(jié)果好,也表明僅有底層的細節(jié)信息的檢測模型難以得到更準確的預測結(jié)果。
表1 不同訓練模型之間的mAP對比
圖8和圖9分別展示了兩個不同網(wǎng)絡結(jié)構(gòu)的檢測結(jié)果示例:基于Faster RCNN網(wǎng)絡模型和基于Faster RCNN+FPN(結(jié)合了P2-P5尺度的特征信息)網(wǎng)絡模型的檢測結(jié)果。首先是準確度,圖8中的相對較大目標以及距離較遠的目標識別率還是比較好的,但是遇到小目標以及相鄰較近的目標時,就會存在漏檢的狀況;而圖9中對應的模型基本上解決了小目標識別難的問題,距離較近的目標也沒有漏檢,并且對于目標的識別率也比圖8對應的網(wǎng)絡模型要高。其次,就目標定位方面,圖8中的檢測結(jié)果目標框比圖9中更精準;對于距離較近的目標也能夠很好的定位,不會有目標框的漏檢,同時相較于圖8,圖9對應的模型標定的目標框更精準。
圖9對應的檢測模型,由于使用FPN思想的網(wǎng)絡結(jié)構(gòu)模型中不止包含了高層語義信息,還包含了底層的細節(jié)信息,使得整個模型包含的參數(shù)更多,模型比僅使用Faster R-CNN算法的模型要大。由實驗結(jié)果圖所示,檢測過程中圖9對應的模型檢測同一幅圖像中的目標時,所花的時間比圖8對應的模型檢測時間要長。
圖8 基于Faster RCNN網(wǎng)絡模型的檢測結(jié)果示例
圖9 基于Faster RCNN+FPN網(wǎng)絡模型的檢測結(jié)果示例
本文基于對Faster R-CNN和FPN算法的研究,分別訓練了采用不同的尺度的特征圖的檢測模型,并在遙感圖像飛行器類別上進行驗證。使用深度學習的方法對遙感圖像進行檢測識別,能避免使用傳統(tǒng)算法時遇到的一些問題,諸如:需要依賴人工設計特征,檢測過程繁瑣等。從不同模型實驗結(jié)果的對比來看,結(jié)合P2-P5層的特征對于遙感圖像飛行器的檢測效果最好,其準確率能夠達到98.2%。僅使用Faster R-CNN算法的模型能夠?qū)b感圖像進行檢測,但增加了FPN算法思想的模型結(jié)果更為精準。從整個檢測過程來說,基于深度學習的目標檢測方法,能夠應用于遙感圖像的目標檢測。針對待檢測數(shù)據(jù)集不同的特點,對基礎檢測框架進行相應的改進能夠使得檢測結(jié)果更為精準。
目前,本文研究的Faster R-CNN+FPN的方法可以準確地對遙感圖像中目標進行準確的識別和定位,并且獲得的結(jié)果較好。但是整個模型仍然存在可以優(yōu)化的地方,比如:對于一些特殊環(huán)境的軍事場景下的目標檢測,對目標候選框更精準的定位以及減少模型參數(shù)等。這些問題都是可供研究的方向,本文通過優(yōu)化基礎的Faster R-CNN網(wǎng)絡結(jié)構(gòu)訓練檢測模型,為軍事上的圖像檢測提供一種新的方向,也為后續(xù)自動目標檢測技術(shù)的研究提供新的方向。