楊文哲 徐邁 白琳
摘要:提出了一種應用于視頻質(zhì)量增強算法的動態(tài)結(jié)構(gòu)性剪裁算法Maskcut,它可以有效提高基于深度學習的視頻質(zhì)量增強算法的運行速度。Maskcut是一種通用的剪裁思路,支持絕大多數(shù)的基于卷積神經(jīng)網(wǎng)絡(CNN)深度學習網(wǎng)絡模型的剪裁加速。基于原模型中已經(jīng)訓練好的參數(shù)數(shù)據(jù),Maskcut使用一種針對剪裁加速的二次訓練策略來進一步微調(diào)參數(shù),從而在保證模型有效性損失不大的同時,縮短模型運行時間。以一種先進的視頻質(zhì)量增強算法——多幀質(zhì)量增強2.0(MFQE 2.0)為目標,Maskcut剪裁后可以快速達到峰值信噪比(PSNR)指標損失低于1%、時間縮短10%以上的加速指標。
關鍵詞:模型加速;圖像質(zhì)量增強;結(jié)構(gòu)性剪裁
Abstract: Maskcut, a dynamic structural clipping algorithm for video quality enhancement is proposed, which can effectively improve the speed of video quality enhancement algorithm based on deep learning. Maskcut is a general tailoring idea that supports most of the tailoring acceleration based on the deep learning network models for convolutional neural networks (CNN). Based on the trained parameter data in the original model, the secondary training for tailoring acceleration is carried out to further fine-tune the parameters. With an advanced video quality enhancement algorithm, the multi-frame quality enhancement 2.0(MFQE 2.0) as the goal, the peak signal-to-noise ratio (PSNR) index is less than 1% and the time is shortened by more than 10% after Maskcut clipping.
Keywords: model acceleration; image quality enhancement; structural tailoring
隨著多媒體及5G時代的到來,視頻傳輸?shù)乃俾屎蛶挼玫搅擞行岣?,人們對于高清視頻的需求也變得越來越高。但是由于許多拍攝軟硬件條件不高或多層多級中轉(zhuǎn)壓縮過程復雜等原因,使得視頻質(zhì)量不夠清晰,因此高清視頻仍有著很大的提升空間。目前,針對圖像視頻質(zhì)量增強的算法,大多是基于深度學習的龐大計算量。這些算法在應用時往往存在參數(shù)冗余、計算量大、時間耗費多等問題,這也是近兩年來深度學習領域需要著重解決的問題。目前大量的優(yōu)化算法大多是基于浮點運算次數(shù)(FLOPs)的仿真工作。面對實際問題和模型,如果沒有底層的硬件支持和推理加速,很多算法使用時并不能獲得理想的加速效果。本文中,我們主要聚焦于實際硬件加速效果,而非理論計算量的改變。
1視頻質(zhì)量增強模型加速算法的相關工作
1.1視頻質(zhì)量增強
在視頻質(zhì)量增強方面,由GUAN Z. Y.等提出的壓縮視頻質(zhì)量提升2.0(MFQE 2.0)模型[1],是目前實用性相對較好的一種深度學習算法。該算法以卓越的速度和性能效果優(yōu)于同時期的其他視頻質(zhì)量增強算法。本文中,我們以此作為剪裁算法的實踐模型對象,提出了一種具有通用性的剪裁算法。在MFQE 2.0模型中,增強算法分為兩個子網(wǎng)絡,分別對應數(shù)據(jù)特征提取運動補償(MC)子網(wǎng)絡和數(shù)據(jù)恢復質(zhì)量增強(QE)子網(wǎng)絡。其中,數(shù)據(jù)恢復QE子網(wǎng)絡為卷積神經(jīng)網(wǎng)絡(CNN)模型,對于剪裁算法的操作性和兼容性較高。針對不同質(zhì)量(QP)的視頻數(shù)據(jù)集,MFQE 2.0能夠訓練對應的模型,并能根據(jù)視頻前后好幀的同一物體的像素信息,對當前低幀圖像進行質(zhì)量增強。由于MFQE 2.0訓練較慢,且所采用的從訓練后的大模型剪裁小模型的方法也存在合理性[2],故在MFQE 2.0訓練好的模型基礎上進行剪裁,可以達到更快、更好的效果。
1.2模型剪裁加速
在剪裁加速方面,近兩年來相關論文的成果眾多,如HAN S.等[3]提出的剪裁-量化-編碼的三部曲結(jié)構(gòu),是壓縮模型比較經(jīng)典的方法。本課題也是從這種壓縮技巧入手,但目的是縮短模型的運行時間。本文中的剪裁方式主要為隨機剪裁,即根據(jù)網(wǎng)絡中的參數(shù)大小進行剪裁。這種方法能夠減少計算量和參數(shù)數(shù)量,但剪裁結(jié)果為稀疏性矩陣,而運算時許多框架對于稀疏性矩陣的卷積(底層會轉(zhuǎn)為乘法運算)并無有效加速;因此,時間上的加速效果不明顯。一般做法是,底層運算采用特定的計算庫,但是這種做法的通用性較差,與框架結(jié)合效果不佳。而李浩等[4]提出的基于濾波器剪裁的加速方法,以通道為單位,并以濾波器的標準差作為衡量重要性標準來進行剪裁。雖然這種思路能夠在不依賴其他框架的情況下,有效縮短模型的運行時間,但依然存在優(yōu)化空間,如缺乏在重訓過程中的更自由的調(diào)整策略和自動調(diào)整剪裁閾值的機制。本文所提的加速算法也在此基礎上進行了改進。
面對工業(yè)界亟待解決的問題,一種基于算法層面的有實際加速效果的剪裁就顯得非常重要。因此,本文主要針對深度學習算法的時間耗費問題,并以一種視頻質(zhì)量增強算法為例,提出一種可以通過自動調(diào)整剪裁標準進行通道性剪裁的方法。同時,實驗結(jié)果表明,該方法切實縮短了模型的運行時間,加速模型在工業(yè)界的落地應用。
2 Maskcut動態(tài)剪裁方法
2.1動態(tài)通道剪裁
基于李浩提出的通道性剪裁的基礎概念,本文的剪裁算法得以提出。在以往的通道性剪裁中(如圖1所示),每一層的濾波器維度為四維,圖1的每一個卷積核被視作一個質(zhì)點;核矩陣為濾波器在輸入通道、輸出通道維度的二維表示。無論是逐層剪裁還是整體剪裁,都要先通過L1-norm或核矩陣的標準差等指標排序來確定要剪裁掉的通道,然后重訓微調(diào),提高模型準確率,并同時對應剪掉下一層的核矩陣對應通道的輸出。
在剪裁后重訓的過程中,濾波器的數(shù)值會經(jīng)損失函數(shù)反向梯度傳播而不斷改變。如果我們依然按照原先的標準,那么此時可能有一些通道變得不符合規(guī)則。模型在剪裁后都是需要訓練的,所以我們可以將訓練過程中的剪裁做形式上的改變:不需要立刻導出小通道數(shù)模型,而是如圖2所示,將對應通道的前向傳遞函數(shù)和反向梯度傳遞函數(shù)進行可控阻斷,在保留被剪裁參數(shù)的同時,取得和剪裁濾波器通道一樣的效果;在重訓過程中,也可以隨時更改開啟關閉的通道。
2.2半自動剪裁標準調(diào)整機制
通道性剪裁有著簡單直接的優(yōu)勢,但一個比較突出的問題是每層裁剪的數(shù)量需要預先設定。無論剪裁標準是濾波器的標準差、L1-norm值,還是其他,都只是標準的差異而已,而選定的剪裁比例或閾值卻沒有對應的優(yōu)化機制。本文提出了一種半自動剪裁標準調(diào)整機制,對于動態(tài)剪裁可以考慮選擇。
通過以上的導函數(shù)尋找極大值點,可以輔助尋找適合被剪裁的通道。如預設剪裁[a,b]范圍的通道數(shù)(百分比),然后使用尋找極大值點的方法,從[a,b]區(qū)間內(nèi)尋找導函數(shù)最大值點,以此作為當前剪裁的真正比例。通過動態(tài)剪裁的方法,可以在每輪重新訓練時,不斷地重新確認剪裁的比例值。
2.3 Maskcut剪裁算法
本文使用L1-norm作為衡量通道重要性的指標。通過對L1-norm進行排序,算法將通道整體的重要度進行區(qū)分,剪裁那些不太重要的通道,并采用動態(tài)裁剪的方式隨時調(diào)整選擇的通道位置,或利用半自動剪裁標準調(diào)整機制,隨時調(diào)整選擇的通道數(shù)量。
剪裁算法的步驟具體如下:
(1)以輸入通道為主,以卷積層為單位,計算各個通道的L1-norm并排序;
(2)設定各層的初始剪裁比例或范圍;
(3)根據(jù)比例范圍和半自動剪裁標準調(diào)整機制,找出此輪真正的剪裁比例;
(4)確認被剪裁的通道對應的開關關閉,對模型進行微調(diào)重訓;
(5)重復步驟(3)—(4),直至滿足要求,最后將開通道對應參數(shù)導出至新模型,完成剪裁。
其中,步驟(3)非必需,可根據(jù)實際情況選擇是否進行。
2.4動態(tài)剪裁實踐流程
采用通道開關后,算法由原來的篩選-重訓的流程變成了如圖3所示的流程。在每輪訓練中,新的流程可以更自由地重新修改訓練通道。最重要的是,通過不斷調(diào)整訓練的通道數(shù)量,并搭配自動選擇閾值分割線的機制,就可以進一步實現(xiàn)動態(tài)剪裁和重訓,從而將兩者有機結(jié)合起來。待訓練效果可以接受時,再通過導出開通道的參數(shù),原模型就可以轉(zhuǎn)變?yōu)橐粋€簡單且低維的小模型,從而完成剪裁。
2.5理論分析
3實驗結(jié)果
本文所提的基礎模型是基于Tensorflow 1.0版本的MFQE 2.0模型,故我們以Tensorflow 1.14為運行框架環(huán)境,來測試MFQE 2.0的QP32視頻數(shù)據(jù)集及模型。
3.1 MFQE 2.0模型分析
3.1.1概述
在剪裁前,應對模型的運行時間、計算時間開支進行分析和了解。
我們利用Tensorflow內(nèi)置的時間分析工具timeline進行測量。由于timeline是官方內(nèi)嵌的時間測量工具,雖有一定的波動性,但相對來說可靠得多。通過timeline分析,不僅可以計算出整個模型的單次運算時間,還可以獲得每個卷積層的運算時間;因此對于卷積層的通道剪裁來說,有著更明顯的對比效果,故我們以此工具作為時間測量的手段。
在MFQE 2.0網(wǎng)絡中,前面緊湊計算對應的是特征提取網(wǎng)絡,而后面相對耗時長的部分是重建網(wǎng)絡,因此優(yōu)先剪裁的對象應是QE重建網(wǎng)絡中的CNN那一部分。這種做法對于其他算法模型來說也有著很強的通用價值。
3.1.2參數(shù)分析
為了進一步了解模型和參數(shù),應對模型的參數(shù)進行分析。首先我們以層為單位,對MFQE 2.0中比較容易剪裁的QE重建網(wǎng)絡部分中的各個卷積層的參數(shù)進行分析,并且對每個權重值的絕對值進行排序和計數(shù),對權重值和索引比進行歸一化,從而能夠統(tǒng)計出權重的分布,具體的情況如圖4所示。
3.2剪裁實驗結(jié)果
我們以QP=32的視頻數(shù)據(jù)為例,對MFQE 2.0的QE部分網(wǎng)絡進行剪裁加速實驗。
QE部分網(wǎng)絡的原始維度主要有7層,通道數(shù)均為32,我們在此基礎上進行整體剪裁加速實驗。為了方便統(tǒng)計和測試,采取各層剪裁的通道數(shù)時刻保持一致,通道數(shù)不斷調(diào)整的方法進行實驗。
3.2.1剪裁時間結(jié)果
Tensorflow靜態(tài)圖的特點導致在模型剪裁時,只能采取稀疏+參數(shù)數(shù)據(jù)遷移的方案。而在稀疏之前,需要先對不同剪裁的具體時間加速效果進行實驗,這也能給后面的稀疏實驗提供優(yōu)化對比。
因此,我們將原方案32通道的模型做更改,并用timeline來測試時間,經(jīng)平均處理消除不確定性,其結(jié)果如圖5所示。
可以看出,隨著通道數(shù)的減少,模型運算的總時間也相應減少。雖然只是裁剪部分層的通道,但由于QE網(wǎng)絡所占運行時間很長,所以相對來說只檢測QE網(wǎng)絡部分的時間加速效果依然不錯。
當方案中的通道數(shù)為26時,數(shù)據(jù)平均處理后的時間仍比原模型時間更久一些。經(jīng)查閱資料后得知,在計算機底層計算時,由于通道數(shù)是卷積層濾波器四維矩陣中的兩個維度,因此在計算時都是按照感受野為單位進行的,可能會因維度數(shù)目和計算機底層的一些內(nèi)存單元大小的匹配,存在時間長短的區(qū)分。原模型通道數(shù)僅為32,因此在通道數(shù)目減小的過程中,如果不是減少量顯著,則存在時間消耗不減反增的可能,這與計算機底層內(nèi)存塊的空間大小等都有關系。
總的來說,通過剪裁通道數(shù)能夠很方便地實現(xiàn)時間加速,但至于性能如何,則需要通過稀疏實驗進行驗證。
3.2.2剪裁結(jié)果分析
通過動態(tài)的通道剪裁方案,算法能夠在每次訓練時不直接將某些參數(shù)置為0,而是通過對掩模層的“開關”進行學習,這樣就能實現(xiàn)損失函數(shù)和反向梯度傳播的對應更新,以更快速準確地實現(xiàn)視頻質(zhì)量增強的網(wǎng)絡剪裁效果。我們對之前提到的算法和方案進行了落實,在MFQE 2.0網(wǎng)絡中,以QP=32的數(shù)據(jù)和訓練好的模型對低質(zhì)量幀(non-PQF)進行實驗。
如果不進行相應的參數(shù)恢復,而直接進行剪裁,那么峰值信噪比(PSNR)和結(jié)構(gòu)相似性比(SSIM)的運行結(jié)果如表1所示。
可以看出,如果直接進行剪裁,會導致模型的性能變得非常差。也就是說,雖然模型存在著大量權重小的參數(shù),但仍不能簡單忽略。如果直接刪除一些小權重的通道,而不對其他的通道進行適當?shù)男薷暮驼{(diào)整,那么準確率和質(zhì)量增強效果依然會大打折扣。
使用掩模層進行不斷地重訓后,通過調(diào)整通道開關閉合,就可以計算損失函數(shù),阻斷部分梯度反向傳播的更新。
經(jīng)上述訓練后,我們分別測試了所得模型的時間和效果,結(jié)果如表2所示。分析PSNR對應列與直接剪裁不重訓,我們可以看到模型重訓對模型的性能恢復效果。
我們采用PSNR作為質(zhì)量增強效果的客觀標準?;诖朔N動態(tài)通道的剪裁方法有著較好的卷積神經(jīng)網(wǎng)絡的通用性和一般規(guī)律性,并在本文的視頻質(zhì)量增強任務上實現(xiàn)了有效的效果。
總的來看,如果主要分析ΔPSNR和總時間的平衡,分析結(jié)果如表3所示。在目前的實驗結(jié)果中,在通道數(shù)為24時,能夠?qū)崿F(xiàn)以0.7%的性能損失換取12.5%的總時間縮短,達到預期指標。
4結(jié)束語
本文提出了一種動態(tài)的通道剪裁方法,以L1-norm作為衡量濾波器通道重要程度的標準,通過動態(tài)剪裁、統(tǒng)一設定剪裁比例,對已經(jīng)訓練好的MFQE 2.0模型進行剪裁加速。在MFQE 2.0的QP 32數(shù)據(jù)集中,通過微調(diào)模型后,我們發(fā)現(xiàn):當將QE網(wǎng)絡的32通道數(shù)剪裁至24時,可以達到以0.7%的性能損失換取12.5%的總時間縮短的指標。在剪裁后網(wǎng)絡最終導出之前,隨著迭代次數(shù)的推進,模型剪裁效果會更好,而且具有一定外擴性,即最后的模型再適當增大通道時,由于動態(tài)剪裁的選通機制,可以相對更輕松微調(diào)至其他數(shù)目通道的模型。通過動態(tài)通道剪裁,完成了MFQE 2.0的視頻質(zhì)量增強的模型有效加速。
本文還提出一種半自動剪裁標準調(diào)整策略,通過擬合函數(shù)的一階導數(shù)極大值或最大值尋找,輔助決定剪裁最佳比例,后續(xù)應嘗試從結(jié)果反饋信息或二分類輔助自動決定剪裁比例。
參考文獻
[1] GUAN Z Y, XING Q L, XU M, et al. MFQE 2.0: a new approach for multi-frame quality enhancement on compressed video [J]. IEEE transactions on pattern analysis and machine intelligence,2019:1.DOI: 10.1109/tpami.2019.2944806
[2] ZHU M, GUPTA S. To prune, or not to prune: exploring the efficacy of pruning for model compression [EB/OL]. (2018-06-23) [2020-12-22]. http://arxiv.org/abs/1710.01878
[3] HAN S, MAO H Z, DALLY W J. Deep compression: compressing deep neural networks with pruning, trained quantization and huffman coding [EB/OL]. [2020-12-22]. https: // arxiv.org/abs/1510.00149
[4]李浩,趙文杰,韓波.基于濾波器裁剪的卷積神經(jīng)網(wǎng)絡加速算法[J].浙江大學學報(工學版), 2019, 53(10): 1994-2002
[5] LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient ConvNets [EB/OL]. [2020-12-22].https://arxiv.org/abs/1608.08710
[6] LEBEDEV V, LEMPITSKY V. Fast ConvNets using group-wise brain damage [C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, NV, USA: IEEE, 2016: 2554-2564. DOI: 10.1109/ cvpr.2016.280
[7] WEN W, WU C P, WANG Y D, et al. Learning structured sparsity in deep neural networks[EB/OL]. [2020-12-22]. https: //arxiv. org/abs/ 1608.03665
[8] HOWARD A G, ZHU M L, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications [EB/OL]. [2020- 12-22]. https: //arxiv.org/abs/1704.04861
[9] LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient ConvNets [EB/OL]. [2020-12-24]. https: //arxiv.org/abs/1608.08710
[10] POLYAK A, WOLF L. Channel-level acceleration of deep face representations [J]. IEEE access, 2015, 3: 2163-2175. DOI: 10.1109/ access.2015.2494536
作者簡介
楊文哲,北京航空航天大學電子信息工程學院在讀碩士研究生;研究方向包括深度學習、圖像壓縮等。
徐邁,北京航空航天大學電子信息工程學院教授、教育部“青年長江學者”、中國圖象圖形學學會青工委副主任;研究方向包括圖像處理、視頻壓縮、視頻通信、計算機視覺與人工智能等;2016年獲教育部霍英東青年基金資助,2017年獲人工智能學會技術發(fā)明一等獎(第二完成人),2018年獲教育部科技進步一等獎、中國電子學會優(yōu)秀科技工作者,2019年獲國家優(yōu)秀青年基金資助,2020年獲北京市杰出青年基金資助;發(fā)表論文100余篇。
白琳,北京航空航天大學網(wǎng)絡空間安全學院教授;主要研究方向包括通信網(wǎng)絡安全、無線通信、物聯(lián)網(wǎng)、無人機通信等領域等;主持國家自然科學基金項目3項、國家重點研發(fā)計劃項目子課題1項,獲國家自然科學基金優(yōu)秀青年科學基金資助,獲第四屆中國出版政府獎、中國電子學會自然科學二等獎、國家科技進步二等獎;發(fā)表SCI期刊文章66篇,著有英文專著2部、中文專著3部。