视频质量的评价方法、装置、存储介质及计算机系统与流程

文档序号:32342029发布日期:2022-11-26 10:05阅读:67来源:国知局
视频质量的评价方法、装置、存储介质及计算机系统与流程

1.本公开总体上涉及人工智能技术领域,更具体地涉及一种视频质量的评价方法、装置、计算机程序产品、非暂时性计算机可读存储介质及计算机系统。


背景技术:

2.本部分旨在介绍本领域的一些方面,其可以与下面描述的和/或要求保护的本公开的各个方面相关。相信本部分有助于提供背景信息以便于更好地理解本公开的各个方面。因此,应该理解的是这些介绍应该从这个角度来理解,而不是作为对现有技术的承认。
3.随着流媒体技术、网络通信技术及用户移动设备的快速发展与迭代,以视频为媒介的内容成了普遍接受和喜欢的内容消费形式,视频业务也呈现爆发式增长趋势。用户对视频质量的单一追求(例如清晰流畅)逐渐变成多元化、高质量、快速响应的服务要求。一些视频网站的内容生态系统多以用户生成内容(user generated content,ugc)视频为主,但不同用户的视频拍摄能力、制作能力与设备能力有着较大的差距,在视频画质的呈现上也是波动较大。画面质量很差(如模糊)的视频会给观看者带来较低的用户体验质量(quality of experience,qoe),所以亟需对视频画质水平有一个可以客观量化的评价标准。


技术实现要素:

4.本公开的目的在于提供一种视频质量的评价方法、装置、计算机程序产品、非暂时性计算机可读存储介质及计算机系统,以有效地评估视频的质量。
5.根据本公开的第一方面,提供了一种视频质量的评价方法,包括:调整待评价视频的分辨率,得到多个输入视频;利用机器学习模型,分别生成所述输入视频的质量评价结果;以及基于多个所述质量评价结果,生成待评价视频的质量评价结果。
6.根据本公开的第二方面,提供了一种视频质量的评价装置,包括:调整模块,其配置为调整待评价视频的分辨率,得到多个输入视频;第一生成模块,其配置为利用机器学习模型,分别生成所述输入视频的质量评价结果;以及第二生成模块,其配置为基于多个所述质量评价结果,生成待评价视频的质量评价结果。
7.根据本公开的第三方面,提供了一种计算机程序产品,包括程序代码指令,当所述程序产品由计算机执行时,所述程序代码指令使所述计算机执行根据本公开的第一方面所述的方法。
8.根据本公开的第四方面,提供了一种存储有计算机指令的非暂时性计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据本公开的第一方面所述的方法。
9.根据本公开的第五方面,提供了一种计算机系统,包括:处理器,与所述处理器进行电子通信的存储器;以及指令,所述指令存储在所述存储器中并且可由所述处理器执行以使所述计算机系统执行根据本公开的第一方面所述的方法。
10.根据本公开提供的各个实施例,可以自动地、有效地评估视频的质量。
11.应当理解,本部分所描述的内容并不旨在标识所要求保护的发明内容的关键或必
要特征,也不旨在单独地用于确定所要求保护的发明内容的范围。
附图说明
12.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的该实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
13.图1示出了示例人工神经网络。
14.图2示出了用于学习视频片段的特征的示例神经网络架构。
15.图3a示出了示例3d卷积层。
16.图3b示出了示例混合2d和1d卷积块。
17.图4示出了根据本公开的视频qa模型的一个示例的架构图。
18.图5示出了可以应用由移动终端执行的方法的示例环境的框图。
19.图6示出了根据本公开实施例的由移动终端执行的方法的示例流程示意图。
20.图7示出了根据本公开实施例的由移动终端执行的方法的示例流程示意图。
21.图8示出了根据本公开的视频质量的评价方法的一个示例的流程示意图。
22.图9示出了根据本公开的视频质量的评价方法的另一个示例的流程示意图。
23.图10示出了根据本公开实施例的视频质量的评价装置的示例性框图。
24.图11示出了可以用来实施本公开的实施例的示例计算机系统的示意性框图。
25.具体实现方式
26.下文将参考附图更全面地描述本公开。然而,本公开可以以多种替代形式来体现,并且不应被解释为限于本文描述的实施例。因此,尽管本公开易于进行各种修改和替代形式,但是其具体实施例在附图中以示例的方式示出,并将在本文详细描述。然而,应当理解,这种方式并不旨在将本公开限制于所公开的特定形式,相反,本公开覆盖了落入由权利要求所限定的本公开的精神和范围内的所有修改方案、等同方案和替代方案。
27.应当理解,尽管本文可以用术语第一、第二等描述各种元素,但是这些元素不应该被这些术语所限制。这些术语仅用于区分一个元素和另一个元素。例如,第一元素可以被称为第二元素,并且类似地,第二元素可以被称为第一元素,而不脱离本公开的教导。
28.本文结合框图和/或流程图描述了一些示例,其中每个框表示包括用于实现指定逻辑功能的一个或多个可执行指令的电路元件、模分块或代码的部分。还应该注意的是,在其他实现方式中,框中所述的功能可以不按所述的顺序发生。例如,根据所涉及的功能,连续示出的两个框实际上可以实质上同时执行,或者这些框有时可以以相反的顺序执行。
29.本文提到的“根据...示例”或“在..示例中”意味着结合示例描述的特定特征、结构或特性可以被包括在本公开的至少一个实现方式中。本文中不同地方出现的短语“根据...示例”或“在...示例中”不一定都指同一示例,也不一定是与其他示例相互排斥的单独或替代示例。
30.神经网络是受大脑神经元结构及神经传到原理启发建立的数学计算模型,基于这类模型实现智能计算的方式称为脑启发计算。例如,神经网络包括多种形式的网络结构,例
如,反向传播(back propagation,bp)神经网络、卷积神经网络(cnn)、循环神经网络(rnn)、长短期记忆网络(lstm)等,例如,卷积神经网络还可以细分为全卷积网络、深度卷积网络、u型网络(u-net)等。
31.图1示出了示例人工神经网络(“ann”)100。在该实施例中,ann可以指包括一个或多个节点的计算模型。示例ann 100可以包括输入层110、隐藏层120、130、160和输出层150。ann 100的每一层可以包括一个或多个节点,例如节点105或节点115。在该实施例中,ann的每个节点可以连接到ann的另一个节点。作为示例而非限制,输入层110的每个节点可以连接到隐藏层120的一个或多个节点。在该实施例中,一个或多个节点可以是偏置节点(例如,与前一层中的任何节点不连接并且不接收来自前一层中的任何节点的输入的层中的节点)。在该实施例中,每层中的每个节点可以连接到前一层或后一层的一个或多个节点。尽管图1描绘了具有特定层数、特定节点数和节点间特定连接的特定ann,但是本公开也包括具有任何合适层数、任何合适节点数和节点间任何合适连接的任何合适ann。作为示例而非限制,尽管图1描绘了输入层110的每个节点和隐藏层120的每个节点之间的连接,但是输入层110的一个或多个节点可以不连接到隐藏层120的一个或多个节点。
32.在该实施例中,ann可以是前馈ann(例如,没有循环或回路的ann,其中节点之间的传播沿一个方向上流动,从输入层开始并前进到后续层)。作为示例而非限制,隐藏层120的每个节点的输入可以包括输入层110的一个或多个节点的输出。作为另一个示例而非限制,输出层150的每个节点的输入可以包括隐藏层160的一个或多个节点的输出。在该实施例中,ann可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在该实施例中,ann可以是深度残差网络。深度残差网络可以是包括被组织成残差块的隐藏层的前馈ann。第一残差块之后的每个残差块的输入可以是前一残差块的输出和前一残差块的输入的函数。作为示例而非限制,残差块n的输入可以是f(x)+x,其中f(x)可以是残差块n-1的输出,x可以是残差块n-1的输入。尽管本公开描述了特定的ann,但是本公开也包括任何合适的ann。
33.在该实施例中,激活函数可以对应于ann的每个节点。节点的激活函数可以定义节点对于给定的输入的输出。在该实施例中,对节点的输入可以包括输入集合。作为示例而非限制,激活函数可以是恒等函数、二值阶跃函数、逻辑函数或任何其他合适的函数。作为另一个示例而非限制,节点k的激活函数可以是sigmoid函数:
[0034][0035]
、双曲正切函数:
[0036][0037]
、rectifier激活函数:
[0038]fk
(sk)=max(0,sk)
[0039]
,或者任何其他合适的函数fk(sk),其中sk可以是节点k的有效输入。在该实施例中,对激活函数的输入可以进行加权。每个节点可以基于加权输入使用相应的激活函数来生成输出。在该实施例中,节点之间的每个连接可以与权重相关联。作为示例而非限制,节点105和节点115之间的连接125可以具有0.4的加权系数,即节点105的输出乘以0.4被用作节点115的输入。作为另一示例而非限制,节点k的输出yk可以是yk=fk(sk),其中fk可以是对
应于节点k的激活函数,sk=∑(w
jk
xj)可以是节点k的有效输入,xj可以是连接到节点k的节点j的输出,w
jk
可以是节点j和节点k之间的加权系数。尽管本公开描述了节点的特定输入和输出,但是本公开也包括节点的任何合适的输入和输出。此外,尽管本公开可以描述节点之间的特定连接和权重,但是本公开也包括节点之间的任何合适的连接和权重。
[0040]
在该实施例中,可以使用训练数据来训练ann。作为示例而非限制,训练数据可以包括对ann 100的输入和预期输出。作为另一个示例而非限制,训练数据可以包括向量,每个向量代表训练对象和针对每个训练对象的预期标签。在该实施例中,训练ann可以包括通过优化目标函数来修改与ann的节点之间的连接相关联的权重。作为示例而非限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降法)来反向传播代表每个向量之间的距离的平方和误差(例如,使用最小化平方和误差的损失函数)。在该实施例中,可以使用忽略(dropout)技术来训练ann。作为示例而非限制,在训练时可以暂时省略一个或多个节点(例如,不接收输入并且不生成输出)。对于每个训练对象,ann的一个或多个节点可能有被省略的概率。针对特定训练对象省略的节点可以不同于针对其他训练对象省略的节点(例如,可以在逐个对象的基础上暂时地省略节点)。尽管本公开描述了以特定方式训练ann,但是本公开也包括以任何合适的方式训练ann。
[0041]
视频在采集、压缩、传输和存储等过程中会发生各种各样的畸变,任何失真都可能导致视觉感知质量的下降。视频的质量失真通常使用(quality assessment,qa)算法来建模。目前基于机器学习的ugc视频qa算法主要存在以下两点不足:首先,大多采用特征工程来提取视频帧的质量感知特征,缺乏一种端到端学习(end-to-end learning)的方式来学习视频质量和视频帧原始像素之间的关系;其次,使用视频原始的分辨率或者调整后的固定分辨率来评价视频质量,没有考虑到视频多尺度的特性,难以有效评价不同分辨率的ugc视频的感知质量。所以亟需一种更加有效的视频qa模型,用于自动地评估ugc视频的感知质量,检测出质量差的ugc视频,从而提升用户qoe。
[0042]
图2示出了用于学习视频片段的特征的示例神经网络架构200。输入视频片段202可以包括特定分辨率的多个帧。神经网络架构200可用于对输入视频片段202做出预测。网络架构200是深度三维(3-dimensional,3d)卷积网络的一个示例。网络架构200可以包括多个层204-214。每个层可以接收至少一个输入,并且可以基于该输入生成至少一个输出。一个层的输出可以作为输入提供给后续层。网络架构200可以包括卷积层204-210、平均池化层212和全连接层214。每个卷积层204-210可以将一个或多个卷积核与一个或多个输入进行卷积,以生成一个或多个输出。
[0043]
每个卷积层可以执行一维(1-dimensional,1d)卷积、二维(2-dimensional,2d)卷积或三维卷积。一维卷积可以理解为卷积核在输入的一个维度上进行移动。2d卷积可以理解为卷积核在输入的两个维度上进行移动。3d卷积可以理解为卷积核在输入的三个维度上进行移动。
[0044]
网络架构200可以具有8
×
212
×
212的输入尺寸。举例来说,输入视频片段202可具有8帧,且每一帧的分辨率为212
×
212像素。因此,该示例视频片段的尺寸是8
×
212
×
212像素。在网络架构200中,卷积是3
×d×
d,其中d是卷积核的一个维度的元素数量。
[0045]
卷积层204可以接收视频片段202作为输入,并用卷积核对该输入进行卷积,以生成尺寸为8
×
56
×
56的输出。卷积层204将其输出提供给卷积层2061,该层是卷积层206中的
第一层。卷积层206包括卷积层2061、卷积层2062、卷积层2063和卷积层2064,其中每个卷积层可以使用个数为64的卷积核进行3
×3×
3卷积。在卷积过程中,网络架构200可以学习到卷积核的值。
[0046]
卷积层206的输出尺寸为8
×
56
×
56(已经将8
×
212
×
212的输入尺寸缩减)。卷积层2064将其输出提供给卷积层2081,该层是卷积层208中的第一层。卷积层208包括卷积层2081、卷积层2082、卷积层2083和卷积层2084,其中每个卷积层可以使用个数为128的卷积核进行3
×3×
3卷积,以生成尺寸为4
×
28
×
28的输出(已经将8
×
212
×
212的输入尺寸进一步缩减)。相对于之前的卷积层206,卷积层208中卷积核个数加倍,但其输出尺寸减半,使得组合后的尺寸在卷积层206和卷积层208之间基本不变。之后的卷积层(例如卷积层210)继续这种将输出尺寸减半并将卷积核个数加倍的模式。
[0047]
平均池化层212可以接收卷积层210的输出作为输入,并执行下采样或其他操作以减小输入尺寸。作为示例,平均池化层212可以执行全局平均池化。全连接层214可以接收平均池化层212的输出作为输入,并且基于对全连接层214的输入来生成视频片段202的最终预测。最终预测可以表示为大小为1
×1×
1的输出。
[0048]
图3a示出了示例3d卷积层302。图3b示出了示例混合2d和1d卷积块304,其与3d卷积层302具有相同的输入通道和输出通道。混合卷积块304在本文也被称为“(2+1)d”块。在一些示例中,可能不需要3d卷积,因为3d卷积可以由2d卷积和随后的1d卷积来近似,从而将空域和时域建模分解成单独的步骤。如图3a和3b所示,可以通过用“(2+1)d”块304替换具有n个输入通道和m个输出通道的t
×d×
d 3d卷积层302来构建“(2+1)d”神经网络架构。“(2+1)d”块304包括1
×d×
d 2d卷积层306和具有i个内部通道连接的t
×1×
1 1d卷积层308,t的值可以是2、3、4等。
[0049]
图4示出了根据本公开的视频qa模型400的一个示例的架构图。下面参考图4进行说明。
[0050]
视频qa模型400的输入为视频(例如ugc视频)。视频qa模型400可以对输入视频执行帧提取操作。作为示例而非限制,视频qa模型400可以将输入视频分为多个视频片段,每个视频片段抽取一帧以提取空域特征,并且采用每个视频片段的所有帧以提取时域特征。在图4中,输入视频被分成了视频片段1、视频片段2、

、视频片段n(共n个视频片段)。针对视频片段1、视频片段2、

、视频片段n,分别抽取一帧,即得到视频帧1、视频帧2、

、视频帧n。作为示例而非限制,可以通过随机的方式从视频片段中抽取一帧。作为另一示例而非限制,可以以特定模式从视频片段中抽取一帧,例如抽取视频片段的第一帧。作为示例而非限制,可以将输入视频的部分帧序列分成多个视频片段,例如将输入视频的前n帧分为视频片段1、视频片段2。
[0051]
视频qa模型400可以包括3d卷积神经网络。3d卷积神经网络可以用于分别提取视频片段1、视频片段2、

、视频片段n的时域特征。这里的3d卷积神经网络可以采用本文所描述的3d卷积神经网络架构或“(2+1)d”神经网络架构的至少一部分。视频qa模型400可以包括2d卷积神经网络。2d卷积神经网络可以用于分别提取视频帧1、视频帧2、

、视频帧n的空域特征。这里的2d卷积神经网络可以采用本文所描述的2d卷积神经网络架构的至少一部分。
[0052]
视频qa模型400可以包括回归模块。回归模块将空域特征和时域特征回归成视频
片段的质量评价结果。例如,回归模块可以将视频帧1的空域特征和视频片段1的时域特征回归成视频片段1的质量评价结果1,将视频帧2的空域特征和视频片段2的时域特征回归成视频片段2的质量评价结果2,以此类推。这里的回归模块可以采用本文所描述的ann(又称多层感知机(mlp,multilayer perceptron))架构的至少一部分。
[0053]
视频qa模型400可以包括池化模块。池化模块可以将多个视频片段的质量评价结果池化为整体质量评价结果。这里池化模块可以采用本文所描述的池化层的至少一部分。池化模块所采用的池化方法可以是平均池化,也可以是最大值池化,本公开对此不做限制。
[0054]
在创建完视频qa模型400的架构后,可以基于ugc视频的质量评价数据集(包括ugc视频以及ugc视频的标签)对模型进行训练。本文已经结合图1对模型的训练进行了说明,这里不再赘述。需要说明的是,这里对2d卷积神经网络和3d卷积神经网络采用的均为端到端学习的方式进行训练。
[0055]
作为示例而非限制,视频qa模型400中的3d卷积神经网络可以为采用已知的动作识别数据集预训练的三维卷积神经网络。例如,可以为预训练的r(2+1)d行为识别模型、x3d行为识别模型等。通过采用预训练的三维卷积神经网络可以提升数据处理速度,提高业务效率。
[0056]
作为示例而非限制,用于对视频qa模型400进行训练的质量评价数据集可以是通过本公开的由移动终端执行的方法收集来的数据集。
[0057]
下面对本公开的由移动终端执行的方法进行说明。
[0058]
图5示出了可以应用由移动终端执行的方法的示例环境的框图。示例环境500包括网络502,例如无线pan(wpan)(例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络或这些网络中的组合。网络502连接视频分发系统510和移动终端506。
[0059]
移动终端506是指通过无线网络技术接入互联网的终端设备,其能够通过网络502请求和/或接收资源(例如,视频)。示例移动终端506包括移动通信设备(例如,智能电话)、可穿戴设备、平板设备、智能电器等。移动终端506包括呈现可视化信息(例如,图像和/或视频)的显示器。
[0060]
移动终端506包括用户应用526,例如网络浏览器或原生(native)应用,以便于经由网络502发送和接收数据。用户应用526能够播放视频524并使用户与视频524进行交互。例如,用户应用526能够采集用户对视频524的评价数据(例如体验质量数据)。
[0061]
视频分发系统510负责视频分配、测试任务(下文即将详细描述)分发等。视频分发系统510可以选择要播放的视频内容并为该视频内容配置播放策略。视频分发系统510可以将选定的视频内容以及配置的播放策略提供给移动终端506以进行播放。移动终端506利用用户应用526可以将选定的视频内容以配置的播放策略进行播放。
[0062]
视频分发系统510可以在分布式计算系统(例如服务器集群)中实现,该分布式计算系统包括例如多个服务器或多个计算设备,这些服务器或计算设备互连以选择要播放的视频内容以及为视频内容配置播放策略。视频分发系统510也可以在集中式计算系统(例如单个服务器)中实现。
[0063]
数百万或更多的可用视频内容可以在数据库512中被索引。每个视频内容索引可以引用相应的视频内容和/或可以包括为相应视频内容的分发设置条件的分发参数(例如,
选择标准)。视频分发系统510可以在数据库512中选择要播放的视频内容。
[0064]
图6示出了根据本公开实施例的由移动终端执行的方法的示例流程示意图。图6的过程可以由图5的移动终端506来执行。
[0065]
在602处,接收服务端发送的视频以及为所述视频配置的播放策略。作为示例而非限制,服务端可以包括图5中的视频分发系统510。作为示例而非限制,播放策略可以是视频编解码策略。作为示例而非限制,视频编解码策略可以包括固定码率系数(constant rate factor,crf)。crf是一种码率控制模式,可以控制视频编码器的输出质量。crf值设置越低,输出视频的质量(码率)也就越高,反之亦同。作为示例而非限制,可以使用ffmpeg工具来设置crf。作为示例而非限制,视频编解码策略可以包括视频编码量化参数(quantization parameter,qp)。qp反映了图像空间细节压缩情况,qp值越小,量化越精细,图像质量越高,反之亦同。
[0066]
作为示例而非限制,播放策略可以包括卡顿、第一帧耗时、画面撕裂、画面延迟等。这里的卡顿可以包括卡顿的次数和/或卡顿的位置。卡顿是指视频播放过程中出现画面滞帧。这里的第一帧耗时是指在第一次点击视频播放后,用户肉眼看到画面之前所等待的时间。这里的画面撕裂可以包括画面撕裂的次数和/或画面撕裂的位置。画面撕裂是指显示器把两个或更多的帧显示在同一画面上。画面延迟是指显示器显示连续两帧之间的时间间隔,画面延迟与显示器的刷新率有关。显示器的刷新率越高,在一秒内屏幕上可以显示的帧数也越多,画面延迟也越低。
[0067]
作为示例而非限制,播放策略还可以包括视频分辨率。视频分辨率是指一个视频图像在单位尺寸包含的像素点数目,像素点越多就越清晰,反之则清晰度越低。作为示例而非限制,视频分辨率可以包括360p、720p、1080p、4k、hdr等。
[0068]
为了测试不同的视频播放策略对qoe的影响,可以在视频分发系统510中创建测试项目。示例性地,为了测试不同的视频分辨率对qoe的影响,可以分别创建以下三个测试项目:
[0069]
视频标题视频id视频分辨率#视频1452444254k超清#视频145244425720p高清#视频145244425360p流畅
[0070]
视频分发系统510可以向移动终端506下发三个视频,这三个视频所配置的视频分辨率分别为“4k超清”、“720p高清”、“360p流畅”。通过这种方式,可以完成不同的视频分辨率对qoe的影响的测试任务。
[0071]
在604处,基于所述播放策略播放所述视频。移动终端506可以根据配置的播放策略进行视频播放。
[0072]
在606处,接收用户对所述视频的评价结果。作为示例而非限制,评价结果可以是用户对视频质量或性能的主观评价。例如,评价结果可以为用户对视频清晰度的主观评价。再例如,评价结果可以为用户对视频画质的主观评价。通过收集用户的评价结果,可以采集到qoe数据以供机器学习模型训练使用。
[0073]
根据本公开实施例提供的由移动终端执行的方法,可以快速、准确地采集用户评价数据以供机器学习模型训练使用。
[0074]
作为示例而非限制,606处的评价结果可以为qoe打分数据。作为示例而非限制,打分数据的范围为0-5分且0.5分为一档。例如,0-2分对应的qoe为体验较差,2.5-3.5分对应的qoe为体验一般,4-5分对应的qoe为体验较好。
[0075]
图7示出了根据本公开实施例的由移动终端执行的方法的示例流程示意图。图7的过程可以由图5的移动终端506来执行。在702处,接收服务端发送的视频以及为所述视频配置的播放策略。702处与602处基本相同,这里不再赘述。在704处,基于所述播放策略播放所述视频。704处与604处基本相同,这里不再赘述。在706处,接收用户对所述视频的评价结果。706处与606处基本相同,这里不再赘述。
[0076]
在708处,向服务端发送所述视频的评价结果以使所述服务端执行:判断所述评价结果的有效性;以及根据所述视频的有效评价结果,确定所述视频的qoe标签。视频分发系统510可以为同一视频配置多个播放方案。例如,针对#视频1,在视频分发系统510上可以创建以下三个测试项目:
[0077]
视频标题视频id视频分辨率#视频1452444254k超清#视频145244425760p高清#视频145244425360p流畅
[0078]
因此针对同一视频,视频分发系统510可以回收多个评价结果。为了剔除无效的评价结果(例如不是基于用户真实的主观感受的qoe数据),可以检测视频的评价结果是否为异常值。作为示例而非限制,可以通过预定的概率分布模型检测出每个视频的异常评价结果和/或具有较多异常评价结果的用户。在得到每个视频的所有有效评价结果后,可以通过预设的算法确定视频的最终评价结果。作为示例而非限制,可以通过对每个视频的有效打分数据取平均,得到每个视频的平均qoe得分,作为该视频的标签以供机器学习模型训练使用。
[0079]
图8示出了根据本公开的视频质量的评价方法的一个示例的流程示意图。在802处,调整待评价视频的分辨率,得到多个输入视频。例如,可以将待评价视频分别调整大小至720p和540p,得到两个输入视频。在804处,利用机器学习模型,分别生成所述输入视频的质量评价结果。这里的机器学习模型可以是训练好的视频qa模型。例如,可以是训练好的视频qa模型400。由于存在多个输入视频,因此利用机器学习模型可以得到多个质量评价结果。作为示例而非限制,质量评价结果可以为质量分数。在806处,基于多个所述质量评价结果,生成待评价视频的质量评价结果。作为示例而非限制,可以通过预设算法将待评价视频的多个质量评价结果转换为待评价视频的最终质量评价结果。例如,在得到待评价视频在720p和540p两个尺度下的质量分数后,通过加权平均可以得到最终预测的质量分数:
[0080]
视频质量分数=w1
×
720p下的质量分数+w2
×
540p下的质量分数,其中w1、w2分别表示720p尺度和540p尺度对应的权重。
[0081]
图9示出了根据本公开的视频质量的评价方法的另一个示例的流程示意图。在902处,调整待评价视频的分辨率,得到多个输入视频。902处与802处基本相同,这里不再赘述。在904处,利用机器学习模型,分别生成所述输入视频的质量评价结果。904处与804处基本相同,这里不再赘述。在906处,基于多个所述质量评价结果,生成待评价视频的质量评价结果。906处与806处基本相同,这里不再赘述。在908处,响应于待评价视频的质量分数大于或
等于预设阈值,确定待评价视频满足预设标准。作为示例而非限制,预设标准可以为清晰。在该示例中,可以根据预测的视频质量分数以及设定的阈值,判断待评价视频为清晰或模糊。若预测的视频质量分数大于或等于预设阈值,待评价视频为清晰,否则待评价视频为模糊。
[0082]
图10示出了根据本公开实施例的视频质量的评价装置的示例性框图。如图10所示,该视频质量的评价装置1000可以包括:调整模块1001,其配置为调整待评价视频的分辨率,得到多个输入视频;第一生成模块1002,其配置为利用机器学习模型,分别生成所述输入视频的质量评价结果;以及第二生成模块1003,其配置为基于多个所述质量评价结果,生成待评价视频的质量评价结果。
[0083]
根据本公开实施例的视频质量的评价装置,可以自动地、有效地评估视频的质量。
[0084]
应当理解,图10中所示视频质量的评价装置1000的各个模块可以与参考图8描述的方法800中的各个步骤相对应。由此,上面针对方法800描述的操作、特征和优点同样适用于视频质量的评价装置1000及其所包括的模块。为了简洁起见,某些操作、特征和优点在此不再赘述。
[0085]
在一些实施例中,该视频质量的评价装置1000还包括:训练模块,其配置为基于视频以及所述视频的质量评价结果,训练所述机器学习模型。
[0086]
在一些实施例中,所述训练模块进一步配置为:访问用于所述机器学习模型的训练样本集中的训练样本,其中,所述用于所述机器学习模型的训练样本包括视频以及所述视频的目标质量评价结果;利用所述机器学习模型,生成所述视频的质量评价结果;以及基于所述目标质量评价结果和所述质量评价结果之间的比较,更新所述机器学习模型。
[0087]
在一些实施例中,所述机器学习模型包括视频帧提取模块,所述视频帧提取模块用于提取所述视频的片段以及提取所述视频的片段中的帧。
[0088]
在一些实施例中,所述机器学习模型包括特征提取模型,所述特征提取模型包括用于提取所述视频的片段中的帧的空域特征的第一卷积神经网络,所述特征提取模型包括用于提取所述视频的片段的时域特征的第二卷积神经网络,其中,所述第一卷积神经网络采用端到端的方式进行训练。
[0089]
在一些实施例中,所述机器学习模型包括回归模块,所述回归模块包括用于将所述视频帧提取模块提取的视频帧的特征回归成质量评价结果的人工神经网络。
[0090]
在一些实施例中,所述机器学习模型包括池化模块,所述池化模块包括用于将多个所述质量评价结果池化为待评价视频的质量评价结果的池化层。
[0091]
在一些实施例中,所述第一卷积神经网络为二维卷积神经网络,所述第二卷积神经网络为三维卷积神经网络。
[0092]
在一些实施例中,所述第二卷积神经网络为采用已知的动作识别数据集预训练的三维卷积神经网络。
[0093]
在一些实施例中,所述第二生成模块1003进一步配置为:对多个所述质量评价结果进行加权平均,得到待评价视频的质量评价结果。
[0094]
在一些实施例中,所述质量评价结果为质量分数。
[0095]
在一些实施例中,该视频质量的评价装置1000还包括:确定模块,其配置为响应于待评价视频的质量分数大于或等于预设阈值,确定待评价视频满足预设标准。
[0096]
图11示出了示例计算机系统1100。在特定实施例中,一个或多个计算机系统1100执行本文描述或示出的一个或多个方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1100提供本文描述或示出的功能。在特定实施例中,在一个或多个计算机系统1100上运行的软件执行本文描述或示出的一个或多个方法的一个或多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或多个计算机系统1100中的一个或多个部分。本文中在适当的情况下,“计算机系统”可以包括计算设备,反之亦然。此外,在适当的情况下,“计算机系统”可以包括一个或多个计算机系统。
[0097]
本公开包括任何合适数量的计算机系统1100。本公开包括采用任何合适的物理形式的计算机系统1100。作为示例而非限制,计算机系统1100可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(例如,计算机模块(computer-on-module,com)或系统模块(system-on-module,som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、主机、计算机系统网、移动电话、个人数字助理(pda)、服务器、平板计算机系统或这些中的组合。在适当的情况下,计算机系统1100可以包括一个或多个计算机系统1100;可以为集中式的或分布式的;可以横跨多个位置;可以横跨多台机器;可以横跨多个数据中心;或者可以驻留在云中,其可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统1100可以执行本文描述或示出的一个或多个方法的一个或多个步骤,而没有实质的空间或时间限制。作为示例而非限制,一个或多个计算机系统1100可以实时或以批处理模式执行本文描述或示出的一个或多个方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1100可以在不同的时间或不同的位置执行本文描述或示出的一个或多个方法的一个或多个步骤。
[0098]
在特定实施例中,计算机系统1100包括处理器1102、内存1104、硬盘1106、输入/输出(i/o)接口1108、通信接口1110和总线1112。尽管本公开描述并示出的特定计算机系统具有特定数量的特定组件,且这些组件以特定的方式布置,但是本公开也包括具有任何适当数量的任何适当组件的任何适当计算机系统,且这些组件可以以任何适当的方式布置。
[0099]
在特定实施例中,处理器1102包括用于执行指令(例如构成计算机程序的指令)的硬件。作为示例而非限制,为了执行指令,处理器1102可以从内部寄存器、内部缓存、内存1104或硬盘1106中检索(或获取)指令;解码并执行该指令;然后将一个或多个结果写入内部寄存器、内部缓存、内存1104或硬盘1106。在特定实施例中,处理器1102可以包括用于数据、指令或地址的一个或多个内部缓存。本公开包括处理器1102在适当的情况下包括任何适当数量的任何适当的内部缓存。作为示例而非限制,处理器1102可以包括一个或多个指令缓存以及一个或多个数据缓存。指令缓存中的指令可以是内存1104或硬盘1106中的指令的副本,并且指令缓存可以加速处理器1102对这些指令的检索。数据缓存中的数据可以是内存1104或硬盘1106中的数据的副本,用以由在处理器1102处执行的指令操作;可以是在处理器1102处执行的先前指令的结果,用以由在处理器1102处执行的后续指令访问或写入内存1104或硬盘1106;或可以是其他合适的数据。数据缓存可以加速处理器1102的读或写操作。在特定实施例中,处理器1102可以包括用于数据、指令或地址的一个或多个内部寄存器。本公开包括处理器1102在适当的情况下包括任何适当数量的任何适当的内部寄存器。在适当的情况下,处理器1102可以包括一个或多个算术逻辑单元(arithmetic logic unit,alu);是多核处理器;或者包括一个或多个处理器1102。尽管本公开描述并示出了特
定的处理器,但是本公开也包括任何合适的处理器。
[0100]
在特定实施例中,内存1104包括主内存,用于存储由处理器1102执行的指令或由处理器1102操作的数据。作为示例而非限制,计算机系统1100可以将指令从硬盘1106或另一个源(例如,另一个计算机系统1100)加载到内存1104。处理器1102然后可以将指令从内存1104加载到内部寄存器或内部缓存。为了执行指令,处理器1102可以从内部寄存器或内部缓存中检索指令并解码。在指令执行期间或之后,处理器1102可以将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部缓存。处理器1102然后可以将这些结果中的一个或多个写入内存1104。在特定实施例中,处理器1102仅执行一个或多个内部寄存器或内部缓存或内存1104(与硬盘1106或其他源相反)中的指令,并且仅对一个或多个内部寄存器或内部缓存或内存1104(与硬盘1106或其他源相反)中的数据进行操作。一个或多个内存总线(每个内存总线可以包括地址总线和数据总线)可以将处理器1102耦合到内存1104。如下所述,总线1112可以包括一个或多个内存总线。在特定实施例中,一个或多个内存管理单元(memory management unit,mmu)驻留在处理器1102和内存1104之间,并方便处理器1102所请求的对内存1104的访问。在特定实施例中,内存1104包括随机存取存储器(random access memory,ram)。在适当的情况下,该ram可以是易失性存储器。在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口或多端口ram。本公开包括任何合适的ram。在适当的情况下,内存1104可以包括一个或多个内存1104。尽管本公开描述并示出了特定的内存,但是本公开也包括任何合适的内存。
[0101]
在特定实施例中,硬盘1106包括用于数据或指令的大容量硬盘。作为示例而非限制,硬盘1106可以包括硬盘驱动器(hard disk drive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,usb)驱动器或这些中组合。在适当的情况下,硬盘1106可以包括可移动或不可移动(或固定)介质。在适当的情况下,硬盘1106可以在计算机系统1100的内部或外部。在特定实施例中,硬盘1106是非易失性固态存储器。在特定实施例中,硬盘1106包括只读存储器(read-only memory,rom)。在适当的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电改写rom(earom)、闪存或这些中的组合。本公开包括采用任何合适的物理形式的大容量硬盘1106。在适当的情况下,硬盘1106可以包括一个或多个硬盘控制单元,以便于处理器1102和硬盘1106之间的通信。在适当的情况下,硬盘1106可以包括一个或多个硬盘1106。尽管本公开描述并示出了特定的硬盘,但是本公开也包括任何合适的硬盘。
[0102]
在特定实施例中,i/o接口1108包括为计算机系统1100和一个或多个i/o设备之间的通信提供一个或多个接口的硬件、软件或两者。在适当的情况下,计算机系统1100可以包括一个或多个i/o设备。这些i/o设备中的一个或多个可以实现人和计算机系统1100之间的通信。作为示例而非限制,i/o设备可以包括键盘、键盘板、麦克风、监视器、鼠标、打印机、扫描器、扬声器、静态照相机、触笔、图形输入板、触摸屏、轨迹球、摄像机、其他合适的i/o设备或者这些设备中的组合。本公开包括任何合适的i/o设备和用于它们的任何合适的i/o接口1108。在适当的情况下,i/o接口1108可以包括一个或多个设备或软件驱动,使得处理器1102能够驱动这些i/o设备中的一个或多个。在适当的情况下,i/o接口1108可以包括一个或多个i/o接口1108。尽管本公开描述并示出了特定的i/o接口,但是本公开也包括任何合适的i/o接口。
[0103]
在特定实施例中,通信接口1110包括为计算机系统1100和一个或多个其他计算机系统1100或一个或多个网络之间的通信(例如,基于分组的通信)提供一个或多个接口的硬件、软件或两者。作为示例而非限制,通信接口1110可以包括用于与以太网或其他有线网络进行通信的网络接口控制器(network interface controller,nic)或网络适配器,或者用于与诸如wi-fi网络的无线网络进行通信的无线nic(wnic)或无线适配器。本公开包括任何合适的网络及其任何合适的通信接口1110。作为示例而非限制,计算机系统1100可以与自组织网络、个人区域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或者互联网的一个或多个部分或者这些中的组合进行通信。一个或多个这些网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1100可以与无线pan(wpan)(例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络或这些网络中的组合进行通信。在适当的情况下,计算机系统1100可以包括用于任何这些网络的任何合适的通信接口1110。在适当的情况下,通信接口1110可以包括一个或多个通信接口1110。尽管本公开描述并示出了特定的通信接口,但是本公开也包括任何合适的通信接口。
[0104]
在特定实施例中,总线1112包括将计算机系统1100的组件彼此耦合的硬件、软件或两者。作为示例而非限制,总线1112可以包括加速图形接口(accelerate graphical port,agp)或其他图形总线、扩展工业标准结构(extended industry standard architecture,eisa)总线、前端总线(front side bus,fsb)、超传输(ht)互连、工业标准体系结构(industry standard architecture,isa)总线、infiniband互连、低引脚数(low pin count,lpc)总线、内存总线、微通道体系结构(micro channel architecture,mca)总线、外围组件互连(peripheral component interconnect,pci)总线、pci-express(pcie)总线、串行高级技术附加装置(serial advanced technology attachment,sata)、视频电子标准协会局域(video electronics standards association local,vlb)总线或其他合适的总线或这些总线中的组合。在适当的情况下,总线1112可以包括一个或多个总线1112。尽管本公开描述并示出了特定的总线,但是本公开也包括任何合适的总线或互连。
[0105]
在本文中,一个或多个计算机可读非暂时性存储介质可以包括一个或多个基于半导体的或其他集成电路(ic)(例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、任何其他合适的计算机可读非暂时性存储介质。计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1