微帧WZVQA:极致还原人眼感知,精准评估视频画质

随着移动互联网的不断发展以及智能手机的普及,短视频已逐步取代图片和文字,跻身主流媒体形式的前列。短视频平台的兴起,让数十亿用户可以制作,分享并接收彼此的信息,为人们开辟了一条全新的知识获取途径。然而,由于非专业拍摄设备的局限性以及视频码率波动所带来的视频主观质量不稳定等问题,开发一种能够针对短视频进行无参考质量评估 (VQA)的系统显得迫切重要。

无参考视频质量评价系统在视频的二次加工、转码、画质监控、用户体验以及内容分发等各方面都至关重要,它如同拥有“上帝视角”,能够实时监控整个视频处理链路,并为视频处理提供全面的指导和支持。

微帧无参考视频质量评价系统WZVQA融合了最前沿的图像处理技术,在评估多样化视频内容时,能够输出更加贴合大众视觉感知的高质量评价,显著提升评价结果的准确性。如下图,主观几乎很难立刻分辨两张图片的画质区别,而WZVQA给出的结论是左图质量优于右图,通过细节对比(如眉眼部分),右图确实存在轻微细节损失。这充分展现了WZVQA在捕捉细微画质差异方面的技术优势,其灵敏度超越了人类视觉的瞬时感知能力。

图片

下文将向大家分享微帧无参考视频质量评估模型WZVQA的设计过程:

视频数据处理

1)建立适配短视频自身特点的视频数据集

由于UGC短视频类公开数据集的匮乏,微帧构建了全场景覆盖的UGC短视频质量评估数据库,涵盖运动、秀场、美食、风景、监控、课件等几乎所有场景,每个场景下细分多个专业场景(如运动类含足球/篮球/跑步),通过聚焦不同领域用户关注的不同核心区域,最大限度减少非兴趣区域对评测结果的影响。

2)多种模拟流处理

对每个视频进行多种模拟流处理,包括增强、转码、美颜以及分辨率调整等,并独立对每个视频的特征进行了内容微调。

3)评测标准制定

形成综合的视频质量评价体系,包括一个总分(即视频整体质量)和十个子项分数(模糊度、块噪声、颗粒噪声、高曝光、低曝光、低对比度、美学影响、色彩丰富度、锐化程度、三明治视频检测)。鉴于每个人对子项特征的感知差异较大,微帧创新性地采用了概率表示法(而非绝对分数)反映指标出现可能性,并通过多专家评分、异常值剔除和均值计算确保评结果的客观性和准确性。

4)数据增强

由于视频质量评估耗时耗力,大规模评测执行起来尤为困难。为此微帧采用了多种数据增强策略:

    ①在模拟流处理环节,对不同的数据处理程度设定参数标记。完成视频质量与特征标注后,利用参数与标注分数进行曲线拟合,明确分数与参数的对应关系,进而实现通过直接调整参数来快速获取视频质量标注。

    ②通过自监督或无监督学习的方法,减少了对大规模数据标注的依赖,使模型能够从海量的未标注视频数据中自动学习视频特征。

    ③实施视频空间和时间数据增强。在训练阶段,通过不断改变视频的取帧逻辑,确保每次输入模型的视频帧序列具有差异性;同时,运用常规图片数据集增强手段,如裁剪、画面翻转等,进一步丰富数据多样性。

模型设计

通过分析最近几年开源模型在公开数据集上的表现,无论是早期的VSFA还是近期的SimpleVQA、FastVQA、RO-VQA等结构,大致可以将它们归类为“Backbone + Head”模式,在该模式中,Backbone部分负责提取视频特征,将视频帧的信息抽象为1xN维度的特征向量。而Head部分则作为特征回归模块,最终输出一个总分加十个子项的视频质量分数。

多种视频特征提取模型

微帧算法团队经过多次实验,采用不同的特征提取模型并对比其对应结果,发现不同模型对于各类子项属性的敏感性存在差异。此外通过实验也发现,当使用模型进行特征提取并进行拼接后,特征数量越多,准确度越高。然而,特征提取数量的增多也意味着整个网络计算量的增大,这就需要在模型性能与预测精度之间做出恰当的权衡。为此,微帧采纳了多种开源模型的特征提取模块,并根据它们各自的特性有选择地进行了网络结构的优化与简化。

在数据集的选取和使用方面,为了保证模型的鲁棒性,在训练过程中,采用了多个公开数据集以及自建数据集相结合的混合训练策略。具体来说:

    1)选用了基于Transformer结构的Swin-B模块作为模型的Backbone,以强化特征提取的能力。

    2)结合经过重新训练后的SlowFast网络,从而对视频画面内容的变化表现出更强的敏感性,提取到更为丰富的时域信息。

    3)引入了LIQE这一基于图片质量评价的开源项目,主要用于提取视频帧的空域信息,以进一步丰富模型的特征表示。

    4)经过调研FastVQA和FasterVQA模型的训练技巧后发现,根据其特有的数据前处理方式——即选取视频块后进行拼接,该网络对噪声相关的特征保持较好,且对块噪声、模糊度及颗粒噪声等子项具有较高的敏感性。因此在模型训练时也借鉴了块拼接的数据前处理方式。

ROI检测与三明治视频检测

为了缩小网络模型处理与人工主观评测观察时获取的视频主体区域信息的不一致性,微帧在特征提取网络的前端嵌入了一个精巧的场景检测子网络,该子网络能够辨识三明治类型的视频,并精准提取视频帧中的显著性区域内容,以作为“更关键的”视频信入特征提取网络。此举旨在更贴近实际情境下人眼的关注焦点,并且大幅削减视频冗余信息,减轻计算负担。

另一方面,针对多样化场景,微帧使用相同结构的模型训练了多个特定场景的特征提取器。这种方式使得在保持网络结构精简的同时,能够保证模型对不同场景的鲁棒性和泛化性。而且还可以根据具体场景需求,精心选择最合适的特征提取器进行应用。

多Head结构与动态池化回归

从短视频播放的经验来看,时长较长的短视频在不同分段场景下其视频质量存在一定波动性,其中,视频前段的内容质量对于观众是否继续观看起着决定性作用。此外,鉴于人眼视觉存在时间滞后效应,若简单地采用对每帧视频取平均值的策略,可能会对视频的整体VQA分数计算造成偏差。

针对这一问题,微帧采取了双管齐下的策略:一方面,在Head模块中整合了长短期记忆人工神经网络(LSTM),以更好地捕捉和记忆视频序列中的时序信息;另一方面,设计了多头部(Multi-Head)结构,并特别指定一个头部专门用于输出每帧的动态权重因子,用作最终输出分数的权重,保证计算结果更加准确,符合人工测评结果。同理,这一创新思路也被融入了模型的损失函数(loss)设计,通过对损失函数的不同子项赋予不同权重,经过多次迭代训练,达到最优的VQA计算结果。

子项与总分的约束

在数据标注过程中,微帧发现评测专家对总分打分较为一致,但对关键子项(如块噪声、模糊度等直接影响视频总分质量的子项)打分差异显著。这是因为子项评分需要重点观察其对应的视频特征,而总分则基于第一印象。特别是块噪声和模糊度,它们对视频清晰度无正面贡献,因此需减少子项中背离总分的异常打分结果。为此,在训练时,微帧构建了总分与子项相关性的损失函数,当子项与总分出现不合理的冲突时,以总分为准调整子项分数,确保评分的一致性和准确性。

单个子项对总分的影响

视频不同的子项属性在不同平台上观测,敏感性各异。例如,颗粒噪声与块噪声在移动平台因屏幕较小而不易察觉;相反,模糊度属性在大屏设备上更为显眼。为灵活调整子项与总分关系,适应各平台对特定子项的敏感性,微帧采用多Head结构,动态输出子项与总分关系的权重。此机制能灵活调整子项和总分的权重,以达到VQA输出分数适配不同观看平台的需求。

传统方法与cnn相结合

对于色彩丰富度、低曝光、高曝光和低对比度这几个子项的VQA计算,一些传统算法已相对成熟,例如以自适应直方图计算、主成分分析等技术原理为基础的评估方法。传统算法的稳定性和原理透明度,相比神经网络等黑盒技术是有优势的,针对这几个子项优化了传统算法,使得输出结果尽可能贴近标签数据,进而利用传统算法结果对cnn输出做了一定矫正与融合,最终输出一个准确而稳定的结果。

未来发展方向与面临的挑战

近年来,大模型技术经历了显著的演变过程。特别是过去两年,GPT系列模型的横空出世标志着自然语言处理领域的一次重大飞跃。与此同时,国内众多领军企业也纷纷投身于大模型的研发,推动了该技术的不断突破与创新。这些技术进展极大地拓宽了视觉技术在智能化应用场景中的想象空间,其中,GPT-4V、LLaVA等多模态大模型所展现出的图像理解力,更是令人叹为观止。

在此背景下,微帧算法团队深刻认识到,尽管我们的Transformer架构的特征提取模块已经采纳了大模型的设计理念,但在实际应用中,我们对大模型的利用仍然显得不够。为了充分挖掘大模型的潜力,微帧决定在未来更加深入地探索大模型的前沿技术,并进行全面的验证,更好地辅助甚至突破现有的VQA模型框架。具体来说,微帧希望利用大模型的强大能力,进一步提升VQA模型对视频信息的空间/时间感知能力以及对视频内容的理解能力。这将有助于我们更准确地理解和分析视频内容,从而为各种智能化应用提供更加精准和高效的解决方案。

综上所述,面对未来充满挑战与机遇的发展环境,微帧算法团队将坚定不移地推进大模型技术的深入研究与应用,为智能化技术的持续进步贡献一份力量。

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

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

相关文章

信创 CDC 实战|国产数据库的数据高速通道:OceanBase 实时入仓 StarRocks

国产数据库加速进入核心系统,传统同步工具却频频“掉链子”。本系列文章聚焦 OceanBase、GaussDB、TDSQL、达梦等主流信创数据库,逐一拆解其日志机制与同步难点,结合 TapData 的实践经验,系统讲解从 CDC 捕获到实时入仓&#xff0…

Unity 通过AVProMovieCapture插件实现摄像机录屏

1.AVProMovieCapture插件下载 没什么好说的,搞到安装包之后,直接往项目中拉就行。 2.操作面板配置 (1)在Hierarchy创建一个空物体,上面添加Capture From Camera和Camera Selector两个插件 (2&#xff09…

深度学习:PyTorch卷积神经网络分享(1)

本文目录: 一、CNN概述二、CNN日常应用三、CNN的卷积层(一 )基本介绍(二)卷积层计算1.对输入数据的要求2.卷积核核心参数3.计算过程4.特征图尺寸计算5.1、多通道卷积计算5.2、多卷积核计算6.PyTorch卷积层API 前言&…

Cesium添加3dtiles并平移到指定经纬度

访问tileset.json,查看root.transform,12,13,14分别代表模型参考原点的地心坐标Cartesian3(x,y,z) let tileset await Cesium.Cesium3DTileset.fromUrl()构造origin_cartesian3new Cesium.Cartesian3(x,y,z) 设置待平移到的位置经纬高为longitude,latitude,height,例如(116,…

STM32G070x 单片机项目代码解析:基于 HAL 库的嵌入式系统开发

项目总体架构 该项目采用标准的 STM32 工程结构,主要包含以下几个部分: 头文件包含:系统头文件和用户自定义头文件外设句柄定义:SPI、TIM、UART 等外设的句柄声明用户自定义变量:LED 控制、按键状态等标志位初始化函数…

winform mvvm

if (!mvvmContext1.IsDesignMode) InitializeBindings(); 这段代码的意思是:如果当前应用程序不是处于设计模式(即程序正在运行),就调用InitializeBindings方法来初始化视图与视图模型之间的绑定。 void Initiali…

防火墙快速管理软件,66K超小巧

软件介绍 今天为大家推荐一款轻量级的Windows防火墙管理工具,这款工具能帮助用户快速开启或关闭系统防火墙功能,操作比系统原生设置更加便捷高效。 软件优势 相比通过系统设置层层点击的操作方式,这款仅66KB大小的微型工具只需单击按钮…

python中的高级变量III

python中的高级变量III 删除列表元素(list)扩展知识点 name_list ["Mike","John","Alice"] del name_list[1] # 通过del name_list[1]删除“John” print(name_list) # 输出 [Mike, Alice]注意:del …

深入理解Redis

深入理解Redis:高性能内存数据库的核心原理与应用实践 1. 引言 在现代互联网应用中,高性能、低延迟的数据访问是至关重要的。传统的关系型数据库(如MySQL)虽然功能强大,但在高并发场景下往往成为性能瓶颈。Redis&…

界面控件DevExpress Blazor中文教程:AI聊天 - 如何实现函数调用?

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 现代AI驱动的应用程序需要与外部系…

github 上的php项目

github 上的php项目 项目的网址 (Loong1996/LikeGirlSite: 情侣网站、情侣网页、恋爱记录网站) # 修改 # admin/Config_DB.php//localhost 为数据库地址 一般使用默认的即可 或(127.0.0.1) $db_address "mysql_php";/…

区间求最值问题高效解决方法

对于区间求最值场景,如果区间不定长度的,可以使用稀疏表进行求解,如果区间是固定长度的,则可以使用分块的思想(与稀疏表原理类似),都是通过压缩状态个数, 1 关于稀疏表的原理详见&a…

Linux程序设计:什么时候选择开发内核模块?

最近看一个CPU使用率高的问题,从perf里看,是下面的一个占用的比较多是下面一个 Overhead Source:Line Symbol Shared Object - 8.48% [vdso][1129] 0x1129 B [.] 0x0000000000001129

OpenCV CUDA模块设备层-----欧几里得距离函数hypot()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 该函数用于计算两个无符号字符向量(uchar1)的欧几里得距离(即直角三角形的斜边长度),…

惠普HP LaserJet Pro P1106 打印机信息

基本信息 产品类型:黑白激光打印机。上市时间:2011 年。最大打印幅面:A4。网络打印:不支持网络打印。双面打印:手动双面打印。 性能参数 打印速度:黑白打印速度(ISO,A4)正…

通义灵码智能体模式在企业级开发中的应用:以云效DevOps自动化流程为例

一、智能体模式的核心能力 通义灵码的智能体模式区别于传统代码补全工具,具备: 语义级理解:解析业务需求、代码上下文及错误日志。自主任务闭环:从问题诊断→ 代码生成→ 测试覆盖→ 文档生成全流程自动化。环境感知&#xff1a…

SQL学习笔记2

DDL、DML、DQL、DCL基础语法 1、DDL 查询 查询所有数据库:show databases; show databases; 查询当前数据库:select database(); select database(); 数据库创建 创建数据库:create database [if not exist(若存在重名数据库,则不创建…

VScode常用快捷键【个人总结】

注:快捷键以 Windows/Linux 为主,Mac 用户将 Ctrl 替换为 Cmd,Alt 替换为 Option。 1. 编辑相关 快速复制与剪切 Alt Shift ↓:复制当前行到下方Alt Shift ↑:复制当前行到上方Ctrl X:剪切整行&…

数据结构与算法:线性表-顺序表(顺序存储)

一、线性表的定义(逻辑结构) 线性表是由 n (n > 0) 个相同数据类型的数据元素组成的有限序列,其中 n 为线性表的表长,当 n 0 时,线性表为空表。如果用 L 命名线性表,那么一般表示为:L (a1…

从源码到实践:Java集合框架面试核心知识点全解析

在Java开发中,集合框架(Java Collections Framework)是最基础也最常用的工具集。无论是处理业务逻辑时的数据暂存,还是高性能场景下的算法优化,集合的使用都贯穿始终。因此,Java集合相关的面试题几乎是所有…