仝 玉,周 海,卞春江,陳紅珍
(1.中國(guó)科學(xué)院國(guó)家空間科學(xué)中心 復(fù)雜航天系統(tǒng)綜合電子與信息技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100190; 2.中國(guó)科學(xué)院大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100049)
星載遙感圖像實(shí)時(shí)目標(biāo)檢測(cè)技術(shù)可提取高價(jià)值遙感目標(biāo),具有十分重要的應(yīng)用意義。而星載宇航級(jí)處理芯片計(jì)算和存儲(chǔ)資源十分匱乏。就目前目標(biāo)檢測(cè)網(wǎng)絡(luò)尺寸而言難以移植到宇航級(jí)處理芯片中,因此利用網(wǎng)絡(luò)壓縮技術(shù)減少網(wǎng)絡(luò)尺寸具有重要的研究意義。
早期的網(wǎng)絡(luò)壓縮方法主要是網(wǎng)絡(luò)剪枝,基于權(quán)重的裁剪算法[1]和結(jié)構(gòu)化剪枝方法[2]相繼被提出,利用權(quán)重重要性評(píng)判標(biāo)準(zhǔn)裁掉網(wǎng)絡(luò)中冗余的權(quán)重,降低模型的計(jì)算量和存儲(chǔ)量。除了剪枝技術(shù),研究者也從網(wǎng)絡(luò)量化方面壓縮網(wǎng)絡(luò)。BinaryConnect網(wǎng)絡(luò)[3]、二值權(quán)值網(wǎng)絡(luò)[4]、三值權(quán)值網(wǎng)絡(luò)[5]相繼被提出,但在量化過(guò)程中存在精度損失,同時(shí)只適用于處理特定模型結(jié)構(gòu)和網(wǎng)絡(luò)層。之后Zhou等提出漸進(jìn)式增量量化[6],對(duì)模型的所有參數(shù)進(jìn)行量化,有效地解決了量化過(guò)程中模型精度損失明顯的問(wèn)題。
目前對(duì)于目標(biāo)檢測(cè)網(wǎng)絡(luò)的壓縮工作主要從單一角度出發(fā),Yihui He等[7]對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)的預(yù)訓(xùn)練網(wǎng)絡(luò)進(jìn)行剪枝進(jìn)而對(duì)實(shí)現(xiàn)目標(biāo)檢測(cè)網(wǎng)絡(luò)的壓縮。這種單一角度壓縮方法壓縮程度有限,剪枝后網(wǎng)絡(luò)中依舊存在大量乘加操作,芯片處理依舊能力不足,難以廣泛應(yīng)用于光學(xué)遙感衛(wèi)星系統(tǒng)。
因此本文從兩個(gè)角度對(duì)網(wǎng)絡(luò)進(jìn)行混合壓縮,提出一種漸進(jìn)式混合量化(incremental hybrid quantization,IHQ)方法,并將其與網(wǎng)絡(luò)剪枝相結(jié)合。首先對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)進(jìn)行濾波器級(jí)剪枝,在剪枝訓(xùn)練過(guò)程引入了二值掩碼矩陣,大幅度降低了卷積乘法操作;然后進(jìn)行漸進(jìn)式混合量化,在網(wǎng)絡(luò)不同部分采取不同的量化位寬,降低了網(wǎng)絡(luò)權(quán)重在宇航級(jí)芯片內(nèi)部存儲(chǔ)空間。實(shí)驗(yàn)結(jié)果表明,該方法在網(wǎng)絡(luò)檢測(cè)精度損失<1%的情況下,顯著提升了網(wǎng)絡(luò)對(duì)星上有限計(jì)算和存儲(chǔ)資源的利用率。
基于遙感圖像目標(biāo)檢測(cè),綜合權(quán)值存儲(chǔ)和運(yùn)算速度等因素,選擇使用以ResNet-18[8]為基礎(chǔ)網(wǎng)絡(luò)的Faster-RCNN網(wǎng)絡(luò)[9]作為遙感圖像目標(biāo)檢測(cè)網(wǎng)絡(luò)。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,遙感圖像經(jīng)過(guò)RCNN_base提取圖像特征,然后輸入到RPN層,在anchor機(jī)制下產(chǎn)生anchor,經(jīng)過(guò)3*3卷積進(jìn)一步提取特征圖信息,再經(jīng)過(guò)兩個(gè)1*1卷積進(jìn)行二分類和坐標(biāo)回歸。經(jīng)歷RPN層之后經(jīng)過(guò)RoI Proposal部分(此部分不含卷積操作)剔除掉越界和重復(fù)的包圍框輸出300個(gè)rois,連同RCNN_base輸出的特征圖進(jìn)行RoI pooling,統(tǒng)一規(guī)范為7*7的特征映射。最后經(jīng)過(guò)RCNN_top,以及兩個(gè)全連接層,分別進(jìn)行分類和定位操作。
圖1 Faster-RCNN網(wǎng)絡(luò)計(jì)算流程
ResNet-18計(jì)算量和存儲(chǔ)量較小,模型存儲(chǔ)量為46.8 MB,計(jì)算量為1.8 GFLOPs,由conv1、layer1、layer2、layer3、layer4、avlpooling組成,每一個(gè)layer為一個(gè)殘差塊包括兩個(gè)殘差結(jié)構(gòu),其中每個(gè)殘差結(jié)構(gòu)包括兩個(gè)卷積層。layer1.0.conv1表示第一個(gè)殘差塊中第一個(gè)殘差結(jié)構(gòu)第一個(gè)卷積層。RCNN_base部分包括conv1、layer1、layer2、la-yer3,RCNN_top部分包括layer4、avlpooling。
由Faster-RCNN網(wǎng)絡(luò)結(jié)構(gòu)分析可知,網(wǎng)絡(luò)卷積操作集中于基礎(chǔ)網(wǎng)絡(luò)ResNet-18。因此本文混合壓縮方法首先對(duì)ResNet-18進(jìn)行濾波器級(jí)剪枝,實(shí)現(xiàn)初步的壓縮,然后將裁剪之后的ResNet-18作為Faster-RCNN的基礎(chǔ)網(wǎng)絡(luò)進(jìn)行訓(xùn)練并分析裁剪后Faster-RCNN網(wǎng)絡(luò)不同部分對(duì)于量化位寬的敏感性,進(jìn)行漸進(jìn)式混合量化,實(shí)現(xiàn)最終的壓縮。算法總體流程如圖2所示。
圖2 混合壓縮方法整體流程
1.1.1 濾波器級(jí)剪枝
根據(jù)對(duì)剪去權(quán)重位置是否做額外約束可以將網(wǎng)絡(luò)剪枝分為結(jié)構(gòu)化剪枝和非結(jié)構(gòu)化剪枝。結(jié)構(gòu)化剪枝與非結(jié)構(gòu)化剪枝相比,剪枝之后的權(quán)重矩陣更為規(guī)則,在網(wǎng)絡(luò)加速階段不需要特殊的硬件且不引入額外的計(jì)算成本。同時(shí)結(jié)構(gòu)化剪枝根據(jù)對(duì)剪去的權(quán)重位置不同分為向量級(jí)剪枝、核級(jí)剪枝和濾波器級(jí)剪枝。濾波器級(jí)剪枝與其它剪枝方式相比,通過(guò)對(duì)整個(gè)三維卷積核的去除,可以更直接有效加速深度神經(jīng)網(wǎng)絡(luò)計(jì)算過(guò)程。
同時(shí)濾波器級(jí)剪枝并沒(méi)有改變權(quán)重矩陣的形狀,只是改變?yōu)V波器的個(gè)數(shù),降低網(wǎng)絡(luò)中浮點(diǎn)數(shù)計(jì)算量。網(wǎng)絡(luò)剪枝之后在宇航級(jí)處理芯片運(yùn)行時(shí)不但不會(huì)給芯片內(nèi)部并行化計(jì)算造成困難,而且可以有效減少并行化周期,提高計(jì)算效率。
因此本文首先選取濾波器級(jí)剪枝對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)中基礎(chǔ)網(wǎng)絡(luò)卷積層進(jìn)行剪枝操作,大幅度降低網(wǎng)絡(luò)卷積計(jì)算操作數(shù)量。
1.1.2 分層剪枝法
網(wǎng)絡(luò)剪枝過(guò)程如圖3所示,分為以下3步:①通過(guò)正常網(wǎng)絡(luò)訓(xùn)練得到一個(gè)原始網(wǎng)絡(luò);②通過(guò)一定的衡量規(guī)則判斷網(wǎng)絡(luò)層中濾波器的重要性并將不重要的濾波器進(jìn)行移除;③在得到的小規(guī)模網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行再訓(xùn)練以恢復(fù)因網(wǎng)絡(luò)剪枝所造成的損失[10]。
圖3 剪枝算法主要流程
在網(wǎng)絡(luò)重訓(xùn)練過(guò)程中主要通過(guò)以下兩種方法進(jìn)行訓(xùn)練,方法一是網(wǎng)絡(luò)層剪枝與重訓(xùn)練相互迭代,每層剪枝操作結(jié)束之后立即進(jìn)行重訓(xùn)練,以此迭代直到全部網(wǎng)絡(luò)層剪枝結(jié)束。方法二是將整個(gè)網(wǎng)絡(luò)只進(jìn)行一次剪枝操作,然后對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào)重訓(xùn)練。方法二與方法一相比花費(fèi)時(shí)間較少,同時(shí)精度不會(huì)造成明顯損失。
本文采取的濾波器重要性衡量標(biāo)準(zhǔn)為平均L1范數(shù),通過(guò)計(jì)算濾波器絕對(duì)值和的平均值,對(duì)L1范數(shù)評(píng)判規(guī)則進(jìn)行規(guī)范化,使其不受濾波器大小的影響。韓松等[1]將網(wǎng)絡(luò)中低于某一閾值的權(quán)重裁掉的做法容易使得在網(wǎng)絡(luò)權(quán)重分布不均衡的情況下將網(wǎng)絡(luò)層中全部權(quán)重被移除。因此本文對(duì)網(wǎng)絡(luò)中不同卷積層逐層設(shè)置裁剪率,對(duì)網(wǎng)絡(luò)進(jìn)行一次性剪枝。
通常在網(wǎng)絡(luò)卷積層裁剪濾波器時(shí),將某一層相應(yīng)的濾波器裁掉之后,需要將該層與下一層的輸出通道以及輸入通道相對(duì)應(yīng)減少,重新生成新的核矩陣,將沒(méi)有被裁掉的權(quán)重重新移植到新的模型中。裁剪過(guò)程中每裁剪一層都要重復(fù)此操作,過(guò)程繁瑣。
本文在剪枝訓(xùn)練過(guò)程中引入二值掩碼矩陣Ml, 模型剪枝過(guò)程中并不改變核矩陣的大小,訓(xùn)練結(jié)束之后將掩碼為0的權(quán)重統(tǒng)一去除,計(jì)算過(guò)程簡(jiǎn)單。假設(shè)網(wǎng)絡(luò)原始濾波器矩陣為W, 裁剪之后網(wǎng)絡(luò)矩陣為S, 其中S=Ml·W, 將要被裁掉的濾波器掩碼設(shè)為0。在網(wǎng)絡(luò)反向傳播過(guò)程中,利用S更新梯度,掩碼為0的權(quán)重并不參與反向傳播過(guò)程。假設(shè)在第j個(gè)卷積層,該卷積層輸入特征圖為x, 經(jīng)過(guò)剪枝之后卷積核矩陣為Sj, 輸出為y, 反向傳播過(guò)程如下
(1)
對(duì)Faster-RCNN的基礎(chǔ)網(wǎng)絡(luò)ResNet-18濾波器級(jí)剪枝之后,可有效降低網(wǎng)絡(luò)降低卷積計(jì)算操作數(shù),但網(wǎng)絡(luò)中依舊存在大量的卷積計(jì)算,計(jì)算量以億計(jì)數(shù)。宇航級(jí)芯片內(nèi)部負(fù)責(zé)浮點(diǎn)乘加運(yùn)算的是有限數(shù)量的數(shù)字信號(hào)處理(digital signal processing,DSP)硬核。國(guó)產(chǎn)宇航級(jí)芯片DSP數(shù)量通常不超過(guò)1000,并且DSP硬核在一個(gè)周期內(nèi)通常只能處理一次乘加操作,處理上億的計(jì)算操作數(shù)計(jì)算成本較高。因此本文在濾波器級(jí)剪枝之后,基于漸進(jìn)式增量量化方法提出漸進(jìn)式混合量化方法簡(jiǎn)稱IHQ,將網(wǎng)絡(luò)中32位網(wǎng)絡(luò)權(quán)重量化為2的整次冪或者0。量化后網(wǎng)絡(luò)在宇航級(jí)芯片上部署加速時(shí),復(fù)雜的卷積乘法操作可被轉(zhuǎn)化為簡(jiǎn)單的移位操作,降低了網(wǎng)絡(luò)中浮點(diǎn)運(yùn)算對(duì)有限D(zhuǎn)SP硬核的依賴,提升了網(wǎng)絡(luò)在芯片內(nèi)部計(jì)算效率。
漸進(jìn)式增量量化方法將模型中所有網(wǎng)絡(luò)層量化為相同位寬,整個(gè)模型量化位寬一致,對(duì)網(wǎng)絡(luò)的壓縮程度有限。本文提出的IHQ方法與漸進(jìn)式增量量化方法的目標(biāo)都是將網(wǎng)絡(luò)中的權(quán)重量化為2的冪次,但在量化位寬的選擇上不同于漸進(jìn)式增量量化,其基本思想是在不損失網(wǎng)絡(luò)模型精度的前提下,對(duì)網(wǎng)絡(luò)各部分采用更少的量化位寬,使其在芯片內(nèi)部所占存儲(chǔ)量進(jìn)一步減少?;旌鲜褂貌煌牧炕粚捒梢垣@得更好的壓縮率,但是直接混合使用會(huì)嚴(yán)重?fù)p失模型的精度,所以需要對(duì)網(wǎng)絡(luò)中不同部分對(duì)量化位寬的敏感性進(jìn)行分析,確定最優(yōu)的量化位寬組合。
網(wǎng)絡(luò)量化訓(xùn)練過(guò)程如圖4所示,不斷迭代分組、量化、重訓(xùn)練步驟,直到網(wǎng)絡(luò)中所有權(quán)重都被量化成2的整次冪或者0。
圖4 網(wǎng)絡(luò)量化過(guò)程
當(dāng)網(wǎng)絡(luò)中需要被量化部分進(jìn)行量化時(shí),所有參數(shù)被量化為2的整次冪或0。Faster-RCNN網(wǎng)絡(luò)是兩階段式目標(biāo)檢測(cè)網(wǎng)絡(luò),根據(jù)圖1的Faster-RCNN網(wǎng)絡(luò)的計(jì)算流程,可將網(wǎng)絡(luò)分為兩部分,如圖5所示。在本文提出的IHQ方法中將網(wǎng)絡(luò)方法中將網(wǎng)絡(luò)第一部分與第二部分設(shè)置為不同位數(shù)的量化位寬。
圖5 Faster-RCNN網(wǎng)絡(luò)結(jié)構(gòu)拆分
假設(shè)權(quán)重量化位寬即網(wǎng)絡(luò)在芯片中所占位長(zhǎng)為b, 則其相對(duì)應(yīng)的碼本為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是每層濾波器權(quán)重絕對(duì)值的最大值,abs(·) 是取絕對(duì)值操作。
在網(wǎng)絡(luò)中未被量化的部分需要重訓(xùn)練以彌補(bǔ)量化所造成的損失,可以依賴二值矩陣使用SGD算法更新權(quán)值
(5)
本文選用Pytorch深度學(xué)習(xí)框架,實(shí)驗(yàn)環(huán)境為Ubuntu16.04,兩塊NVIDIA GeForce GTX 1080 Ti GPU。
(1)首先選擇基于Cifar10數(shù)據(jù)集訓(xùn)練的ResNet-56進(jìn)行裁剪,剪枝過(guò)程引入二值掩碼矩陣,重訓(xùn)練過(guò)程中網(wǎng)絡(luò)學(xué)習(xí)率為0.1,迭代次數(shù)為70次。
(2)選擇基于ImageNet數(shù)據(jù)集訓(xùn)練的ResNet-18進(jìn)行裁剪,剪枝訓(xùn)練過(guò)程依舊引入二值掩碼矩陣。重訓(xùn)練過(guò)程中網(wǎng)絡(luò)學(xué)習(xí)率為0.001,迭代次數(shù)80次。在ImageNet數(shù)據(jù)集訓(xùn)練時(shí),圖片大小為224*224。然后將裁剪之后的ResNet-18作為Faster-RCNN的基礎(chǔ)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
(3)將剪枝之后的Faster-RCNN網(wǎng)絡(luò)進(jìn)行漸進(jìn)式混合量化。
Faster-RCNN網(wǎng)絡(luò)訓(xùn)練采取的是RSOD[11]數(shù)據(jù)集。該數(shù)據(jù)集包括4類:aircraft、playground、overpass、oiltank。該數(shù)據(jù)集采用的是PASCAL VOC數(shù)據(jù)集標(biāo)注格式。利用遙感圖像對(duì)機(jī)場(chǎng)、港口、海上等區(qū)域的飛行器和艦船進(jìn)行目標(biāo)檢測(cè),對(duì)戰(zhàn)場(chǎng)部署起著重要作用。因此對(duì)于此數(shù)據(jù)集進(jìn)行種類擴(kuò)充,增加了艦船目標(biāo)的檢測(cè)。最終數(shù)據(jù)集包括aircraft、boat、playground、overpass。其中飛機(jī)446張共4993個(gè)實(shí)例,艦船共180張,共500個(gè)實(shí)例,立交橋176張共180個(gè)實(shí)例,操場(chǎng)189張共191個(gè)實(shí)例。訓(xùn)練集、驗(yàn)證集、測(cè)試集按照1∶1∶2的比例劃分。同時(shí)針對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)相似背景判別能力不足的情況,進(jìn)行Faster-RCNN網(wǎng)絡(luò)改進(jìn)。在Faster-RCNN網(wǎng)絡(luò)配置中,RPN網(wǎng)絡(luò)在提取候選區(qū)域時(shí),默認(rèn)選取正負(fù)樣本比例為1∶1的候選框,本文實(shí)驗(yàn)中將RPN提取的正負(fù)候選區(qū)域比例調(diào)整為3∶7,強(qiáng)化網(wǎng)絡(luò)模型對(duì)相似背景的辨別能力,提高目標(biāo)的檢測(cè)性能。
本文選取了網(wǎng)絡(luò)的權(quán)重?cái)?shù)量和浮點(diǎn)數(shù)乘法量作為網(wǎng)絡(luò)剪枝的性能評(píng)價(jià)指標(biāo)。網(wǎng)絡(luò)的權(quán)重?cái)?shù)量對(duì)應(yīng)網(wǎng)絡(luò)的空間復(fù)雜度,浮點(diǎn)數(shù)乘法量對(duì)應(yīng)網(wǎng)絡(luò)的時(shí)間復(fù)雜度。
本文選取平均精度(average precision,AP)作為Faster-RCNN訓(xùn)練的評(píng)價(jià)指標(biāo)。目標(biāo)檢測(cè)問(wèn)題涉及到圖像中目標(biāo)的位置信息并且要對(duì)目標(biāo)進(jìn)行分類
(6)
(7)
其中,TP表示正確識(shí)別的正樣本數(shù)量,TN表示正確識(shí)別的負(fù)樣本數(shù)量,F(xiàn)P表示錯(cuò)誤識(shí)別的正樣本數(shù)量,F(xiàn)N表示錯(cuò)誤識(shí)別的負(fù)樣本數(shù)量。因此精確率precision召回率recall要判斷樣本的正負(fù)屬性,都是相對(duì)于IoU(intersection over union)閾值的度量。單個(gè)精確率和召回率不適合作為評(píng)判標(biāo)準(zhǔn),需要根據(jù)在不同的IoU閾值下精確率和召回率之間的關(guān)系形成PR(Precision-Recall)曲線,根據(jù)PR曲線下的面積得到每一類的平均精度AP,以AP值作為評(píng)價(jià)指標(biāo)。
(1)對(duì)ResNet-56敏感度分析后將ResNet-56第一階段殘差塊的第一個(gè)卷積層裁剪比例設(shè)為0.6,第二階段殘差塊第一個(gè)卷積層裁剪比例設(shè)為0.3,第三階段殘差塊第一個(gè)卷積層裁剪比例為0.1。剪枝過(guò)程掉過(guò)敏感層16、18、20、34、38、54。在剪枝訓(xùn)練過(guò)程中引入二值掩碼矩陣,網(wǎng)絡(luò)學(xué)習(xí)率為0.1,迭代70次,裁剪后網(wǎng)絡(luò)在Cifar10數(shù)據(jù)集上Top-1準(zhǔn)確率為93.10。
本文網(wǎng)絡(luò)卷積層剪枝比例與Hao li等[2]方法相同,但網(wǎng)絡(luò)訓(xùn)練方法不同。在網(wǎng)絡(luò)剪枝過(guò)程中引入二值掩碼矩陣,剪枝后網(wǎng)絡(luò)Top-1準(zhǔn)確率上升了0.4。
(2)通過(guò)對(duì)ResNet-18每層獨(dú)立裁剪,得到ResNet-18每個(gè)殘差塊剪枝敏感度曲線,如圖6所示。由圖中4個(gè)折線圖對(duì)比可得隨著網(wǎng)絡(luò)程度加深,殘差塊對(duì)剪枝敏感性逐漸下降。網(wǎng)絡(luò)中大多數(shù)層對(duì)剪枝的魯棒性較好,其中l(wèi)ayer2.0.conv1為敏感層。隨著網(wǎng)絡(luò)剪枝程度加深,殘差塊layer3、layer4網(wǎng)絡(luò)精度下降<0.5;當(dāng)殘差塊layer1剪枝比例小于30%時(shí),網(wǎng)絡(luò)表現(xiàn)良好,當(dāng)剪枝比例大于30%,網(wǎng)絡(luò)性能急劇下降。
圖6 ResNet-18各殘差塊剪枝敏感度分析
因此在裁剪時(shí)跳過(guò)敏感層layer2.0.conv1,經(jīng)驗(yàn)性的將第一個(gè)殘差塊的第一個(gè)卷積層裁剪比例設(shè)為0.2,第二個(gè)殘差塊第二個(gè)殘差結(jié)構(gòu)第一個(gè)卷積層裁剪比例設(shè)為0.4,第三、四個(gè)殘差塊第一個(gè)卷積層裁剪比例設(shè)為0.3。在ImageNet數(shù)據(jù)集上利用兩塊NVIDIA GeForce GTX 1080 Ti GPU進(jìn)行實(shí)驗(yàn),裁剪前后對(duì)比結(jié)果見(jiàn)表1,ResNet-18權(quán)重總數(shù)下降38.39%,計(jì)算量下降28.27%。在ImageNet數(shù)據(jù)集上Top-1準(zhǔn)確率為67.786,與原網(wǎng)絡(luò)相比下降2.8%。將剪枝之后的ResNet-18作為Faster-RCNN網(wǎng)絡(luò)的基礎(chǔ)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,F(xiàn)aster-RCNN剪枝前權(quán)重總數(shù)為12 387 008,剪枝后權(quán)重總數(shù)為8 091 008,剪枝后權(quán)重量減少34.68%。剪枝前Faster-RCNN網(wǎng)絡(luò)飛機(jī)種類AP值為0.909,剪枝后飛機(jī)種類AP值為0.906。
表1 ResNet-18剪枝前后對(duì)比
(3)按照?qǐng)D5將剪枝后Faster-RCNN網(wǎng)絡(luò)分為兩部分進(jìn)行漸進(jìn)式混合量化。
首先分析兩部分對(duì)于量化位寬的敏感性,并確定漸進(jìn)式混合量化的位寬組合。實(shí)驗(yàn)共分為6組對(duì)照實(shí)驗(yàn),將Faster-RCNN兩部分量化位寬分別設(shè)為5位,5位;4位,4位;3位,3位;5位,4位;5位,3位;3位,5位。表2是Faster-RCNN在不同量化位寬組合下的飛機(jī)種類檢測(cè)對(duì)比結(jié)果。通過(guò)對(duì)比實(shí)驗(yàn)第一組、第二組、第三組可得,當(dāng)Faster-RCNN全部量化為4位或者3位時(shí),在網(wǎng)絡(luò)逐步量化過(guò)程中,網(wǎng)絡(luò)性能下降明顯;對(duì)比實(shí)驗(yàn)第一組和第六組,結(jié)果表明在Faster-RCNN網(wǎng)絡(luò)中網(wǎng)絡(luò)第一部分對(duì)網(wǎng)絡(luò)量化位寬更為敏感;通過(guò)對(duì)比實(shí)驗(yàn)第一組、第四組、第五組,可得在網(wǎng)絡(luò)第一部分量化位寬不變的情況下,逐步降低網(wǎng)絡(luò)第二部分量化位寬,飛機(jī)種類AP值損失較小,誤差在1%之內(nèi)?;谝陨蠈?duì)Faster-RCNN網(wǎng)絡(luò)量化位寬的敏感性分析,將Faster-RCNN網(wǎng)絡(luò)進(jìn)行IHQ的量化位寬組合定為5和3。
表2 Faster-RCNN網(wǎng)絡(luò)兩部分量化位寬敏感度分析
為了驗(yàn)證本文提出的IHQ方法的泛化性,增加對(duì)艦船、立交橋、操場(chǎng)等種類檢測(cè)。圖7是漸進(jìn)式增量量化以及漸進(jìn)式混合量化過(guò)程中各檢測(cè)目標(biāo)AP值的變化曲線,其中橫坐標(biāo)100%表示網(wǎng)絡(luò)中所有權(quán)重量化完成,由兩張折線圖對(duì)比可得,對(duì)網(wǎng)絡(luò)進(jìn)行漸進(jìn)式混合量化在多類目標(biāo)檢測(cè)時(shí),網(wǎng)絡(luò)精度依舊損失較小,AP值在量化過(guò)程中誤差<1%。
圖7 飛機(jī)、操場(chǎng)、立交橋等種類漸進(jìn)式增量量化與漸進(jìn)式混合量化AP值對(duì)比
本文對(duì)漸進(jìn)式增量量化和漸進(jìn)式混合量化后的Faster-RCNN網(wǎng)絡(luò)的檢測(cè)結(jié)果進(jìn)行了可視化,結(jié)果如圖8所示。其中圖8(a)是網(wǎng)絡(luò)進(jìn)行漸進(jìn)式增量量化后的可視化結(jié)果,圖8(b)是網(wǎng)絡(luò)在本文提出的IHQ方法量化后的可視化結(jié)果。從可視化結(jié)果對(duì)比可以看出,IHQ方法對(duì)遙感圖像密集目標(biāo)、小目標(biāo)依舊有良好的檢測(cè)性能。
圖8 漸進(jìn)式增量量化與漸進(jìn)式混合量化可視化結(jié)果對(duì)比
本文也對(duì)進(jìn)行IHQ后Faster-RCNN網(wǎng)絡(luò)在宇航級(jí)芯片中內(nèi)存占用進(jìn)行了分析。經(jīng)過(guò)ResNet-18網(wǎng)絡(luò)剪枝之后,F(xiàn)aster-RCNN網(wǎng)絡(luò)總權(quán)重?cái)?shù)量為8 091 008,第一部分權(quán)重?cái)?shù)量為1 788 544,第二部分權(quán)重?cái)?shù)量為6 302 464,IHQ方法將網(wǎng)絡(luò)第一部分量化位寬設(shè)為5,第二部分量化位寬設(shè)為3,與漸進(jìn)式增量量化方法將網(wǎng)絡(luò)量化位寬統(tǒng)一設(shè)為5的做法相比,可使Faster-RCNN網(wǎng)絡(luò)在宇航級(jí)芯片內(nèi)部推斷時(shí)內(nèi)存占用減少31.16%。
由以上分析可得,本文提出的IHQ方法同漸進(jìn)式增量量化方法相比,在減少網(wǎng)絡(luò)內(nèi)存占用31.16%的情況下依舊可以在遙感圖像數(shù)據(jù)集上特別是密集型小目標(biāo)上取得良好的檢測(cè)結(jié)果,同時(shí)各檢測(cè)目標(biāo)的AP值損失<1%。
本文針對(duì)多層神經(jīng)網(wǎng)絡(luò)在軌目標(biāo)檢測(cè)需求與星上有限硬件資源之間的矛盾,基于宇航級(jí)芯片特性,提出一種漸進(jìn)式混合量化方法,并與濾波器級(jí)剪枝結(jié)合,對(duì)目標(biāo)檢測(cè)網(wǎng)絡(luò)進(jìn)行混合壓縮。濾波器級(jí)剪枝大規(guī)模降低了網(wǎng)絡(luò)中卷積計(jì)算操作數(shù);漸進(jìn)式混合量化方法降低了網(wǎng)絡(luò)對(duì)宇航級(jí)處理芯片內(nèi)部DSP硬核的依賴和網(wǎng)絡(luò)在宇航級(jí)芯片中的存儲(chǔ)大小。通過(guò)本文網(wǎng)絡(luò)壓縮方法將Faster-RCNN網(wǎng)絡(luò)權(quán)重?cái)?shù)量減少34.68%,其中基礎(chǔ)網(wǎng)絡(luò)ResNet-18權(quán)重?cái)?shù)量減少38.39%,計(jì)算量減少28.27%;本文漸進(jìn)式混合量化方法在各類檢測(cè)目標(biāo)AP值損失<1%情況下,與漸進(jìn)式增量量化方法相比使網(wǎng)絡(luò)權(quán)重在宇航級(jí)芯片中所占內(nèi)存減少31.16%。本文方法具有一定普適性,可適用于不同的卷積結(jié)構(gòu)。但是該方法只是對(duì)網(wǎng)絡(luò)權(quán)重進(jìn)行量化,后續(xù)可以將其擴(kuò)展到網(wǎng)絡(luò)激活量化以及網(wǎng)絡(luò)梯度量化。