在实时互动场景中,视频画质是影响观众体验的关键指标,但如何实时评价视频的画质一直是个行业难题,需要将未知的视频画质用户主观体验变成可知。

未知的部分往往是最需要攻克的,声网也一直在持续探索符合实时互动领域的视频画质评价方法,经过声网视频算法专家的持续钻研,正式推出了业内首个可运行于移动设备端的视频画质主观体验 MOS 分评估模型。利用先进的深度学习算法,实现对实时互动场景中视频画质主观体验 MOS 分(平均主观意见分)的无参考评价,我们把这一评价体系叫做 声网 VQA (Video Quality Assessment)。

声网 VQA 是一套“评价主观视频质量体验”的客观指标,在声网 VQA 推出前对于视频质量的评估业界已经有两种方法。第一种是客观的视频质量评估,这种方法主要应用在流媒体播放的场景中,并根据原始参考视频提供信息的多少来进行质量评价。第二种是主观的视频质量评估,传统的方法主要依赖人工观看视频并打分,虽然能一定程度上直观反映观众对视频质量的感受,但这种仍存在耗时费力、成本较高、主观观感存在偏差等问题。

以上两种传统的视频质量评估方法都难以适用于实时互动的场景,为了解决以上问题,声网构建了大规模的视频画质主观评估数据库,并在此基础上训练了业内首个可直接在移动端运行的 VQA 模型,它利用深度学习算法实现对实时互动场景接收端视频画质主观体验 MOS 分的评估,解除了传统主观画质评估对人力评分的高度依赖,从而极大提高视频画质评估效率,使实时的视频质量评估成为可能。

简单来说,我们建立了一个视频画质主观评分的数据库,再通过深度学习算法建立了一个算法模型,并基于大量视频-MOS 分的信息进行训练,最终运用到实时互动的场景中,实现视频画质主观 MOS 分的精准模拟。但这其中的难点在于,1、如何收集数据集,即如何量化人对视频质量的主观评价;2、如何建立模型,使该模型能够运行在任何接收端,实时评估接收端画质。

收集专业、严谨、可靠的视频画质数据集

为了保证数据集的专业、严谨与可靠,声网首先在视频素材整理阶段,做到视频内容本身的来源丰富,避免评分员打分时的视觉疲劳,同时,在画质区间上尽量分布均衡,避免在有些画质区间的视频素材过多,有些画质区间的视频又过少,这样对后续打分的均值会有影响,下图为我们在某一期视频收集到的打分分布:

其次,为了更符合实时互动场景,声网数据集的设计非常严谨,覆盖了多样化的场景视频损伤失真类型,包括:暗光多噪点、运动模糊、花屏、块效应、运动模糊(摄像头抖动)、色调、饱和度、亮点和噪声等。打分指标也设置了 1-5 分,以 0.5 分为一个画质区间,每个区间确到 0.1,颗粒度更细并对应了详细的标准。

最后,在数据清洗阶段,我们依照 ITU 标准成立 ≥15 人的评分员组,先计算每个评分员和总体均值的相关性,剔除相关性较低的评分员后,再对剩余评分员的评价求均值,得出最后的视频主观体验 MOS 分。虽然不同的评分员对于“好”和“坏”的绝对区间定义,或者是对画质损伤的敏感程度都不尽相同,但是对“较好”和“较差”的判断还是趋同的。

建立基于移动端的视频画质主观体验 MOS 分评估模型

收集完数据,接下来需要基于数据库通过深度学习算法来建立视频主观体验 MOS 分评估模型,使该模型能够取代人工评分。由于在实时互动场景下,接收端无法获取无损的视频参考源,因此声网的方案是将客观 VQA 定义为接收端解码分辨率上的无参考评价工具,用深度学习的方法监控解码后的视频质量。

● 模型设计的学术严谨性:在训练深度学习模型的过程中,我们也参考了多篇学术级的的论文(见文末的论文参考文献),例如在非端到端的训练中会对原始视频提取部分特征,我们发现视频空间上的采样对性能的影响最大,而进行时域上的采样与原视频的 MOS 相关性最高(参考论文文献 1)。同时,影响画质体验的不光是空域的特征,时域上的失真也会有影响,其中有一个时域滞后效应(参考论文 2)。该效应对应着两个行为:一是视频画质下降时主观体验立即降低,二是视频画质提升时观看者体验的缓慢提升。对此,声网在建模时也考虑了这种现象。

● 移动端超小模型参数量减少 99.1%:考虑到当前很多实时互动场景应用在移动端,声网针对性的设计了移动端更易应用的超小模型,模型相对大模型参数量减少 99.1%,运算量减少 99.4% 。就算是低端手机接入后,也可以无压力的跑起来,进行端上视频画质的普查。同时,我们还实现了创新的深度学习模型压缩方法,在基于某个轻量化版本并且保持模型预测相关性情况下,进一步将模型参数量减少59%,运算量减少49.2%。可做为通用方法,推广应用到对其他深度学习任务的模型做简化,形成一个有效的通用简化办法。

模型性能优于学术界公开大模型:一方面,声网 VQA 小模型的预测结果相关性与学术界公开的大模型保持相当,甚至略优于一些大模型的结果,我们选取了声网 VQA 的模型与学术界公开的 IQA、BRISQUE、V-BLINDS 以及 VSFA 等四种视频画质评估算法模型在两个大规模的公开数据集 KoNViD-1k 、LIVE-VQC 上进行了实验,实验结果如下图:

另一方面,声网 VQA 的模型相比于学术界基于深度学习的大模型有着很大的运算优势,我们将声网 VQA 与 VSFA 进行了模型的参数量和运算量对比,结果声网 VQA 的参数量与运算量都远远低于 VSFA 模型。而这种性能上的优势赋予了声网 VQA 在端上直接评估视频通话服务体验的可能性,在提供一定准确率保障情况下,大大提升了运算资源的节省。

● VQA 模型具备较好的泛化能力,在深度学习算法中,泛化能力指的是算法对新鲜样本的适应能力,简单来讲就是通过深度学习方法训练出来的模型,对已知的数据训练集性能表现良好,对未知的数据测试集经过训练后也能给出合理的结果。在前期,声网 VQA 模型主要针对内部的视频会议工具以及教育场景数据为优先进行打磨,但在后续对娱乐场景测试结果相关性达到 84% 以上。良好的泛化能力将为未来基于声网 VQA 打造行业认可的视频质量评价标准建立很好的基础。

● 更适用于 RTE 实时互动场景:目前行业一些同类的 VQA 算法主要应用在非实时的流媒体播放场景,而且由于评估方法的局限性,最终的评测结果往往与用户真实的主观体验评分有一定差距,而声网的 VQA 算法模型可以适用实时互动的众多场景,并且最终评估的主观视频质量分和用户的真实感官体验吻合度高。同时,声网 VQA 模型的视频数据不需要上传到服务器,可直接在端上实时运行,不仅节省了资源,还有效为客户规避数据隐私问题。

从 XLA到 VQA 是 QoS 到 QoE 指标的进化

在实时互动中,QoS 服务质量主要反应了音视频技术服务的性能与质量,而 QoE 体验质量代表了用户对实时互动服务质量和性能的主观感受。声网此前推出了实时互动 XLA 体验质量标准,包含 5s 登录成功率、600ms 视频卡顿率、200ms 音频卡顿率、<400ms 网络延时这四项指标,每个指标的月度达标率均需超过 99.5%,XLA 的四项指标主要反应了实时音视频的服务质量(QoS)。声网 VQA 可以更直观的反应用户对视频画质的主观体验质量(QoE),也代表着实时互动质量评估指标将实现从 QoS到 QoE 的进化。

而对于企业客户与开发者而言,声网 VQA 也可以赋能多重价值:

1、企业选型避坑,很多企业与开发者在挑选实时音视频服务商时,会将几段音视频通话 Demo 的主观感受或者简单的接入测试作为选型标准,声网 VQA 的推出可以帮助企业在服务商选型时多了一种可量化的评价标准,更清晰地了解服务商的音视频质量在用户侧的主观体验评价。

2、帮助 ToB 企业为客户提供视频质量评估工具,对于提供企业级视频会议、协作、培训,以及各类行业级视频系统的企业可以通过声网 VQA 有效量化视频画质,帮助企业更直观、可量化地展现自身产品服务的画质质量。

3、助力产品体验优化 声网 VQA 将实时互动中原本未知的用户主观体验变成可知,无疑将帮助客户对产品端的体验评价、 故障检测带来很大的帮助,只有更全面的了解客观的服务质量指标与主观的用户体验质量,才能进一步优化产品体验,最终提升用户端的体验。

未来展望

接下来,声网 VQA 还有很长的路要走,例如用于模型训练的 VQA 数据集,多由时长为 4~10s 不等的视频片段组成,而实际通话中需考虑近因效应,仅通过对视频片段线性追踪、打点上报的方式,或许无法准确拟合用户整体的主观感受,下一步我们计划综合考虑清晰度、流畅度、互动延时、音画同步等,形成时变的体验评价方法。

同时,未来声网 VQA 也有望进行开源,我们希望与行业厂商、开发者一起推动 VQA 的持续演进,最终形成 RTE 行业认可的视频质量主观体验评价标准。

目前声网 VQA 已在内部系统迭代打磨中,后续将逐渐开放,并计划同步在 SDK 集成在线评估功能,并发布离线测评工具。如您想进一步了解或体验声网 VQA ,可点击下方的阅读原文留下您的信息,我们将与您做进一步的沟通。

附学术论文参考文献

[1] Z. Ying, M. Mandal, D. Ghadiyaram and A. Bovik, "Patch-VQ: ‘Patching Up’ the Video Quality Problem," 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), Nashville, TN, USA, 2021, pp. 14014-14024.

[2] K. Seshadrinathan and A. C. Bovik, "Temporal hysteresis model of time varying subjective video quality," 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Prague, Czech Republic, 2011, pp. 1153-1156.

声网 VQA:将实时互动中未知的视频画质用户主观体验变可知的更多相关文章

  1. 【征文活动】为自己发“声” —— 声网RTC征文大赛在园子里征稿

    2020年8月20日,声网Agora入驻园子的新楼盘--博客园品牌专区.9月,我们与声网Agora再度合作,「为自己发"声"- RTC 征文大赛」在园子里征稿. RTC(Real- ...

  2. Nload(CentOS网速的实时监控)

    Nload(CentOS网速的实时监控)的安装和安装过程中的问题 I. 安装 Download the latest rpmforge-release rpm from wget ftp://ftp. ...

  3. Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV

    Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV – lxw的大数据田地 http://lxw1234.com/archives/2015/09/516.htm Java使用极小 ...

  4. 嵌入式实时程序设计中C/C++代码的优化

    1 引言 计算机技术和信息技术的高速发展的今天,计算机和计算机技术大量应用在人们的日常生活中,嵌入式计算机也得到了广泛的应用.嵌入式计算机是指完成一种或多种特定功能的计算机系统,是软硬件的紧密结合体. ...

  5. 【原】实时渲染中常用的几种Rendering Path

    [原]实时渲染中常用的几种Rendering Path 本文转载请注明出处 —— polobymulberry-博客园 本文为我的图形学大作业的论文部分,介绍了一些Rendering Path,比较简 ...

  6. 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)

    本来是以做数据挖掘的目的进去哪网的.结构却成了系统开发... 只是还是比較认真的做了三个月.老师非常认同我的工作态度和成果... 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给 ...

  7. Camtasia中对录制视频进行编辑——交互性

    随着新媒体的广泛发展,视频处理的需要也逐渐变得越来越大,很多人都不知道市场上的哪款软件是比较符合大众需要的.有的软件功能写的天花乱坠,但是实际操作确很难.并不符合大众的简单需求. 今天我便给大家推荐一 ...

  8. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器功能简介---实时数据统计报表、视频文件上传、点播、分享、集成

    熟悉EasyDSS流媒体服务器的小伙伴应该都知道,EasyDSS通过将EasyRTMP推流的直播流进行直播转码.智能处理.视频分发,再通过 CDN 分发节点分发到终端播放 SDK为观众播放高清低延时的 ...

  9. 如何理解直播APP源码开发中的音视频同步

    视频 直播APP源码的视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉. 但是在实际应用中,并不是每一帧都是完整的画面,因为如果直 ...

  10. 如何在Camtasia中对录制视频添加注释

    今天我给大家带来的是一款专门录制屏幕动作的软件Camtasia,拥有了使我们的屏幕录像拥有全新的剪辑速度和更换颜色背景的特性.它不仅可以完成我们屏幕录像的心愿,还可以进行对录制的视频进行后期的编辑.这 ...

随机推荐

  1. Coursera Programming Languages, Part B 华盛顿大学 Homework 5

    这次 Week 2 的作业比较难,任务目标是使用 \(racket\) 给一个虚拟语言 \(MUPL\) (made-up programming language) 写一个解释器 所以单独开个贴来好 ...

  2. Linux 库的使用

    Linux 库的使用 -I头文件的路径-L动态库的路径   命名 使用 静态库 lib名字.a 静态库路径/lib名字.a 动态库 lib名字.so -L动态库路径 -l名字 编译 #静态编译 # g ...

  3. NX二次开发,对象上色

    #include <uf_defs.h> #include <uf_ui_types.h> #include <uf.h> #include <uf_ui.h ...

  4. 如何保证RabbitMQ的消息按照顺序执行???

    可以采用单线程的消费保证消息的顺序性.对消息进行编号,1,2,3,4--消费时按照编号的顺序去消费消息.这样就可以保证消息 按照一定顺序执行.

  5. 迭代器简易用法Iterator

    1 public static void main(String[] args) { 2 List<String> list = Arrays.asList("111" ...

  6. 五一训练包E-5

    题目链接:https://vjudge.net/contest/436484#problem/E 题目的大致意思就是给俩数,分别是小数组的大小N和数目K,给的数组是递增的,方便后续的判断,将大数组分成 ...

  7. Linux 三剑客常用命令

    shell三剑客===================================================grep===================================== ...

  8. docker-io安装报错

    一般修改两个文件即可 1.文件 :/etc/docker/daemon.json { "storage-driver": "devicemapper" } 2. ...

  9. 简易orm 主要是为了旧平台查询方便

    直接新建个文件即可 ExLogic.cs public class ExLogic { public static int Execute(string sqlCommand, string dbCo ...

  10. vue父子件,子件页面table数据列按条件显示不同的内容

    需求:在父件中点击按钮.子件弹框中,table列根据条件显示不同的数据 实现思路:点击按钮,执行不同的方法,方法中参数值不同,从而展示不同的columns. 父件按钮如下图: 父件中导入子件需要注意的 ...