璩澤旭,方火能,肖化超,張佳鵬,袁 玉,張 超
西安空間無線電技術研究所,西安 710000
隨著現代航天遙感技術的飛速發展,衛星對地觀測能力大幅提升,分辨率越來越高,隨之產生大量的圖像數據.由于衛星在軌獲取的圖像數據當中存在大量的無效數據,如果將所有的圖像數據全部回傳地面進行處理,必然占用大量星地鏈路的寶貴資源,而且時效性也會大打折扣.在軌目標實時檢測技術可以對星上數據進行實時處理,提取用戶感興趣的目標圖像,篩除無效數據,提高從數據到信息的時效性.同時基于光學遙感影像的在軌目標檢測技術能夠及時發現陸地和海面的顯著性目標,相比于電子偵察手段具有抗干擾能力強、目標切片可譯性高、場景適應廣等優點.目前該技術已成為遙感領域研究的一大熱點.
目標檢測是遙感信息處理和模式識別的重要研究方向,該方向的研究主要分為傳統檢測方法與基于深度學習的檢測方法.傳統的檢測方法分為3部分:區域選擇(滑窗)、特征提取(SIFT、HOG等)和分類器(SVM、Adaboost等).YANG等[1]提出一種基于顯著性分割與艦船結構的LBP算子結合的檢測算法.孫皓等[2]使用HOG提取艦船的邊緣特征并使用SVM分類器進行艦船檢測.李曉博等[3]針對高軌低分辨率圖像艦船檢測提出了相應的方法.基于手工設計特征的傳統檢測方法依賴目標相關的先驗信息,往往只針對某一特定場景,難以泛化至通用遙感目標檢測任務.
自深度學習出現以后,目標檢測取得了巨大的突破.通過卷積神經網絡對遙感影像進行訓練,提取出目標特征,檢測速度快、精度高,已經成為目標檢測領域的主流方法[4].目前流行的方法按照流程可劃分為2類:一類是基于區域的目標檢測算法,如R-CNN,SPP-NET,Fast R-CNN,Faster R-CNN等.這些算法為2階段檢測方法,該方法首先生成目標候選框,之后對候選框分類與回歸得到精確目標框.另一類是基于回歸的目標檢測算法,以YOLO系列與SSD系列為代表[5].這些算法為一階段檢測方法,是由圖像直接產生目標位置與類別概率,略過了生成候選區域這一步驟,可以極大提高檢測速度.2種方法各有優勢,兩階段算法精度更高,而一階段算法速度更快.一階段算法更容易滿足遙感衛星對檢測實時性的需求,因此本文選擇一階段算法作為研究對象.
一階段算法直接產生物體的類別概率和位置坐標,單次檢測就能得到最終的檢測結果.文獻[6]提出的YOLOv1,核心思想是將目標檢測視為一個回歸任務,檢測速度達到45FPS,比兩階段算法快了一個量級.但缺點是難以檢測密集目標.文獻[7]提出的SSD算法在繼承YOLO的核心思想基礎上整合不同深度的特征層上預測不同尺度目標,并引入Faster R-CNN的錨點概念等,檢測速度和YOLO相當,而且精度可以匹敵Faster R-CNN.但是在小目標檢測上未能得到明顯改善.文獻[8]對YOLO進行全面升級,推出了YOLOv2,通過對所有卷積層引入批量標準化、采用多尺度訓練、設計Darknet-19作為骨架網絡等改進措施,最終在速度和精度上均得到進一步提升.但是與頂尖的兩階段算法相比,檢測精度仍有差距.文獻[9]再次對算法進行改進,如采用多個邏輯回歸分類器取代Softmax分類器、引入特征金字塔網絡架構、設計了Darknet-53作為新網絡骨架等,在精度上與Rednet-101、Resnet-152不相上下,且速度更快.但是星載設備處理資源有限,YOLOv3網絡模型面臨無法直接在軌部署的難題,需要對原始模型進行裁剪和優化.文獻[10]提出了一種基于改進YOLOv3的艦船目標檢測算法,在原網絡結構基礎上額外從主干網絡引出一個輸出尺度,并與上一個輸出尺度進行特性拼接,平均檢測精度達到83.98%,但檢測速度只有19FPS.文獻[11]在YOLOv3快速檢測神經網絡中加入改進的DWFPN特征融合檢測部件,達到89.07%的平均檢測精度,獲得了較高的目標檢測率,但實驗環境為GPU GTX1060Ti,平均檢測速度只有16FPS,與在軌實時性應用存在一定的差距.文獻[12]提出基于網絡輕量化處理及并行流水設計方法實現輕量化部署,目標檢測檢出率在85%以上,檢測速率可達200FPS,但對于排列密集目標容易出現漏檢.
針對上述問題,本文提出了一種基于深度學習的光學遙感影像在軌目標檢測方法,主要貢獻如下:
1)設計FPGA+DSP為架構的星上智能處理平臺,支持網絡參數在軌上注,實現了檢測模型在軌優化.
2)在YOLOv3特征提取網絡(DarkNet-53)的基礎上引入深度分離卷積(depthwise separable convolution),有效壓縮了模型參數與推理計算量;并設計局部再檢測模塊,提高了密集目標的檢測精度.
從衛星應用需求來看,對于高達幾十Gbps的原始遙感影像數據要求具有實時處理的能力,傳統的遙感數據處理流程多為星上存儲→星地數傳→地面處理.有限的數傳帶寬與效率成為遙感觀測衛星發展的制約因素.遙感數據在軌實時處理可有效提取熱點目標圖像,提高衛星系統利用效率.但目前主流的深度學習算法計算量大和訪存密集的特性與星上低功耗、有限資源的現狀之間存在較大的部署障礙.如何將深度學習算法部署至星載環境成為了一個不小的挑戰.在硬件平臺選擇上,本文從芯片緩存、算力、抗輻照設計、功耗等層面對比分析了主流硬件芯片CPU、GPU、FPGA、ASIC的優缺點.下表為幾種處理器的性能對比.

表1 幾種處理器的性能對比Tab.1 Performance comparison of several processors
深度學習需要大量的浮點運算[13],但是CPU包含的浮點計算單元比較少,因此CPU不適合深度學習場景.GPU具有大量的浮點計算單元,并行計算能力強,可以提供較高算力,并且有眾多開發框架和開源庫支持,如TensorFlow,PyTorch等.在神經網絡算法訓練和推理過程中都能起到有效加速[14].同時,NVIDIA公司推出的基于高并行運算架構CUDA的GPU,擁有更強的解決復雜計算問題的能力.但缺點是功耗大,單片可達50W,對于星上真空環境下主要通過熱傳導和輻射方式進行散熱的情況,采用GPU會帶來更大的工程化應用難題.而且可獲得的高性能GPU芯片不具備抗輻照等級,受空間輻射環境影響,易引發總劑量和單粒子效應,進而影響衛星的可靠性.FPGA具有大量的邏輯、DSP和緩存資源,具備快速并行處理能力,同時功耗低、可編程、可重構,有抗輻照等級.ASIC同樣具備大量的運算資源,是不可配置的高度定制化專用計算芯片,不同于GPU和FPGA的靈活性,一旦制造將不能更改.
FPGA高并行、可編程的特性使其可適應不斷變化的遙感任務,非常適合在星載環境下作為深度學習的計算芯片.因此本文選擇FPGA作為深度學習的載體,設計了基于FPGA的硬件計算平臺用于實現在軌目標檢測功能.每個計算單元采用VPX-6U標準化設計,配置2片高性能FPGA并行處理以提升檢測速度,同時采用多核DSP實現目標定位的浮點運算功能,總算力超過5.5TOPS.每片FPGA各配備一片高可靠或非型閃存用于存放網絡模型參數,可以反復擦寫,掉電數據不丟失.同時每片FPGA外設DDR緩存,單元實現超80 Gbps的讀寫速率.多核DSP與每片FPGA之間具備雙通道雙向RapidIO接口,單通道線速率可達5Gbps,采用RapidIO v2.0通信協議.原理如圖1所示.

圖1 星上智能處理平臺的原理框圖Fig.1 Block diagram of the intelligent processing platform on board
星上目標檢測架構采用星地協同的遙感數據智能處理方案,首先在地面對已獲取的遙感目標樣本庫進行深度網絡模型參數訓練,然后根據測試結果進行深度學習參數優化,并將生成的目標檢測模型上注到星上智能處理平臺的存儲器中.最后利用訓練好的目標檢測網絡,輸入待檢測遙感影像,得到目標的位置、種類,以及切片信息.本方案的總體框架如圖2所示,支持網絡參數在軌可上注功能,保障在軌功能性能不斷優化演進.
星上典型目標信息生成模式下,星上智能處理平臺接收載荷數據,通過前級路由單元進行輻射校正,以提升圖像的均勻性,再將輻射校正后的數據送到FPGA計算單元進行實時目標檢測處理,并將檢測結果(目標切片、行列號信息)發送給多核DSP進行行列號-經緯度解算和目標識別處理,最后將處理結果送路由單元生成目標情報信息進行對地傳輸或廣播分發.采用可編程邏輯設計語言VHDL實現了YOLOv3目標檢測算法.采用全并行流水、模塊化、參數化、硬件資源復用等設計思想,有效提升了算法實現的效率和可移植性.FPGA框架設計及數據流向如圖3所示.

圖2 基于遙感影像的目標檢測總體方案Fig.2 The overall scheme of target detection based on remote sensing image

圖3 FPGA框架設計及數據流向Fig.3 Target detection and recognition framework design
YOLOv3是一種多目標檢測算法[15],主要針對自然圖像設計.遙感影像不同于自然圖像中的目標,具有目標尺寸小、排列密集的特點[16],直接采用YOLOv3算法進行目標檢測,檢測精度(average precision,AP)較低.同時受限于星上處理資源,難以實現實時目標檢測.為此,在2個方面對YOLOv3算法進行性能優化:1)基于深度分離卷積的模型輕量化,將普通的卷積操作分為縱向卷積(Depthwise卷積)和1×1卷積(Pointwise卷積)2部分,極大地減少了模型的計算量,提升了模型的實時性;2)局部再檢測設計,結合通道注意力與空間注意力進行目標的細粒度識別,解決判別性特征難以定位與提取的問題.
2.2.1 基于深度分離卷積的模型輕量化
在YOLOv3算法中,將一張圖片劃分成S×S個網格,如果待檢測目標物體存在于某網格中,那么此網格就負責檢測該目標.YOLOv3的主干網絡是Darknet-53,因為包含53個卷積層,所以稱為Darknet-53[17],相比于YOLOv2的Darknet-19,網絡增加了殘差單元,并且卷積層數從19增加到了53,因而對圖片的特征提取能力更強.但是深度學習網絡層數的增多會帶來網絡的參數量與計算量大幅增加,從而造成模型的運行速度大大降低,進而影響檢測結果的實時性.因此,為了實現更快的檢測速度,本文在深層網絡中將普通卷積替換為深度分離卷積,檢測框架更加輕量.深度分離卷積比普通卷積的訓練參數少,而且區域和通道相互獨立,流程上采用先區域后通道的方式.深度分離卷積的過程如圖4所示.

圖4 深度分離卷積過程Fig.4 Depth separation convolution process
深度分離卷積將普通的卷積操作分為了縱向卷積和1×1卷積2部分,又稱為Depthwise卷積和Pointwise卷積,如圖5所示[18].深度分離卷積減少計算量的原理如下:假設DK×DK為卷積核大小,DF×DF為輸入數據的大小,M為輸入通道數,N為輸出通道數,則一組普通卷積的計算量如式(1)所示,深度分離卷積的計算量如式(2)所示.
普通卷積計算量=
DK×DK×M×N×DF×DF
(1)
深度分離卷積計算量=
DK×DK×M×DF×DF+N×M×DF×DF
(2)

由此可得知,在深層網絡中用深度分離卷積對普通卷積進行適當地替換,可以極大地減小計算量,使得模型更加輕量化,實時性更強.本文優化的YOLOv3算法模型結構如圖6所示.

圖5 普通卷積、Depthwise卷積與Pointwise卷積Fig.5 Ordinary convolution,Depthwise convolution and Pointwise convolution

圖6 優化的YOLOv3算法模型結構Fig.6 Optimized model structure of YOLOv3 algorithm
2.2.2 局部再檢測機制
通過對獲取的遙感影像進行分析和測試,在某些飛機、車輛等目標排列比較密集的圖像中,平均檢測精度(mean average precision,mAP)相對較低.YOLO系列算法具有簡單靈活、檢測速度快等優勢[19].但受限于末端檢測結構,在多類別復雜情形下的目標定位方面仍有較大改進空間[20].本文針對該問題設計了端到端的基于YOLOv3的多目標檢測算法.針對遙感影像數據中排列密集目標的mAP較低問題,設計了局部再檢測模塊,并結合通道與空間注意力進行目標的細粒度檢測,解決密集目標難以定位與提取的問題.具體的算法流程圖見下圖.

圖7 檢測與細粒度識別算法流程圖Fig.7 Flow chart of detection and fine-grained recognition algorithm
為了提高遙感影像中排列密集目標的檢測精度,本文設計了局部再檢測模塊,在檢測過程中加入局部再檢測子網絡.首先對帶有檢測框信息的特征圖進行上采樣,將圖像放大,使得排列密集的目標相對原始圖像變得更大更分散.然后對目標再次進行特征提取,從而實現密集目標的局部再檢測功能.再通過非極大值抑制(non-maximum suppression,NMS)算法和坐標回歸對檢測框進行優化,最后輸出檢測結果.該子網絡的結構圖如圖8所示.

圖8 局部再檢測子網絡結構圖Fig.8 Local re-detection sub-network structure diagram
2.2.3 網絡參數在軌上注優化
根據不同的任務需求,通過上注相應的網絡參數信息,可以實現在軌處理算法性能不斷優化.
上注數據經地面控制系統處理后,通過可靠的傳輸途徑發送給在軌星務系統,星務系統根據約定標識識別為對應設備的上注數據后,將該數據傳遞給星上智能處理設備.星上智能處理設備對接收到的上注網絡參數的有效性進行判斷,如果有效,就進行處理,否則丟棄.星上智能處理設備接收上注的數據后根據特定的格式將上注數據進行集中式的高速存儲,完成存儲后根據相應的指令,完成上注數據的配置,進而實現目標檢測網絡參數的在軌更新.上注原理如圖9所示.

圖9 網絡參數上注原理Fig.9 Network parameters on the principle
由于深度學習算法的訓練需要依賴大量的樣本庫數據,目前中國空間技術研究院西安分院以陜西省高分中心的數據為依托,對不同類遙感目標進行了標注與樣本圖像庫建立,目前已標注樣本類別:48,樣本總數:50000+.前期算法網絡參數由現有衛星遙感影像數據進行訓練,待衛星在軌后,可根據獲取衛星數據制作訓練樣本,生成新的網絡參數,上注到衛星后實現對算法性能不斷優化.樣本庫建立情況如圖10所示.

圖10 深度學習樣本庫Fig.10 Deep learning sample library
建立樣本庫后,對深度學習網絡進行訓練.在深度學習中,一般要求有充足的樣本數量.樣本數量越多,訓練出來的模型越好,模型的泛化能力越強.
在目標檢測算法中,常用的評價指標是準確率Precision、召回率Recall和平均精度mAP[21],用于度量模型預測框類別和位置是否準確[22].評價公式如下:
(3)
式中:TP(true positive)為IoU(intersection over union)>0.5的檢測框數量(同一真值框只計算一次),即正確檢測出的目標個數;FP(false positive)為IoU≤0.5的檢測框數量,即誤檢的目標個數;FN(false negative)為沒有檢測到的真值框的數量,即漏檢的目標個數.準確率Precision表示正確檢測的個數在全部檢測結果中的占比;召回率Recall表示正確檢測的個數在圖像中所有目標中的占比;PR曲線表示Precision-Recall曲線;平均檢測精度mAP是從準確率和召回率兩個指標進行衡量[23],是評價檢測模型準確性的直觀評價標準,mAP值越大說明檢測效果越好.
針對目標排列比較密集的區域,本文設計了局部再檢測機制,并進行了測試驗證.針對排列密集的目標圖像,利用局部再檢測子網絡可以明顯提高目標的檢測精度,測試結果如圖11所示.從測試結果可知,未采用局部再檢測模塊時,檢測結果容易受到目標排列方式的影響,進而導致漏檢.采用局部再檢測模塊后可以大大提高密集目標的檢測精度.

圖11 密集目標未采用局部再檢測/采用局部再檢測結果圖Fig.11 Dense target not adopting local re-detection/adopting re-detection result map
測試數據來自Google Earth、高分1號、高分2號等數據.Google Earth圖像轉換為單色圖像.部分影像的測試結果如圖12所示,其中綠框為艦船,藍框為飛機,紅框為車輛,以示區分.
硬件處理時延:
在本文設計的智能處理平臺上進行典型目標檢測測試,利用Xilinx XDC工具抓取每張圖片檢測所需時間,信號“Current_state”由狀態1跳轉狀態2表示單張測試圖檢測結束,時鐘頻率120 MHz(周期8.33 ns),單張測試圖在單片FPGA所需時鐘個數為2873662,如圖13所示.

圖12 目標檢測結果(包含艦船、飛機、車輛檢測結果)Fig.12 Target detection results (including ship,aircraft and vehicle test results)

圖13 檢測硬件實測Fig.13 Measured detection and identification hardware
如圖14所示為2個檢測核所占資源情況,其中關鍵的LUT、LUTRAM、DSP資源不到30%,由于程序中BRAM都按最大深度設計,優化后可以降到40%,因此單FPGA可以實現4個檢測核并行處理.單核實測檢測速率為1/(2873662×8.33)×109≈41.78 FPS,對于單塊處理單元2片FPGA的檢測速率預計可以達到41.7842×4×2=334.24 FPS.

圖14 FPGA資源使用情況Fig.14 FPGA resource usage
利用Google Earth、高分1號、高分2號等數據進行測試,通過對不同的典型目標(艦船、飛機、車輛)進行測試,本文算法與Faster R-CNN模型[24]和YOLOv3模型測試結果得到的AP值,畫出PR曲線,如圖15所示,準確率和mAP的數值如表2所示.

圖15 3種算法在典型目標測試集上的PR曲線對比Fig.15 Comparison of PR curves of three algorithms on typical target sets

表2 算法的網絡性能測試結果Tab.2 Network performance test results of the algorithm
從表2所示的測試結果可知,相比于Faster R-CNN和YOLOv3 2個模型,本文算法在準確率、召回率和mAP上都有明顯的提升.本文算法中最深的5個普通卷積層替換成深度分離卷積可以提高模型的運行速度,同時采用局部再檢測機制可以提升模型的檢測精度.最終測試的結果mAP值為92.43%,單元檢測幀頻達到334.24 FPS,滿足實時性要求.
本文針對遙感影像采用傳統方法目標檢測精度較低的問題,提出了一種基于深度學習的光學遙感影像在軌典型目標檢測方法.通過研究目標特征,設計了適應衛星環境的高性能智能處理硬件平臺,并在該平臺上構建了并行化、模塊化和參數化的軟件架構.在軟件層面上,對YOLOv3特征提取網絡引入深度分離卷積以壓縮模型參數,降低處理計算量,在保持檢測精度前提下極大提高了運算速率.在檢測階段加入局部再檢測模塊以提升算法對密集目標的AP.同時采用網絡參數在軌上注更新,實現在軌目標檢測算法性能不斷優化演進.最后在設計的硬件平臺上進行不同目標類型的測試,試驗結果表明,相比于Faster R-CNN、YOLOv3算法,本文設計的算法在mAP和實時性上均有明顯提升,對復雜背景下排列密集的目標有更好的檢測效果.該技術通過了硬件平臺的地面測試和驗證,下一步將在軌應用.