CVPR 2024 | Modular Blind Video Quality Assessment:模块化无参视频质量评估

无参视频质量评估 (Blind Video Quality Assessment,BVQA) 在评估和改善各种视频平台并服务用户的观看体验方面发挥着关键作用。当前基于深度学习的模型主要以下采样/局部块采样的形式分析视频内容,而忽视了实际空域分辨率和时域帧率对视频质量的影响,随着高分辨率和高帧率视频投稿逐渐普及,特别是跨分辨率/帧率视频转码档位画质评估场景中,这种影响变得更加不可忽视。在本文中,我们提出了一种模块化 BVQA 模型,以及一种训练该模型以提高其模块化性的方法。我们的模型包括基础质量预测模块、空域矫正模块和时域矫正模块,分别显式地响应视频质量的视觉内容和失真、空域分辨率和时域帧率变化情况。我们用提出的模块化BVQA模型在专业生成的内容和用户生成的内容视频数据库上进行了大量实验。实验表明,我们的质量模型实现了优于当前方法或相近的性能。此外,模块化的模型为分析现有视频质量数据库的空间和时间复杂性提供了机会。最后,我们的 BVQA 模型可以轻量高效地添加其他与质量相关的视频属性,例如动态范围和色域作为额外的矫正模块。

2df12e93513ecbcedb27c8556b72b7cb.png

背景

多年来,研究人员从心理物理学和感知研究中收集了大量证据,证明更高的空域分辨率和更高的帧速率对视频主观画质有积极的影响。具体而言,感知质量取决于视频内容,特别是空域和时域复杂性。针对这些主观发现,早期的知识驱动的BVQA模型直接将空域分辨率和帧速率参数作为压缩视频质量预测的输入的一部分。尽管这种方法非常简单,但这些视频属性参数与内容和失真无关,因此它们与感知的视频质量不太相关。

基于卷积神经网络(CNN)的数据驱动的 BVQA 方法面临的计算问题十分明显。它们几乎没有尝试评估全尺寸视频,主要原因是计算复杂度很高,尤其是在处理高分辨率和帧速率的视频时,面临的挑战更大。此外,由于视频质量数据集规模较小,许多基于 CNN 的 BVQA 方法依赖于对象识别任务的预训练模型,这些模型通常需要小且固定大小的输入。因此,视频需要在空域上调整大小,并在时域上进行二次采样。在空域中处理视频的传统方法如图1所示,在时域中处理视频的传统方法如图2所示。

1300e53debd82b57d3d3cc39ba981ba9.png

图 1. 在空域视图中处理视频的传统方法。(a) 代表来自 Waterloo IVC 4K 的具有相同内容但不同空域分辨率的两个视频。(b) 在不保持宽高比的情况下调整视频大小,与视频质量相关的局部纹理可能会受到影响。(c) 调整视频大小,同时保留纵横比并将其裁剪为固定大小,无论实际空域分辨率如何,都会产生几乎相同的输入。(d) 裁剪视频会缩小视野并导致不同空域分辨率的内容覆盖范围不同。

937eae85e36a5071f3caad6d2ab30bd4.png

图.2 来自 LIVE-YT-HFR 的两个视频序列,具有相同的内容,但是时域帧率不同。当根据帧速对帧进行二次采样时,生成的帧是相同的。此外,高达 120 fps 的极高帧速率对端到端 VQA 模型提出了重大挑战。

方法

为了可靠地评估具有丰富内容和失真多样性以及多种空域分辨率和帧速率的数字视频质量,我们提出了一种模块化 BVQA 模型。我们的模型由三个模块组成:基础质量预测模块、空域矫正模块和时域矫正模块,分别响应视频质量中的视觉内容和失真、空域分辨率和帧速率变化。基础质量预测模块将一组稀疏的空域下采样关键帧作为输入,并生成一个标量作为质量分数。空域矫正模块依靠浅层 CNN 来处理实际空域分辨率下关键帧的拉普拉斯金字塔,并计算缩放和移位参数来校正基础质量得分。类似地,时域矫正模块依靠轻量级 CNN 以实际帧速率处理以关键帧为中心的空域下采样视频块,并计算另一个缩放和移位参数以进行质量得分校正。为了增强模型的模块化,我们在训练期间引入了 dropout 策略。在每次迭代中,我们以预先指定的概率随机丢弃空域和/或时域整流器。这种训练策略鼓励基础质量预测模块作为 BVQA 模型独立运行,并且在配备矫正模块时会表现更好。

a8467753d128cb93cb0e82d4784ed166.png

图3. 所提出模型总体结构。基础质量预测模块采用一组稀疏的空域下采样关键帧作为输入,生成表示为 的基础质量值。空域矫正模块采用从实际空域分辨率的关键帧导出的拉普拉斯金字塔,计算缩放参数 和移位参数 来校正基础质量。时域校正模块利用以实际帧速率的关键帧为中心的视频块的特征来计算另一个缩放参数 和移位参数 以进行质量校正。空域和时域矫正模块可以使用模块化方法协同组合,其中利用尺度参数的几何平均值和移位参数的算术平均值。

实验结果

为了评估空域整流器的性能,我们采用了 BVI-SR和 Waterloo IVC 4K,重点研究不同空域分辨率对视频质量的影响。为了评估时域整流器的有效性,我们利用 BVI-HFR和 LIVE-YT-HFR,它们专门用于分析不同帧速率对视频质量的影响。这四个数据集都是PGC(Professionally-Generated Content,专业生成的内容)数据集。我们还使用八个 UGC (User-Generated Content,用户生成的内容)数据库进一步验证了我们提出的模型的普遍性。这些数据库包含各种内容类型、视觉扭曲、空域分辨率和时域帧率。表1 中提供了这些数据库的全面介绍。

b073e4024d93910aabf754eca5acef2a.png

PGC数据集结果

表2和表3展示了4个PGC数据集的结果。可以看出空域矫正模块和时域矫正模块可以分别有效地感知空域分辨率和时域帧率对视频质量带来的影响,并很好地对基础质量分数进行矫正。

e357dff2de6d52e46b225820fb4a2642.pngcb673d87efe55b41b021e3bb44f57258.png

UGC数据集结果

表4和表5展示了8个UGC数据集的结果。可以看出两个矫正模块的集成显着增强了八个 UGC 数据库的性能,与当前最优模型相比也展示了具有竞争力的结果。此外,包含这两个矫正模块可以实现有效的泛化,证明它们对提高预测视频质量有突出贡献。此外,我们的模型的模块化设计提供了对常见 UGC 数据库中主要失真类型的全面理解。

b6e8fdb721e00fde872858d1db4fc747.png 8603f5efd82c206a5206ddc39000d1dc.png

多媒体实验室简介

火山引擎多媒体实验室是字节跳动旗下的研究团队,致力于探索多媒体领域的前沿技术,参与国际标准化工作,其众多创新算法及软硬件解决方案已经广泛应用在抖音、西瓜视频等产品的多媒体业务,并向火山引擎的企业级客户提供技术服务。实验室成立以来,多篇论文入选国际顶会和旗舰期刊,并获得数项国际级技术赛事冠军、行业创新奖及最佳论文奖。

火山引擎是字节跳动旗下的云服务平台,将字节跳动快速发展过程中积累的增长方法、技术能力和工具开放给外部企业,提供云基础、视频与内容分发、大数据、人工智能、开发与运维等服务,帮助企业在数字化升级中实现持续增长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/270655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣--动态规划516.最长回文子序列

思路分析: 创建一个二维动态规划表dp,其中dp[i][j]表示在子串s[i...j]中的最长回文子序列的长度。初始化基本情况:对角线上的元素dp[i][i]都为1,因为单个字符本身就是长度为1的回文子序列。从字符串末尾向前遍历,填充…

实现qq音乐歌词滚动效果

闲来无事,听音乐的时候,突发奇想 实现该效果中,包含了根据声音高低生成音波的功能,有兴趣的直接下载代码即可 这是启动后的效果。

13 丢弃法dropout【李沐动手学深度学习v2笔记】

1. 丢弃法 在层之间加入随机噪音 加入噪音的一些规则 加入噪音后不要改变期望 使用丢弃法 推理中的丢弃法 总结 2. 代码实现 4.6. 暂退法(Dropouthttps://zh.d2l.ai/chapter_multilayer-perceptrons/dropout.html 2.1 Dropout import torch from torch import n…

视频压缩会影响画质吗?正确答案在这里!

在当今数字时代,我们生活在一个高清、甚至是4K视频的世界中。随之而来的是巨大的视频文件大小,这在存储、传输和分享方面都带来了一些挑战。为了解决这一问题,许多人转向视频压缩,以便更有效地管理和共享视频内容。 然而&#xf…

报表生成器FastReport .Net用户指南:表达式(下)

在上一篇文章《报表生成器FastReport .Net用户指南:表达式(上)》中,我们已经介绍了表达式中的表达式编辑器、引用报告对象、使用 .Net 函数、数据元素参考这四部分,接下来让我们继续介绍表达式中的:引用数据…

【word】引用文献如何标注右上角

一、在Word文档中引用文献并标注在右上角的具体步骤如下 1、将光标移动到需要添加文献标注的位置: 2、在文档上方的工具栏中选择“引用”选项: 3、点击“插入脚注”或“插入尾注”: ①如果选择的是脚注,则脚注区域会出现在本页的…

RabbitMQ使用SpringAMQP

简介 绝对的简单,绝对的易懂,方便初学者,更加利于理解和上手使用(代码可直接复制粘贴进行使用) 如有其它问题,大家可以留言或私聊。 主要为了给大家展示各个代码使用 如果需要更加完整的文档&#xff0…

Android使用Sensor.TYPE_STEP_COUNTER计步器传感器进行步数统计

1、首先,申请权限 必须声明 ACTIVITY_RECOGNITION 权限,以便您的应用在运行 Android 10 (API 级别 29) 或更高版本的设备上使用此传感器。 Manifest.xml也记得声明 if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) {Log.d(TAG, "[权限]&quo…

虚拟化之CPU

一 cpu 1 如何查看内核版本:uname -r 2 如何查看操作系统的发行版本:cat /etc/redhat-release 3 计算机系统子的系统 cpu处理器memory内存storage存储network 网络Display显示 4 进程模式 用户模式(user mode)主要处理I/O的模…

CTP-API开发系列之四:接口对接准备

CTP-API开发系列之四:接口对接准备 CTP-API开发系列之四:接口对接准备CTP-API文件清单CTP-API通用规则命名规则Spi与Api CTP-API通讯模式开发语言选择 CTP-API开发系列之四:接口对接准备 CTP-API文件清单 文件名说明ThostFtdcTraderApi.h交…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端:组件化微前端:iframe嵌入式微前端: 优点缺点 动态加载/懒加载微前端:微应用容器化方案: 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

kafka消费端消息去重方案

背景 我们在日常工作中,消费kafka消息是一个最常见的操作,不过由于kafka队列中经常包含重复的消息,并且消息量巨大,所以我们消费端总是需要先把消息进行去重后在消费,以减少消费端的压力,那么日常中我们一…

Android视角看鸿蒙第一课(工程目录)

Android视角看鸿蒙第一课(工程目录) 导读 鸿蒙马上就来了,这个工作很有可能落到Android开发的头上,既是机遇也是挑战,希望能跟上时代的浪潮,迫不得已开始学习鸿蒙开发,顺带分享记录下 我的学…

四、神经网络语言模型(NNLM)

神经网络(Neural Network,NN)主要由输入层、隐藏层、输出层构成,输入层的的节点数等于待处理数据中输入变量的个数(每一个变量代表了一个特征),输出层的节点数等于与每个输入变量关联的输出的数…

docker mysql主从复制

新建主服务器容器实例3301 mysql 主 3301 docker run -p 3301:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -v /home/mysql/mysql-files:/var/lib/…

微信小程序开发学习笔记《18》uni-app框架-网络请求与轮播图

微信小程序开发学习笔记《18》uni-app框架-网络请求 博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档 一、下载网络请求包 这个包是以前黑马程序员老师写的一个包,跟着课程学习&#x…

【仿真总结】基于matlab的传递函数计算与绘图

前言 在DC-DC电路控制算法中,PID控制是最常见且实用的,但实现前提有二,一是需要手算电路传递函数,二是需要将实际电路元件数值代入计算,第一步无法避免,但是在进行第二步时,存在大量基础、细致的…

Qt入门(一)Qt概述

Qt是什么? Qt是一个跨平台应用开发框架。 Qt既包括了一系列的Qt库,还包括诸多配套的开发工具如QtCreater,GUI Designer。Qt本身是由C开发的,但是也提供了其他编程语言的接口。 Qt的定位以及同类 学一种技术,最重要的是…

蓝桥杯-Set

目录 HashSet类常用方法 1 add(Object obj)方法 2 size() 方法 3 remove(Object obj)方法 4 contains()方法 5 clear() 方法 例题实战 set 一个不允许出现重复的元素,并且无序的集合,主要有HashSet实现类。 在判断重复元素的时候,Set集…

基于Python实现银行卡识别

在本文中将介绍如何使用Python和深度学习技术来实现银行卡识别功能。银行卡识别是一个在金融、安全等领域具有重要应用的问题,将使用深度学习模型来实现银行卡图像的识别和分类。 目录 引言数据集准备预处理和特征提取模型选择与训练模型评估与性能优化部署与应用 引…