呼延烺,李 映,周 詮,劉娟妮,魏佳圓,肖化超,張 怡,方 海
1.西北工業(yè)大學(xué)計算機學(xué)院,西安 710129
2.空間微波技術(shù)國家級重點實驗室,西安 710100
近年來人工智能技術(shù),尤其是深度學(xué)習(xí)技術(shù)在多個任務(wù)上均取得了突破性進(jìn)展.深度學(xué)習(xí)技術(shù)相比于傳統(tǒng)技術(shù)在性能上有巨大優(yōu)勢,在地面上已經(jīng)有了廣泛應(yīng)用.但受空間環(huán)境限制,該技術(shù)在軌應(yīng)用仍是一個具有挑戰(zhàn)性的任務(wù).眾多學(xué)者嘗試將該技術(shù)應(yīng)用到星表非結(jié)構(gòu)化巖石目標(biāo)辨識[1]、地球同步軌道目標(biāo)檢測[2]以及在軌高光譜圖像云檢測[3]等空間任務(wù)中,并取得了大量研究成果.
遙感技術(shù)的快速發(fā)展和遙感衛(wèi)星數(shù)據(jù)量幾何級增長給衛(wèi)星數(shù)據(jù)傳輸系統(tǒng)帶來諸多問題.其中最突出的問題是遙感衛(wèi)星獲取的數(shù)據(jù)中有很大一部分屬于無效數(shù)據(jù)[4],這類數(shù)據(jù)對衛(wèi)星數(shù)據(jù)傳輸系統(tǒng)造成巨大壓力,浪費了珍貴的帶寬資源[5],大大降低了載荷利用率,也難以滿足用戶對遙感圖像處理的時效性要求.通過在軌智能處理可以降低星地之間數(shù)據(jù)傳輸量,從而解決當(dāng)前遙感衛(wèi)星面臨的問題.
目標(biāo)檢測是遙感圖像處理的基礎(chǔ)任務(wù)[6],也是遙感圖像理解和場景理解等高級應(yīng)用的基礎(chǔ).遙感圖像目標(biāo)檢測器一般有2種應(yīng)用場景,一種是將遙感圖像通過衛(wèi)星數(shù)據(jù)傳輸系統(tǒng)傳回地面后再進(jìn)行目標(biāo)檢測[7],這種應(yīng)用場景下,目標(biāo)檢測器部署在地面上,不需要考慮空間環(huán)境所帶來的存儲、算力及功耗等限制.另外一種應(yīng)用場景是直接在星上進(jìn)行目標(biāo)檢測[8],檢測器需要部署在星上,這時在設(shè)計檢測模型時需要考慮衛(wèi)星能夠提供的資源.
在軌目標(biāo)檢測在軍用和民用任務(wù)中更具有吸引力.首先,這種方式能夠?qū)崟r響應(yīng)地面的變化,并反饋結(jié)果,這種優(yōu)勢在軍事應(yīng)用或者災(zāi)害監(jiān)測中表現(xiàn)尤為突出;其次,無需將原始數(shù)據(jù)傳回地面站,衛(wèi)星采集到的圖像中存在大量冗余數(shù)據(jù),將所有數(shù)據(jù)傳回地面站,無疑會浪費寶貴的衛(wèi)星帶寬資源,通過星上目標(biāo)檢測后,僅將有價值的數(shù)據(jù)傳回地面這將會大大減少帶寬的浪費.
但在軌應(yīng)用時,受空間環(huán)境限制,星上計算能力和存儲能力與地面相差甚遠(yuǎn)[9-10],且深度學(xué)習(xí)算法是計算密集型和存儲密集型算法[11],其優(yōu)異性能是以大量計算資源和存儲資源消耗為代價的.在星上部署深度學(xué)習(xí)算法比地面上更具有挑戰(zhàn)性,不僅需要關(guān)注算法性能,而且需要關(guān)注算法在星上的可實現(xiàn)性以及如何在二者之間取得平衡.因此,遙感圖像目標(biāo)檢測模型壓縮技術(shù)是一個重要研究領(lǐng)域,同時也是研究熱點和難點.
為了降低深度模型的復(fù)雜度,目前可以采用輕量化設(shè)計、低秩分解、知識蒸餾、剪枝以及量化中的一種或多種方式來降低模型參數(shù)量和計算量.其中,剪枝是模型壓縮的重要手段之一.通過將深度模型中不重要的參數(shù)或者卷積核剪除掉,從而實現(xiàn)降低模型復(fù)雜度的目的.按照剪枝粒度可以將剪枝分為結(jié)構(gòu)化剪枝和非結(jié)構(gòu)化剪枝.非結(jié)構(gòu)化剪枝的對象是模型中的單個參數(shù),被剪參數(shù)不具有任何結(jié)構(gòu).結(jié)構(gòu)化剪枝的對象是卷積核、通道或者分組.
無論結(jié)構(gòu)化剪枝還是非結(jié)構(gòu)化剪枝,如何確定被剪除的參數(shù)是一個核心問題.權(quán)重剪枝可以追溯到OBD(optimal brain damage)[12]和OBS(optimal brain surgeon)[13],這一類算法將權(quán)重對損失函數(shù)的影響作為剪枝標(biāo)準(zhǔn),通過損失函數(shù)的Hessian矩陣對權(quán)重進(jìn)行剪枝.但Hessian矩陣的計算復(fù)雜度較高,文獻(xiàn)[14]提出采用泰勒展開式中一階項的絕對值作為剪枝標(biāo)準(zhǔn),將該絕對值較小的參數(shù)剪除.文獻(xiàn)[15]提出將模型權(quán)重的絕對值作為重要性衡量標(biāo)準(zhǔn),以此來確定被剪除的參數(shù),權(quán)重的絕對值越大,對模型的貢獻(xiàn)越大,因此將模型中絕對值較小的權(quán)值剪掉.
通過給模型中加入掩碼層和正則項使得模型稀疏化也是一種常用的剪枝方法.例如文獻(xiàn)[16]采用L1正則化對模型權(quán)重進(jìn)行剪枝,之后通過微調(diào)來恢復(fù)剪枝損失的性能.文獻(xiàn)[17]也采用L1正則化對卷積核進(jìn)行剪枝.文獻(xiàn)[18]采用LASSO回歸對通道進(jìn)行剪枝.文獻(xiàn)[19]提出了一種高效結(jié)構(gòu)化剪枝方法,該方法引入了軟掩碼,通過定義帶有稀疏正則化因子的目標(biāo)函數(shù)將基準(zhǔn)模型輸出與帶有軟掩碼的網(wǎng)絡(luò)模型輸出對齊從而實現(xiàn)模型結(jié)構(gòu)化剪枝.文獻(xiàn)[20]提出了一種預(yù)算正則化剪枝框架,該框架包含可學(xué)習(xí)掩碼層、預(yù)算感知的損失函數(shù)以及知識蒸餾.AutoPruner[21]剪枝算法通過在模型中增加通道選擇層,從而實現(xiàn)了不重要卷積核和通道的自動選擇.
將剪枝歸結(jié)為優(yōu)化問題.文獻(xiàn)[22]通過求解凸優(yōu)化問題來剪除冗余連接.ThiNet[23]將卷積核剪枝歸結(jié)為一個優(yōu)化問題,其認(rèn)為卷積核的重要性是通過其下一層的統(tǒng)計信息決定而并非當(dāng)前層.DCP[24]剪枝算法將通道或卷積核選擇歸納為一個帶約束的優(yōu)化問題,并通過貪心算法求解,從而得到需要剪枝的通道或卷積核.NISP[25]剪枝算法認(rèn)為模型最后一層的響應(yīng)能夠有效減少重建誤差,所以通過最后輸出特征圖的秩來衡量卷積核的重要性,將模型剪枝歸納為一個二元整數(shù)優(yōu)化問題.
HRank[26]剪枝算法通過特征圖的秩來選擇被剪掉的卷積核,秩小的特征圖包含的信息量少,因此,生成該特征圖的卷積核應(yīng)該被剪除.
此外,還有一些其它剪枝方法.例如,文獻(xiàn)[27]提出了一種頻域動態(tài)剪枝方法,不同頻段對精度的貢獻(xiàn)不同,對不同頻段進(jìn)行有區(qū)別的剪枝.文獻(xiàn)[28]通過優(yōu)化BN(batch normalization)層中的擴(kuò)展因子r來確定通道的重要性,從而將不重要的通道剪掉.文獻(xiàn)[29]提出了采用AutoML進(jìn)行模型壓縮,這種方法利用了強化學(xué)習(xí)來獲得剪枝策略.Gate Decorator[30]通過給普通的卷積層乘以通道縮放因子,從而實現(xiàn)通道剪枝.
非結(jié)構(gòu)化剪枝的優(yōu)點是可以在保持原始模型結(jié)構(gòu)不變的基礎(chǔ)上獲得更加細(xì)粒度剪枝,但剪枝之后的卷積核是稀疏張量,并不能夠利用現(xiàn)有硬件和軟件進(jìn)行加速,無法減少模型的推理時間.結(jié)構(gòu)化剪枝的優(yōu)點是,可以整體剪除卷積核或者通道,可以有效利用現(xiàn)有軟硬件進(jìn)行加速,但是同一個卷積核中的參數(shù)重要性并非一致,這種粗粒度的剪枝可能會將模型中的重要參數(shù)剪除,從而導(dǎo)致模型性能急劇下降.
本文針對目標(biāo)檢測算法空間應(yīng)用需求,提出了一種結(jié)構(gòu)化條帶剪枝方法,有效降低了深度目標(biāo)檢測模型的存儲復(fù)雜度和計算復(fù)雜度.雖然在本文中未對該算法進(jìn)行硬件實現(xiàn)及評估,但在算法設(shè)計時考慮了空間環(huán)境硬件資源的限制,使得壓縮之后的模型具有硬件資源利用率高的特性.
條帶剪枝[31]提出了卷積核的骨架屬性,并通過卷積核骨架來指導(dǎo)剪枝過程,實現(xiàn)了在卷積核權(quán)重剪枝時卷積核形狀也可以剪枝.基于卷積核骨架的剪枝方法與其它結(jié)構(gòu)化剪枝方法相比,其剪枝粒度是條帶而不是整個卷積核,可以獲得更好的剪枝粒度.雖然該方法在剪枝粒度上具有優(yōu)勢,但是采用該方法剪枝后各卷積核中條帶數(shù)目不盡相同.如圖1(b)所示,由于卷積核的不規(guī)則特性導(dǎo)致剪枝后的模型并不能夠有效利用硬件平臺的計算資源,剪枝模型存在“模型小、推理慢”的問題.
常規(guī)3×3卷積如圖1(a)所示,其中包含4個卷積核.在硬件平臺進(jìn)行加速時,為每個卷積核設(shè)計一個卷積計算單元.如圖1(d)所示,每一列對應(yīng)一個卷積核,每個卷積核消耗9個乘法器及相應(yīng)的累加器(圖中省略了累加器).此時,4個卷積核一共消耗了36個乘法器,乘法器的利用率為100%.在條帶剪枝之后,第一個卷積核剩余一個條帶,第二個卷積核剩余一個條帶,第三個卷積核剩余2個條帶,第四個卷積核剩余3個條帶.此時,4個卷積核依然需要設(shè)計4個卷積運算單元,每個卷積計算單元需要消耗3個乘法器,共消耗12個乘法器,但在卷積運算時,并不是每個乘法器都使用,例如,乘法器(0,1)、(0,2)、(1,1)、(1,2)及(2,2)都未使用,在這個例子中乘法器利用率為58.3%.
雖然條帶剪枝能夠獲得更好的剪枝粒度,但對于在軌目標(biāo)檢測模型的剪枝并不友好.星上能夠提供的計算資源有限,但是條帶剪枝對硬件資源的利用率較低,進(jìn)一步加劇了目標(biāo)檢測模型在星上部署的難度.為了既能夠利用條帶剪枝細(xì)粒度剪枝的特性,又能夠提高剪枝模型對硬件資源的利用率,本文提出了結(jié)構(gòu)化條帶剪枝.如圖1(c)所示,為了提高條帶剪枝后模型硬件利用率,本文在條帶剪枝的基礎(chǔ)上加上了約束條件,使剪枝模型每個卷積核條帶數(shù)量相同.如圖1(f)所示,結(jié)構(gòu)化條帶剪枝模型運算共消耗了9個乘法器,乘法器利用率為100%.
圖1 不同類型卷積及硬件利用率可視化Fig.1 The visualization of different types of convolution and hardware utilization
結(jié)構(gòu)化條帶剪枝流程如圖2所示.該方法由4步組成.
1)采用ImageNet數(shù)據(jù)集上的訓(xùn)練結(jié)果對RetinaNet網(wǎng)絡(luò)模型進(jìn)行初始化;2)采用條帶剪枝方法對目標(biāo)檢測模型進(jìn)行剪枝訓(xùn)練,獲得卷積核骨架矩陣;3)條帶結(jié)構(gòu)化,在條帶剪枝中設(shè)置了剪枝門限,小于門限的條帶將被剪掉,為了使得剪枝模型條帶數(shù)目相同,通過動態(tài)調(diào)整剪枝門限使得所有卷積核具有相同數(shù)目的條帶,從而達(dá)到條帶結(jié)構(gòu)化目的;4)混合精度訓(xùn)練,為了進(jìn)一步減少模型所消耗的存儲容量,采用混合精度訓(xùn)練結(jié)構(gòu)化剪枝模型,獲得半精度表示的模型.結(jié)構(gòu)化條帶剪枝偽代碼如表1所示.
圖2 結(jié)構(gòu)化條帶剪枝流程Fig.2 Flow-chart of the structure stripe pruning procedure
表1 結(jié)構(gòu)化條帶剪枝偽代碼Tab.1 Structure strip pruning algorithm
條帶剪枝認(rèn)為卷積核除了權(quán)重之外還有形狀屬性,每個條帶對模型的貢獻(xiàn)不同.若第l層的權(quán)重為Wl∈N×C×K×K,則用FSl∈N×K×K來表示其卷積核形狀屬性,將FS稱作卷積核骨架,其中N表示卷積核的數(shù)量,C表示通道數(shù),K表示卷積核尺寸.
在訓(xùn)練過程中,將卷積核權(quán)重W與骨架矩陣I相乘,則損失函數(shù)用式(1)表示.
(1)
式中,I表示卷積核骨架矩陣,⊙表示點積,x和y分別表示輸入特征圖和輸出特征圖.
(2)
(3)
(4)
在推理階段,將卷積核權(quán)重W與骨架矩陣I相乘得到包含卷積核形狀信息的卷積核參數(shù).
為了使骨架矩陣稀疏化,在損失函數(shù)中加入正則化函數(shù),如式(5)所示.
(5)
式中,α表示正則化的幅度,g(I)表示在I上L1正則化的懲罰因子.g(I)的表達(dá)式如式(6)所示.
(6)
為了提高剪枝模型對硬件資源的利用率,需要實現(xiàn)結(jié)構(gòu)化條帶剪枝.在本文中指剪枝之后每個卷積中所包含的條帶數(shù)目一致.為了實現(xiàn)這個目的,在條帶剪枝訓(xùn)練過程中不再設(shè)置剪枝門限δ,而是設(shè)置訓(xùn)練輪數(shù)(epoch),例如在NWPU數(shù)據(jù)集上訓(xùn)練輪數(shù)設(shè)置為200,當(dāng)訓(xùn)練結(jié)束之后同時獲得了卷積核權(quán)重參數(shù)和骨架矩陣I.
此時采用以下步驟實現(xiàn)結(jié)構(gòu)化條帶剪枝.
1)首先對骨架矩陣中的所有元素從大到小進(jìn)行排序;
2)如式(7)所示,將骨架矩陣中最小的m個元素置為0,獲得結(jié)構(gòu)化條帶剪枝的骨架矩陣SI;
(7)
3)如式(8)所示,將結(jié)構(gòu)化的骨架矩陣與權(quán)重進(jìn)行融合得到結(jié)構(gòu)化權(quán)重;
WSFS=W⊙SI
(8)
4)在推理階段,結(jié)構(gòu)化條帶卷積如式(9)所示.
(9)
結(jié)構(gòu)化剪枝之后,遙感圖像目標(biāo)檢測模型采用全精度表示,即一個權(quán)重參數(shù)使用32bit的浮點數(shù)進(jìn)行表示.為了進(jìn)一步減少權(quán)重參數(shù)所消耗的存儲空間和模型推理所需要的通信帶寬,本文采用混合精度訓(xùn)練方法[32]對結(jié)構(gòu)化剪枝模型進(jìn)行再次訓(xùn)練.首先在優(yōu)化器中儲存一個全精度的網(wǎng)絡(luò)權(quán)值;在訓(xùn)練過程中,模型使用半精度的權(quán)值計算損失(loss)和各網(wǎng)絡(luò)權(quán)值的梯度,然后將梯度轉(zhuǎn)化為全精度并復(fù)制到優(yōu)化器中;優(yōu)化器使用全精度梯度值對參數(shù)進(jìn)行梯度下降,最后再將更新的全精度權(quán)值轉(zhuǎn)化為半精度,替換模型中的網(wǎng)絡(luò)權(quán)值.為了避免梯度被忽略,混合精度訓(xùn)練方法還采取了損失縮放技術(shù).通過放大半精度損失值防止因其過小而被忽略為0;在全精度梯度下降前,梯度值會縮小相同比例,保證了梯度值不變.此方法不再需要對模型進(jìn)行預(yù)訓(xùn)練,降低了訓(xùn)練難度,提升了模型的魯棒性.
本文分別在NWPU VHR-10數(shù)據(jù)集[33]和自建數(shù)據(jù)集上對剪枝前后的遙感圖像目標(biāo)檢測模型性能進(jìn)行了評估.NWPU VHR-10數(shù)據(jù)集是西北工業(yè)大學(xué)標(biāo)注的航天遙感目標(biāo)檢測數(shù)據(jù)集,共有800張圖像,其中包含目標(biāo)的650張,背景圖像150張,目標(biāo)包括:飛機、艦船、油罐、棒球場、網(wǎng)球場、籃球場、田徑場、港口、橋梁和車輛10個類別.
圖3 數(shù)據(jù)集圖像和標(biāo)注的可視化結(jié)果Fig.3 The visualization of samples and annotations of our dataset
在實際任務(wù)中,并不需要對NWPU VHR-10中的所有類別進(jìn)行檢測,為了驗證剪枝模型在實際應(yīng)用中的性能,在DOTA[34]和HRSC20162016[35]數(shù)據(jù)集的基礎(chǔ)上構(gòu)建了一個僅含有飛機和艦船2類目標(biāo)的數(shù)據(jù)集.自建數(shù)據(jù)集共1393張512*512圖像及4032個目標(biāo)(分為訓(xùn)練集和測試集,訓(xùn)練集2799個目標(biāo),測試集1233個目標(biāo)).選用HRSC2016數(shù)據(jù)集是因為其主要包含大量艦船目標(biāo),選用DOTA數(shù)據(jù)集是因為其場景豐富、數(shù)據(jù)量大.在獲取到足夠的數(shù)據(jù)后,還需對其進(jìn)行篩查、目標(biāo)尺寸調(diào)整、圖像尺寸歸一化、數(shù)據(jù)增強等操作.圖3為數(shù)據(jù)集圖像和標(biāo)注的可視化結(jié)果.
本文在64位Ubuntu 18.04操作系統(tǒng)上進(jìn)行實驗,CPU為Intel(R) Core(TM) i7-6850K,GPU為TITAN XP,內(nèi)存為16 GB.深度學(xué)習(xí)框架為Pytorch1.6.0、CUDA10.1和cuDNN7.6.3.訓(xùn)練輪數(shù)設(shè)置為200,動量和權(quán)值衰減參數(shù)分別被設(shè)置為0.9和0.001.優(yōu)化器選擇SGD,初始化學(xué)習(xí)率設(shè)置為0.0025.下文中BL代表基準(zhǔn)網(wǎng)絡(luò),SP代表條帶剪枝模型,SSP代表結(jié)構(gòu)化條帶剪枝模型,PL代表性能損失.
(1)NWPU VHR-10 數(shù)據(jù)集上的實驗結(jié)果
表2顯示了RetinaNet目標(biāo)檢測模型分別采用條帶剪枝和本文所提出的結(jié)構(gòu)化條帶剪枝方法剪枝之后在NWPU數(shù)據(jù)集上的性能.
表2 SSP在NWPU-VHR-10上的性能Tab.2 Performance of SSP on NWPU-VHR-10 dataset
從表2可以看出,RetinaNet目標(biāo)檢測模型在NWPU數(shù)據(jù)集上的mAP為93.1%.該模型經(jīng)條帶剪枝之后mAP 為92.4%,性能下降0.7%.經(jīng)本文所提出的結(jié)構(gòu)化條帶剪枝之后mAP為92.2%,性能下降0.9%.與條帶剪枝相比,結(jié)構(gòu)化條帶剪枝性能僅下降0.2%.可見,結(jié)構(gòu)化后的條帶剪枝對模型性能的影響甚微.從每一類的檢測結(jié)果來看,結(jié)構(gòu)化條帶剪枝模型在飛機類別、田徑場類別以及港口類別上的AP值超越了原始模型.油桶類別、網(wǎng)球場類別以及車輛類別的AP值下降較多,分別為2.6%、2.8%和3.3%,這3類目標(biāo)在NWPU數(shù)據(jù)集中屬于小目標(biāo),可見,剪枝之后對于小目標(biāo)的檢測性能影響較大.
壓縮比和加速比定義如式(10)和(11)所示.
(10)
(11)
式中,PBP表示剪枝前模型的參數(shù)量,PAP表示剪枝后模型的參數(shù)量,F(xiàn)BP表示剪枝前模型的運算量,F(xiàn)AP表示剪枝后模型的運算量.
表3 模型壓縮性能對比Tab.3 Performance comparison of compression
表3為基準(zhǔn)模型、條帶剪枝模型以及結(jié)構(gòu)化條帶剪枝模型的壓縮性能對比.可以看出條帶剪枝結(jié)構(gòu)化之后壓縮比、加速比以及性能略有下降,分別為0.01、0.04以及0.2%,但影響甚微.由于條帶剪枝具有更細(xì)的粒度,而結(jié)構(gòu)化條帶剪枝為了保持卷積核中條帶數(shù)目一致,犧牲了剪枝粒度.因此,其參數(shù)量和計算量會稍多,性能也有部分損失.
從資源利用率看,結(jié)構(gòu)化條帶剪枝模型和基準(zhǔn)模型的資源利用率均為100%,但是條帶剪枝硬件資源利用率僅有16.05%.可見,本文提出的結(jié)構(gòu)化條帶剪枝能夠有效提高硬件資源利用率.同時,在相同硬件平臺上,由于結(jié)構(gòu)化條帶剪枝減少了計算量及參數(shù)量,因此,其推理時間與基準(zhǔn)模型相比有較大提高.條帶化剪枝方法雖然減少了模型參數(shù)量和計算量,但是由于其硬件資源利用率較低,出現(xiàn)了“模型小、推理慢”的現(xiàn)象.
圖4為原始模型、條帶剪枝模型和結(jié)構(gòu)化條帶剪枝模型在NWPU數(shù)據(jù)集上訓(xùn)練200輪時的損失曲線圖.從圖中可以看出條帶剪枝模型和結(jié)構(gòu)化條帶剪枝模型的損失值略高于原始模型.訓(xùn)練120輪之后3種目標(biāo)檢測模型均趨于收斂.
圖4 剪枝模型在NWPU 數(shù)據(jù)集上的損失曲線Fig.4 The loss curves of the pruned mode on NWPU VHR-10
圖5 剪枝模型在NWPU數(shù)據(jù)集上的PR曲線Fig.5 PR curves for the pruned mode on NWPU VHR-10
圖5為剪枝模型在NWPU數(shù)據(jù)集上的PR曲線圖,可以看出條帶剪枝模型和結(jié)構(gòu)化條帶剪枝模型的精準(zhǔn)率和召回率幾乎接近,都趨向1.這也說明在該數(shù)據(jù)集上,條帶剪枝結(jié)構(gòu)化之后并不會顯著降低模型的性能.
(2)自建數(shù)據(jù)集上的實驗結(jié)果
在一些任務(wù)中目標(biāo)的類別并不是很多,例如在我們的任務(wù)中只有艦船和飛機2個類別,為了驗證剪枝后的模型在實際任務(wù)中的表現(xiàn),利用自建的數(shù)據(jù)集對剪枝模型性能進(jìn)行了評估.表4為RetinaNet目標(biāo)檢測模型分別采用條帶剪枝和本文所提出的結(jié)構(gòu)化條帶剪枝方法剪枝之后性能評估結(jié)果.
表4 結(jié)構(gòu)化條帶剪枝在自建數(shù)據(jù)集上的性能Tab.4 Performance of structure strip pruning algorithm on our dataset
從表4可以看出,相對于原始模型,條帶剪枝模型和結(jié)構(gòu)化條帶剪枝模型在自建數(shù)據(jù)集上的mAP性能分別下降6.1%和1.7%.雖然結(jié)構(gòu)化條帶剪枝的mAP性能有所下降,但是也達(dá)到了93.6%,能夠滿足任務(wù)需求.與NWPU數(shù)據(jù)集上的結(jié)果不同,在自建數(shù)據(jù)集上結(jié)構(gòu)化條帶剪枝模型的mAP值比條帶剪枝模型提高4.4%.從每一類的檢測結(jié)果來看,條帶剪枝模型飛機類別的AP值略有下降,但是艦船類別AP值下降較多,達(dá)到了11%.結(jié)構(gòu)化條帶剪枝模型在此類別上的性能優(yōu)于條帶剪枝模型,僅僅下降了2.4%.
圖6 剪枝模型在自建數(shù)據(jù)集上的PR曲線Fig.6 PR curves for the pruned mode on our dataset
圖7 剪枝模型在自建數(shù)據(jù)集上的損失曲線Fig.7 The loss curves of the pruned mode on our dataset
圖6為剪枝模型在自建數(shù)據(jù)集上的PR曲線圖,明顯可以看出結(jié)構(gòu)化條帶剪枝模型的精準(zhǔn)率和召回率均優(yōu)于條帶剪枝模型.在自建數(shù)據(jù)集上,條帶剪枝結(jié)構(gòu)化之后性能會有顯著提升.
圖7為原始模型、條帶剪枝模型和結(jié)構(gòu)化條帶剪枝模型在自建數(shù)據(jù)集上訓(xùn)練輪數(shù)為200時的損失曲線圖.從圖可以看出結(jié)構(gòu)化條帶剪枝模型的損失值略高于原始模型,但是條帶剪枝模型的損失值明顯大于原始模型和結(jié)構(gòu)化條帶剪枝模型.在訓(xùn)練110輪之后3種目標(biāo)檢測模型均趨于收斂.
為了更好的說明本文所提出的結(jié)構(gòu)化條帶剪枝算法的性能,將該算法與目前性能較好的剪枝算法的壓縮比、加速比和性能損失進(jìn)行了比較,結(jié)果如表5所示.
表5 與其它算法性能對比Tab.5 Performance comparison of other algorithms
CR值越大表明模型中被剪掉的冗余參數(shù)越多,模型存儲復(fù)雜度降低.SR值越大表明模型所需要的計算量越小,模型的計算復(fù)雜度降低.表中PL表示性能損失,對于分類任務(wù)而言為準(zhǔn)確率降低量,對于目標(biāo)檢測任務(wù)而言為mAP降低量.
從壓縮比指標(biāo)來看,本文所提出的結(jié)構(gòu)化條帶剪枝算法的壓縮比略低于DCP[24]算法和AutoPruner[21]算法,分別低0.03和0.09,優(yōu)于其它性能較好的同類算法.但是本文所提出的剪枝算法性能損失相比DCP算法和AutoPruner算法,分別小0.12和0.49.DCP算法的加速比比本文所提出的算法高0.57,AutoPruner的加速比比本文所提出的算法低0.59.
從性能損失指標(biāo)來看,隨機剪枝算法[38]的性能有0.52%的提升,本文算法性能降低了0.9%.但是本文所提出的算法的壓縮比略高于隨機剪枝算法.本文所提出的算法性能損失比ThiNet-70算法和NISP-50-B算法略高,分別為0.06%和0.01%,但是壓縮比指標(biāo)優(yōu)于這兩個算法.
從加速比指標(biāo)來看,本文所提出的算法優(yōu)于AutoPruner算法、HAP算法、SSS-32算法;與ThiNet-70算法、SFP算法、GAL-0.5算法、NISP-50-B算法以及HRank算法相比,壓縮比性能相當(dāng);劣于DCP和隨機剪枝算法的壓縮比指標(biāo).
與FPGM[40]算法相比,本文所提出的算法壓縮比大于FPGM算法的壓縮比,加速比小于FPGM算法的加速比.本文的性能損失小于FPGM算法的性能損失.
由此可見,模型剪枝算法的3個性能評價指標(biāo)相互之間存在此消彼長的現(xiàn)象,并不能夠?qū)崿F(xiàn)所有指標(biāo)最優(yōu).
為了解決基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法在軌應(yīng)用時因其存儲復(fù)雜度和計算復(fù)雜度高而難以實現(xiàn)在軌部署的問題,本文提出一種結(jié)構(gòu)化條帶剪枝算法來實現(xiàn)在軌目標(biāo)檢測模型的壓縮.本文以RetinaNet模型為基礎(chǔ)分別在NWPU數(shù)據(jù)集和自建數(shù)據(jù)集上對所提出的結(jié)構(gòu)化條帶剪枝算法進(jìn)行了驗證,并與同類性能較好的算法進(jìn)行了比較,結(jié)果表明本文所提出的算法性能良好,具有實際工程應(yīng)用價值.本文所提出的方法僅在Retinanet模型上進(jìn)行了驗證,但該方法是一個通用剪枝方法,也可以用來對其它目標(biāo)檢測模型進(jìn)行剪枝.此外,雖然該方法是針對空間應(yīng)用環(huán)境中的目標(biāo)檢測任務(wù)所提出的一種模型壓縮方法,但是該方法也可以應(yīng)用在其它應(yīng)用場景的其它任務(wù)中,例如移動設(shè)備上目標(biāo)檢測、分類等任務(wù)中.針對該方法的硬件加速是一個值得研究的工作,在后續(xù)工作中我們將對該算法的硬件加速進(jìn)行研究.