趙曉冬,車 軍,張洵穎,程雪梅
(1.西北工業大學無人系統技術研究院,西安 710072;2.航空工業西安飛行自動控制研究所,西安 710076;3.西北工業大學365研究所,西安 710072)
在現代戰爭當中,精確制導武器的成功研制,促使定點攻擊作戰技術邁上新的臺階。光學制導技術作為精確制導的重要組成部分,是決定其作戰性能的重要因素。光學制導包括可見光電視、紅外、激光、光纖及復合制導等,其中可見光電視、紅外和復合制導都屬于圖像處理與機器視覺的范疇。可見光電視制導由彈上成像系統負責完成目標的探測與識別,較為成熟的包括“GBU-15”制導炸彈、“KAB-1500KR”以及“AGM-144”反坦克彈等制導武器。紅外制導利用熱成像探測原理,實現目標的檢測與識別,較為成熟的包括“薩姆-7”、“紅纓-5”和美國“戰斧”巡航導彈BlockIV等。復合制導采用多模式復合方式,取長補短,具有代表性的有美國的RAM航空彈和AARGM導彈,分別采用雷達與紅外復合、微波與紅外復合的制導方式。
在精確制導武器末制導過程中,國內軍事上人工智能算法依舊處于無法落地的階段。美國洛克希德·馬丁公司的遠程反艦導彈LRASM,已經成功完成了多次靶試任務。LRASM基于一款較為成熟的空間導彈進行研制,旨在依靠自身人工智能處理器,在艦隊中檢測并摧毀特定軍事目標。該型導彈于2017年12月成功擊中海上移動目標,標志著其技術已完全成熟,達到列裝標準。同年2月,俄羅斯武器制造商與國防官員宣布開發內置人工智能的新一代武器,該類智能武器可自主選擇目標。2019年6月,以色列拉斐爾公司已成功將人工智能集成到Spice炸彈中,在實現目標自主識別的基礎上,加入了人工智能及場景匹配技術。憑借人工智能和深度學習技術,該武器可以識別移動的地面目標,并成功將其與其他物體及地形進行區分。
針對末制導視覺處理方面的經典算法研究成果較多,包括差分圖像法[1]、光流場算法[2]、統計模型算法[3]、小波變換算法[4]等。差分法是指利用多幀圖像計算出差分圖像,并將其對應像素進行相乘,用以消除偽運動圖像信息;光流場算法利用基于特征信息的光流場進行運動目標檢測,同時利用圖像分割獲得目標的完整輪廓形狀;統計模型首先對運動場進行粗略估計,并根據馬爾可夫場理論,構造間斷點,實現目標檢測;小波變換利用在多尺度上計算由方向、尺度等參數構成的向量來實現目標檢測。其中,差分圖像法與光流法在工程實現當中應用較多。在信息化作戰方面,智能化電子戰的概念不斷涌現。利用人工智能感知技術獲取戰場信息,并將信息應用到精確制導武器末制導階段當中,是一種全新概念的作戰方式。從算法理論到工程應用的鴻溝,直接影響武器裝備智能化的升級程度。智能化技術的逐步發展,為制導武器的智能升級帶來了新的技術突破口。智能化技術將顯著提升信息化系統的作戰能力,若能有效突破精確制導系統的智能化技術應用瓶頸,將使現有的制導系統可以更好地適應復雜戰場環境以及激烈對抗條件下的多類別目標精確打擊需求。
基于深度學習的軍事目標檢測識別技術可以有效、自動、快速地識別戰場目標,是作戰雙方利用智能技術理解戰場態勢的基礎。智能技術在軍事應用當中需要具備三大核心要素,包括深度學習算法設計、高性能智能計算平臺以及大規模的數據訓練集。首先建立深層次的神經網絡模型;其次在規模龐大的數據集上進行預訓練,并在戰場數據集上進行模型的再次訓練與微調;最終以實時處理模式在高性能計算平臺上實現網絡的實時推理計算,對多類型目標進行實時計算識別。
目前,基于卷積神經網絡(Convolutional Neural Networks, CNN)的自主目標檢測識別算法大致分為兩類。一是基于區域建議的算法,包括區域建議卷積神經網絡[5](Region-CNN,R-CNN)、Fast R-CNN[6]、Faster R-CNN[7]和區域建議全卷積神經網絡[8](Region-based Fully Convolution Network,R-FCN),這類算法將目標識別與目標定位劃分成2個步驟,分別完成,錯誤率低,但識別速度較慢;二是基于回歸的算法,包括只看一次(You Only Look Once,YOLO)算法[9]、YOLO9000算法[10]、單點多盒探測(Single Shot MultiBox Detector,SSD)算法[11]、去卷積單點探測(Deconvolu-tional Single Shot Detector,DSSD)算法[12]、YOLOv2算法和YOLOv3算法[13]等,該類算法直接產生目標類別概率和坐標,符合實時性要求,準確率也基本可以達到區域建議算法的準確率級別,可以在確保精度的同時,獲得更高的時間效率。R-CNN算法開創了深度學習自主目標識別的先河,Faster R-CNN在R-CNN的基礎上,直接提取候選區域特征圖,并融入區域建議網絡(Region Proposal Network,RPN),實現整個識別過程的網絡統一,從而實現端到端之間的映射,大幅提升算法速度。在YOLO系列算法當中,YOLOv3算法采用Darknet53的基礎網絡結構,在檢測速度與精度兩方面均獲得了優于SSD系列算法的檢測結果。目前,科研人員對于YOLOv3算法的落地應用擁有極高的研究熱情。
由于智能算法復雜度較高,所以智能算法對于計算需求有著較高要求,這與嵌入式受限資源條件下的應用存在顯著的矛盾,基于神經網絡壓縮的算法[14-15]應運而生。網絡壓縮算法將原本復雜度較高、參數冗余較多的網絡,基于最優理論,在網絡精度損失較小的情況下,壓縮為復雜度較低、參數規模較小的網絡結構,使其更加適應于資源受限條件下的硬件推理。目前,基于網絡壓縮的算法大致分為基于剪枝思想[16-17]的、基于張量分解思想的、基于權值共享思想的、基于權重量化思想[18-20]的、基于低比特或二值化思想[21-24]的壓縮算法等。總而言之,網絡壓縮通過優化思想,減少網絡參數,降低對硬件的資源需求,在對網絡性能影響較小的情況下,實現智能算法在硬件端的實時推理部署。
本文首先基于復雜背景及小目標,分析了當前主流的自主檢測識別網絡,包括基于區域建議的方法和基于回歸的方法,并對網絡進行性能評估,使用MAC統計及參數需求量對其硬件需求進行定量評估,構成智能算法硬件嵌入式平臺的基礎輸入要求。其次,提出了基于卷積神經網絡的壓縮算法,并對算法進行普適性分析。最后,基于嵌入式GPU平臺,實現了基于TensorRT路線的神經網絡加速,然后推理分析了經優化算法優化后的網絡結構,并對網絡精度損失情況和網絡加速比情況進行了評價。
對目前主流的深度學習自主識別算法進行參數及MAC計算量統計,如表1所示。可以看出,針對不同的神經網絡,所需要的硬件資源各不相同。MAC數目越多,代表硬件上所需的乘累加操作越多;權值合計越大,代表硬件上所需的存儲空間越大。

表1 深度學習識別算法參數及MAC計算量統計Tab.1 Deep learning recognition algorithms parameters and MAC calculated quantity statistics
從性能方面講,在所有算法當中,YOLOv3算法從速度和精度兩方面均獲得了較為驚艷的效果。Darknet53借鑒殘差結構,采用類似ResNet的跳線連接方式,性能相比ResNet系列更加優異。目前在各類落地應用當中,YOLO系列算法更多采用Tiny網絡,該網絡層數較少,MAC統計量約為YOLOv3算法的1/13。Tiny網絡容易實現硬件應用,且仿真較為容易,但是網絡精度相對較低,無法適應精度要求較高的多目標分類場合。于是,如何實現檢測精度較高的YOLOv3算法的真正落地,是目前亟待解決的難題;此外,類似YOLOv3這類深層網絡算法如何在嵌入式端落地,也是目前亟待解決的難題。
YOLOv3網絡結構共計107層,網絡最終輸出三部分特征圖,如圖1所示,分別為Conv_6、Conv_14和Conv_22卷積節點,在此基礎上,進行分類與位置回歸。這3個卷積節點分別稱之為小尺度yolo層、中尺度yolo層和大尺度yolo層。13×13×255尺度用于檢測較為大型的目標,26×26×255用于檢測較為中型的目標,52×52×255用于檢測較為小型的目標。三層特征輸出層的詳細輸入、輸出和卷積核參數如表2所示。

圖1 YOLOv3網絡結構的三部分特征輸出Fig.1 Three-part feature outputs of YOLOv3 network structure

表2 YOLOv3網絡輸出特征圖詳細參數Tab.2 Detailed parameters of YOLOv3 network output characteristic diagram
為神經網絡設定合適的裁剪濾波器,從網絡結構中剔除掉相對不重要的參數,將剩余網絡結構進行微調或重新訓練,可以在較短時間內有效對神經元或權重連接實現裁剪,網絡裁剪過程如圖2所示。

圖2 神經網絡裁剪結構對比圖Fig.2 Contrast diagram of pruning structure of neural network
利用閾值方法對網絡權重進行整體裁剪,是網絡裁剪算法中最常用的步驟。假設閾值為ω,保留每層中filter權重絕對值之和大于閾值ω的權重。閾值法裁剪方式如式(1)所示,其中i和j代表卷積核的維度
(1)
式(1)很難從全局進行分析,并且不能將訓練融入裁剪當中,從而導致網絡精度降低。文獻[25]采用一種基于注意力模塊的剪枝濾波器,稱為SEBlock,由全局池化層、全連接層和激活函數組成。將通過注意力模塊的輸出稱為縮放因子,其變換過程描述如式(2)所示
F(X〈n,W,H,C〉)=sig(FC2(ReLU(GAP(X〈n,W,H,C〉))))
(2)
其中,X〈n,W,H,C〉代表輸入,FC代表全連接層,GAP代表全局池化層,ReLU和sig代表激活函數。
為了更好地使得裁剪過程自適應,本文提出將SEBlock與BN層縮放因子同時進行正則化訓練裁剪的方法,算法策略如下所述:
1)通過SEBlock計算縮放因子,獲得能夠反映通道重要性的參數,結合通道在樣本數據集下的平均值進行綜合分析,更準確地反映通道重要性。
2)利用L1正則方法,在網絡原本代價函數的基礎上,將步驟1)計算出的縮放因子,與BN 層的縮放因子同時歸入目標方程,進行稀疏化訓練,如式(3)所示
(3)

3)依照步驟2)進行訓練裁剪后,對網絡進行微調,從而恢復裁剪后網絡的檢測精度。
網絡裁剪的目標是在保持網絡精度的前提下,保留重要權重,去掉不重要權重,其核心在于如何在裁剪的同時,更好地保持精度。文中所提出的自適應稀疏化訓練方式可以在裁剪的同時,最大程度上保證網絡精度。整個裁剪過程訓練流程圖如圖3所示,首先利用式(3)對網絡進行稀疏化訓練,隨后裁剪掉稀疏的網絡連接,其次對裁剪后的網絡進行微調,獲得剪枝后的網絡。此外,該訓練過程還可重復進行,并不斷迭代,以便獲得最優結果。

圖3 裁剪過程訓練流程圖Fig.3 Pruning process training flow chart
本文提出的網絡裁剪算法可以明顯保持裁剪后的網絡精度,針對本文裁剪算法已經經過測試的網絡結構包括VGG、ResNet、Darknet53和DenseNet網絡,該網絡裁剪算法針對CNN具備普適性。
最主流的權重量化方式包括Fp16量化和Int8量化,其中Fp16相比Fp32減少50%的位寬,Int8相比Fp32減少75%的位寬。線性Int8量化將權重數據量化到(-127~127)的范圍當中,這種映射稱為不飽和映射,將導致精度損失較大。本文將采用飽和映射進行量化,這也是TensorRT技術采用的量化方式。飽和映射的過程是尋找閾值|T|,將±|T|映射到±127范圍當中,超過閾值之外的,直接映射到±127,飽和映射過程示意圖如圖4所示。

圖4 飽和映射過程示意圖Fig.4 Schematic diagram of saturation mapping process
本文采用的保精度量化算法策略如下所述:
1)從驗證集當中,選取子集當作校準集,用于校準Int8量化帶來的精度損失;
2)在選取的校準集上進行Fp32推理,對于網絡的所有層,分別收集相關的激活值,列出直方圖;
3)針對不同閾值實施遍歷操作,選取可以使得KL散度取得最小值的閾值,最終獲得一系列的閾值,并且所有層均返回一個閾值,稱之為校準表(Calibration Table),最終利用校準表實現神經網絡Int8的保精度量化過程。
本文采用的網絡量化算法可以明顯保持量化后的網絡精度,針對本文所采用的量化算法,已經經過測試的網絡結構包括VGG、ResNet、Darknet53、AlexNet和GoogleNet網絡,該網絡量化算法針對CNN具備普適性。
TensorRT技術屬于英偉達的不開源神經網絡加速技術,為神經網絡部署提供基于GPU平臺的加速解決方案。目前,TensorRT技術最擅長CNN優化,TensorRT技術程序部署流程如圖5所示。

圖5 TensorRT程序部署流程Fig.5 Program deployment process based on TensorRT
TensorRT通過對網絡進行合并與量化,形成更為緊湊、硬件資源需求更小的網絡結構,能夠確保在減小資源使用率的同時,使得網絡結構性能損失程度較小。TensorRT技術首先通過優化技術生成如圖5所示的中間層engine,隨后利用該優化后的engine對網絡結構進行部署,實現各類受限資源條件下的神經網絡實時應用。
對于如圖6所示的原始網絡,TensorRT技術可將其垂直方向優化為如圖7所示的優化后網絡結構,從而有效實現網絡推理加速,水平方向的優化與垂直方向類似。此外,結合網絡裁剪技術,可在推理過程當中獲得更高的加速比。

圖6 原始網絡結構Fig.6 Original network structure

圖7 垂直方向優化后的網絡結構Fig.7 Vertical optimized network structure
為了驗證本文提出和采用的網絡壓縮算法在嵌入式端的加速能力,選取Nvidia Jetson Xavier作為驗證平臺,并與TensorRT優化進行比對。Xavier是英偉達的異構嵌入式GPU平臺,CPU具備8核ARM64架構,GPU具備512顆CUDA核心。在公有數據集VOC2007與VOC2012上進行數據訓練,利用獲得的權重計算初始精度mAP值。隨后利用裁剪與量化算法進行優化,并利用經算法優化后的權重計算新的mAP值。經過20次裁剪與量化仿真測試,選取最優仿真結果,同時,對未開源的TensorRT技術進行技術應用,仿真驗證結果如表3所示。

表3 YOLOv3算法嵌入式端仿真驗證結果Tab.3 Simulation and verification results of YOLOv3 on embedded GPU platform
YOLOv3算法的部分網絡裁剪結果如表4所示。由表4可以看出,裁剪算法針對不同的卷積層會進行相應的裁剪,有些層通道數目變小,有些層通道數目不變。網絡裁剪將直接改變網絡結構,裁剪結果與訓練數據集密切相關。

表4 YOLOv3算法部分網絡裁剪結果Tab.4 Partial network pruning results of YOLOv3
YOLOv3算法裁剪前后的精度與幀頻對比結果如表5所示,表中結果均是分別在相應條件下運行10次程序后選取的最優結果。可以看出,針對不同的裁剪力度,精度下降情況和幀頻變化均不同,裁剪力度越大,精度下降越快,幀頻越高。

表5 YOLOv3算法裁剪前后精度與幀頻對比Tab.5 Accuracy and frame frequency comparison of YOLOv3 before and after pruning
從表3~表5的仿真驗證結果可以看出,裁剪與量化的方式可以在網絡精度損失較少的情況下,使得嵌入式平臺上的網絡推理獲得理想的加速比。原版darknet在異構嵌入式平臺的幀頻為8幀/s,經TensorRT技術優化后可獲得3倍的速度提升。經本文提出的網絡壓縮算法,可以在精度損失小于5%的前提下,獲得3倍以上的速度提升。
相比不開源的TensorRT技術,本文算法思想可以實現自主可控的神經網絡壓縮及嵌入式應用。此外,基于本文思想,結合復雜算法實現裁剪與量化,將使得目標檢測識別網絡精度下降幅度更小。
本文提出了針對卷積神經網絡的壓縮算法,并進行了相應的嵌入式平臺應用。相比不開源的針對GPU平臺的TensorRT優化技術,本文算法思想可以合理進行各類硬件平臺的技術復用。針對神經網絡的定量硬件資源評估,以及針對GPU嵌入式平臺所進行的裁剪和量化實驗分析表明:
1)各類自主目標識別神經網絡算法的硬件資源需求量可通過計算獲得,針對目標算法,可以利用資源計算分析來合理設計硬件。
2)基于英偉達目前的TensorRT技術,利用8bit量化技術,在嵌入式GPU平臺可以實現神經網絡3倍的推理速度提升。由于此項技術為不開源技術,所以精度損失程度未知。從公開資料來看,網絡精度損失較小。
3)基于本文所提出和采用的網絡裁剪及量化優化算法,在網絡精度損失小于5%的前提下,獲得了3倍以上的推理速度提升。本文算法與針對GPU平臺的不開源TensorRT技術相比,為針對不同平臺的神經網絡優化技術應用提供了新的技術思路。
經驗證,本文的優化算法思想可直接應用于FPGA平臺。本文的下一步研究方向是基于FPGA平臺的硬件優化[26-27]。在具備國產自主性、低功耗的FPGA平臺,利用網絡優化技術實現神經網絡的實時應用部署,為制導武器末制導人工智能機器視覺技術的軍事應用提供進一步的技術解決方案。