王乃洲 金連文 梁添才 金曉峰
(1.華南理工大學(xué) 廣東省廣州市 510640)
(2.廣電智能安全研究院 廣東省廣州市 510656)
視頻結(jié)構(gòu)化分析是海量視頻實(shí)現(xiàn)信息化、情報(bào)化行之有效的技術(shù),也是當(dāng)前智能公共安全中對視頻處理的一個(gè)指向性方案。隨著平安城市、雪亮工程等全國性工程建設(shè)的不斷推進(jìn),我國已經(jīng)是監(jiān)控?cái)z像頭增長最快的國家。為實(shí)現(xiàn)防區(qū)全方位實(shí)時(shí)安全態(tài)勢智能感知,智能監(jiān)控?cái)z像設(shè)備,往往具有視頻(人,車)結(jié)構(gòu)化分析功能。
視頻結(jié)構(gòu)化技術(shù)融合了機(jī)器視覺、圖像處理、模式識別、機(jī)器學(xué)習(xí)等最前沿的人工智能技術(shù),隨著深度學(xué)習(xí)技術(shù)的發(fā)展,基于CNN的應(yīng)用方案已經(jīng)成為主流。CNN的計(jì)算需要耗費(fèi)大量的計(jì)算資源與存儲資源,從而限制了其在邊緣設(shè)備上的應(yīng)用。輕量級網(wǎng)絡(luò)模型的設(shè)計(jì)與應(yīng)用成為解決以上問題的重要技術(shù)手段,由此衍生出SqueezeNet[1],Shufflenet[2],Mobilenet[3]等模型。實(shí)際應(yīng)用中,輕量級網(wǎng)絡(luò)模型推動了智能分析模型的前端部署。然而,輕量級網(wǎng)絡(luò)依然存在參數(shù)冗余,在推理速度和資源占用上依然有較大的優(yōu)化空間。
針對以上問題,本文主要探討輕量級網(wǎng)絡(luò)模型壓縮與加速技術(shù)。目前,深度網(wǎng)絡(luò)模型壓縮與加速的主要手段包括:模型裁剪[4,5,6];模型量化[7];知識蒸餾[8];低秩分解[9];網(wǎng)絡(luò)結(jié)構(gòu)搜索[10]等,其中,模型裁剪與量化,由于其有效性和高效性,受到學(xué)術(shù)界與工業(yè)界的青睞。
本文基于Thinet裁剪技術(shù)[5]提出一種基于輕量級網(wǎng)絡(luò)Mobilenetv2的車型識別模型優(yōu)化方法。基于所提出的通道裁剪策略,在幾乎不改變原始識別精度的前提下,提高車型識別系統(tǒng)的識別速度。最后,通過實(shí)驗(yàn),證明所提技術(shù)的有效性。
基于Channel prune的模型壓縮技術(shù),關(guān)鍵在于裁剪通道重要性評估。較早的通道重要性評估方法有L1/L2范數(shù)[4]。這種方法的缺點(diǎn)在于,忽略了通道之間的耦合性,沒有考慮到裁剪對下一層輸出的影響。在2017年ICCV上,文獻(xiàn)[5]提出了一種數(shù)據(jù)驅(qū)動型Thinet通道裁剪技術(shù),其核心思想是:如果可以用第i層輸出的一個(gè)子集就可以在第i+1層上產(chǎn)生和原始輸出近似的結(jié)果,則該子集之外的其他通道均可以裁減掉。
為考察channel的重要性,需準(zhǔn)備N張樣本圖片。設(shè)置壓縮率ε,則需保留的第i層通道數(shù)為M=ε*C,其中C為第i層輸出通道個(gè)數(shù),以N張樣本圖像為系統(tǒng)輸入,考察裁剪掉某一channel對輸出的影響,這里采用貪婪算法逐個(gè)的刪除通道,直到保留的通道個(gè)數(shù)滿足要求為止,則裁剪策略可表示如下:
通過上式及貪婪算法確定保留的通道索引后,需要對第i層權(quán)重進(jìn)行重構(gòu):
其中,WFilter,j是第i+1層權(quán)重的第j個(gè)通道。
圖1:Mobilentv2網(wǎng)絡(luò)中典型的結(jié)構(gòu)模塊
圖2:Mobilentv2網(wǎng)絡(luò)裁剪流程
Mobilenetv2網(wǎng)絡(luò)與Mobilenet一樣都屬于小網(wǎng)絡(luò)模型,都采用了Depthwise Convolution+1x1 Convolution結(jié)構(gòu),極大簡化了卷積參數(shù)復(fù)雜度,達(dá)到加速卷積的效果。所不同的是,Mobilentv2采用的是“擴(kuò)張-卷積-壓縮”的形式,并運(yùn)用了Resnet的shortcut結(jié)構(gòu)。因此,在精度上,較前者更高,廣泛應(yīng)用于邊緣端圖像分類系統(tǒng)中。Mobilenetv2中典型的幾種結(jié)構(gòu)模塊,如圖1所示。實(shí)現(xiàn)對圖1中(Ⅰ)、(Ⅱ)、(Ⅲ)三種典型結(jié)構(gòu)的裁剪,基本可實(shí)現(xiàn)對Mobilenetv2整體網(wǎng)絡(luò)的壓縮。針對I,II型的結(jié)構(gòu),我們裁剪Conv.Layer 1層,并對余下網(wǎng)絡(luò)層,相應(yīng)地,調(diào)整weight參數(shù);而對于III型結(jié)構(gòu),我們順序裁剪Conv.Layer 1和Conv.Layer 2層,并相應(yīng)調(diào)整模塊余下部分weight參數(shù)。我們采取“由上而下”、“逐層微調(diào)”的裁剪策略,具體流程如圖2所示。
實(shí)驗(yàn)數(shù)據(jù)來源于路邊、岔口等攝像機(jī)采集的視頻數(shù)據(jù)。將視頻數(shù)據(jù)按幀抽取,并進(jìn)行手工標(biāo)注,共獲得57338張前向車輛類型圖像,如圖3所示,其中47738張圖像作為訓(xùn)練集,其他9600圖像作為測試集,測試集與訓(xùn)練集圖像數(shù)量之比約為1:5。各類車型數(shù)量分布如表1所示。
圖3:車輛類型數(shù)據(jù)集
圖4:車型識別模型訓(xùn)練曲線
模型裁剪在Ubuntu16.0.4環(huán)境下進(jìn)行,所使用的服務(wù)器安裝有4塊NVIDIA Tesla V100顯卡。首先,采用Caffe[11]框架進(jìn)行實(shí)驗(yàn),訓(xùn)練了Mobilenetv2車型分類模型。網(wǎng)絡(luò)的訓(xùn)練參數(shù)設(shè)置如下:采用Multistep學(xué)習(xí)策略,初始學(xué)習(xí)率為0.001,每20個(gè)epoch,學(xué)習(xí)率縮小10倍,權(quán)重衰減為0.0005,訓(xùn)練時(shí)Batchsize為32,測試時(shí)Batchsize為16,采用均方根反向傳播(RMSProp)學(xué)習(xí)策略提高收斂速度,rms_decay設(shè)置為0.98。獲得原始分類精度0.9222,如圖4所示。在此基礎(chǔ)上,進(jìn)行模型裁剪與性能評估。然后,對Mobilentv2模型進(jìn)行裁剪。裁剪后,微調(diào)參數(shù)設(shè)置與上文所述完全一致,僅僅初始學(xué)習(xí)率調(diào)整為0.0001,共對26層網(wǎng)絡(luò)進(jìn)行了裁剪,具體結(jié)果,如表2~3所示。裁剪后模型精度0.9160,減小6.7%,推理時(shí)顯存節(jié)約66MB,推理時(shí)間節(jié)約6.12ms。
表1:車輛類型數(shù)據(jù)集樣本數(shù)量分布
表2:Mobilenetv2模型裁剪
表3:裁剪后模型性能對比
本文研究了面向輕量級網(wǎng)絡(luò)MobileNetv2的車型識別系統(tǒng)的模型裁剪方法。該方法屬于Filter級模型裁剪技術(shù)。與基于Lp-norm的裁剪技術(shù)相比,該方法考慮了裁剪對后續(xù)層輸出的應(yīng)用,保守性較小。最后,在車型識別模型上進(jìn)行裁剪實(shí)驗(yàn),實(shí)現(xiàn)了,在幾乎不損失Top1精度的情況,節(jié)約顯存以及提高推理速度的效果。