王乃洲 金連文 梁添才 金曉峰
(1.華南理工大學 廣東省廣州市 510640)
(2.廣電智能安全研究院 廣東省廣州市 510656)
視頻結構化分析是海量視頻實現信息化、情報化行之有效的技術,也是當前智能公共安全中對視頻處理的一個指向性方案。隨著平安城市、雪亮工程等全國性工程建設的不斷推進,我國已經是監控攝像頭增長最快的國家。為實現防區全方位實時安全態勢智能感知,智能監控攝像設備,往往具有視頻(人,車)結構化分析功能。
視頻結構化技術融合了機器視覺、圖像處理、模式識別、機器學習等最前沿的人工智能技術,隨著深度學習技術的發展,基于CNN的應用方案已經成為主流。CNN的計算需要耗費大量的計算資源與存儲資源,從而限制了其在邊緣設備上的應用。輕量級網絡模型的設計與應用成為解決以上問題的重要技術手段,由此衍生出SqueezeNet[1],Shufflenet[2],Mobilenet[3]等模型。實際應用中,輕量級網絡模型推動了智能分析模型的前端部署。然而,輕量級網絡依然存在參數冗余,在推理速度和資源占用上依然有較大的優化空間。
針對以上問題,本文主要探討輕量級網絡模型壓縮與加速技術。目前,深度網絡模型壓縮與加速的主要手段包括:模型裁剪[4,5,6];模型量化[7];知識蒸餾[8];低秩分解[9];網絡結構搜索[10]等,其中,模型裁剪與量化,由于其有效性和高效性,受到學術界與工業界的青睞。
本文基于Thinet裁剪技術[5]提出一種基于輕量級網絡Mobilenetv2的車型識別模型優化方法。基于所提出的通道裁剪策略,在幾乎不改變原始識別精度的前提下,提高車型識別系統的識別速度。最后,通過實驗,證明所提技術的有效性。
基于Channel prune的模型壓縮技術,關鍵在于裁剪通道重要性評估。較早的通道重要性評估方法有L1/L2范數[4]。這種方法的缺點在于,忽略了通道之間的耦合性,沒有考慮到裁剪對下一層輸出的影響。在2017年ICCV上,文獻[5]提出了一種數據驅動型Thinet通道裁剪技術,其核心思想是:如果可以用第i層輸出的一個子集就可以在第i+1層上產生和原始輸出近似的結果,則該子集之外的其他通道均可以裁減掉。
為考察channel的重要性,需準備N張樣本圖片。設置壓縮率ε,則需保留的第i層通道數為M=ε*C,其中C為第i層輸出通道個數,以N張樣本圖像為系統輸入,考察裁剪掉某一channel對輸出的影響,這里采用貪婪算法逐個的刪除通道,直到保留的通道個數滿足要求為止,則裁剪策略可表示如下:

通過上式及貪婪算法確定保留的通道索引后,需要對第i層權重進行重構:

其中,WFilter,j是第i+1層權重的第j個通道。

圖1:Mobilentv2網絡中典型的結構模塊

圖2:Mobilentv2網絡裁剪流程
Mobilenetv2網絡與Mobilenet一樣都屬于小網絡模型,都采用了Depthwise Convolution+1x1 Convolution結構,極大簡化了卷積參數復雜度,達到加速卷積的效果。所不同的是,Mobilentv2采用的是“擴張-卷積-壓縮”的形式,并運用了Resnet的shortcut結構。因此,在精度上,較前者更高,廣泛應用于邊緣端圖像分類系統中。Mobilenetv2中典型的幾種結構模塊,如圖1所示。實現對圖1中(Ⅰ)、(Ⅱ)、(Ⅲ)三種典型結構的裁剪,基本可實現對Mobilenetv2整體網絡的壓縮。針對I,II型的結構,我們裁剪Conv.Layer 1層,并對余下網絡層,相應地,調整weight參數;而對于III型結構,我們順序裁剪Conv.Layer 1和Conv.Layer 2層,并相應調整模塊余下部分weight參數。我們采取“由上而下”、“逐層微調”的裁剪策略,具體流程如圖2所示。
實驗數據來源于路邊、岔口等攝像機采集的視頻數據。將視頻數據按幀抽取,并進行手工標注,共獲得57338張前向車輛類型圖像,如圖3所示,其中47738張圖像作為訓練集,其他9600圖像作為測試集,測試集與訓練集圖像數量之比約為1:5。各類車型數量分布如表1所示。

圖3:車輛類型數據集

圖4:車型識別模型訓練曲線
模型裁剪在Ubuntu16.0.4環境下進行,所使用的服務器安裝有4塊NVIDIA Tesla V100顯卡。首先,采用Caffe[11]框架進行實驗,訓練了Mobilenetv2車型分類模型。網絡的訓練參數設置如下:采用Multistep學習策略,初始學習率為0.001,每20個epoch,學習率縮小10倍,權重衰減為0.0005,訓練時Batchsize為32,測試時Batchsize為16,采用均方根反向傳播(RMSProp)學習策略提高收斂速度,rms_decay設置為0.98。獲得原始分類精度0.9222,如圖4所示。在此基礎上,進行模型裁剪與性能評估。然后,對Mobilentv2模型進行裁剪。裁剪后,微調參數設置與上文所述完全一致,僅僅初始學習率調整為0.0001,共對26層網絡進行了裁剪,具體結果,如表2~3所示。裁剪后模型精度0.9160,減小6.7%,推理時顯存節約66MB,推理時間節約6.12ms。

表1:車輛類型數據集樣本數量分布

表2:Mobilenetv2模型裁剪

表3:裁剪后模型性能對比
本文研究了面向輕量級網絡MobileNetv2的車型識別系統的模型裁剪方法。該方法屬于Filter級模型裁剪技術。與基于Lp-norm的裁剪技術相比,該方法考慮了裁剪對后續層輸出的應用,保守性較小。最后,在車型識別模型上進行裁剪實驗,實現了,在幾乎不損失Top1精度的情況,節約顯存以及提高推理速度的效果。