李勝永,王超男,王 孟
(1.江蘇航運職業技術學院 交通工程學院,江蘇 南通 226000; 2.南通大學 理學院,江蘇 南通 226000)
航空影像下的目標檢測對于地貌勘探、智慧城市、交通監測、航運疏導等領域具有重要作用。借助航拍攝像頭以及人工智能網絡運算分析,能夠實現諸多信息提取。然而,航空影像下的目標由于像素限制,在兼顧準確率的情況下很難有較高的召回率。比較傳統的做法是增加輸入圖像的尺寸和增加網絡的強壯程度[1-4],以提高網絡對細微特征的學習能力,但是這都是以增加計算量[5-9]為代價的。為解決通用算法對航空圖像中目標檢測低效的問題,希望設計一種極其輕量的目標檢測器用于捕捉航空影像中的小目標。
為了改變現有的對于航空影像下目標檢測只追求精度而忽略速度的研究方向,更加關注平衡速度與精度的均衡,以實際的方案實現高精度的移動端平臺檢測部署。具體的方案有以下幾點貢獻:
(1)設計了一種極其輕量的網絡作為檢測器的骨干網絡,使最終的網絡模型大小僅僅為1.64 MB,對比動則上百兆的大型網絡,這足夠優秀;
(2)吸收了當前基于深度學習的目標檢測器的諸多調優方法于提出的網絡中,如原始比例非形變多尺度訓練、基于mosaic[7]的隨機數據增強、特征金字塔、平鋪的小卷積核上下文級聯以及GIOU loss[11]計算等技巧;
(3)收集了一個專用分類數據集用于預訓練骨干網絡以微調最終的目標檢測器,驗證專用的特征近似的預訓練數據比在大型公共數據集上(如ImageNet)預訓練結果更優;
(4)為提升小目標的檢出率,并保留小目標的細微特征,技巧上使用4個相同大小的ROI區域平鋪整個特征圖,在不增加內存使用的情況下僅僅增加少量耗時卻能大幅增加小目標檢出率。由于基礎網絡足夠快,對ROI有較高的容忍度。
目標檢測器要做到輕量化重點在于骨干網絡的寬度。受到人臉檢測網絡RetinaFace[12]的啟發,設計了一個極其輕量的CNN網絡作為骨干網絡,該網絡所有層中的最寬通道之處僅僅為128,并且全程使用小卷積核。參考MobileNet系列[13]網絡,卷積層與深度可分離卷積相搭配有效縮減參數量,但摒棄了殘差(Res)分枝。另外,特征金字塔中使用的反卷積模塊均使用窄通道設定,摒棄無用的寬泛設定。首要考慮的重要目標是追求網絡參數量的極致優化,因為參數量是部署嵌入式平臺限制的最大障礙,而特征的細節可以通過擴大輸入圖像尺寸來彌補。網絡的檢測頭部分,并依然遵循成熟的工作經驗,參考YOLOv3[14]以及后續系列[7,8]算法,設計了3個不同尺度特征分支中獲取目標信息。但與之不同的是,在每個分支中首先吸收當前先進的工作——空洞卷積[15]和瓶頸結構[16]搭建了一種上下文模塊,用以獲取更大的感受野并加強背景抑制。另外,目標置信度和坐標位置被分為兩個分支計算,這種回歸方案提升了網絡的魯棒性并加強了不同類別之間的相互抑制以促進減少誤報。圖1為整個設計的目標檢測器的主要結構。

圖1 極輕量檢測器結構
審視先前的先進工作,所能查到的參數量較小的分類網絡如ShuffleNet[17]、ReXNet[18]等,參數量最少的也需要1.4 MB。而設計出的骨干網絡僅僅960 KB(量化后僅760 KB),這擁有足夠的優越性。骨干網絡的詳細結構如圖2所示。

圖2 極輕量的骨干網絡結構
首先,摒棄了MobileNet系列仍然較寬的主干分支結構,對網絡寬度進行暴力裁剪,去除冗余的殘差塊,僅使用簡單的層堆積,并對卷積核大小進行優化。當然,圖2中每個卷積層都代表一個卷積、批量歸一化以及激活層的組合(Conv+BN+ReLU)。一個全新的骨干網絡,由于本身訓練數據量的不足,除了對本身數據進行隨機增強外,在大型數據集上進行預訓練來微調基礎訓練可能會有較大改善,故針對設計的輕量骨干網絡,進行大量的訓練驗證。
目標檢測器的重點在于良好的檢測頭設計。為此,通過對當前主流通用目標檢測網絡的重點調研,設計了一種汲取眾家之長的檢測頭設計方案來搭配輕量的骨干網絡,從而組成完整的輕量網絡檢測器。首先,出于對后續流程(嵌入式移動平臺植入)考慮,檢測頭主體網絡不宜太復雜。YOLOv3及其后續版本的多尺度特征分支是非常好的工作,簡單而高效,同時平衡大小目標的偵測能力。但是,它的每個檢測分支的置信度預測和位置預測被集成在同一個卷積層,這可能會造成較多的較高預測分數的誤報。所以,每個檢測分支的置信度和位置預測分為兩個分支分別實現,從原理上看這并不會增加參數量和計算量,卻能帶來更好的收益。
另外,受到Inception系列網絡[16]的啟發,幾個小卷積核的卷積層平行搭建會帶來良好的特征融合的額外收益,并且很少增加網絡的額外負擔。以往的經驗中,上下文融合[19]對檢測網絡性能十分重要。所以,結合Inception的思想,設計了一種上下文特征融合模塊插入到每個檢測分支中,用于減少正樣本與背景之間地不當匹配,既提升了性能又不會增加網絡整體的負擔。如圖3所示,為設計提出的上下文特征融合模塊。

圖3 攜帶空洞卷積的上下文融合模塊
需要注意的是圖3中每個Conv均表示Convlution+ReLU的組合體。在每個分支的上下文模塊中,插入一個空洞卷積。相比普通卷積,空洞卷積可以幫助每個特征點獲得足夠大的實際感受野,這對實際應用場景中的小目標來說可以帶來可觀的收益。
受到目標檢測各應用領域中的優秀訓練策略[7,12]的啟發,在訓練階段的數據層中集成了一種強大的隨機數據增強策略。
首先,經過消融實驗的仔細對比,訓練階段維持圖像中目標的原始比例而不產生形變能夠提升網絡的召回率,相對于固定尺寸做resize后再送入網絡運算,目標形變會對實際場景的檢測能力產生負面影響。為此,設計了一種針對不同大小的原始圖像而采用不同大小的正方形窗口用于對原始圖像的裁剪操作,裁剪會盡可能保留原始圖像的大范圍區域,這僅僅是為了訓練階段使目標不產生形變。
其次,為了盡可能地提升原始網絡對背景干擾的可抗性,mosaic拼接方式[7]是良好的解決方案。為此,從網上隨機爬蟲和實際場景中進行初始網絡偵測收集到大量的易誤報的數據并與原始包含正樣本的訓練圖像進行隨機mosaic拼接并組成新的訓練圖像。由于這種方式縮小了實際目標的大小從而進一步促進了小目標的檢出率。
另外,基于色階變化的隨機數據增強是提升檢測器魯棒性必不可少的策略。利用開源的隨機數據增強庫albumentations[20]并將其集成在網絡的數據層中,對原始圖像和mosaic后的圖像進行3到5次色階變化上的隨機數據增強。
最后,吸收yolo系列最新研究成果[8]的可靠經驗,多尺度的訓練策略能夠有效提升網絡性能。不同于yolo系列,在訓練階段只采取尺度間隔較大的4種尺度用于訓練,同時也彌補了集成的隨機數據增強帶來的訓練階段數據層處理耗時增加的壞處。
由于骨干網絡的輕量性,相比于寬而深的大型網絡檢測器,不可避免的會犧牲對于小目標的召回。為了彌補這一劣勢,提出一種利用4個ROI(感興趣區域)平鋪圖像的測試策略,當偵測場景對小目標的需求是必要的時候,這種策略能夠帶來不劣于甚至更優于大型網絡的偵測效果。而代價僅僅是相對于原始輕量檢測器增加3~4倍的耗時和存儲ROI所占用地很小的內存。雖然耗時增加,但由于其本身巨大的輕量優勢,幾倍的耗時仍然可以媲美大型網絡的運行速度。而異常小的內存占用在嵌入式平臺上獲得的收益是令人無法抗拒的。
為了驗證所提出的多種策略給檢測器帶來的明顯改進,進行了多種消融實驗和與各種大型網絡的對比實驗。實驗結果將充分驗證所提出策略的有效性。同時,為了突出驗證所提出的輕量網絡在移動端的巨大優越性,在移動端嵌入式平臺進行了算法移植并測試效能,且與先進算法進行對比。
由于提出的算法涉及與多個公共網絡的比對以及嵌入式平臺的量化移植,整個開發流程使用多個深度學習框架。其中,主算法基于MXNet開發,并將其轉換為Pytorch和caffe模型與公網進行對比。由于嵌入式平臺轉換工具僅支持對caffe模型,最終的算法模型轉換為caffemodel,以進行量化并移植到嵌入式平臺。
硬件方面,算法訓練以及線上測試基于搭載4塊GTX2080Ti GPU的linux服務器,單塊GPU顯存為12 G,單次迭代可支持32張圖像同時計算,最佳模型訓練時間約10天,共進行50個epoch的反向迭代。
值得一提的是,先前的工作[19]已經為本研究提供了成熟的數據集用于訓練和測試。經過各種策略的數據增強,最終參與訓練的正樣本圖像超過60萬張,測試集超過4000張。
訓練參數方面,分類模型及骨干網絡預訓練模型的基礎學習率為0.1,并采用多步數策略進行階梯衰減。反向優化算法使用SGD(隨機梯度下降)進行參數優化,而損失函數仍然使用常用的Softmax損失進行梯度更新。最終的檢測模型,訓練基于骨干網絡的預訓練模型,基礎學習率為0.01,衰減策略以及反向優化算法同分類模型,損失函數類似SSD算法,每個錨點配置16個anchor框進而采用平滑的交叉熵損失函數進行梯度計算,但改進IoU計算為GIoU。
另外,實驗中涉及多個評估指標。分類模型使用top1和top5準確率來評價模型,分別指預測分數最高的類型的精確度和預測分數前5項中包含準確類型的精確度。檢測模型方面,統計召回率(recall)與準確率(precision),前者表示預測出的準確目標數在所有準確目標數中的占比,后者表示預測出的準確目標數在所有預測目標數(包含誤檢)中的占比。與其它優秀模型的比對中使用了AP(average precision)值(平均準確率)進行評估,而AP值即為P-R(準確率與召回率)曲線所圍面積。
在圖2的基礎上,增加了一個全局池化層、全連接層以及Softmax層以組成基本分類網絡,然后進行實驗測試。由于骨干網絡是重新設計的輕量網絡,故在ImageNet超大型數據集進行訓練及測試,并對比當前的先進輕量網絡進行對比。測試結果見表1。

表1 ImageNet測試集測試結果
從表1結果中可以看出,骨干網絡在計算量和參數量上具有無可比擬的優勢,這對后續移動端應用來說誘惑巨大。同時,雖然在top1上略弱于先進網絡,但在top5精度上差距大幅縮小。
為了驗證在訓練階段采取的各種策略的有效性,以不同策略為變量進行了訓練及測試。通過損失函數的收斂曲線(如圖4所示)和測試結果(見表2)反映各模塊差異。

圖4 不同策略的訓練loss收斂曲線
圖中A~G各字母與表2中相互對應。可以看出完整的訓練策略能收斂的最好。

表2 各種策略的消融實驗測試結果
從表2中結果可以看出,置信度預測和位置預測以雙分支結構以及上下文模塊均對提升網絡精度有益,尤其是上下文模塊更為顯著,這更有利于實際應用。而空洞卷積表現為帶來更好的召回和準確率,這是由于精確的感受野提升了小目標定位的準確性,雖然在數據集上這種表現較為輕微,但實際應用中可能會帶來良好的定位體驗。
網絡訓練的輸入上,利用隨機裁剪截取正方形區域對比強行形變輸入網絡能夠避免圖像形變帶來的壞處。從測試結果看,這種輸入方式能夠有效提升召回率,但是測試圖像時需要對尺度不一的數據集利用pad歸一化到網絡輸入的寬高比。
在訓練數據集處理策略上,利用mosaic拼接訓練圖像理論上對小目標更有益,從測試結果看能夠帶來更好的召回率。見表3,將測試集限定不同最小寬高分塊測試可以看出,提升的召回率主要的貢獻來自小目標。另外,對訓練集進行多次的隨機數據增強能夠帶來更好的魯棒性,召回率和準確率均有一定的提升,并且在實際場景測試中能夠適應復雜的背景。

表3 對目標大小分區間的測試結果
為了驗證提出的超輕量檢測器與先進通用目標檢測器的性能差距,選用先進的開源項目在所使用的數據集中按照原始最優參數進行訓練和測試,并將結果予以匯總。所有的測試結果以及效能數據統計在表4中,測試集結果統計AP。

表4 與先進公開網絡算法的對比結果
通過與先進網絡的對比結果可以看出,雖然原始的超輕量檢測器AP擁有一定的劣勢,但在計算量和網絡參數大小上擁有無可比擬的優勢,并且能夠帶來極快的運行速度。另外,對比先進網絡的輕量版本(如mnet-retinaface),提出的超輕量檢測器能夠產生壓倒性的優勢。正是由于提出檢測器的超輕量特性,而能夠在實際應用中可能產生問題時擁有更多的操作空間,例如通過平鋪固定大小的感興趣區域來多次運行同一張圖像的不同區域,最終將每個區域的結果匯總。這種策略僅僅需要犧牲一定的運行速度而帶來巨大的結果收益。在內存緊張的移動端平臺中,這種方法顯得難能可貴。表4中Ours+,AP值能夠直接媲美大型先進網絡,雖然由于多次運行造成了模型的重復計算和運行速率的成倍增長,但最重要的優勢是它能為移動平臺節省大量的內存使用。如圖5所示,具體比對了超輕量網絡在實際航空圖像中的偵測結果。

圖5 與部分先進算法的仿真測試對比
為了驗證超輕量網絡的實用性,將提出的超輕量檢測網絡遷移至嵌入式平臺進行驗證。使用Novatek公司開發的嵌入式平臺,型號為NT9852x,如圖6所示。該平臺采用兩組FPGA實現CNN硬件計算,并采用cpu實現后處理運算。首先使用特定工具對訓練得到的浮點模型進行12 bit量化,量化后遷移至配套SDK進行算法實現。

圖6 使用的嵌入式平臺開發板
另外,為了驗證提出的超輕量網絡在移動端平臺對先進網絡的巨大實際應用優勢,同步遷移了一些平臺可以支持的先進網絡進行具體實驗對比,評測指標包括耗時(幀率)、量化后模型大小、內存使用量和量化模型數據集精度以直觀看出優略。測試結果見表5。
從表5中可以看出,提出的超輕量網絡在模型大小、幀率以及內存占用指標上優勢巨大。先進網絡YOLOv4的幀率不足5 fps,如不搭配輔助算法(如目標跟蹤)則會造成目標延遲嚴重而無法實際使用,同時會占用巨大的內存而大幅增加開發成本。如采用ROI平鋪的方式進行評測,提出的超輕量網絡僅僅會多占用少許內存用于存放裁剪出的感興趣區域,而幀率理論上會增加4倍,但由于超輕量網絡本身的超快速度,仍然可以實現超過7 fps的偵測速率。同時,采用ROI方式可以大幅提升AP值并超過先進的網絡1。如圖7所示,顯示了提出的超輕量網絡在嵌入式平臺端的實際效果(通過YUV420圖像輸入測試)。

表5 嵌入式平臺測試結果

圖7 移動平臺的圖像仿真結果
針對航空影像船只目標偵測任務中難以平衡精度和速度的難點,提出了一種超輕量的目標偵測網絡以解決此問題。網絡吸收了眾多先進策略以提升測試精度,極其輕量CNN骨干網絡大幅縮減了計算量和參數量以提升運算速度,融合的檢測頭設計提升網絡的魯棒性,結合先進的訓練階段數據預處理增強方法提高了目標細節特征的獲取能力進而提升了偵測精度,而平鋪感興趣區域的偵測策略為網絡的特殊場景實際應用提供了更廣泛的選擇性。這些策略的融合促進了精度與速度的平衡,并利用嵌入式平臺實現算法的移動端應用,驗證了提出算法的先進性和實用性。