騰訊多媒體實驗室:基于三維卷積神經(jīng)網(wǎng)絡(luò)的全參考視頻質(zhì)量評估算法
本文提及的項目是基于騰訊多媒體實驗室與北大深圳研究生院李革教授團(tuán)隊的高校聯(lián)合項目,并通過文章簡要回顧了目前學(xué)術(shù)界和工業(yè)界視頻質(zhì)量評估方向的發(fā)展?fàn)顩r。
騰訊有多個視頻業(yè)務(wù)線,點(diǎn)播視頻有騰訊視頻、企鵝影視,短視頻有微視、K歌,直播類有Now直播、企鵝電競,實時傳輸類有QQ和微信的音視頻通話、無線投屏和騰訊會議等。
用戶對不同的產(chǎn)品有不同程度的期待:比如理想網(wǎng)絡(luò)環(huán)境下,能不能在27寸顯示器上看到毛發(fā)清晰可見的高清視頻?使用3G等弱網(wǎng)環(huán)境時,視頻通話能不能保證畫面不頻繁卡死?
對業(yè)務(wù)提供方來說,所有問題都可以歸結(jié)為一個目的:在不同的網(wǎng)絡(luò)狀況下,保證用戶最佳的視頻觀看體驗。在整個視頻鏈路中,我們可以精確度量大部分模塊,如采集、上傳、預(yù)處理、轉(zhuǎn)碼和分發(fā)。我們最未知的部分卻恰恰是最關(guān)鍵的部分,即用戶的視頻觀看體驗到底怎么樣。
本文旨在介紹業(yè)界視頻質(zhì)量評估進(jìn)展并提出一種基于三維卷積神經(jīng)網(wǎng)絡(luò)的全參考視頻質(zhì)量評估算法。
什么是視頻質(zhì)量評估(VQA, Video Quality Assessment)?
視頻質(zhì)量評估的目的是準(zhǔn)確地衡量視頻內(nèi)容的人眼感知質(zhì)量。不經(jīng)壓縮的源視頻因為碼率太大而不適合互聯(lián)網(wǎng)傳輸。我們必須使用標(biāo)準(zhǔn)的編解碼器,如H.264/AVC、HEVC,或自研編解碼器來編碼進(jìn)而降低碼流大小。然而,視頻壓縮會不可避免的引入壓縮失真。
以H.264/AVC壓縮為例,圖1給出了一個壓縮失真示例圖:
其中,白線左邊對應(yīng)未經(jīng)壓縮的原始畫面,地面磚塊上的紋理清晰可見,背景的藍(lán)天顏色過渡自然。白線右邊對應(yīng)壓縮過的低碼率視頻畫面??梢悦黠@的看到壓縮失真,磚塊紋理變得模糊不清,藍(lán)天也因為塊效應(yīng)的原因出現(xiàn)了不自然的云條。
圖1?H.264壓縮失真截圖。白線左邊為高清源視頻,白線右邊為低碼率壓縮視頻
在工業(yè)界和學(xué)術(shù)界,評估視頻質(zhì)量有兩種常用方法:一是視頻質(zhì)量主觀實驗,二是視頻質(zhì)量客觀算法。兩種方法有各自的適用場景和局限性。
通過主觀實驗我們能精確衡量視頻質(zhì)量。在某些核心問題上,如codec性能比較,我們?nèi)孕枰ㄟ^主觀實驗來得到確切的答案。同時,主觀實驗打分?jǐn)?shù)據(jù)通常會用作驗證客觀質(zhì)量評估算法性能的Ground Truth。完整的主觀實驗流程一般包含:
- 選取有代表性的源視頻
- 添加待衡量的視頻處理方案
- 按照ITU標(biāo)準(zhǔn)設(shè)計主觀實驗
- 招募志愿者觀看視頻并打分
- 收集主觀打分并剔除無效數(shù)據(jù)
- 數(shù)據(jù)建模并拋出實驗結(jié)論。ITU有一些列標(biāo)準(zhǔn)來指導(dǎo)如何做主觀實驗,如ITU-T P910 [2], ITU-R BT.2020?[3]等,本文不做展開。
很顯然,主觀實驗是一個周期長,費(fèi)時費(fèi)力的過程。訴諸主觀打分來驗證所有視頻質(zhì)量需求是不可行的。好在我們可以使用客觀質(zhì)量評估算法來模擬主觀打分,進(jìn)而實現(xiàn)視頻質(zhì)量評估。
然而,開發(fā)準(zhǔn)確而快速的客觀質(zhì)量評估算法仍然是一項有挑戰(zhàn)性的工作。
傳統(tǒng)VQA算法不能有效使用視頻的運(yùn)動信息
客觀視頻質(zhì)量評估算法只需要計算視頻的質(zhì)量分?jǐn)?shù)。
從工業(yè)界的角度來看,經(jīng)典的客觀算法有PSNR,SSIM?[4],MS-SSIM [5],這些算法基于經(jīng)典的信號保真度來判斷失真視頻與無損視頻源的差異,再根據(jù)差異大小擬合出視頻感知質(zhì)量。近期的算法有VQM [6],從多個維度提取時空聯(lián)合特征去逼近主觀質(zhì)量。
目前的主流算法有VMAF?[7],使用機(jī)器學(xué)習(xí)方法對多個圖像質(zhì)量客觀算法進(jìn)行融合。借助于融合的思想,VMAF能夠靈活的加入新的客觀算法。另一方面,通過使用新的數(shù)據(jù)集來重新訓(xùn)練,VMAF也可以方便的遷移到細(xì)分維度的視頻質(zhì)量評估任務(wù)。
圖像質(zhì)量評估主要是衡量畫面內(nèi)失真在畫面掩蓋效應(yīng)影響下的可感知程度。而視頻質(zhì)量評估不僅僅取決于畫面內(nèi)的失真,也包含時域內(nèi)的失真和時域掩蓋效應(yīng)。這里掩蓋效應(yīng)可簡單理解為背景的復(fù)雜程度。如果背景較復(fù)雜,我們稱之為較強(qiáng)的掩蓋效應(yīng),反之亦然。
舉個例子,圖一中滑板處于快速運(yùn)動的狀態(tài),掩蓋效應(yīng)較強(qiáng),所以滑板區(qū)域的失真更難察覺。而背景中藍(lán)天部門是大片的光滑區(qū)域,掩蓋效應(yīng)較弱,細(xì)微的壓縮失真也能容易察覺到。因此,在開發(fā)一個客觀視頻質(zhì)量評估算法中,我們必須把視頻固有的運(yùn)動信息考慮進(jìn)來。
在學(xué)術(shù)界,有很多相應(yīng)的策略被提出。最常用對做法是提取兩種特征,一種特征去描述畫面質(zhì)量,另一種特征去描述視頻運(yùn)動的大小。
比較主流的運(yùn)動特征包含:TI (Temporal Information),?運(yùn)動向量?(Motion Vector),?光流?(Optical Flow) 等。
這種做法最大的缺陷是完全剝離了畫面信息和運(yùn)動信息,視頻不再被當(dāng)作三維數(shù)據(jù)來處理,而是二維數(shù)據(jù)加一維數(shù)據(jù)來處理。
為了解決上述問題,另外一種比較直觀的方法是對視頻進(jìn)行三維切片?[8]。
如圖2所示,我們使用(x, y, t)來標(biāo)記空域和時域軸。這里切片如果與時間軸垂直,即(x, y)方向,那么切出來的就是傳統(tǒng)意義上的視頻幀;如果與時間軸平行,即(x, t) 或?(y, t)方向,我們就得到了時空聯(lián)合的二維切片。在某種程度上,后兩個切片包含了運(yùn)動信息。對以上三種切片使用圖像質(zhì)量評估算法,再把切片分?jǐn)?shù)融合起來,就能取得不錯的質(zhì)量提升。
盡管如此,三維切片還是沒有最大程度的使用運(yùn)動信息。
圖2. 三維空間內(nèi)視頻切片示意圖
有不少圖片質(zhì)量評估算法是基于經(jīng)典的DCT或小波變換,再從變換系數(shù)中提取特征向量。
對視頻而言,一種比較直觀的拓展就是使用三維變換,如三維DCT變換,三維小波變換等。經(jīng)過三維變換后,我們從變換系數(shù)中進(jìn)一步提取特征來而做質(zhì)量評估。這種方法保留了視頻的時空聯(lián)合信息,但是三維變換會引入復(fù)雜度過高的問題。
使用三維卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)視頻的時空聯(lián)合特征(C3D, Convolutional 3D Neural Network)
近年來深度學(xué)習(xí)在多個計算機(jī)視覺圖片任務(wù)中取得了矚目的成就。同時也有學(xué)者把二維神經(jīng)網(wǎng)絡(luò)擴(kuò)展到三維神經(jīng)網(wǎng)絡(luò)來更好的處理視頻任務(wù)?[9]。我們嘗試使用三維卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)時空特征并把它用到視頻質(zhì)量任務(wù)中。我們先給出基本的二維和三維卷積模塊,再進(jìn)一步介紹所提出的網(wǎng)絡(luò)結(jié)構(gòu)。
圖3a給出了二維卷積核在二維輸入上的卷積操作。為了避免歧義,我們假設(shè)是對二維圖像進(jìn)行卷積操作。其中輸入圖像大小為HxW,卷積核大小為kxk,圖像時域深度和卷積核時域深度均為1。經(jīng)過卷積運(yùn)算輸出仍為二維。輸入輸出均不包含任何運(yùn)動信息。
圖3b給出了二維卷積核在三維輸入上的卷積操作。我們可以假設(shè)輸入為一個畫面大小為HxW,包含L幀的視頻。這里卷積核的深度不再是1,而是跟視頻幀數(shù)相同。經(jīng)過卷積操作,輸出仍為二維,且與圖3a的輸出大小相同。這種卷積操作有利用到視頻前后幀的運(yùn)動信息,但是只用一步卷積就把所有運(yùn)動信息給吃掉了。
圖3c給出了三維卷積核在三維輸入上的卷積操作。與圖3b相比,這里卷積核的深度為d,且d小于L。經(jīng)過三維卷積操作,輸出仍為三維。當(dāng)d=1時,等價為圖3a的卷積操作對視頻幀進(jìn)行逐幀處理,但是并沒有利用到前后幀的運(yùn)動信息。當(dāng)d=L時,它的效果等同于圖3b。所以當(dāng)d小于L時,三維卷積能更可控的利用運(yùn)動信息——如果我們想讓運(yùn)動信息消失的快一些,就調(diào)大三維卷積的深度d。相反,使用小一些的d能更緩慢的提取運(yùn)動信息。
?圖3. 二維與三維卷積操作示意圖
在此基礎(chǔ)上,我們設(shè)計了自己的視頻質(zhì)量評估算法C3DVQA。其核心思想是使用三維卷積來學(xué)習(xí)時空聯(lián)合特征,進(jìn)而更好的去刻畫視頻質(zhì)量。
圖4給出了我們所提出的網(wǎng)絡(luò)結(jié)構(gòu)圖,其輸入為損傷視頻和殘差視頻。
網(wǎng)絡(luò)包含兩層二維卷積來逐幀提取空域特征。經(jīng)級聯(lián)后,空域特征仍保留前后幀的時許關(guān)系。網(wǎng)絡(luò)接著使用四層三維卷積層來學(xué)習(xí)時空聯(lián)合特征。
在這里,三維卷積輸出描述了視頻的時空掩蓋效應(yīng),而且我們使用它來模擬人眼對視頻殘差的感知情況:掩蓋效應(yīng)弱的地方,殘差更容易被感知;掩蓋效應(yīng)強(qiáng)的地方,復(fù)雜的背景更能掩蓋畫面失真。
網(wǎng)絡(luò)最后是池化層和全連接層。池化層的輸入為殘差幀經(jīng)掩蓋效應(yīng)處理后的結(jié)果,它代表了人眼可感知?dú)埐?。全連接層學(xué)習(xí)整體感知質(zhì)量和目標(biāo)質(zhì)量分?jǐn)?shù)區(qū)間的非線性回歸關(guān)系。
圖4. 本文所提出的網(wǎng)絡(luò)結(jié)構(gòu)圖。包含兩層二維卷積,四層三維卷積,池化和全連接層。卷積參數(shù)表示:(channel,kernel size,stride,?padding)
結(jié)果
我們在LIVE 和CSIQ 兩個視頻質(zhì)量數(shù)據(jù)集上對所提出算法的性能進(jìn)行驗證。LIVE數(shù)據(jù)庫包含10個參考視頻和對應(yīng)每個參考視頻的15個失真視頻。CSIQ數(shù)據(jù)集包含12個源視頻和相對應(yīng)的18個失真視頻。我們使用標(biāo)準(zhǔn)的PLCC和SROCC作為質(zhì)量準(zhǔn)則來比較不同算法的性能。
因為這兩個數(shù)據(jù)庫相對較小,我們參考另外一片深度學(xué)習(xí)文章?[10]?的做法,每次隨機(jī)抽取80%的參考視頻和由它們所得到的失真視頻作為測試集。我們重復(fù)了20次這樣的數(shù)據(jù)集劃分并且每次都從頭開始訓(xùn)練模型。具體質(zhì)量評估的散點(diǎn)圖如圖5所示。
圖5. 質(zhì)量估計結(jié)果散點(diǎn)圖,每一個點(diǎn)代表一個待測視頻。其中Y軸為估計視頻質(zhì)量,X軸為主觀打分結(jié)果,左圖為LIVE上測試結(jié)果,右圖為CSIQ上測試結(jié)果。
我們與常用的全參考質(zhì)量評估算法進(jìn)行了對比,比較的算法包括PSNR,MOVIE?[11],ST-MAD [12],VMAF和DeepVQA [10]。每次測試都會得到一個PLCC和SROCC,下表中我們使用多次實驗結(jié)果的中值來代表最終性能。
我們可以清楚的看到本文所設(shè)計的算法C3DVQA在兩個數(shù)據(jù)庫上均大幅領(lǐng)先PSNR,MOVIE,ST-MAD,VMAF等傳統(tǒng)算法。值得一提的是DeepVQA也是一個基于深度學(xué)習(xí)的算法,也取得了不錯的性能。我們把這些性能提提升歸結(jié)為兩方面的原因:
- 使用CNN來學(xué)習(xí)質(zhì)量相關(guān)特征要優(yōu)于傳統(tǒng)的特征提取算法;
- DeepVQA和C3DVQA均學(xué)習(xí)視頻的時空聯(lián)合特征,顯性的利用運(yùn)動信息更能刻畫視頻質(zhì)量。
表1. LIVE和CSIQ兩個數(shù)據(jù)庫上不同全參考算法性能比較
總結(jié)
本文簡要回顧了目前學(xué)術(shù)界和工業(yè)界視頻質(zhì)量評估方向的發(fā)展?fàn)顩r。出于復(fù)雜度考慮,工業(yè)界仍傾向于使用復(fù)雜度較低的基于圖像質(zhì)量評估的方案。但是這樣做的缺陷就是不能不能把視頻作為一個整體來學(xué)習(xí)時空特性,盡管結(jié)果差強(qiáng)人意,也算是性能與復(fù)雜度很好的折中。
我們提出了一種基于三維卷積神經(jīng)網(wǎng)絡(luò)的全參考算法。通過學(xué)習(xí)視頻的時空聯(lián)合特征,能更好的解決運(yùn)動信息丟失問題。相對于傳統(tǒng)特征提取算法,我們的算法能大幅度的提升準(zhǔn)確度。
當(dāng)然,這一切才剛剛開始,還有很多工作需要補(bǔ)充。我們想要詳細(xì)的復(fù)雜度分析,特別是在沒有GPU可用的場景。我們也想知道所訓(xùn)練的算法在其它數(shù)據(jù)庫上的性能,而且不僅僅局限于PGC視頻,也包括UGC視頻。
好消息是我們有計劃對業(yè)界開源模型訓(xùn)練代碼,這樣能方便所有人去使用自己的數(shù)據(jù)庫訓(xùn)練測試特定視頻業(yè)務(wù)場景。同時,我們也歡迎任何形式的協(xié)同開發(fā),不管是貢獻(xiàn)數(shù)據(jù)庫,還是貢獻(xiàn)預(yù)訓(xùn)練模型,甚至是拋出業(yè)務(wù)場景中所遇到的問題。
致謝
本項目基于騰訊多媒體實驗室與北大深圳研究生院李革教授團(tuán)隊高校聯(lián)合項目。
參考文獻(xiàn)
- Wang, Haiqiang et al. “VideoSet: A large-scale compressed video quality dataset based on JND measurement.” 2017.
- ITU-T P.910. “Subjective video quality assessment methods for multimedia appli- cations. ” 1999.
- ITU-R BT.2022. “General viewing conditions for subjective assessment of quality of SDTV and HDTV television pictures on flat panel displays.” 2012.
- Wang, Zhou et al. “Image quality assessment: from error visibility to structural similarity.” 2004.
- Wang, Zhou et al. “Multiscale structural similarity for image quality assessment.” 2003.
- Wolf, Stephen et al. “Video quality model for variable frame delay (VQM-VFD).” 2011.
- Zhi, Li et al. “Toward a practical perceptual video quality metric.”?2016.
- Phong Vu, et al. “ViS3: an algorithm for video quality assessment via analysis of spatial and spatiotemporal slices.”?2014.
- Tran Du, et al. “Learning Spatiotemporal Features with 3D Convolutional Networks.”??2015.
- Woojae Kim, et al. “Deep video quality assessor: From spatio-temporal visual sensitivity to a convolutional neural aggregation network.”??2018.
- Seshadrinathan, Kalpana, et al. “Motion tuned spatiotemporal quality assessment of natural videos.” 2009.
- Phong V Vu, et al. “A spatiotemporal most-apparent-distortion model for video quality assessment.”?2011.
本文由 @騰訊產(chǎn)業(yè)互聯(lián)網(wǎng)? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議
- 目前還沒評論,等你發(fā)揮!