黃佳琦,范軍芳,李蓓蓓
(1 北京信息科技大學高動態導航技術北京市重點實驗室,北京 100192;2 北京信息科技大學自動化學院,北京 100192;3 32381部隊,北京 100072)
近年來,隨著遙感圖像目標檢測技術[1]的突破性進展,由飛機或衛星拍攝的遙感影像,具有豐富的目標信息,遙感影像的目標識別技術廣泛應用于國防、國民經濟、社會生活等領域。在軍事戰爭中,飛行器上圖像導引頭對重要目標的檢測,將遙感數據信息轉化為目標情報,一方面能快速鎖定攻擊目標位置并進行精準打擊[2];另一方面有利于戰場形勢剖析,從而進一步制定精準而及時的軍事行動。因此遙感圖像中目標的實時檢測對社會穩定和國家安全具有重要的意義。
目標檢測[3]作為計算機視覺的基本問題,主要任務是識別圖片或視頻中人們感興趣的目標,獲取目標的大小,并進行分類和定位,遙感目標檢測是目標檢測的重要應用之一。傳統的遙感圖像目標檢測算法[4]是利用手工提取特征的方法,如模板匹配等,這類方法的特征魯棒性差,只適用于背景單調、抽象特征明顯的目標,實際應用環境下無法用于小而密集、尺度多變且成像質量較差的遙感圖像目標的檢測。然而,隨著高性能圖形處理器(graphics processing unit,GPU)的廣泛應用,基于深度學習的目標檢測模型成為遙感圖像領域的研究熱點。深度學習目標檢測方法[5-7]可以提取同一目標的豐富特征,利用大量的數據,通過深度學習完成模型訓練,應用訓練后的優秀模型進行目標檢測,使得算法泛化能力更強,更容易應用于實際場景。當前基于深度學習的遙感圖像目標檢測算法可以分為兩大類:一類是雙階段(two-stage)檢測算法,即基于候選區域(region proposal)的R-CNN系算法,包括R-CNN[8]、Fast R-CNN[9]、Faster R-CNN[10]和Mask R-CNN[11]等,這類算法需要先使用啟發式方法(selective search)或候選區域生成網絡(region proposal network)生成候選框,再通過卷積神經網絡(CNN)在候選區域上做分類與回歸;另一類是單階段(one-stage)檢測算法,以YOLO[12-17]和SSD[18]等為代表,是一種端到端的算法,不需要預先生成候選框,直接將目標框的定位問題轉化為回歸問題,進行特征提取、分類和定位回歸并得到大小、類別和位置信息。綜合比較這兩類方法,不難看出,單階段檢測算法速度更快,更適用于在嵌入式平臺上搭載,而雙階段較單階段檢測算法能更多的獲取目標特征,檢測精度更高。
上述算法模型都需要提前設定錨框的參數,如大小、數量等,要求預設錨框盡可能覆蓋或匹配目標的尺寸,生成一系列錨框作為待檢測的候選區域,再對這些候選框進行分類和定位回歸。錨框的參數要根據具體任務進行調節,由于錨框是提前設定好的,參數量較大,不能依據訓練過程自適應的調節參數,導致模型復雜度較高,計算量較大,一定程度上限制了該類算法的遷移和檢測速度與精度的提升。一般將在圖像中覆蓋區域較小,像素值在幾十像素甚至幾像素之間,分辨率較低的物體界定為小目標[19],在目標較多的遙感圖像中,錨框與小目標物體大小很難匹配,漏檢、誤檢的目標數量增多,算法無法很好的檢測出遙感圖像中小目標物體。而無錨框(anchor-free)的算法不需要提前預設錨框,通過預測關鍵點或中心域和真實標簽之間的置信度進行分類回歸,對小而密集和成像質量較差的遙感圖像目標檢測的適用性更強。2018年Law等[20]提出了CornerNet,將網絡對目標邊界框的檢測轉換為左上角和右下角一對關鍵點的檢測,但由于網絡過度關注邊緣和兩個角點,缺乏內部關鍵信息的學習,導致誤檢率較高,因此CornerNet在遙感圖像目標檢測上精度提升并不明顯。深度卷積單步法(FCOS)[21]則直接預測從目標框的邊緣到目標中心的距離來進行目標檢測,ExtremeNet[22]對目標框的4個頂點分別進行關鍵點預測,將預測結果進行幾何枚舉組合,再結合中心點預測以達到高質量的檢測結果;CenterNet[23]則將目標檢測變成了一個標準的關鍵點估計問題,不需要預設錨框,直接利用目標物體中心點的特征信息進行目標分類和邊界回歸。目標的中心點是通過提取熱力圖(heatmap)中的峰值來確定,然后高斯擴散得到目標的尺寸信息。CenterNet結構簡潔,參數量相對較小,在coco數據集中得到了較好的檢測精度和實時性的平衡,適用于在計算能力相對有限、無法處理復雜算法卻有高實時性需求的嵌入式設備上搭載。而用于檢測尺寸較小,成像質量較低的遙感圖像目標時,往往面臨精度不足的問題。因此需要改進CenterNet算法模型,克服遙感圖像小目標檢測的困難。
文中將CenterNet作為基礎網絡,在主干輸出處引入通道注意力模塊(ECA-NET)[24],削弱非關注點表達的同時,增強關注點的信息通道;階段性調整學習率,采用學習率調整策略,加快網絡收斂速度。此模型在保證檢測速度的同時,提高了模型檢測精度,滿足了檢測精度與實時性的平衡,在遙感圖像目標檢測領域具有實際的應用價值。
CenterNet是一種典型的無錨框目標檢測算法,采用關鍵點表示對象的邊界框中心,通過熱力圖的峰值找到中心點,根據中心位置的圖像特征回歸得到對象大小、坐標方向、姿態信息等屬性。主干網絡有ResNet[25]、Hourglass[26]和DLA[27]3種框架,分別適用于不同的應用環境。首先將圖像送入1個全卷積網絡生成1個高分辨率特征圖,然后將3個卷積運算應用于特征圖,分別進行熱力圖預測,中心點預測和長寬預測,判斷每個熱點是否存在目標及其類別,得到目標中心距離熱點偏移的情況,最后獲得目標的尺寸預測結果,將目標檢測問題轉化成關鍵點預測問題,不僅算法思路簡單,并且具有較高的精度和速度。
CenterNet目標檢測器基于正確的關鍵點預測網絡,準確估計物體中心,回歸目標的大小,算法中每個目標只檢測其中心點,不需要非極大抑制(NMS)來刪除同一目標的重復檢測框。算法快速、精確、簡潔,應用于計算能力相對有限的嵌入式平臺更加方便,滿足平臺算法簡單且有高實時性的需求。但應用于遙感圖像中,CenterNet算法仍存在缺點。在檢測過程中,隨著分辨率的降低,小目標物體的中心點信息會出現丟失或重合的現象,檢測結果只能檢測出其中的幾個目標,造成目標漏檢和檢測精度低的情況。由此,需要改進CenterNet算法模型,提升遙感目標檢測的精度,從而改善遙感圖像目標檢測的效果。
卷積神經網絡中的注意力模塊模仿了人類在視覺上感知事物時,需要觀察和注意特定的部分,在眾多的輸入信息中集中于當前最為重要的信息,降低對其他信息的關注度,過濾掉無關信息,使檢測網絡能夠更有效地提取特征,從而增強網絡的檢測性能。同時,注意力模塊即插即用,可以加入到任何網絡中。SE-Net(squeeze-and-excitation network)是一種通道注意力結構[28]。模塊由一個總結每個特征圖全部信息的擠壓操作和一個縮放每個特征重要性的激發操作組成,這就是所謂的擠壓和激發塊。與參數的增加相比,模型的性能提高顯著,而模型的復雜性和計算負擔不會明顯增加。ECA-Net(efficient channel attention)[24]是在SE-Net基礎上提出的一種注意力機制,在保持SE-Net模塊優勢性能的前提下,避免SE-Net因壓縮降維對學習通道之間的依賴關系產生的不利影響,有效捕捉跨通道交互,獲得明顯的性能增益。
ECA-Net探索了另一種獲取局部跨通道交互的方法,既少量增加參數和計算量,又保證了模型的有效性,在嵌入式平臺上應用更好。如圖1所示,在不降低維度的情況下進行逐通道全局平均池化之后,ECA-Net通過考慮每個通道及其k個近鄰來捕獲本地跨通道交互。首先,執行大小為k的快速一維卷積來生成通道權重,其中k是本地跨通道交互的覆蓋范圍。為了避免交叉驗證手動調整k,內核大小可以通過通道維度的非線性映射自適應地確定。假設k=5時表示臨近的5個通道進行不降低維度的局部交叉通道交互,大大降低運行時間復雜度。實驗結果表明,ECA-Net是模型復雜度低且有效的輕量級插件,能提高各種深度CNN架構的性能,包括廣泛使用的ResNet網絡,在目標檢測任務中表現出良好的泛化能力。

圖1 ECA-Net網絡結構Fig.1 ECA-Net Network Structure
改進的檢測網絡使用與原CenterNet算法相同的損失函數,主要由熱力圖損失Lk、中心點偏置損失Loff和寬高損失Lsize三部分組成。
熱力圖損失Lk[23]是具有focal-loss[29]的懲罰機制的函數,定義為:

(1)


(2)


(3)
將上述各類損失結合后得到總的損失Ldet[23],其表達式為:
Ldet=Lk+λoffLoff+λsizeLsize
(4)
式中,權重λoff、λsize分別取1、0.1。
由于實際的遙感圖像是大視場高空拍攝的,導致背景相對復雜,目標相對尺寸較小、所占像素也較低,直接將其應用于遙感圖像檢測算法上效果不理想,如果要更好地適應遙感圖像目標的檢測,必須對CenterNet網絡結構進行改進,提升檢測精度。
如圖2所示,針對遙感目標的檢測兼顧準確率和速度的實際情況,以CenterNet算法為基礎改進其網絡模型。CenterNet主干網絡有ResNet[25]、Hourglass[26]和DLA[27]三種框架,其中ResNet-50網絡參數量小,實時性好,較易移植。通過實驗與另外兩種主干網絡對比,ResNet-50在檢測速度和準確性方面得到了較好的平衡,作為文中的主要研究對象。在主干網絡ResNet-50特征層輸出處引入ECA-Net,增強有用特征通道,抑制無用信息通道,提升模型的特征提取能力,并極大程度降低引入注意力機制后模型的復雜度,提高小目標的表征能力,從而提高遙感目標檢測準確率。

圖2 CenterNet-based模型Fig.2 CenterNet-based model

根據實際應用場景需求使用自制遙感數據集,利用在公開的地圖數據庫中截取的各類飛機目標,如圖3所示,根據不同場景將其分為50組,每組中依據不同高度和角度截取,形成1 000張圖片,圖像中亮度和對比度多樣,且存在遮擋、陰影、畸變等干擾。集合均為1 440×1 000彩色圖像,圖像格式均為.jpg,采用9∶1的比例分配訓練集、驗證集。為了驗證算法在各種應用場景下的檢測性能,還隨機抽取了由武漢大學制作的遙感影像公開數據集RSOD數據集[30]中的100張飛機目標圖像如圖5~圖7所示加入到測試集中。

圖3 遙感數據集Fig.3 Remote sensing datasets
實驗基于PyTorch深度學習框架,在Anaconda上搭建Python=3.7,PyTorch 1.7.1的虛擬環境,在集成開發環境PyCharm中運行。部分訓練參數配置如表1所示。

表1 部分訓練參數Table 1 Training parameters configuration
在訓練神經網絡時,學習率(learning rate)深刻影響著神經網絡的性能,是一個重要的超參數。學習率太小,收斂速度將嚴重下降,訓練明顯變慢;學習率太大,參數值將會在最優解上下振蕩。優化器能夠加速卷積神經網絡的訓練速度,合理選取優化器,在合適的學習率下,能夠解決隨著神經網絡復雜程度的加深以及計算量的增加,導致在模型訓練上的耗時增加問題。使用Adam優化器進行迭代訓練,將輸入圖像統一縮放到分辨率為512×512。采用MultiStepLR結合StepLR的學習率調整策略,初始學習率設置為1.25×10-2,設置步長為1,等間隔衰減為原來的90%,在訓練50個epoch后,將學習率降為1.25×10-3,再訓練90個epoch,等間隔衰減為原來的90%,加快網絡的收斂速度。
實驗評價指標由準確率RP、召回率RR、平均精度均值PmAP和每秒處理圖像數NFPS來衡量。RP和RR計算公式為:
(5)
式中:PT表示目標為真實目標,檢測結果為真實目標;PF表示目標不是真實目標,檢測結果是真實目標;PFN表示目標為真實目標,檢測結果為不是真實目標。精度均值PA為以準確率RP和召回率RR所圍成的曲線面積值。PmAP為學習的所有類別精度均值的平均值。
NFPS定義為算法每秒處理的圖片數。NFPS越大,每秒處理的圖像數量越多,代表算法運行速度越快。其計算公式為:
(6)
式中:N為被測樣本數;T為測試全部樣本所需的時間。
在數據集上經過140輪訓練,損失值基本達到穩定狀態。訓練過程中,模型損失和迭代次數之間的趨勢變化對比如圖4所示。

圖4 Loss變化曲線圖Fig.4 Loss variation curve
訓練過程中損失函數隨著訓練輪次迭代次數的增加逐漸降低趨于0。可以看到在大約50個迭代次數之后,損失函數降低到1以下,驗證了算法模型收斂的快速性。
采用PmAP、NFPS評價指標進行檢測精度和檢測速度的定量分析,與基礎網絡的對比實驗結果如表2所示。

表2 模型結果對比Table 2 Comparison of model
從表2看出,改進后的模型在檢測精度方面效果相對良好,相較ResNet-50基礎網絡提升13.26%,相較DLA-34提升5.54%。雖然與Hourglass-104主干網絡模型相比還有差距,但Hourglass-104網絡深度層為104,參數量很大,其速度遠遠不及其他模型。改進的模型由于加入了注意力模塊,模型推理的計算量相應有所增加,但在明顯提升精度的同時,仍然能夠滿足實時性需求,在檢測精度和檢測速度上取得了較好平衡。
為了進一步驗證模型的有效性,基于遙感數據集,在相同的配置和訓練、測試樣本的條件下,對比雙階段算法Faster R-CNN,單階段算法YOLOv3以及無預設錨框算法原CenterNet四種主流算法,得到對比結果如表3所示。

表3 不同算法對比結果Table 3 Comparison of method results
文中的CenterNet算法與原CenterNet算法相比,檢測速度略有提升,PmAP提高了13.3%,減少了網絡的漏檢率,一定程度上提高了小目標的識別率。改進后算法精度較兩階段算法Faster R-CNN相應值低10.34%,而利用兩階段算法Faster R-CNN平均檢測時間為0.129 s,改進后的CenterNet算法平均檢測時間只需0.019 s,速度提升了一個數量級;與單階段YOLOv3相比,檢測精度提高了1.52%,檢測速度提高了19.78 幀/s。
改進后算法檢測精度和檢測速度都取得了較好的效果,證明了改進后網絡的有效性。算法對比效果如圖5、圖6和圖7所示,從左到右、從上到下依次是Faster R-CNN、YOLOv3、原CenterNet和改進后的CenterNet算法在3種不同場景下的檢測可視化結果。

圖5 場景一的各算法檢測效果可視化Fig.5 Visualization of the detection effect of each algorithm for scenario 1

圖6 場景二中各算法檢測效果可視化Fig.6 Visualization of the detection effect of each algorithm for scenario 2

圖7 場景三各算法檢測效果可視化Fig.7 Visualization of the detection effect of each algorithm for scenario 3
從場景一的可視化結果中可以看出,在目標尺寸對比明顯且存在遮擋和重疊的場景下,極易發生漏檢。Faster R-CNN算法雖然精度較高,但依然存在漏檢與誤檢,漏檢率為7.14%;YOLOv3漏檢4個目標,原CenterNet漏檢5個目標,并且都為小目標;而改進后的CenterNet算法檢測的小目標(飛機)并無漏檢情況,檢測優勢明顯。
場景二的結果中,檢測目標與背景相似度高,極易發生誤檢和漏檢,Faster R-CNN算法則存在誤檢的情況;YOLOv3算法也有不同程度的漏檢;改進前后的CenterNet均無漏檢和誤檢的情況,但相比原算法,改進后的算法識別精度更高,效果更好。
場景三是小目標(飛機)停靠較為密集的情況,Faster R-CNN和YOLOv3算法均出現漏檢;原CenterNet算法對重疊目標檢測存在丟失的情況。相比較,改進的CenterNet算法檢測效果明顯得到改善,進一步顯示了改進后的網絡目標檢測性能的提升,這得益于引入注意力機制對網絡的優化。在網絡中加入注意力機制后,對目標有更精確的定位,特別是使一些小目標保留住了重要特征,沒有在中間被舍棄掉,大大降低了模型的漏檢率。
將改進的CenterNet算法應用到遙感圖像目標檢測中。為解決基于深度學習的遙感目標檢測方法識別遙感圖像中小且密集、成像不清晰的目標如飛機等精度和實時性不能兼顧的問題,提出了CenterNet-based目標檢測方法。該方法以ResNet-50進行基礎特征提取,使用注意力機制,削弱非關注點表達,同時增強關注點的信息通道,提高檢測精度,階段性調整學習策略,加快網絡收斂速度。此方法較好平衡了遙感小目標檢測的精度和速度。但還需進一步提高精度,確保在實際應用環境中的精準識別,因此改進網絡結構在不降低檢測速度的基礎上提升檢測精度是接下來的研究重點。