牛 戈,陳小前,季明江,郭鵬宇,劉 勇,冉德超
(軍事科學(xué)院 國防科技創(chuàng)新研究院,北京 100071)
信息化時代使深度學(xué)習技術(shù)突飛猛進,遙感領(lǐng)域相關(guān)工作也因深度學(xué)習的接入融合而不斷發(fā)展。近年來,遙感目標檢測由基于人工提取特征的傳統(tǒng)方法,發(fā)展到以神經(jīng)網(wǎng)絡(luò)模型為驅(qū)動,對特征進行提取、學(xué)習并產(chǎn)生檢測結(jié)果的方法,算法的檢測精度以及運行速度都有大幅提升[1]。針對光學(xué)遙感圖像的艦船目標檢測作為海運交通、國防預(yù)警等領(lǐng)域的重要應(yīng)用技術(shù),有著不可替代的戰(zhàn)略意義。特別是隨著嵌入式智能圖像處理平臺的快速更新,艦船目標檢測算法的在軌應(yīng)用迎來了新的發(fā)展,也給嵌入式遙感圖像艦船目標智能檢測研究帶來了新的挑戰(zhàn)。
回顧目標檢測發(fā)展歷史,在AlexNet 完善了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[1]后,2014 年以區(qū)域建議為核心技術(shù)的R-CNN[2]的誕生,標志著目標檢測全面進入深度學(xué)習時代。經(jīng)典的目標檢測算法可劃分為Anchorbased、Anchor-free 兩類。Anchor-based 類目標檢測算法通過Anchor 機制對圖像中設(shè)定的各個錨點生成密集的錨框,使得網(wǎng)絡(luò)可以針對這些錨框進行邊界框回歸和目標分類,主流的Anchor-based 類算法有Faster R-CNN[3]、FPN[4]、YOLO[5-6]、SSD[7]、Retina-Net[8]等。Anchor-based 類算法需 要設(shè)定一些超參數(shù),例如錨框長寬比、尺度和交并比(Intersection-over-Union,IoU)閾值等,參數(shù)的設(shè)定一定程度依賴先驗知識,并且由于生成錨框數(shù)量過多,可能產(chǎn)生很多不包含目標的冗余框,從而造成正負樣本比例嚴重失衡。Anchor-free 類算法將檢測分為確定物體中心和4 條邊框這2 個子問題,擁有更大更靈活的解空間和更少的Anchor 計算量,主流的Anchor-free 類算法有DenseBox[10]、YOLO[11]、Corner-Net[12]、Center-Net[13]等。Anchor-free 檢測算法雖然優(yōu)點很多,但當前算法的正負樣本不均衡的問題嚴重,并且當圖像中2 個目標中心點重疊時,可能會產(chǎn)生語義模糊問題,從而導(dǎo)致檢測結(jié)果不穩(wěn)定。
遙感圖像中的目標具有背景復(fù)雜、旋轉(zhuǎn)排列緊密、尺度變化大且呈長尾分布等特點,這些特點也是遙感圖像目標檢測的難點,經(jīng)典目標檢測算法在遙感數(shù)據(jù)集中的檢測效果較差。最近,基于深度學(xué)習的遙感目標檢測算法已經(jīng)取得了一定進展:Gliding Vertex 采用Faster R-CNN 結(jié)構(gòu)[14],通過改變傳統(tǒng)邊界框的表示方式避免了四邊形角點排序,實現(xiàn)了遙感目標密集排列下的旋轉(zhuǎn)框檢測;文獻[15]針對未來衛(wèi)星在軌遙感目標檢測問題,改進YOLOv3網(wǎng)絡(luò),使用輕量化特征提取網(wǎng)絡(luò)結(jié)合基于IoU 的改進版聚類算法,在加快算法運行速度的同時提升了檢測精度;SCRDet 通過引入注意力機制弱化背景特征[16],結(jié)合通道注意力和像素注意力網(wǎng)絡(luò)增強了對小目標的檢測效果;R3Det 為保持特征一致性[17],設(shè)計出FRM 模塊產(chǎn)生新的特征圖,通過改善特征不對齊問題,達到較高的遙感目標檢測精度。在遙感圖像艦船檢測方面,2017 年的RR-CNN[18]基于兩階段目標檢測算設(shè)計了RRoI 池化層提取旋轉(zhuǎn)目標特征,實現(xiàn)了艦船目標的旋轉(zhuǎn)邊框回歸;RoI Transformer[19]作為3 階段檢測算法,通過RRoI Learner 和RRoI Warping 兩部分模塊將區(qū)域生成網(wǎng)絡(luò)(Region Proposal Network,RPN)輸出的水平檢測框變換為旋轉(zhuǎn)檢測框,在不增加錨點數(shù)量的前提下實現(xiàn)更精確的旋轉(zhuǎn)-感興趣區(qū)域(Region of Interest,RoI)的獲取;文獻[20]通過改進Faster R-CNN 網(wǎng)絡(luò),采用雙路特征提取骨干網(wǎng)結(jié)合MFPN 網(wǎng)絡(luò)進行檢測,在第2 階段提出自適應(yīng)旋轉(zhuǎn)區(qū)域生成網(wǎng)絡(luò)產(chǎn)生旋轉(zhuǎn)框;RRPN[21]在Faster R-CNN 基礎(chǔ)上將旋轉(zhuǎn)框融入?yún)^(qū)域提取網(wǎng)絡(luò)RPN 中,將RoI Pooling 改進為Rotation RoI Pooling 并在優(yōu)化過程中加入角度回歸實現(xiàn)旋轉(zhuǎn)目標檢測。這些方法在HRSC2016 數(shù)據(jù)集[22]或DOTA 數(shù)據(jù)集[23]上都取得了較好的檢測結(jié)果,但針對艦船目標檢測任務(wù)仍有改進空間。
為了更精確定位和分類遙感圖像艦船目標,本文以Anchor-based 方法中的Retina-Net 為基礎(chǔ)框架,改進特征提取骨干網(wǎng)絡(luò),加入基于通道注意力機制的壓縮-激勵(Squeeze and Excitation,SE)模塊[24],提升算法對感受野的自適應(yīng)能力。通過特征重建模塊在精煉階段重建特征圖緩解特征不對齊問題,融合水平錨框與旋轉(zhuǎn)錨框檢測策略,專注提升遙感數(shù)據(jù)集中艦船類別的檢測精度,并評估了算法在模擬星載嵌入式智能圖像處理平臺上應(yīng)用的檢測精度和速度。
本文選用一階段Anchor-based 的Retina-Net 為算法框架,在不犧牲檢測速度的前提下實現(xiàn)更高精度的艦船目標檢測,通過Focal Loss 損失函數(shù)緩解目標類不平衡的情況,從根本上改善了一階段檢測器準確率低的問題,并且通過多尺度特征融合網(wǎng)絡(luò)FPN 提高了多尺度目標的檢測效果。遙感圖像中的目標尺寸普遍較小,并且呈任意旋轉(zhuǎn)、密集排列,給檢測算法帶來了極大的挑戰(zhàn)。本文設(shè)計實現(xiàn)的檢測算法結(jié)構(gòu)如圖1 所示。先將預(yù)處理后的圖像數(shù)據(jù)送入加入SE 模塊的骨干網(wǎng)絡(luò)來提取特征,將得到的P3~P7 特征圖來構(gòu)建特征金字塔,自上而下結(jié)合橫向連接的結(jié)構(gòu),對含有更強語義信息的深層特征的表達進行了加強。每層特征金字塔分別連接分類子網(wǎng)絡(luò)和回歸子網(wǎng)絡(luò),將2 個子網(wǎng)的組合輸出進行特征重建,重建后的新特征圖再次經(jīng)過分類和回歸子網(wǎng),即完成一次精煉階段,級聯(lián)部分設(shè)定2 個不同閾值的精煉階段,最終輸出得到旋轉(zhuǎn)目標的檢測結(jié)果。
圖1 算法結(jié)構(gòu)框圖Fig.1 Block diagram of algorithm structure
深度學(xué)習時代的目標檢測算法通常構(gòu)建在CNN 分類網(wǎng)絡(luò)之上。近年來,注意力機制技術(shù)成為了目標檢測的熱點,SENet 從通道層面入手,設(shè)計了通道注意力機制的CNN 分類網(wǎng)絡(luò),使網(wǎng)絡(luò)學(xué)習不同通道特征的重要程度,能夠自適應(yīng)地調(diào)整各通道的特征響應(yīng)值。SENet 提出SE 模塊,先將圖像通過卷積層后產(chǎn)生的特征圖壓縮(Squeeze),把特征圖各個通道包含的所有信息編碼為全局特征,具體采用全局平均池化(Global Average Pooling);之后通過激勵(Excitation)操作學(xué)習并調(diào)整各個通道的權(quán)重,具體由1×1 點卷積實現(xiàn)Bottleneck 結(jié)構(gòu),即2 個全連接層(Fully Connected Layers,F(xiàn)C),其中,第1 個FC 使維度降低,然后通過激活函數(shù)ReLU,再由第2個FC 恢復(fù)至原始通道維度并使用Sigmoid 函數(shù)激活,最后SE 模塊的輸出與原特征圖作乘積更新原始特征圖。
如 圖1所示,將SE 模塊嵌入ResNeXt 或ResNet 殘差學(xué)習分支中,算法模型增加了不到10%的參數(shù)量,而計算量僅增加不到1%。整個過程能夠讓算法更加關(guān)注信息量大的通道特征,一定程度抑制了不重要的信息,賦予了算法更強的辨別能力,這對于背景復(fù)雜的遙感圖像檢測而言尤為重要。
目標長寬比大以及任意旋轉(zhuǎn)的特性是艦船目標檢測的難點,任意角度傾斜的艦船會導(dǎo)致其水平邊界框中可能含有大量的冗余區(qū)域以及復(fù)雜的背景噪聲。如圖2 所示,水平邊界框內(nèi)的艦船目標因為存在大量噪聲與重疊區(qū)域,在非極大值抑制(Non-Maximum Suppression,NMS)處理后可能會被丟棄,極大影響了艦船檢測算法的性能。為了緩解上述問題,本文采用旋轉(zhuǎn)檢測方法,通過旋轉(zhuǎn)邊界框減少冗余區(qū)域的產(chǎn)生,加強遙感圖像中密集艦船目標的檢測。
圖2 水平邊界框與旋轉(zhuǎn)邊界框示例Fig.2 Illustration of horizontal bounding boxes and oriented bounding boxes
為了實現(xiàn)基于Retina-Net 的旋轉(zhuǎn)目標檢測,本文使用五參數(shù)法(x、y、w、h、θ)表示任意方向邊界框,并在回歸子網(wǎng)中加入角度預(yù)測,算法中回歸旋轉(zhuǎn)邊界框的表示為
式中:x、y、w、h、θ分別為矩形框的中心坐標、寬、高和旋轉(zhuǎn)角度;w為與圖像水平方向x軸成銳角θ的一邊,θ的范圍在[-π/2,0);x、xa、x′分別為邊界框、原始錨框、預(yù)測框,y、w、h、-θ以此類推。
多任務(wù)損失定義如下:
式 中:N為原始錨框數(shù)量;t′n為目標和 背景且分 別取 值1 或0;v′nj為預(yù)測的 偏移向量;vnj為真實框 的向量;tn為目標種類的標簽;pn為不同種類經(jīng)過Sigmoid 函數(shù)計算出的概率分布;超參數(shù)λ1、λ2為用于平衡兩類損失值,默認設(shè)置為1;Lreg、Lcls分別為SSmoothL1損失和焦點損失(FFocalloss)函 數(shù);αn設(shè)為0.25;γ設(shè)為2。
Anchor-based 類算法中,錨框的設(shè)定決定著檢測算法的性能。在Retina-Net 中預(yù)設(shè)水平錨框和旋轉(zhuǎn)錨框都可以實現(xiàn)旋轉(zhuǎn)框檢測,2 種方法的區(qū)別在于水平框可以用較少的錨框匹配更多的目標,但也會導(dǎo)致錨框引入背景噪聲而影響精度;預(yù)設(shè)旋轉(zhuǎn)框需要對每個錨點設(shè)置更多的初始錨框旋轉(zhuǎn)角度,雖然減少了邊界框內(nèi)的背景噪聲,但是大大增加了算法的計算量。為了平衡算法的速度和精度,本文選擇兩類錨框結(jié)合的策略,即先使用水平錨框以確保高召回率地選中目標區(qū)域,而后使用旋轉(zhuǎn)精煉錨框緩解密集排列目標引起的噪聲問題。
Retina-Net屬于Anchor-based 類方法,多錨框的設(shè)置保證了一階段算法的精度。雖然加入旋轉(zhuǎn)錨框有助于遙感目標檢測,但由于計算傾斜交并比分數(shù)對角度變化十分敏感,輕微的角度變化就會造成IoU 分數(shù)驟降從而可能丟棄目標,所以檢測框的回歸效果對旋轉(zhuǎn)目標檢測精度影響很大。已有研究表明,級聯(lián)檢測器能夠大大提高單階段算法的分類和定位精度[25-26]。
為實現(xiàn)高精度遙感目標檢測,本文加入級聯(lián)的精煉階段旨在提高旋轉(zhuǎn)目標檢測的召回率。通過在網(wǎng)絡(luò)中不同位置設(shè)置多個IoU 閾值,在原始Retina-Net 算法中設(shè)置目標和背景的IoU 分別為0.5 和0.4,在首次精煉階段設(shè)置IoU 的2 個門限為0.6 和0.4,第2 次精煉階段設(shè)置IoU 的2 個門限為0.7 和0.6。精煉階段的損失定義如下:
式中:αi為不同精煉階段的平衡系數(shù),默認設(shè)為1;Li為第i個精煉階段的損失。
Retina-Net 作為單階段算法因為沒有使用兩階段算法中的RoI-Pooling 或RoI-Align 特征提取方法,忽略了特征一致性,導(dǎo)致檢測精度相對較低。加入級聯(lián)的精煉階段后,雖然精度有所提升,但精煉階段的檢測器仍使用著與前一階段相同的特征映射,忽略了通過學(xué)習得到的邊界框位置變化。
如圖3 所示,綠色線段框是邊界框,橙色點線框是原始錨框,紅色實線框是通過在特征圖黑色特征點對應(yīng)的錨框所學(xué)習得到的錨框(Learned Anchor,LA),而黑色特征點是使用右側(cè)灰色卷積核在其相鄰的區(qū)域卷積得到的。這些相鄰區(qū)域映射到原圖即為左側(cè)淡黃色陰影區(qū)域,而淡黃色陰影區(qū)域并未包含整個艦船目標,尤其對于長寬比大或者尺寸小的目標,上述特征不對齊問題使得算法用這個區(qū)域預(yù)測并不準確。
圖3 特征不對齊示意圖Fig.3 Diagram of feature misalignment issue
受R3Det 啟發(fā),為保證速度這一方面,本文將前一階段回歸得到的錨框的中心位置信息通過插值重新編碼映射回特征圖的特征點,疊加在原特征圖上改變特征點的像素值,從而重建特征圖,如圖4所示。具體在算法第1 階段產(chǎn)生水平框檢測結(jié)果后按照如下式的特征插值方法設(shè)置2 個級聯(lián)精煉模塊:
圖4 特征重建示意圖Fig.4 Diagram of feature reconstruction
式中:vvallt、vvalrt、vvalrb、vvallb分別為左上、右上、左下、右下特征點對應(yīng)的像素值;aarearb、aarealb、aarealt、aareart分別為左上、右上、左下、右下區(qū)域的面積。
精煉階段為平衡效率,每個特征點僅選取置信度最高的邊界框進行處理,每個特征圖經(jīng)過特征重建模塊,都會生成新的特征圖,從而在下一階段的分類和回歸子網(wǎng)改善特征不對齊問題。不同于Faster R-CNN 中的RoIAlign 需要對每個RoI 框采樣7×7×4 個點進行插值,本文僅在精煉階段對每個經(jīng)過NMS 后保留下的錨框中心點進行插值,相比RoIAlign 具有較大的速度優(yōu)勢。
本文選擇高性能圖像工作站和模擬星載嵌入式智能圖像處理平臺作為實驗環(huán)境。其中,高性能圖像工作站配置2 塊NVIDIA RTX 3080 GPU,Inteli9 10920X 處理器,32 GB內(nèi)存,軟件環(huán)境 為Python 3.7.9、PyTorch 1.7.1。模擬星載嵌入式智能圖像處理平臺使用NVIDIA Jetson TX2 板載計算機,配置一塊NVIDIA Pascal GPU,64 位ARMv8 處理器,8 GB 內(nèi)存,軟件環(huán)境為Python 3.7.9、PyTorch1.3.0。測試數(shù)據(jù)集選擇遙感檢測領(lǐng)域廣泛使用的HRSC2016 數(shù)據(jù)集和DOTA 數(shù)據(jù)集,評估指標選用VOC2007平均精度(Average Precision,AP)。在訓(xùn)練過程中,對輸入圖像進行隨機翻轉(zhuǎn)、旋轉(zhuǎn)、色彩變換等數(shù)據(jù)增強操作,使用動量優(yōu)化器(Momentum Optimizer),權(quán)重衰減率設(shè)置為0.000 1,動量設(shè)置為0.9,在每個特征金字塔層預(yù)設(shè)9種錨框長寬比分別為1、1/2、2、1/3、3、1/5、5、1/7、7。
HRSC2016 是專門針對艦船目標檢測的光學(xué)遙感圖像數(shù)據(jù)集,數(shù)據(jù)主要來自Google Earth,收集的艦船主要來自摩爾曼斯克、埃弗里特、新羅德島港口以及梅波特、諾???、圣地亞哥海軍基地,共計1 680 張圖像。經(jīng)過劃分后的數(shù)據(jù)集包含訓(xùn)練集436張圖像,共1 207 個實例;驗證集181 張圖像,共541個實例;測試集444 張圖像,共1 228 個實例。每張圖像包含1~3 只艦船,圖像分辨率在(300×300)~(1 500×900)之間。數(shù)據(jù)集位置標注信息既有用左上角點(xmin,ymin)和右下角點(xmax,ymax)標注的水平矩形框,也有通過中心點(xc,yc)、寬w、高h和角度θ表示的旋轉(zhuǎn)矩形框。訓(xùn)練過程中將原圖尺度變換為800×800,設(shè)置72 個時期,使用隨機梯度下降SGD 策略,基礎(chǔ)學(xué)習率(base_lr)為0.01,根據(jù)不同骨干網(wǎng)絡(luò)調(diào)整每次訓(xùn)練的樣本數(shù)目(batch_size),學(xué)習率為base_lr/16×batch_size,在第48 和66 個時期通過線性預(yù)熱方法調(diào)整學(xué)習率。
本文針對艦船目標檢測進行優(yōu)化,應(yīng)用通道注意力機制的骨干網(wǎng)絡(luò)使算法更加關(guān)注遙感圖像中的目標,特征重建使得對長寬比大的艦船目標檢測有了更好的效果,平均精度達到90.20,相比其他算法平均精度更高,且在相似精度下算法檢測速度更快,檢測結(jié)果如圖5 所示。ROI-Transformer、RRPN、Gliding Vertex 等針對遙感目標檢測任務(wù)改進的兩階段算法的檢測精度普遍較高,因為這些算法更有效利用了輸入圖像的底層特征映射,對小目標檢測更加友好,但相對單階段算法更復(fù)雜,見表1。
表1 HRSC2016 數(shù)據(jù)集測試結(jié)果Tab.1 Test results on HRSC2016 data set
圖5 HRSC2016 數(shù)據(jù)集部分測試結(jié)果Fig.5 Part of the test results on HRSC2016 data set
DOTA 數(shù)據(jù)集從Google Earth、中國衛(wèi)星數(shù)據(jù)應(yīng)用中心、衛(wèi)星JL-1 和GF-2 等來源收集了共2 806張航拍圖像,圖像尺寸分布在(800×800)~(4 000×4 000)之間,標注的實例含15 個類別:飛機、棒球場、橋梁、田徑場、大型汽車、小型汽車、艦船、網(wǎng)球場、籃球場、油罐、足球場、交通環(huán)島、海港、游泳池、直升飛機,共188 282 個人工標注實例。實例的邊界框使用4 個角點標注以水平矩形或任意四邊形的方式呈現(xiàn),任意四邊形的4 個角點按順時針方向排序,以(x1、y1、x2、y2、x3、y3、x4、y4)形式標注并儲存在圖像對應(yīng)的文本文件中,各類目標的旋轉(zhuǎn)角度分布均衡,但存在目標類別不平衡、目標尺寸極小的問題。
使用數(shù)據(jù)集中原始圖像的1/2 作為訓(xùn)練集,1/6作為驗證集,1/3 作為測試集,評估方式采用VOC2007 平均精度計算方法。因DOTA 數(shù)據(jù)集原始圖像尺寸過大,直接訓(xùn)練會導(dǎo)致檢測效果很差,故將DOTA 數(shù)據(jù)集裁切為600×600 的子圖,設(shè)置重疊為100 個像素,裁切好的DOTA 數(shù)據(jù)集共20 672 張圖像。訓(xùn)練時再將圖像放大到800×800,設(shè)置24 個時期,學(xué)習率設(shè)置與HRSC2016 數(shù)據(jù)集相同,且在第12、16 和20 個時期通過線性預(yù)熱方法調(diào)整學(xué)習率。
通過對比表2 的實驗結(jié)果,對DOTA 測試集中的937 張圖像進行測試并上傳到DOTA 數(shù)據(jù)集官方服務(wù)器評估,最后,得到艦船目標類別檢測平均精度為87.52,部分檢測結(jié)果如圖6 所示。
表2 DOTA 數(shù)據(jù)集測試結(jié)果Tab.2 Test results on DOTA data set
圖6 DOTA 數(shù)據(jù)集部分測試結(jié)果Fig.6 Part of the test results on DOTA data set
將算法模型部署在模擬星載嵌入式智能圖像處理平臺并測試HRSC2016 數(shù)據(jù)集,表3 的實驗結(jié)果表明:本文方法在模擬星載嵌入式智能圖像處理平臺上檢測HRSC2016 數(shù)據(jù)集速度最快高可達到1.3 幀/s,對應(yīng)模型容量為405 MB,另外,檢測平均精度最高可達到90.20,能夠有效檢測艦船目標。
表3 NVIDIA Jetson TX2 平臺測試結(jié)果Tab.3 Test results on NVIDIA Jetson TX2 platform
本文針對遙感圖像艦船旋轉(zhuǎn)目標檢測方法進行研究,通過引入注意力機制SE 模塊增強網(wǎng)絡(luò)提取遙感圖像特征圖信息,針對艦船長寬比大、易受特征不對齊問題的影響,使用級聯(lián)特征重建模塊緩解該問題,在保證檢測速度的前提下有效提高了檢測精度。在模擬星載嵌入式智能處理平臺部署本算法檢測艦船目標,使用405 MB 模型可每秒處理1.3 幀圖像,對應(yīng)平均精度可達89.01,具備在軌應(yīng)用的可能。后續(xù)將圍繞算法模型容量壓縮等方面,在保證平均精度的同時進一步提高檢測速度。此外,該算法在航天系統(tǒng)部裝備部主辦的第2 屆全國“天智杯”科目“小樣本條件下寬幅光學(xué)衛(wèi)星圖像艦船目標智能快速篩選”中獲得第3 名,同樣驗證了本文所提方法的有效性。