張鵬程,武文波*,李 強(qiáng),2,曹城華
1.北京空間機(jī)電研究所,北京 100090
2.西北工業(yè)大學(xué),西安 710072
星載遙感圖像實(shí)時(shí)目標(biāo)檢測(cè)技術(shù)可以在星上實(shí)時(shí)提取高價(jià)值遙感目標(biāo),相比于將原始數(shù)據(jù)傳回地面再進(jìn)行目標(biāo)檢測(cè)的處理方案而言,可以有效降低時(shí)延,減少數(shù)據(jù)傳輸帶寬,對(duì)實(shí)時(shí)性需求較高的遙感圖像應(yīng)用有重要意義[1-3].目前,在遙感圖像目標(biāo)檢測(cè)領(lǐng)域,基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法借助其更強(qiáng)的目標(biāo)檢測(cè)能力,已經(jīng)逐漸取代了傳統(tǒng)的基于特征的目標(biāo)檢測(cè)算法[4-7],并且隨著深度神經(jīng)網(wǎng)絡(luò)的深度不斷提升,其目標(biāo)檢測(cè)性能也越來(lái)越好.然而,星載硬件設(shè)備的計(jì)算資源和存儲(chǔ)資源都十分匱乏,目前很多具備良好目標(biāo)檢測(cè)性能的檢測(cè)網(wǎng)絡(luò)算法開(kāi)銷大,對(duì)算力要求高,難以部署到星載硬件設(shè)備中.相關(guān)研究表明,如何將具有優(yōu)秀目標(biāo)檢測(cè)能力的網(wǎng)絡(luò)模型部署到資源有限的宇航級(jí)芯片上,是遙感圖像實(shí)時(shí)目標(biāo)檢測(cè)技術(shù)在星載應(yīng)用方面亟需解決的一項(xiàng)關(guān)鍵技術(shù),而利用網(wǎng)絡(luò)模型輕量化優(yōu)化技術(shù)可以減少目標(biāo)檢測(cè)網(wǎng)絡(luò)的大小,從而降低對(duì)算力、存儲(chǔ)的需求,因而具有重要的研究意義[8-11].
深度卷積神經(jīng)網(wǎng)絡(luò)算法在邊緣計(jì)算設(shè)備的實(shí)際應(yīng)用部署,主要受到3點(diǎn)因素的影響:1)網(wǎng)絡(luò)權(quán)重參數(shù)大小的限制:卷積神經(jīng)網(wǎng)絡(luò)的強(qiáng)大檢測(cè)能力來(lái)源于數(shù)百萬(wàn)個(gè)可以訓(xùn)練的權(quán)重參數(shù),所以模型的存儲(chǔ)和運(yùn)行都需要大量空間;2)運(yùn)行時(shí)所需內(nèi)存的限制:在推理運(yùn)算時(shí),卷積神經(jīng)網(wǎng)絡(luò)的激活和響應(yīng)也需要占用內(nèi)存空間,有時(shí)甚至比模型權(quán)重參數(shù)占用的內(nèi)存空間更多;3)計(jì)算操作次數(shù)的限制:卷積操作在分辨率較高的圖像上會(huì)有非常大的計(jì)算量,深度高的卷積神經(jīng)網(wǎng)絡(luò)可能需要幾分鐘才能在邊緣設(shè)備上處理一副圖像,因此在實(shí)時(shí)性要求高的應(yīng)用方面是無(wú)法滿足要求的.
為了擺脫這3點(diǎn)因素的限制,國(guó)內(nèi)外學(xué)者提出了包括低秩近似、網(wǎng)絡(luò)量化、權(quán)重修剪、動(dòng)態(tài)推理等各種方法[12].文獻(xiàn)[13]使用奇異值分解等方法減少運(yùn)算量,這種方法在全連接層上的輕量化效果非常突出,但是對(duì)運(yùn)算量大的卷積層的輕量化效果較弱.文獻(xiàn)[14]通過(guò)最小化特征映射誤差來(lái)裁剪重要性低的濾波器,但是增加了額外的存儲(chǔ)開(kāi)銷.文獻(xiàn)[15]提出并改進(jìn)了一種二值神經(jīng)網(wǎng)絡(luò)(BNN),將神經(jīng)網(wǎng)絡(luò)的權(quán)重和激活二值化,并通過(guò)策略使得該網(wǎng)絡(luò)能夠和量化前的網(wǎng)絡(luò)具有相同的目標(biāo)檢測(cè)性能,但會(huì)導(dǎo)致訓(xùn)練速度降低.文獻(xiàn)[16]將知識(shí)蒸餾方法引入目標(biāo)檢測(cè)模型,但是該方法限制較多,適用條件苛刻.文獻(xiàn)[17]提出了一種針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的卷積核剪枝的方法,能夠在基本保證卷積神經(jīng)網(wǎng)絡(luò)完整性的情況下有效減少參數(shù)量和計(jì)算量,卷積核剪枝能夠廣泛應(yīng)用于以卷積神經(jīng)網(wǎng)絡(luò)為核心的目標(biāo)檢測(cè)模型,具備很強(qiáng)的拓展性,很適合用于設(shè)計(jì)目標(biāo)檢測(cè)模型輕量化方案.
本文基于卷積核剪枝技術(shù),針對(duì)天基邊緣端智能計(jì)算應(yīng)用場(chǎng)景下的遙感目標(biāo)檢測(cè)模型設(shè)計(jì)了一個(gè)壓縮方案,在對(duì)網(wǎng)絡(luò)進(jìn)行裁剪的同時(shí),保證了卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的完整性,適合用于現(xiàn)場(chǎng)可編程門陣列(FPGA)處理器的硬件加速.使用剪枝后的模型在遙感飛機(jī)圖像數(shù)據(jù)集上進(jìn)行目標(biāo)檢測(cè)實(shí)驗(yàn),結(jié)果證明,該壓縮方案可以在裁減掉30~50%的參數(shù)的情況下,目標(biāo)檢測(cè)性能下降不超過(guò)2%.
在星載、機(jī)載等遙感應(yīng)用領(lǐng)域,由于邊緣設(shè)備的體積、功耗、算力等限制,選擇的目標(biāo)檢測(cè)網(wǎng)絡(luò)模型必須具備網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單、參數(shù)量相對(duì)較少等特點(diǎn).目前在遙感圖像目標(biāo)檢測(cè)領(lǐng)域應(yīng)用較多的目標(biāo)檢測(cè)算法有Faster R-CNN、SSD、YOLO等[18-22].其中YOLO算法是典型的單階段檢測(cè)算法,相比兩階段檢測(cè)算法而言有更低的計(jì)算復(fù)雜度,實(shí)時(shí)性更強(qiáng).目前,YOLO系列算法已經(jīng)發(fā)展到了YOLOv5,該網(wǎng)絡(luò)主要由圖像輸入層(input)、主干層(backbone)、特征提取層(neck)、目標(biāo)檢測(cè)層(head)構(gòu)成,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
其中,圖像輸入層使用了Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算等圖像預(yù)處理技術(shù),極大地豐富了檢測(cè)數(shù)據(jù)集,讓網(wǎng)絡(luò)結(jié)構(gòu)有更好的魯棒性.主干層包含F(xiàn)ocus單元、CBL單元(convolution、batch normalization、leaky rectified linear unit,卷積、批歸一化、激活函數(shù))、CSP單元(cross stage partial)和SPP單元(spatial pyramid pooling),其中Focus單元是改進(jìn)后的下采樣層,在不帶來(lái)信息丟失的前提下,使得特征提取得更加的充分;CSP單元參考了CSPNet[23]的網(wǎng)絡(luò)結(jié)構(gòu),先將基礎(chǔ)層的特征映射劃分為2部分,然后通過(guò)跨階段層次結(jié)構(gòu)將它們合并,在減少了計(jì)算量的同時(shí)可以保證準(zhǔn)確率;CBL單元主要完成卷積、批量歸一化和激活功能;SPP層用于完成最大池化功能.特征提取層使用了特征金字塔網(wǎng)絡(luò)(FPN)[24]和路徑聚合網(wǎng)絡(luò)(PAN)[25]的結(jié)構(gòu),通過(guò)上采樣的方式對(duì)圖像特征進(jìn)行傳遞融合.YOLOv5繼承了先前版本的優(yōu)點(diǎn),在檢測(cè)精度和速度上都更強(qiáng),是一個(gè)高性能的通用目標(biāo)檢測(cè)模型.
YOLOv5模型根據(jù)深度和寬度不同,總共分為s、m、l、x共4個(gè)模型,這4個(gè)模型具有相同的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)調(diào)整深度和寬度這2個(gè)參數(shù)來(lái)改變模型的大小.其中YOLOv5s模型的深度最淺,目標(biāo)檢測(cè)精度相比其它3個(gè)模型要略低一些,但是也具有最小的網(wǎng)絡(luò)模型大小.本文選用最小的YOLOv5s模型作為待剪枝的模型進(jìn)行實(shí)驗(yàn),由于這4個(gè)模型結(jié)構(gòu)相同,所以本方案也可以運(yùn)用到其他3個(gè)模型上.YOLOv5s網(wǎng)絡(luò)輸入為1024 pixel×1024 pixel的3波段RGB圖像,輸出3個(gè)不同分辨率的目標(biāo)檢測(cè)層,能夠更好地適應(yīng)不同分辨率的目標(biāo)檢測(cè)任務(wù).
圖1 YOLOv5模型結(jié)構(gòu)Fig.1 The structure of YOLOv5 model
“剪枝”是將卷積神經(jīng)網(wǎng)絡(luò)匯總的某些神經(jīng)元或卷積核刪除,以達(dá)到模型壓縮的效果.卷積核剪枝屬于結(jié)構(gòu)化剪枝,以卷積層中的卷積核為單位對(duì)網(wǎng)絡(luò)進(jìn)行裁剪.
本文選取YOLOv5模型作為壓縮對(duì)象,針對(duì)該模型的壓縮方案如圖2所示.首先,在訓(xùn)練時(shí)對(duì)卷積層中的卷積核附加稀疏因子,進(jìn)行稀疏化訓(xùn)練,對(duì)卷積核的重要性進(jìn)行評(píng)估和排序,隨后根據(jù)裁剪率來(lái)設(shè)置閾值,將重要性低于該閾值的卷積核刪除.最后將裁剪后的目標(biāo)檢測(cè)模型再次通過(guò)訓(xùn)練來(lái)微調(diào)權(quán)重參數(shù),補(bǔ)償因?yàn)榧糁?lái)的目標(biāo)檢測(cè)性能下降.主要分為以下3步:
1)通過(guò)稀疏化訓(xùn)練,評(píng)估卷積層中各個(gè)卷積核的重要程度;
2)根據(jù)步驟1)的結(jié)果,設(shè)置閾值,對(duì)重要性低于閾值的卷積核進(jìn)行剪枝;
3)對(duì)剪枝后得到的精簡(jiǎn)模型進(jìn)行訓(xùn)練,微調(diào)參數(shù),并使用測(cè)試集進(jìn)行測(cè)試.
圖2 模型壓縮方案流程圖Fig.2 The flow chart of model compression
本方案針對(duì)每一個(gè)卷積核引入一個(gè)縮放因子γ,卷積核的原本輸出會(huì)和γ相乘后作為最終輸出.在訓(xùn)練目標(biāo)檢測(cè)網(wǎng)絡(luò)時(shí),會(huì)同時(shí)訓(xùn)練網(wǎng)絡(luò)的權(quán)值和縮放因子γ,并且在訓(xùn)練時(shí)對(duì)縮放因子γ進(jìn)行稀疏正則化,使得網(wǎng)絡(luò)中不重要的卷積核的縮放因子變?yōu)?.最后,根據(jù)縮放因子對(duì)網(wǎng)絡(luò)進(jìn)行剪枝,并對(duì)剪枝后的網(wǎng)絡(luò)進(jìn)行微調(diào).具體來(lái)說(shuō),訓(xùn)練后模型的損失函數(shù)可以由式(1)給出.
L=∑(x,y)l(f(x,W),y)+λ∑γ∈Γg(γ)
(1)
其中,變量L表示稀疏化訓(xùn)練后模型的損失,變量x表示模型的輸入,變量W表示可訓(xùn)練的權(quán)值,函數(shù)f(x,W)表示模型的輸出,變量y表示樣本標(biāo)簽值,函數(shù)l表示未經(jīng)過(guò)稀疏化的正常訓(xùn)練后模型輸出和標(biāo)簽值的誤差,公式右側(cè)第一個(gè)累加項(xiàng)代表YOLOv5模型在正常訓(xùn)練時(shí)的損失函數(shù),函數(shù)g(γ)是針對(duì)縮放因子γ的約束,這里采用L1正則化作為約束,λ是用于平衡2個(gè)累加項(xiàng)的參數(shù).由于修剪卷積核本質(zhì)是刪除該卷積核的所有傳入和傳出連接,所以可以直接獲得一個(gè)狹窄的網(wǎng)絡(luò).在修剪過(guò)程中,縮放因子γ將作為該卷積核是否應(yīng)當(dāng)被修剪的評(píng)判標(biāo)準(zhǔn).
而在YOLOv5s模型中,每個(gè)卷積層后都添加了批量正則化層(batch normalization,后簡(jiǎn)稱BN層).令變量zin和zout分別代表BN層的輸入和輸出,Β代表一組傳入的輸入數(shù)據(jù).則BN層會(huì)做式(2)的運(yùn)算
(2)
其中,變量μΒ和σB為輸入數(shù)據(jù)的均值和標(biāo)準(zhǔn)差,而變量γ和β則是可訓(xùn)練的縮放因子和位移因子.本文在設(shè)計(jì)方案時(shí)直接利用BN層的縮放因子γ作為網(wǎng)絡(luò)剪枝所需的縮放因子,原因有3點(diǎn):
1)如果在沒(méi)有BN層的CNN上增加縮放層,則縮放因子的值對(duì)于評(píng)估通道的重要性是沒(méi)有意義的.通過(guò)減小縮放因子的值,同時(shí)放大卷積層中的權(quán)值,可以得到相同的輸出.這使得縮放因子失去了參考價(jià)值.
2)如果在BN層之前插入一個(gè)縮放層,則這個(gè)縮放層的縮放效應(yīng)會(huì)被BN層的歸一化過(guò)程完全抵消.導(dǎo)致增大了一個(gè)額外的縮放層的開(kāi)銷完全沒(méi)有起到作用.
3)如果在BN層后插入縮放層,則每個(gè)通道有2個(gè)連續(xù)的縮放因子,相比于單獨(dú)的BN層來(lái)說(shuō)并沒(méi)有達(dá)到質(zhì)變,反而增大了開(kāi)銷.
分析得出,BN層中的縮放因子γ本身就決定了該通道在特征選擇中起到的作用,所以訓(xùn)練過(guò)程中可以直接將BN層中的縮放因子γ作為稀疏化所需的縮放因子進(jìn)行訓(xùn)練迭代,好處是沒(méi)有給網(wǎng)絡(luò)增加額外的開(kāi)銷.在代碼層面的實(shí)現(xiàn)中,直接在訓(xùn)練時(shí)對(duì)BN層中的縮放因子γ做稀疏化處理即可.
在對(duì)模型進(jìn)行稀疏化訓(xùn)練后,能夠得到如圖3(a)所示的訓(xùn)練結(jié)果,其中有大量的通道的縮放因子的值接近0.通過(guò)引入一個(gè)閾值α,將縮放因子低于α的卷積核及其輸入輸出通道全部刪除,從而實(shí)現(xiàn)卷積核剪枝.在代碼層面的實(shí)現(xiàn)中,閾值α可以通過(guò)對(duì)訓(xùn)練后的縮放因子進(jìn)行排序,根據(jù)預(yù)設(shè)的裁剪率n,選擇排序后對(duì)應(yīng)位置的縮放因子γn作為閾值α.裁剪后的結(jié)果如圖3(b)所示.
需要注意的是,YOLOv5模型中具有類似殘差網(wǎng)絡(luò)的跳躍連接結(jié)構(gòu),該結(jié)構(gòu)也同樣擁有卷積核和BN層.如果對(duì)該結(jié)構(gòu)的BN層參數(shù)進(jìn)行稀疏化訓(xùn)練或者裁剪操作,會(huì)導(dǎo)致破壞跳躍連接結(jié)構(gòu),使模型失去目標(biāo)檢測(cè)性能.所以本文在稀疏化訓(xùn)練和剪枝的過(guò)程中,把跳躍連接結(jié)構(gòu)的BN層排除在外,在代碼層面的實(shí)現(xiàn)中,在稀疏化訓(xùn)練和對(duì)模型進(jìn)行裁剪時(shí)將跳躍連接結(jié)構(gòu)的BN層忽略,只對(duì)其他卷積核的BN層做稀疏訓(xùn)練和剪枝.
圖3 裁剪前后的通道連接情況Fig.3 The connection before and after pruning
本文的實(shí)驗(yàn)環(huán)境選用RTX3050Ti顯卡,擁有4G顯存,軟件環(huán)境為Pytorch1.8.2和Cuda11.1.使用遙感圖像飛機(jī)數(shù)據(jù)集,共有11類飛機(jī),目標(biāo)總數(shù)量為9072個(gè).其中訓(xùn)練集包括308張圖片,測(cè)試集包括122張圖片,均為3通道,像素為4096 Pixel×4096 Pixel的圖片.為了加快訓(xùn)練速度,將圖片裁剪為3通道,像素1024Pixel×1024Pixel的圖片.最終訓(xùn)練集包括2284張圖片,測(cè)試集包括828張圖片.數(shù)據(jù)集中各個(gè)飛機(jī)類別的目標(biāo)數(shù)如表1所示.
表1 數(shù)據(jù)集中各分類的目標(biāo)總數(shù)Tab.1 Total number of targets for each category in the dataset
為了從多方面評(píng)估該方案的可行性,本文根據(jù)稀疏因子λ和剪枝裁剪率n設(shè)置了對(duì)比實(shí)驗(yàn).其中λ取值為0、0.1、0.01、0.005、0.0005、0.00001,n取值為0.3、0.4、0.5.對(duì)于壓縮后的模型,以預(yù)測(cè)率、召回率、mAP、FLOPS、參數(shù)量和模型文件大小進(jìn)行評(píng)估和對(duì)比.其中mAP指平均精確率,用于衡量目標(biāo)檢測(cè)模型的檢測(cè)精度,F(xiàn)LOPS表示模型運(yùn)行時(shí)進(jìn)行的浮點(diǎn)數(shù)運(yùn)算次數(shù).
(1)BN層縮放因子稀疏化結(jié)果
圖4展示了選取不同稀疏因子時(shí),BN層縮放因子分布隨著訓(xùn)練推進(jìn)的變化,其中橫坐標(biāo)表示BN層參數(shù)的大小,而縱坐標(biāo)表示BN層參數(shù)的數(shù)量,每一條曲線都表示在訓(xùn)練完一個(gè)輪次之后BN層參數(shù)的分布情況.可以看出,在不對(duì)模型做稀疏化訓(xùn)練時(shí)(λ=0時(shí)),BN層縮放因子在訓(xùn)練過(guò)程中保持近似正態(tài)分布,接近0的縮放因子較少,難以進(jìn)行剪枝操作.而在對(duì)模型做稀疏化訓(xùn)練后,BN層縮放因子會(huì)逐漸稀疏到0附近.其中,在稀疏因子取值較大時(shí)(λ=0.1時(shí)),BN層縮放因子會(huì)被過(guò)稀疏,導(dǎo)致幾乎所有BN層縮放因子都被稀疏為0,從而使模型失去檢測(cè)效果;在稀疏因子取值合適時(shí)(λ=0.01、λ=0.0005時(shí)),可以在保持檢測(cè)效果的同時(shí),能夠有部分BN層參數(shù)被稀疏到0附近,從而方便后續(xù)的剪枝操作;而在稀疏因子取值較小時(shí)(λ=0.00001時(shí)),稀疏化效果不明顯,訓(xùn)練后BN層縮放因子還是呈現(xiàn)近似正態(tài)分布.
圖4 稀疏化訓(xùn)練后縮放因子分布圖Fig.4 Weight distribution after sparse training
稀疏因子的選擇也會(huì)影響到最大裁剪率.如圖4中c、d圖所示,當(dāng)稀疏因子為0.01時(shí),被稀疏到0附近的BN層縮放因子參數(shù)占比高,所以當(dāng)裁剪率較大時(shí),會(huì)導(dǎo)致一個(gè)卷積層中所有卷積核都被刪除,模型結(jié)構(gòu)發(fā)生變化,從而失去目標(biāo)檢測(cè)性能.稀疏因子和最大裁剪率的關(guān)系如表2所示,其中最大裁剪率定義為“保證不會(huì)有某一個(gè)BN層的全部通道都被裁剪的最大裁剪比例”.可以發(fā)現(xiàn),并不是稀疏因子取值越大,就可以得到更大的裁剪率.在稀疏因子取值較大時(shí),過(guò)多的BN層縮放因子參數(shù)被稀疏到0,會(huì)導(dǎo)致在進(jìn)行更高裁剪率的剪枝時(shí)出現(xiàn)刪除一整層的全部通道的情況,導(dǎo)致模型失去檢測(cè)效果.
表2 不同稀疏因子的最大裁剪率Tab.2 Maximum pruning rates of different sparsity factors
而在對(duì)模型進(jìn)行剪枝并且微調(diào)后,由于在微調(diào)訓(xùn)練時(shí)不會(huì)給模型施加稀疏化約束,所以BN層縮放因子的分布又會(huì)逐漸變?yōu)檎龖B(tài)分布,如圖5所示,a、b、c圖中的左圖均為稀疏化訓(xùn)練時(shí)的BN層縮放因子分布變化圖,右圖為剪枝微調(diào)時(shí)的BN層縮放因子分布變化圖.
圖5 剪枝微調(diào)前后的BN層縮放因子參數(shù)分布對(duì)比圖Fig.5 Distribution of weight before and after pruning
(2)稀疏化訓(xùn)練后的目標(biāo)檢測(cè)性能
在對(duì)稀疏化訓(xùn)練后的模型做剪枝并微調(diào)訓(xùn)練后,得到的模型的目標(biāo)檢測(cè)性能如表3所示.通過(guò)對(duì)比可以發(fā)現(xiàn),剪枝可以極大程度地減少模型的參數(shù)量和運(yùn)算量,能夠減少30~50%左右的參數(shù)量和運(yùn)算量,并且預(yù)測(cè)率、召回率、mAP等重要檢測(cè)指標(biāo)和正常訓(xùn)練時(shí)的指標(biāo)相差在2%以內(nèi),而單張圖像推理時(shí)間下降了10%左右.
圖6 不同稀疏因子下的目標(biāo)檢測(cè)結(jié)果對(duì)比Fig.6 Comparison of target detection results under different sparsity factors
表3 剪枝前后模型的檢測(cè)性能Tab.3 Detection performance of models before and after pruning
作為對(duì)比,表4對(duì)比了不同的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法對(duì)于本數(shù)據(jù)集的優(yōu)化效果.其中Vitis-AI工具是Xilinx官方提供的用于將神經(jīng)網(wǎng)絡(luò)移植到FPGA開(kāi)發(fā)板上的優(yōu)化工具,而Slim剪枝方案是參考了文獻(xiàn)[26] 在本數(shù)據(jù)集上做的對(duì)比實(shí)驗(yàn).可以發(fā)現(xiàn)本文提出的基于卷積核剪枝的優(yōu)化方法在模型大小和推理時(shí)間方面都有一定的優(yōu)勢(shì).
表4 具體性能參數(shù)對(duì)比Tab.4 Comparison of performance parameters
此外,由于數(shù)據(jù)集中A、G、H類飛機(jī)目標(biāo)的樣本量較少,所以這幾個(gè)類別的檢測(cè)效果可能會(huì)因樣本量不足而失去參考價(jià)值,影響到整體的目標(biāo)檢測(cè)效果.所以這里專門列舉樣本量最多的J類飛機(jī)的檢測(cè)效果作為參考,如表5所示,J類飛機(jī)的目標(biāo)檢測(cè)性能由于樣本量充足,明顯優(yōu)于整體的目標(biāo)檢測(cè)性能.對(duì)比發(fā)現(xiàn),在樣本量大,訓(xùn)練效果好時(shí).該剪枝方法并不會(huì)因?yàn)閰?shù)量減少而影響到目標(biāo)檢測(cè)效果.在裁剪率達(dá)到0.5時(shí),還能夠超越正常訓(xùn)練時(shí)的目標(biāo)檢測(cè)性能.在稀疏因子為0.01,不做裁剪時(shí),模型的目標(biāo)檢測(cè)性能相比于正常訓(xùn)練倒退最多,達(dá)到3%左右,原因是稀疏因子為0.01時(shí),較多BN層參數(shù)被稀疏為0,在本身模型能夠?qū)崿F(xiàn)很高精度的目標(biāo)檢測(cè)率時(shí),稀疏訓(xùn)練導(dǎo)致丟失了較多BN層縮放因子,影響到了模型的檢測(cè)精度.其他樣本量較多的分類如C、F、K類,也可以達(dá)到和J類飛機(jī)目標(biāo)接近的檢測(cè)性能.
表5 剪枝前后模型對(duì)J類飛機(jī)的檢測(cè)性能對(duì)比Tab.5 Comparison of detection performance of model before and after pruning for class J aircraft
此外,裁剪前后的模型權(quán)重文件大小對(duì)比如表6所示.經(jīng)過(guò)剪枝后,權(quán)重大小的減少量和裁剪率保持一致,能夠達(dá)到30-50%的裁剪水平,而目標(biāo)檢測(cè)性能能夠保持和裁剪前的原始模型差距在2%以內(nèi).
表6 剪枝前后模型文件大小Tab.6 Model file sizes before and after pruning
通過(guò)觀察和比較實(shí)驗(yàn)結(jié)果,可以得出以下結(jié)論:
1)對(duì)于剪枝并微調(diào)后的模型來(lái)說(shuō),雖然減少了30~50%左右的參數(shù)量,但是目標(biāo)檢測(cè)性能下降不超過(guò)2%.并且部分模型相較于正常訓(xùn)練時(shí)的性能甚至有所提高.在預(yù)測(cè)率、召回率和mAP等目標(biāo)檢測(cè)指標(biāo)方面都能夠提升1~2%左右.這說(shuō)明原有模型的權(quán)重參數(shù)的過(guò)擬合較為嚴(yán)重,通過(guò)引入L1正則化用于稀疏化訓(xùn)練,能夠有效地降低過(guò)擬合,起到給目標(biāo)檢測(cè)模型“瘦身”卻不影響性能的效果.
2)過(guò)大或過(guò)小的稀疏因子反而會(huì)導(dǎo)致訓(xùn)練結(jié)果變差.λ=0.1時(shí),會(huì)導(dǎo)致訓(xùn)練后模型權(quán)重過(guò)稀疏,從而完全失去檢測(cè)性能;λ=0.01時(shí),會(huì)導(dǎo)致訓(xùn)練后模型的最大裁剪率較低;λ=0.00001時(shí),會(huì)導(dǎo)致訓(xùn)練后模型權(quán)重參數(shù)依然保持近似正態(tài)分布,無(wú)法進(jìn)行裁剪.只有當(dāng)λ取值適中時(shí),才能讓訓(xùn)練后的模型擁有較高的最大裁剪率,適合用于輕量化優(yōu)化.
本文基于卷積核剪枝原理,針對(duì)YOLOv5模型,提出了一種基于卷積核剪枝的遙感圖像實(shí)時(shí)目標(biāo)檢測(cè)深度網(wǎng)絡(luò)模型壓縮方案.實(shí)驗(yàn)結(jié)果表明,該方案有效降低了模型的過(guò)擬合,能夠在裁剪了30~50%的模型參數(shù)的情況下,模型的目標(biāo)檢測(cè)性能下降不超過(guò)2%.可以極大程度地減少深度網(wǎng)絡(luò)模型對(duì)計(jì)算資源的消耗,為基于卷積神經(jīng)網(wǎng)絡(luò)的遙感圖像實(shí)時(shí)目標(biāo)檢測(cè)算法在星載設(shè)備的部署提供了理論方案.