仝 玉,周 海,卞春江,陳紅珍
(1.中國科學院國家空間科學中心 復雜航天系統綜合電子與信息技術重點實驗室,北京 100190; 2.中國科學院大學 計算機科學與技術學院,北京 100049)
星載遙感圖像實時目標檢測技術可提取高價值遙感目標,具有十分重要的應用意義。而星載宇航級處理芯片計算和存儲資源十分匱乏。就目前目標檢測網絡尺寸而言難以移植到宇航級處理芯片中,因此利用網絡壓縮技術減少網絡尺寸具有重要的研究意義。
早期的網絡壓縮方法主要是網絡剪枝,基于權重的裁剪算法[1]和結構化剪枝方法[2]相繼被提出,利用權重重要性評判標準裁掉網絡中冗余的權重,降低模型的計算量和存儲量。除了剪枝技術,研究者也從網絡量化方面壓縮網絡。BinaryConnect網絡[3]、二值權值網絡[4]、三值權值網絡[5]相繼被提出,但在量化過程中存在精度損失,同時只適用于處理特定模型結構和網絡層。之后Zhou等提出漸進式增量量化[6],對模型的所有參數進行量化,有效地解決了量化過程中模型精度損失明顯的問題。
目前對于目標檢測網絡的壓縮工作主要從單一角度出發,Yihui He等[7]對目標檢測網絡的預訓練網絡進行剪枝進而對實現目標檢測網絡的壓縮。這種單一角度壓縮方法壓縮程度有限,剪枝后網絡中依舊存在大量乘加操作,芯片處理依舊能力不足,難以廣泛應用于光學遙感衛星系統。
因此本文從兩個角度對網絡進行混合壓縮,提出一種漸進式混合量化(incremental hybrid quantization,IHQ)方法,并將其與網絡剪枝相結合。首先對目標檢測網絡進行濾波器級剪枝,在剪枝訓練過程引入了二值掩碼矩陣,大幅度降低了卷積乘法操作;然后進行漸進式混合量化,在網絡不同部分采取不同的量化位寬,降低了網絡權重在宇航級芯片內部存儲空間。實驗結果表明,該方法在網絡檢測精度損失<1%的情況下,顯著提升了網絡對星上有限計算和存儲資源的利用率。
基于遙感圖像目標檢測,綜合權值存儲和運算速度等因素,選擇使用以ResNet-18[8]為基礎網絡的Faster-RCNN網絡[9]作為遙感圖像目標檢測網絡。網絡結構如圖1所示,遙感圖像經過RCNN_base提取圖像特征,然后輸入到RPN層,在anchor機制下產生anchor,經過3*3卷積進一步提取特征圖信息,再經過兩個1*1卷積進行二分類和坐標回歸。經歷RPN層之后經過RoI Proposal部分(此部分不含卷積操作)剔除掉越界和重復的包圍框輸出300個rois,連同RCNN_base輸出的特征圖進行RoI pooling,統一規范為7*7的特征映射。最后經過RCNN_top,以及兩個全連接層,分別進行分類和定位操作。

圖1 Faster-RCNN網絡計算流程
ResNet-18計算量和存儲量較小,模型存儲量為46.8 MB,計算量為1.8 GFLOPs,由conv1、layer1、layer2、layer3、layer4、avlpooling組成,每一個layer為一個殘差塊包括兩個殘差結構,其中每個殘差結構包括兩個卷積層。layer1.0.conv1表示第一個殘差塊中第一個殘差結構第一個卷積層。RCNN_base部分包括conv1、layer1、layer2、la-yer3,RCNN_top部分包括layer4、avlpooling。
由Faster-RCNN網絡結構分析可知,網絡卷積操作集中于基礎網絡ResNet-18。因此本文混合壓縮方法首先對ResNet-18進行濾波器級剪枝,實現初步的壓縮,然后將裁剪之后的ResNet-18作為Faster-RCNN的基礎網絡進行訓練并分析裁剪后Faster-RCNN網絡不同部分對于量化位寬的敏感性,進行漸進式混合量化,實現最終的壓縮。算法總體流程如圖2所示。

圖2 混合壓縮方法整體流程
1.1.1 濾波器級剪枝
根據對剪去權重位置是否做額外約束可以將網絡剪枝分為結構化剪枝和非結構化剪枝。結構化剪枝與非結構化剪枝相比,剪枝之后的權重矩陣更為規則,在網絡加速階段不需要特殊的硬件且不引入額外的計算成本。同時結構化剪枝根據對剪去的權重位置不同分為向量級剪枝、核級剪枝和濾波器級剪枝。濾波器級剪枝與其它剪枝方式相比,通過對整個三維卷積核的去除,可以更直接有效加速深度神經網絡計算過程。
同時濾波器級剪枝并沒有改變權重矩陣的形狀,只是改變濾波器的個數,降低網絡中浮點數計算量。網絡剪枝之后在宇航級處理芯片運行時不但不會給芯片內部并行化計算造成困難,而且可以有效減少并行化周期,提高計算效率。
因此本文首先選取濾波器級剪枝對目標檢測網絡中基礎網絡卷積層進行剪枝操作,大幅度降低網絡卷積計算操作數量。
1.1.2 分層剪枝法
網絡剪枝過程如圖3所示,分為以下3步:①通過正常網絡訓練得到一個原始網絡;②通過一定的衡量規則判斷網絡層中濾波器的重要性并將不重要的濾波器進行移除;③在得到的小規模網絡基礎上進行再訓練以恢復因網絡剪枝所造成的損失[10]。

圖3 剪枝算法主要流程
在網絡重訓練過程中主要通過以下兩種方法進行訓練,方法一是網絡層剪枝與重訓練相互迭代,每層剪枝操作結束之后立即進行重訓練,以此迭代直到全部網絡層剪枝結束。方法二是將整個網絡只進行一次剪枝操作,然后對網絡進行微調重訓練。方法二與方法一相比花費時間較少,同時精度不會造成明顯損失。
本文采取的濾波器重要性衡量標準為平均L1范數,通過計算濾波器絕對值和的平均值,對L1范數評判規則進行規范化,使其不受濾波器大小的影響。韓松等[1]將網絡中低于某一閾值的權重裁掉的做法容易使得在網絡權重分布不均衡的情況下將網絡層中全部權重被移除。因此本文對網絡中不同卷積層逐層設置裁剪率,對網絡進行一次性剪枝。
通常在網絡卷積層裁剪濾波器時,將某一層相應的濾波器裁掉之后,需要將該層與下一層的輸出通道以及輸入通道相對應減少,重新生成新的核矩陣,將沒有被裁掉的權重重新移植到新的模型中。裁剪過程中每裁剪一層都要重復此操作,過程繁瑣。
本文在剪枝訓練過程中引入二值掩碼矩陣Ml, 模型剪枝過程中并不改變核矩陣的大小,訓練結束之后將掩碼為0的權重統一去除,計算過程簡單。假設網絡原始濾波器矩陣為W, 裁剪之后網絡矩陣為S, 其中S=Ml·W, 將要被裁掉的濾波器掩碼設為0。在網絡反向傳播過程中,利用S更新梯度,掩碼為0的權重并不參與反向傳播過程。假設在第j個卷積層,該卷積層輸入特征圖為x, 經過剪枝之后卷積核矩陣為Sj, 輸出為y, 反向傳播過程如下
(1)
對Faster-RCNN的基礎網絡ResNet-18濾波器級剪枝之后,可有效降低網絡降低卷積計算操作數,但網絡中依舊存在大量的卷積計算,計算量以億計數。宇航級芯片內部負責浮點乘加運算的是有限數量的數字信號處理(digital signal processing,DSP)硬核。國產宇航級芯片DSP數量通常不超過1000,并且DSP硬核在一個周期內通常只能處理一次乘加操作,處理上億的計算操作數計算成本較高。因此本文在濾波器級剪枝之后,基于漸進式增量量化方法提出漸進式混合量化方法簡稱IHQ,將網絡中32位網絡權重量化為2的整次冪或者0。量化后網絡在宇航級芯片上部署加速時,復雜的卷積乘法操作可被轉化為簡單的移位操作,降低了網絡中浮點運算對有限DSP硬核的依賴,提升了網絡在芯片內部計算效率。
漸進式增量量化方法將模型中所有網絡層量化為相同位寬,整個模型量化位寬一致,對網絡的壓縮程度有限。本文提出的IHQ方法與漸進式增量量化方法的目標都是將網絡中的權重量化為2的冪次,但在量化位寬的選擇上不同于漸進式增量量化,其基本思想是在不損失網絡模型精度的前提下,對網絡各部分采用更少的量化位寬,使其在芯片內部所占存儲量進一步減少。混合使用不同的量化位寬可以獲得更好的壓縮率,但是直接混合使用會嚴重損失模型的精度,所以需要對網絡中不同部分對量化位寬的敏感性進行分析,確定最優的量化位寬組合。
網絡量化訓練過程如圖4所示,不斷迭代分組、量化、重訓練步驟,直到網絡中所有權重都被量化成2的整次冪或者0。

圖4 網絡量化過程

當網絡中需要被量化部分進行量化時,所有參數被量化為2的整次冪或0。Faster-RCNN網絡是兩階段式目標檢測網絡,根據圖1的Faster-RCNN網絡的計算流程,可將網絡分為兩部分,如圖5所示。在本文提出的IHQ方法中將網絡方法中將網絡第一部分與第二部分設置為不同位數的量化位寬。

圖5 Faster-RCNN網絡結構拆分
假設權重量化位寬即網絡在芯片中所占位長為b, 則其相對應的碼本為Pl={±2n1,…,±2n2,0},n1≥n2
s=max(abs(Wl))
(2)
n1=floor(log24s/3)
(3)
n2=n1+1-2(b-1)/2
(4)
其中,floor(·) 表示向下取整操作,s是每層濾波器權重絕對值的最大值,abs(·) 是取絕對值操作。
在網絡中未被量化的部分需要重訓練以彌補量化所造成的損失,可以依賴二值矩陣使用SGD算法更新權值
(5)
本文選用Pytorch深度學習框架,實驗環境為Ubuntu16.04,兩塊NVIDIA GeForce GTX 1080 Ti GPU。
(1)首先選擇基于Cifar10數據集訓練的ResNet-56進行裁剪,剪枝過程引入二值掩碼矩陣,重訓練過程中網絡學習率為0.1,迭代次數為70次。
(2)選擇基于ImageNet數據集訓練的ResNet-18進行裁剪,剪枝訓練過程依舊引入二值掩碼矩陣。重訓練過程中網絡學習率為0.001,迭代次數80次。在ImageNet數據集訓練時,圖片大小為224*224。然后將裁剪之后的ResNet-18作為Faster-RCNN的基礎網絡進行訓練。
(3)將剪枝之后的Faster-RCNN網絡進行漸進式混合量化。
Faster-RCNN網絡訓練采取的是RSOD[11]數據集。該數據集包括4類:aircraft、playground、overpass、oiltank。該數據集采用的是PASCAL VOC數據集標注格式。利用遙感圖像對機場、港口、海上等區域的飛行器和艦船進行目標檢測,對戰場部署起著重要作用。因此對于此數據集進行種類擴充,增加了艦船目標的檢測。最終數據集包括aircraft、boat、playground、overpass。其中飛機446張共4993個實例,艦船共180張,共500個實例,立交橋176張共180個實例,操場189張共191個實例。訓練集、驗證集、測試集按照1∶1∶2的比例劃分。同時針對目標檢測網絡對相似背景判別能力不足的情況,進行Faster-RCNN網絡改進。在Faster-RCNN網絡配置中,RPN網絡在提取候選區域時,默認選取正負樣本比例為1∶1的候選框,本文實驗中將RPN提取的正負候選區域比例調整為3∶7,強化網絡模型對相似背景的辨別能力,提高目標的檢測性能。
本文選取了網絡的權重數量和浮點數乘法量作為網絡剪枝的性能評價指標。網絡的權重數量對應網絡的空間復雜度,浮點數乘法量對應網絡的時間復雜度。
本文選取平均精度(average precision,AP)作為Faster-RCNN訓練的評價指標。目標檢測問題涉及到圖像中目標的位置信息并且要對目標進行分類
(6)
(7)
其中,TP表示正確識別的正樣本數量,TN表示正確識別的負樣本數量,FP表示錯誤識別的正樣本數量,FN表示錯誤識別的負樣本數量。因此精確率precision召回率recall要判斷樣本的正負屬性,都是相對于IoU(intersection over union)閾值的度量。單個精確率和召回率不適合作為評判標準,需要根據在不同的IoU閾值下精確率和召回率之間的關系形成PR(Precision-Recall)曲線,根據PR曲線下的面積得到每一類的平均精度AP,以AP值作為評價指標。
(1)對ResNet-56敏感度分析后將ResNet-56第一階段殘差塊的第一個卷積層裁剪比例設為0.6,第二階段殘差塊第一個卷積層裁剪比例設為0.3,第三階段殘差塊第一個卷積層裁剪比例為0.1。剪枝過程掉過敏感層16、18、20、34、38、54。在剪枝訓練過程中引入二值掩碼矩陣,網絡學習率為0.1,迭代70次,裁剪后網絡在Cifar10數據集上Top-1準確率為93.10。
本文網絡卷積層剪枝比例與Hao li等[2]方法相同,但網絡訓練方法不同。在網絡剪枝過程中引入二值掩碼矩陣,剪枝后網絡Top-1準確率上升了0.4。
(2)通過對ResNet-18每層獨立裁剪,得到ResNet-18每個殘差塊剪枝敏感度曲線,如圖6所示。由圖中4個折線圖對比可得隨著網絡程度加深,殘差塊對剪枝敏感性逐漸下降。網絡中大多數層對剪枝的魯棒性較好,其中layer2.0.conv1為敏感層。隨著網絡剪枝程度加深,殘差塊layer3、layer4網絡精度下降<0.5;當殘差塊layer1剪枝比例小于30%時,網絡表現良好,當剪枝比例大于30%,網絡性能急劇下降。

圖6 ResNet-18各殘差塊剪枝敏感度分析
因此在裁剪時跳過敏感層layer2.0.conv1,經驗性的將第一個殘差塊的第一個卷積層裁剪比例設為0.2,第二個殘差塊第二個殘差結構第一個卷積層裁剪比例設為0.4,第三、四個殘差塊第一個卷積層裁剪比例設為0.3。在ImageNet數據集上利用兩塊NVIDIA GeForce GTX 1080 Ti GPU進行實驗,裁剪前后對比結果見表1,ResNet-18權重總數下降38.39%,計算量下降28.27%。在ImageNet數據集上Top-1準確率為67.786,與原網絡相比下降2.8%。將剪枝之后的ResNet-18作為Faster-RCNN網絡的基礎網絡進行訓練,Faster-RCNN剪枝前權重總數為12 387 008,剪枝后權重總數為8 091 008,剪枝后權重量減少34.68%。剪枝前Faster-RCNN網絡飛機種類AP值為0.909,剪枝后飛機種類AP值為0.906。

表1 ResNet-18剪枝前后對比
(3)按照圖5將剪枝后Faster-RCNN網絡分為兩部分進行漸進式混合量化。
首先分析兩部分對于量化位寬的敏感性,并確定漸進式混合量化的位寬組合。實驗共分為6組對照實驗,將Faster-RCNN兩部分量化位寬分別設為5位,5位;4位,4位;3位,3位;5位,4位;5位,3位;3位,5位。表2是Faster-RCNN在不同量化位寬組合下的飛機種類檢測對比結果。通過對比實驗第一組、第二組、第三組可得,當Faster-RCNN全部量化為4位或者3位時,在網絡逐步量化過程中,網絡性能下降明顯;對比實驗第一組和第六組,結果表明在Faster-RCNN網絡中網絡第一部分對網絡量化位寬更為敏感;通過對比實驗第一組、第四組、第五組,可得在網絡第一部分量化位寬不變的情況下,逐步降低網絡第二部分量化位寬,飛機種類AP值損失較小,誤差在1%之內。基于以上對Faster-RCNN網絡量化位寬的敏感性分析,將Faster-RCNN網絡進行IHQ的量化位寬組合定為5和3。

表2 Faster-RCNN網絡兩部分量化位寬敏感度分析
為了驗證本文提出的IHQ方法的泛化性,增加對艦船、立交橋、操場等種類檢測。圖7是漸進式增量量化以及漸進式混合量化過程中各檢測目標AP值的變化曲線,其中橫坐標100%表示網絡中所有權重量化完成,由兩張折線圖對比可得,對網絡進行漸進式混合量化在多類目標檢測時,網絡精度依舊損失較小,AP值在量化過程中誤差<1%。

圖7 飛機、操場、立交橋等種類漸進式增量量化與漸進式混合量化AP值對比
本文對漸進式增量量化和漸進式混合量化后的Faster-RCNN網絡的檢測結果進行了可視化,結果如圖8所示。其中圖8(a)是網絡進行漸進式增量量化后的可視化結果,圖8(b)是網絡在本文提出的IHQ方法量化后的可視化結果。從可視化結果對比可以看出,IHQ方法對遙感圖像密集目標、小目標依舊有良好的檢測性能。

圖8 漸進式增量量化與漸進式混合量化可視化結果對比
本文也對進行IHQ后Faster-RCNN網絡在宇航級芯片中內存占用進行了分析。經過ResNet-18網絡剪枝之后,Faster-RCNN網絡總權重數量為8 091 008,第一部分權重數量為1 788 544,第二部分權重數量為6 302 464,IHQ方法將網絡第一部分量化位寬設為5,第二部分量化位寬設為3,與漸進式增量量化方法將網絡量化位寬統一設為5的做法相比,可使Faster-RCNN網絡在宇航級芯片內部推斷時內存占用減少31.16%。
由以上分析可得,本文提出的IHQ方法同漸進式增量量化方法相比,在減少網絡內存占用31.16%的情況下依舊可以在遙感圖像數據集上特別是密集型小目標上取得良好的檢測結果,同時各檢測目標的AP值損失<1%。
本文針對多層神經網絡在軌目標檢測需求與星上有限硬件資源之間的矛盾,基于宇航級芯片特性,提出一種漸進式混合量化方法,并與濾波器級剪枝結合,對目標檢測網絡進行混合壓縮。濾波器級剪枝大規模降低了網絡中卷積計算操作數;漸進式混合量化方法降低了網絡對宇航級處理芯片內部DSP硬核的依賴和網絡在宇航級芯片中的存儲大小。通過本文網絡壓縮方法將Faster-RCNN網絡權重數量減少34.68%,其中基礎網絡ResNet-18權重數量減少38.39%,計算量減少28.27%;本文漸進式混合量化方法在各類檢測目標AP值損失<1%情況下,與漸進式增量量化方法相比使網絡權重在宇航級芯片中所占內存減少31.16%。本文方法具有一定普適性,可適用于不同的卷積結構。但是該方法只是對網絡權重進行量化,后續可以將其擴展到網絡激活量化以及網絡梯度量化。