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