視頻質量評價:挑戰與機遇

視頻質量評價:挑戰與機遇

轉自:https://zhuanlan.zhihu.com/p/384603663

本文整理自鵬城實驗室助理研究員王海強在LiveVideoStack線上分享上的演講。他通過自身的實踐經驗,詳細講解了視頻質量評價的挑戰與機遇。

文 / 王海強

整理 / LiveVideoStack

大家晚上好,感謝參加今晚的分享。我叫王海強,來自鵬城實驗室。今天我分享的題目是“視頻質量評價的挑戰與機遇”。這是今天要分享的內容。

在這里插入圖片描述

首先,我會簡單介紹一下什么是視頻質量評價及它的分類。第二部分,我會結合實際業務介紹一下視頻質量評價在業務鏈路中到底有什么作用。接下來會簡單介紹一下目前視頻質量評價在業界應用的現狀、挑戰與機遇。第四部分將會介紹一個我們之前所開發的基于深度學習的視頻質量評價算法。然后,我會宣傳一下在ICME 2021正在舉辦的質量評價競賽。最后是QA環節。

01 視頻質量評價簡介

第一部分是視頻質量評價的簡介。什么是視頻質量評價呢?因為大部分視頻業務是以服務于用戶為目的,以人眼觀看、最終體驗為基準。視頻質量評價致力于衡量視頻的人眼感知質量。

在這里插入圖片描述

上圖用JPEG壓縮圖像給出一個例子。最左邊圖像是無損的,所以它的分數是1.0最高分。最右邊圖像是JPEG壓縮質量最差的,它的分數非常低,接近最低分0。而中間三個圖像的碼率是逐漸降低的,質量是在逐漸變化的,相應的分數也在逐漸降低。而質量評價的目的就是,對于一個圖像或視頻,我們希望能夠給出這樣一個分數作為參考,再以這個分數為前提去優化系統或者做監控。

在這里插入圖片描述

這里給出一個H.264壓縮視頻作為例子。因為線上分享播放視頻不是很方便,所以我在這里只給出一個視頻作為例子,其他地方我都是給出圖片例子,但背后的概念都是相通的。

這個是無損的視頻,它的分數為5分,最高分。然后是4分,也是質量非常好的狀態。然后是3分,在臉部已經可以看到一些block了。而2分的質量就已經很模糊了。最后是相當差的質量,我覺得可能沒有人愿意為這種服務而付錢吧。

總體來說,視頻質量評價可以從下面幾個方向來分類。

1.1 視頻質量評價方法分類

第一個就是根據視頻質量評價的方法來分類。

在這里插入圖片描述

主觀質量評估

如果我們讓人去觀看,并讓人去打分,這叫作主觀質量評估,即依賴人眼觀看并給出打分。這是一個費時費力,而且對環境要求非常嚴格的過程。但是它得到的分數是比較可依賴的,我們經常用這個分數來衡量客觀質量評估算法。

這里的客觀質量評估算法就是,我不可能將所有視頻、所有場景都找人來觀看,我想要一個算法可以自動計算出這個視頻的質量分數。

而衡量一個算法好壞,就是看一下客觀分數與主觀分數的逼近程度。一個好的算法會給出一個接近于主觀分數的估計。

客觀質量評價

具體到客觀質量評估,根據使用多少源視頻的信息,它可以分為三個大類。

第一類是全參考。當我們衡量損傷視頻的時候,無損的源視頻是可用的,我們就可以通過對比兩個視頻的方式作出評價。第二類是無參考。源視頻的任何信息都沒有,我們只使用損傷視頻的信息來衡量其質量。第三類是不太常見的,即部分參考。沒有像素級的源視頻,只從源視頻里提取很少量信息,再用這些信息加上損傷視頻來作估計。

1.2 視頻質量評價內容分類

在這里插入圖片描述

傳統的視頻質量評價都是對于PGC(Professional Generated Contents),叫作專業制作內容,如傳統VoD、家里看的電視或電影,它們都是由專業人員拍攝,它們的構圖、環境、燈光等各方面都比較好。這種情況下,我們假設它們的無損源視頻就有完美的質量,我們比較難去進一步增強它們的質量。近年來,用戶原創視頻UGC(User Generated Contents)開始興起,比如手機上看的短視頻、直播場景、實時會議場景。一方面,因為這種視頻發出去的源已經經過壓縮了,所以它并沒有完美的質量,例如實時視頻通話就有視頻的損傷。另外一方面,我們作為普通用戶,視頻構圖不好,拍攝有抖動,光照也不好,有些人還會后期處理加濾鏡,看起來好看一些,導致視頻經受多層損傷處理。

總體來說,以評價內容來分,視頻可以分為PGC和UGC的視頻內容,PGC是傳統的研究領域,UGC是近幾年興起的領域。

02 質量評價在視頻業務鏈路中的作用

下面我就結合具體的業務線來介紹質量評價能起到什么作用。

在這里插入圖片描述

上圖是一個簡化版的PGC轉碼平臺示意圖。對于系統來說,拿到一個原始的、無損的、高分辨率、高幀率的源,一般將其采樣成不同的分辨率,每一個分辨率會壓縮成特定的碼率,這樣經過CDN,根據用戶端可用帶寬,自動選擇一個碼率,然后分發給用戶。

圖中右邊是給出一個碼表,它來自Netflix 2015年的技術帖子,即把一個視頻壓縮到對應的分辨率后,它的碼率就是固定的。當你的可用帶寬是200k~6Mb,每個碼率點分發的視頻分辨率也是固定的,這就是固定碼表。這樣一個系統是單向的,它根據用戶的可用帶寬,決定分發什么,而沒有考慮到視頻的差異性。譬如我剛才播放的視頻,需要的碼率要高一點。現在一個靜止頁面,需要的碼率低一點。這種固定碼給的形式完全忽略了視頻本身的特性,沒有一個從用戶端去feedback的過程。就是說,在受限帶寬下,是動態調整分辨率,還是調整幀率,還是調整具體的量化參數,我們需要一個更好的策略來達到我的目標的碼率。

在這里插入圖片描述

然后,對于UGC來說,它的播放量有一個長尾效應,也叫作馬太效應、二八效應。它大概類似于一個恐龍的形狀,播放量和點擊量最高的視頻永遠只有一小部分,后面有一個比較長的尾巴,這代表了有相當一部分視頻其實是沒有什么人去看的。如果統計一下,你就會發現,播放量最高的視頻永遠是內容、質量比較好,比較有趣,畫面比較清晰等類似特性。而尾部視頻要么拍攝得不好,要么畫面很渣,要么趣味性不夠。

在這里插入圖片描述

對于UGC視頻來說,除了上面介紹的PGC轉碼平臺,即得到一個上傳的源進行降分辨率、降幀率的分發之外,還有一些額外的工作可以做。譬如說這是一個UP主或者用戶上傳的短視頻,它可能經過了美顏相機處理。而且目前我們的手機是不支持無損拍攝的,手機自己會壓縮一下,否則流量是非常可觀的,而且手機會做一些其他的調整。這時候上傳的視頻質量已經不是無損的。我們在這里需要一個算法來衡量一下,用戶上傳的視頻是不是很好的質量,它是屬于頭部、中部,還是尾部。如果檢測到它是屬于頭部,那它的推送量就更高一些。如果它是屬于脖子這一塊,即不是最優質的視頻,我們是否可以用一些方法將其增強一下,盡量把它變成頭部視頻。我可以選擇性地加入一些處理手段,來進一步增強它的質量。實際情況往往沒那么簡單,我們也需要確認一下,這里是不是已經增強了它的質量。處理之后,后面就是一個類似PGC的轉碼平臺。以上的討論是對于單個模塊的。如果我們把這一切串聯起來,就是從用戶上傳到用戶接收,當整個系統串聯起來的時候,這就是一個比較大的視頻質量評價范疇。因為對某一部分,我們有比較好的估計,那串聯起來的情況,就可能變得復雜很多了。

03 質量評價在業界的挑戰與機遇

在這里插入圖片描述

目前來說,視頻質量評價在業界經歷了十幾年的發展,但以我的了解,其實視頻質量評價在業界用的還不是特別多。原因也是很客觀的,有如下四點。第一是算力成本,因為視頻質量評價從技術上來說還是相對比較難的問題。比如會議場景,發送端經過騰訊會議后臺轉碼,然后分發到對面的接收端,我想衡量一下接收的視頻質量是否還好。在源端和接收端去做這件事是比較有挑戰性的,因為對于用戶來說,可能百分之五、百分之十的CPU消耗都是很可觀的、甚至是不能接受的一個指標。那么把計算放到轉碼服務器上進行相對來說會好一點,但是也有一定的問題,比如隱私問題,或者是如果算法過于復雜,后臺的壓力問題。第二,不同的業務場景具有不同的業務核心指標。如實時會議要求時延不能太高,不能兩個人說話的時候,一個人等了好幾秒對面才會聽到,然后才回復。第三,雖然視頻質量評估在學術界匯報的結果會比較高,但真正在業務場景下,各種各樣的 bad case都會出現,即如果把一個指標放在線上跑完后就會發現,剩下的工作量可能就是解決各種bad case了。

最后,綜合以上,作為領導或者負責人就會衡量一個問題,這么大的投入,對系統改變這么大,這到底能帶來多少收益?以上問題,導致了視頻質量評價在業界的應用不是很廣泛,雖然感興趣的人有很多。

在這里插入圖片描述

但是,對于一個視頻業務,不管是PGC還是UGC,競爭是比較激烈的。雖然在目前階段,視頻以內容為王,特別是優質內容,當解決了優質內容之后,你和競品的差異究竟在哪兒,就是你有什么殺手锏,可以讓你的視頻比競品更優秀,我們相信這個答案就是極致的用戶體驗。目前,UGC的視頻質量評價在業界的情況是,現有算法較難滿足業務需要,因為準確度是很有限的。而且大部分算法是對單個失真類型,而UGC視頻是串聯了多個失真視頻類型,這樣綜合下來,它的性能比較有限。另外,新的算法大都處于起步階段,特別是基于深度學習的算法。

04 基于深度學習的視頻質量評價算法設計

我們圍繞著UGC視頻質量評價,特別是無參考算法,也做了一定的探索。這一部分內容我今天先簡單介紹一下,然后在4月份的分享會給出更詳實的數據和更多細節。

在這里插入圖片描述

相對于全參考視頻質量算法,無參考視頻質量評價面臨著更多的問題。第一,無參考質量評價算法沒有一個原始的無損源做參考,不能從對比的角度來評價質量,而只能從失真視頻里提取有限的信息。另外,我們知道訓練一個深度神經網絡需要的數據量比較大,而目前的關于視頻質量的數據庫的量都比較小,訓練起來是比較有難度的,特別是多失真的場景。

目前在學術界有一些對應的策略,針對第一個無參考源可用的問題,有些學者會使用基于多任務的學習來融合額外信息。這里我會給出一些例子。而對于人工標注數據庫太小的問題,一個策略是使用與主觀分數無關的額外表征來幫助網絡訓練。

在這里插入圖片描述

對于第一項多任務學習策略來融合額外信息,我先簡單介紹一下兩個工作。上圖是一個很簡單的神經網絡,經過三層卷積層和兩層全連接層之后,得到一個分數輸出。同時也有另外一個輸出,它是在分數估計的基礎之上額外添加了一個信息,即估計失真類型。就是一方面估計失真類型,另一方面估計客觀分數。因為失真類型相對來說是比較容易獲得的。它的一個比較大的缺陷就是,標注的視頻必須要同時知道這兩個label,才能進行訓練。

在這里插入圖片描述

還有一個工作和上面的方法大致類似,就是在一個更復雜的網絡中,前面的系數是被共享的,后面有兩個subtask,一個task去估計失真類型,另外一個task去估計分數。相對于上面網絡的來說,失真類型的參數可以被共享,這一塊是否存在對于分數估計子任務來說是沒有影響的,即上面的網絡是下面的一部分。這樣就有一個好處,當一些視頻沒有分數標記的時候,我們可以對源視頻進行壓縮,只使用失真類型去預訓練這個網絡。當經過預訓練之后,在同時有兩種label的數據庫中,再去fine-tune。即先人工生成一些只包含失真類型去預訓練這個分支,再用同時包含兩種label的數據庫去做進一步的訓練。這是對上面策略的一個改進,即使用多任務策略來引入額外信息,以幫助網絡訓練。

在這里插入圖片描述

中間表征策略,是最近幾年的工作。對于一個失真圖像和參考圖像,它們沒有標注,就用一些性能比較好的全參考算法去算出偽標簽,再用偽標簽去訓練網絡。訓練階段應該對應于紅線,用得著這些偽標簽。在inference階段,直接從失真圖像拿出patch,經過下面的藍線給出估計,再把它們pull到一塊,得到分數估計。這就是利用偽標簽作為中間表征。

在這里插入圖片描述

還有一種中間表征策略就是用殘差圖像。殘差圖像就是原始圖像和失真圖像的一個差值,專業術語是residual。給我一個失真圖像,這個分支的學習對象是這個殘差圖像。如果有失真圖像所對應的參考圖像的話,做一個簡單的減法,就可以得到label,再用這個label去訓練這些網絡。這個算法,要提前定義一些失真感知閾值,一旦學到殘差幀之后,就把兩個值乘起來,做進一步的分數估計。

在這里插入圖片描述

我們最近也圍繞這個方向做了一些探索,我們的方法是融合了以上兩種策略。第一種策略是,也使用中間表征這個殘差幀來作為初步的學習對象。相對于上面的改進就是,我們失真感知閾值是經網絡學習得到的,如上圖有三個subtask。Subtask1學習一個粗略的殘差幀。Subtask2學習更精細的殘差幀。主任務會學習失真感知閾值。三個網絡訓練完后,就可以把失真感知閾值和殘差幀乘起來,做進一步的質量評估。關于這個算法,今天先簡單分享這些,我們在4月份會介紹更多內容。

05 ICME 2021質量評價競賽

最后,我想分享一個信息,ICME 2021舉辦了一個質量評價競賽。

在這里插入圖片描述

這個競賽的初衷是,結合目前學術界的研究熱點和業界痛點,以推動UGC視頻質量評價在學術界和業界的進展。為了這個目的,我們自己構建了一個大規模數據集,其中用于訓練的數據集是對外公開的,我們保留了一部分測試集。作為比賽的主辦方,我們在比賽結束之前會提供相對客觀、獨立的性能驗證結果,作為評測標準。它包含了兩個track,因為是UGC視頻。其中一個是MOS track,就是估計每一個視頻的絕對質量,這里包含用戶上傳的非完美的視頻,也包含對其做壓縮所得到的失真視頻。另一個是DMOS track,類似于傳統的PGC視頻,去估計源視頻經壓縮之后的質量變化。

在這里插入圖片描述

上圖給出了大會的網址,搜索icme challenge就可以搜索到。具體的競賽網址是由ugcvqa給出。下面是具體比賽的timeline。目前已經是3月,模型提交時間是4月底,大概還是一個月的時間。最后在5月底,我們會給出提交的模型在非公開的測試集上驗證的結果,大家可以將其作為某種參考。如果感興趣的話,歡迎參加,或者討論。

在這里插入圖片描述

最后是今天所用的一些參考文獻。

這是我今天所分享的內容,謝謝大家。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532523.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532523.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532523.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

關于二分法的邊界問題及兩種寫法

關于二分法的邊界問題及兩種寫法 二分查找法大家很熟悉了,對于一個有序序列,我們可以通過二分查找法在 O(logN)O(logN)O(logN) 的時間內找到想要的元素。但是,在代碼實現的過程中,如果沒有仔細理解清楚,二分法的邊界條…

LeetCode上的各種股票最大收益

LeetCode上的各種股票最大收益 對于力扣平臺上的股票類型的題目: 121 買賣股票的最佳時機 122 買賣股票的最佳時機 II 123 買賣股票的最佳時機 III 124 買賣股票的最佳時機 IV 309 最佳買賣股票時機含冷凍期 714 買賣股票的最佳時機含手續費 劍指 Offer 63. …

建設專業化運維服務團隊必要性

信息系統的生命周期涵蓋:設計、開發、測試、部署上線、運行維護。其中,運行維護階段是信息系統生命周期中的關鍵環節,其執行效果直接影響系統是否能達到預期的運行目標。為了實現這個目標,我們必須建立一個以業務服務為導向的專業…

docker初探

docker初探 本文旨在介紹 docker 基本的安裝、常用命令和常見概念的辨析,方便新手入門和筆者日后查閱,大部分內容整理自互聯網,原出處在文中注明。 文章目錄docker初探docker安裝(mac)版本、信息相關命令version/info…

ubuntu安裝zsh、oh-my-zsh及常用配置

ubuntu安裝zsh、oh-my-zsh及常用配置 目前,ubuntu默認的shell是bash,但還有一種shell,叫做zsh它比bash更加強大,功能也更加完善,zsh雖說功能強大,但是配置比較復雜導致流行度不是很高 但是好東西終究是好…

Segmentaion標簽的三種表示:poly、mask、rle

Segmentaion標簽的三種表示:poly、mask、rle 不同于圖像分類這樣比較簡單直接的計算機視覺任務,圖像分割任務(又分為語義分割、實例分割、全景分割)的標簽形式稍為復雜。在分割任務中,我們需要在像素級上表達的是一張…

tensorboard報錯:ValueError Duplicate plugins for name projector 問題的出現及解決過程

tensorboard報錯:ValueError: Duplicate plugins for name projector 問題的出現及解決過程 記錄如題問題的出現及解決過程。 報錯命令及信息 筆者在終端調用 tensorboard 時: tensorboard --logdirruns/ --bind_all報錯: raise ValueEr…

發布自己的Python包(Pypi)

發布自己的Python包(Pypi) 我們經常使用 Pypi 來安裝包,但是有時候我們也想要發布自己的 Pypi 包,有可能我們寫了一個特別牛的包,也有可能我們只是想使用自己常用的一些輪子,可能這是我們日常編碼中很常用的一些輪子,…

Ubuntu PPA 使用指南

Ubuntu PPA 使用指南 轉自:https://zhuanlan.zhihu.com/p/55250294 一篇涵蓋了在 Ubuntu 和其他 Linux 發行版中使用 PPA 的幾乎所有問題的深入的文章。 如果你一直在使用 Ubuntu 或基于 Ubuntu 的其他 Linux 發行版,例如 Linux Mint、Linux Lite、Zorin…

如何在 Linux 中快速地通過 HTTP 提供文件訪問服務

如何在 Linux 中快速地通過 HTTP 提供文件訪問服務 轉自:https://linux.cn/article-10205-1.html 如今,我有很多方法來通過 Web 瀏覽器為局域網中的其他系統提供單個文件或整個目錄的訪問。我在我的 Ubuntu 測試機上測試了這些方法,它們如下面…

Linux apt命令

Linux apt命令及其與apt-get的關系 轉自:https://blog.csdn.net/taotongning/article/details/82320472、https://www.runoob.com/linux/linux-comm-apt.html apt(Advanced Packaging Tool)是一個在 Debian 和 Ubuntu 中的 Shell 前端軟件包管…

楊宏宇:騰訊多模態內容理解技術及應用

楊宏宇:騰訊多模態內容理解技術及應用 分享嘉賓:楊宇鴻 騰訊 內容理解高級工程師 編輯整理:吳祺堯 出品平臺:DataFunTalk 導讀: 搜索內容的理解貫穿了整個搜索系統。我們需要從多個粒度理解搜索內容,包括語…

git登錄相關操作梳理

git登錄相關操作梳理 本文主要基于 Linux/Mac ,Windows下未經測試,不過估計差不多,在 git bash 內操作即可。 創建ssh key并關聯github等賬號 因為本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密傳輸的,GitHub需要識別是否是…

關于mmdetection上手的幾點說明

關于mmdetection上手的幾點說明 官方的文檔很有參考價值,并且也有中文版,應當是大家上手 mmdetection 的第一參考,本文是記錄一些筆者在小白階段上手 mmdetection 時的一些心得,這些東西沒有人提,可能是大佬們覺得這些…

docker gpu報錯Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]

Docker容器中使用Nvidia GPU報錯 docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]. 問題出現 我們知道,想要在 docker19 及之后的版本中使用 nvidia gpu 已經不需要單獨安裝 nvidia-docker 了,這…

CUDA環境詳解

CUDA環境詳解 本文主要介紹 CUDA 環境,這一堆東西網上有很多博客介紹過了,我再來一篇:),參考前輩們的文章,看能不能寫的更清楚一點。讀后仍有問題,歡迎留言交流。 CUDA APIs CUDA是由NVIDIA推出的通用并行計算架構&…

共享內存簡介及docker容器的shm設置與修改

共享內存簡介及docker容器的shm設置與修改 共享內存簡介 共享內存指 (shared memory)在多處理器的計算機系統中,可以被不同中央處理器(CPU)訪問的大容量內存。由于多個CPU需要快速訪問存儲器,這樣就要對存儲器進行緩存&#xff…

對Docker鏡像layer的理解

對Docker鏡像layer的理解 轉自:https://blog.csdn.net/u011069294/article/details/105583522 FROM python:3.6.1-alpine RUN pip install flask CMD [“python”,“app.py”] COPY app.py /app.py上面是一個Dockerfile的例子,每一行都會生成一個新的l…

ssh免密登錄配置方法及配置

ssh免密登錄配置方法及配置 直接上步驟,記我們本機為機器A,而機器B、機器C等是我們的服務器,我們要配置的是A到B、C等的 ssh 免密登錄。 1 在機器A上生成秘鑰對 ssh-keygen會得到輸出: Generating public/private rsa key pai…

機器學習系統:設計與實現 計算圖

機器學習系統:設計與實現 計算圖 轉自:https://openmlsys.github.io/chapter_computational_graph/index.html 在上一章節中,我們展示了用戶利用機器學習框架所編寫的程序。這些用戶程序包含了對于訓練數據,模型和訓練過程的定義。然而為了…