一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用机器学习基于预测的视觉质量为视频播放器的最优格式选择的制作方法

2022-08-31 03:26:32 来源:中国专利 TAG:


1.本公开的各方面和实施方式涉及视频处理,并且更具体地,涉及基于预测的视觉质量为视频播放器的最优格式选择。


背景技术:

2.内容共享平台使用户能够上传、消费、搜索、批准(“喜欢”)、不喜欢和/或评论诸如视频、图像、音频剪辑、新闻故事等的内容。在内容共享平台中,用户可以上传内容(例如,视频、图像、音频剪辑等)以包括在平台中,从而使其他用户能够消费(例如,查看等)该内容。大多数内容共享平台将原始源视频从其原始编码格式转码为通用格式。转码包括:使用原始格式的编解码器将源视频从原始格式解码为未编码的表示;并且然后使用通用格式的编解码器对未编码的表示进行编码。转码能够被用于降低存储需求,并且也能够被用于降低用于向客户端提供视频的带宽需求。


技术实现要素:

3.以下呈现本公开的各个方面的简化总结,以便提供对这些方面的基本理解。该总结不是对所有预期方面的广泛概述,并且既不旨在标识重要或关键要素,也不旨在叙述这些方面的范围。其目的是以简化形式呈现本公开的一些概念作为稍后呈现的更详细描述的前序。
4.在本公开的一个方面,公开了一种系统和多种方法,其用于训练机器学习模型(例如,神经网络、卷积神经网络(cnn)、支持向量机[svm]等)并使用训练后的模型处理视频。在一种实施方式中,一种方法包括:为机器学习模型生成训练数据,该机器学习模型要被训练用于标识在显示分辨率集的新视频的转码版本集的质量分数。生成训练数据可以包括:生成参考视频的多个参考转码版本;获得参考视频的多个参考转码版本的帧的质量分数;生成包括参考视频的帧的颜色属性、空间属性和时间属性集的第一训练输入;以及,为第一训练输入生成第一目标输出,其中,该第一目标输出包括参考视频的多个参考转码版本的帧的质量分数。该方法进一步包括:提供训练数据以在(i)包括第一训练输入的训练输入集和(ii)包括第一目标输出的目标输出集上训练机器学习模型。
[0005]
在一种实施方式中,质量分数包括帧的峰值信噪比(psnr)。在一些实施方式中,质量分数包括帧的视频多方法评估融合(vmaf)。此外,颜色属性可以包括帧的rgb或y值中的至少一个。空间属性可以包括gabor特征滤波器组。时间属性可以包括光流。
[0006]
在一些实施方式中,机器学习模型被配置为处理新视频并生成一个或多个输出,该一个或多个输出指示在显示分辨率集的新视频的转码版本集的质量分数。此外,参考视频的多个转码版本可以包括在多个不同视频分辨率、转码配置和不同显示分辨率的每一个的参考视频的转码。
[0007]
此外,公开了用于执行上述方法的操作和本文中描述的各种实施方式的计算设
备。还公开了存储用于执行与上述方法和本文中描述的各种实施方式相关联的操作的指令的计算机可读介质。
附图说明
[0008]
将从下面给出的详细描述以及从本公开的各个方面和实施方式的附图更充分地理解本公开的各方面和实施方式,然而,这不应被视为将本公开限制于特定方面或实施方式,而是仅用于解释和理解。
[0009]
图1描绘了根据本公开的一个或多个方面的说明性计算机系统架构。
[0010]
图2是根据本公开的一个或多个方面的用于使用历史视频数据集为机器学习模型创建数据集的示例训练集生成器的框图。
[0011]
图3是图示根据本公开的一个或多个方面的用于确定视频分类的系统的框图。
[0012]
图4描绘了根据本公开的一个或多个方面的用于训练机器学习模型的方法的一个示例的流程图。
[0013]
图5描绘了根据本公开的一个或多个方面的用于使用训练后的机器学习模型来处理视频的方法的一个示例的流程图。
[0014]
图6描绘了根据本公开的一个或多个方面的用于使用训练后的机器学习模型处理视频,并且在服务器设备处使用训练后的机器学习模型的输出来最优化格式选择的方法的一个示例的流程图。
[0015]
图7描绘了根据本公开的一个或多个方面的用于在客户端设备处使用训练后的机器学习模型的输出来最优化格式选择的方法的一个示例的流程图。
[0016]
图8a和8b提供了根据本公开的实施方式的用于最优化格式选择的训练后的机器学习模型的输出的示例图形表示。
[0017]
图9描绘了根据本公开的一个或多个方面操作的说明性计算机系统的框图。
具体实施方式
[0018]
在内容共享平台中,用户可以上传内容(例如,视频、图像、音频剪辑等)以包括在平台中,从而使其他用户能够消费(例如,查看等)该内容。由于观看设备和网络带宽的限制,上传到内容共享平台的视频在提供给观看者之前被转码(解压缩和重新压缩),以便增强观看体验。上传的视频可能具有以各种显示分辨率播放的多个转码变体。分辨率(输入、转码和显示)能够大致分组为规范的行业标准分辨率,诸如360p、480p、720p、1080p和2160p(4k)等。
[0019]
典型的转码流水线能够生成多个转码版本(也称为视频格式)。在播放视频时,媒体查看器能够自适应地选择那些视频格式中的一个来服务。假设用户有足够的带宽,传统的服务策略是切换到视频的更高分辨率版本,直到达到最高可用分辨率。这也被称为自适应比特率(abr)策略。这种abr策略的假设是更高分辨率的版本提供更好的视觉质量。然而,在一些情况下,较高分辨率版本的视觉质量能够非常接近较低分辨率版本的视觉质量(例如,当480p版本的视频与在具有480p显示分辨率的客户端设备上播放时的720p版本的视频具有相似的感知质量的时候)。在这种情况下,提供更高分辨率版本的视频浪费用户的带宽,而不在感知质量方面为用户提供明显的好处。
[0020]
避免由于次最优格式选择而导致的这种低效率的一种手段是将客观质量分数列表附加到每个转码版本,并隐含地假设每个客观质量分数反映在特定显示分辨率播放特定格式时的感知质量。计算特定视频格式的单个质量分数需要解码两个视频流(即,重新缩放的转码版本和原始版本),并且提取每帧特征以便计算整体质量分数。如果假设有“n_format(n_格式)”个有效的转码视频格式、“n_transconfig(n_转码配置)”个用于将输入视频转码为某种视频格式的候选转码配置以及“n_display(n_显示)”个可能的显示分辨率,那么要计算的可能的质量分数总数将是:'n_format'x'n_transconfig'x'n_display'分数。跨各种分辨率计算所有可能的质量分数使用大量的计算资源。此外,在大型系统(例如每天有数百万新上传内容的内容共享平台)上执行如此大规模的计算可能是不可行的。
[0021]
本文中公开了用于基于深度学习有效预测视频的所有可能视频质量分数的系统和方法的方面和实施方式。更具体地,实施方式涉及训练和使用有效的机器学习模型来预测以任意压缩设置压缩并在任意显示分辨率播放的视频的客观质量分数。
[0022]
根据一种实施方式,历史视频集被访问并被用于训练机器学习模型。特别地,历史视频中的每一个都被用于生成输入特征来训练机器学习模型。输入特征包括相应历史视频的帧的属性集。属性集能够包括相应历史视频的(一个或多个)帧的颜色属性(例如,yuv格式的红/绿/蓝(rgb)强度值或y强度值)、空间属性(例如,gabor滤波器)和时间属性(例如,光流)。另外,历史视频中的每一个被转码为多个不同的分辨率格式和转码配置,以生成多个转码版本的视频。然后将多个转码版本重新缩放到客户端设备的多个不同的潜在显示分辨率(在本文中称为重新缩放的转码版本)。为重新缩放的转码版本中的每一个获得质量分数(例如,峰值信噪比(psnr)测量或视频多方法评估融合(vmaf测量))。
[0023]
这些质量分数然后可以被用作训练输出(例如,基本事实标签),其被映射到上面讨论的训练输入特征并被用于训练机器学习模型。通过这种方式,机器学习模型被训练为在视频分辨率格式、转码配置和显示分辨率的每个可能元组生成视频的预测质量分数。如本文中所使用的,术语“视频分辨率格式”和“视频格式”可以指重新缩放之前的视频的分辨率。术语“显示分辨率”可以指在重新缩放之后(例如,由客户端设备上的媒体查看器)实际显示视频的分辨率。
[0024]
在已经训练机器学习模型之后,可以标识新视频以供训练后的机器学习模型处理。在这种情况下,在各种视频分辨率的组成视频(例如,提供给客户端设备以用于播放的视频)的感知质量和在各种显示分辨率的转码配置是未知的,因为新视频以其整体被提供给机器学习模型,而不知道视频在特定客户端设备上的感知质量如何。
[0025]
在一种实施方式中,确定新视频的属性集(例如,颜色、空间、时间)。新视频的属性集作为输入被呈现给训练后的机器学习模型,该模型根据输入生成一个或多个输出。在一种实施方式中,输出是预测的质量分数,其提供在视频分辨率、转码配置和显示分辨率的每个可能元组的视频的预测感知质量测量。在一些实施方式中,预测的质量分数可以被用于最优化在客户端设备处的格式选择。下面更详细地描述有关机器学习模型的训练和使用的特定方面。
[0026]
本公开的方面因此提供一种机制,通过该机制能够标识在视频分辨率、转码配置和显示分辨率的所有可能组合的视频的预测质量分数。该机制允许进行自动和最优化的格式选择以用于在具有特定显示分辨率的客户端设备处的视频播放。本公开的实施方式的一
个优点是训练后的机器学习模型能够一次返回输入视频的所有(video_format(视频_格式)、transcoding_config(转码_配置)、display_resolution(显示_分辨率))元组的多个客观视频质量分数(例如,psnr和vmaf值)。实施方式避免了对输入视频的每个可能的转码版本进行耗时的转码或质量度量计算的过程。训练后的机器学习模型的输出能够被用于最优化格式选择,以最大化视频质量的用户体验。最优化格式选择还可以具有降低带宽需求的优势,而不显著地降低由用户感知的视频质量。
[0027]
图1图示了根据本公开的一种实施方式的说明性系统架构100。系统架构100包括一个或多个服务器机器120至150、内容储存库110和连接到网络104的客户端机器102a-102n。网络104可以是公共网络(例如,互联网)、专用网络(例如,局域网(lan)或广域网(wan))或它们的组合。
[0028]
客户端机器102a-102n可以是个人计算机(pc)、膝上型计算机、移动电话、平板计算机、机顶盒、电视机、视频游戏控制台、数字助理或任何其他计算设备。客户端机器102a-102n可以运行管理客户端机器102a-102n的硬件和软件的操作系统(os)。在一种实施方式中,客户端机器102a-102n可以将视频上传到web服务器(例如,上传服务器125)以用于存储和/或处理。
[0029]
服务器机器120至150可以是机架式服务器、路由器计算机、个人计算机、便携式数字助理、移动电话、膝上型计算机、平板计算机、照相机、摄像机、上网本、台式计算机、媒体中心或以上的任意组合。服务器机器120包括能够接收由客户端机器102a-102n(例如,通过网页、通过应用等)上传的内容(例如,视频、音频剪辑、图像等)的上传服务器125。
[0030]
内容储存库110是能够存储内容项目以及用于标记、组织和索引媒体项目的数据结构的持久存储器。内容储存库110可以由一个或多个存储设备托管,诸如主存储器、基于磁或光存储的盘、磁带或硬盘驱动器、nas和san等。在一些实施方式中,内容储存库110可以是网络附接的文件服务器,而在其他实施例中,内容储存库110可以是一些其他类型的持久存储器,例如面向对象的数据库和关系数据库等,其可以由服务器机器120或经由网络104耦合到服务器机器120的一个或多个不同机器托管。
[0031]
存储在内容储存库110中的内容项目可以包括由客户端机器上传的用户生成的媒体项目,以及来自诸如新闻机构、出版商和图书馆等的服务提供商的媒体项目。在一些实施方式中,内容储存库110可以由第三方服务提供,而在一些其他实施方式中,内容储存库110可以由维护服务器机器120的同一实体维护。在一些示例中,内容储存库110和服务器机器120-150可以是允许用户上传、消费、搜索、批准(“喜欢”)、不喜欢和/或评论媒体项目的内容共享平台的一部分。
[0032]
内容共享平台可以包括多个频道。频道能够是可从公共源获得的数据内容或具有公共话题、主题或主旨的数据内容。数据内容能够是由用户选择的数字内容、由用户可获得的数字内容、由用户上传的数字内容、由内容提供商选择的数字内容、由广播公司选择的数字内容等。频道能够与所有者相关联,所有者是能够对频道执行活动的用户。不同的活动能够基于所有者的活动与频道相关联,诸如所有者在频道上提供数字内容、所有者选择(例如,喜欢)与另一个频道相关联的数字内容、所有者评论与另一个频道相关联的数字内容等。与频道相关联的活动能够被收集到频道的活动馈送中。频道所有者以外的用户能够订阅他们感兴趣的一个或多个频道。“订阅”的概念也可以称为“喜欢”、“关注”和“加好友”等。
[0033]
每个频道可以包括一个或多个媒体项目。媒体项目的示例能够包括但不限于数字视频、数字电影、数字照片、数字音乐、网站内容、社交媒体更新、电子书(ebook)、电子杂志、数字报纸、数字有声读物、电子期刊、网络博客、真正的简单聚合(rss)馈送、电子漫画书、软件应用等。在一些实施方式中,媒体项目也被称为视频内容项目。
[0034]
可以经由在客户端机器102a-102n上执行的媒体查看器105来消费媒体项目。在一种实施方式中,媒体查看器105可以是允许用户查看诸如图像、视频(例如,视频内容项)、网页、文档等内容的应用。例如,媒体查看器105可以是网络浏览器,其能够访问、检索、呈现和/或导航由网络服务器提供的内容(例如,诸如超文本标记语言(html)页面、数字媒体项目或内容项目等的网页)。媒体查看器105可以向用户呈现、显示和/或提供内容(例如,网页、媒体查看器)。媒体查看器105还可以显示被嵌入网页(例如,可以提供关于由在线商家销售的产品的信息的网页)中的嵌入式媒体播放器(例如,播放器或html5播放器)。在另一示例中,媒体查看器105可以是允许用户查看数字媒体内容项目(例如,数字视频、数字图像、电子书等)的独立应用(例如,移动应用)。
[0035]
媒体查看器105可以由服务器120和/或内容共享平台提供给客户端设备102a至102n。例如,媒体查看器105可以是被嵌入在由内容共享平台提供的网页中的嵌入式媒体播放器。在另一示例中,媒体查看器可以是与服务器120和/或内容共享平台通信的应用。
[0036]
本公开的实施方式提供训练和使用有效的机器学习模型来预测以任意压缩设置压缩并在任意显示分辨率播放的视频的客观质量。服务器机器130包括能够生成训练数据(例如,训练输入和目标输出集)以训练这种机器学习模型的训练集生成器131。下面参考图2详细地描述训练集生成器131的一些操作。
[0037]
服务器机器140包括能够训练机器学习模型160的训练引擎141。机器学习模型160可以指代由训练引擎141使用包括训练输入和对应的目标输出(相应训练输入的正确答案)的训练数据创建的模型工件。训练引擎141可以在训练数据中找到将训练输入映射到目标输出(要预测的答案)的模式,并提供捕捉这些模式的机器学习模型160。机器学习模型可以由,例如,单级线性或非线性操作(例如,支持向量机[svm])组成,或者可以是深度网络,即,由多级非线性操作组成的机器学习模型)。深度网络的示例是具有一个或多个隐藏层的神经网络,并且可以通过例如根据反向传播学习算法等调整神经网络的权重来训练这种机器学习模型。为方便起见,本公开的其余部分将实施方式称为神经网络,尽管一些实施方式可能采用svm或其他类型的学习机来代替或补充神经网络。在一种实施方式中,卷积神经网络(cnn),诸如resnet或efficientnet,被用作机器学习模型的主要训练模型。在本公开的实施方式中可以考虑其他机器学习模型。在一方面,训练集从服务器机器130获得。
[0038]
服务器机器150包括质量分数引擎151和格式分析引擎152。质量分数引擎151能够将视频帧的属性数据作为输入提供到训练后的机器学习模型160并在输入上运行训练后的机器学习模型160以获得一个或多个输出。如以下关于图4详细描述的,在一种实施方式中,格式分析引擎152还能够从训练后的机器学习模型160的输出中提取质量分数数据,并使用质量分数数据来执行视频的最优格式选择。在一些实施方式中,可以由在客户端设备102a-102n处的媒体查看器105基于由质量分数引擎151获得的质量分数数据来提供格式分析引擎152。
[0039]
应当注意,在一些其他实施方式中,可以由更少的机器提供服务器机器120、130、
140和150的功能。例如,在一些实施方式中,服务器机器130和140可以被集成到单个机器中,而在其他实施方式中,服务器机器130、140和150可以被集成到单个机器中。另外,在一些实施方式中,服务器机器120、130、140和150中的一个或多个可以被集成到内容共享平台中。
[0040]
通常,如果合适的话,在一种实施方式中描述为由内容项目共享平台、服务器机器120、服务器机器130、服务器机器140和/或服务器机器150执行的功能也能够在其他实施方式中在客户端设备102a至102n上被执行。另外,能够由一起操作的不同或多个组件执行归属于特定组件的功能。内容共享平台、服务器机器120、服务器机器130、服务器机器140和/或服务器机器150也能够作为通过适当的应用编程接口提供给其他系统或设备的服务被访问,并且因此不限于在网站使用。
[0041]
图2是根据某些实施例的使用历史视频数据集240为机器学习模型(例如图1的模型160)创建数据集的示例训练集生成器231(例如,图1的训练集生成器131)。图2的系统200示出了训练集生成器231、训练输入特征210和目标输出标签220。
[0042]
在一些实施例中,训练集生成器231生成数据集(例如,训练集、验证集、测试集),其包括一个或多个训练输入特征210(例如,训练输入、验证输入、测试输入)和一个或多个对应于训练输入特征210的目标输出标签220。数据集还可以包括将训练输入特征210映射到目标输出标签220的映射数据。训练输入特征210也可以称为“数据输入”、“特征”、“属性”或“信息”。在一些实施例中,训练集生成器131可以将数据集提供给图1的训练引擎141,其中,数据集被用于训练、验证或测试机器学习模型160。可以关于图4进一步描述生成训练集的一些实施例。
[0043]
在一些实施例中,训练输入特征210可以包括历史视频颜色属性242、历史视频空间属性244、历史视频时间属性246等中的一个或多个。目标输出标签220可以包括视频分类248。视频分类248可以包括视频质量分数测量算法或与视频质量分数测量算法相关联。
[0044]
在一些实施例中,训练集生成器231可以生成与特征集(例如,一个或多个历史视频颜色属性242、历史视频空间属性244、历史视频时间属性246)相对应的数据输入以训练、验证、或测试针对视频的可能的输入分辨率集的每个输入分辨率的机器学习模型。因此,视频的每个典型分辨率(例如360p、480p、720p、1080p等)都可以有其自己的模型,并且任何非标准的任意输入分辨率(例如1922x1084)都能够被重新缩放到最接近的具有相同的纵横比的标准分辨率,其中任何缺失的部分用0填充。例如,可以针对具有360p分辨率的输入视频训练、验证和测试第一机器学习模型。可以针对具有480p分辨率的输入视频训练、验证和测试第二机器学习模型。可以针对具有720p分辨率的输入视频训练、验证和测试第三机器学习模型,等等。
[0045]
训练集生成器231可以利用历史视频240集来训练、验证和测试(一个或多个)机器学习模型。在一些实施方式中,内容共享平台的现有数据集可以被策划和用作历史视频数据集240,具体出于训练、验证和测试机器学习模型的目的。在一种实施方式中,历史视频数据集240可以包括具有各种输入分辨率(例如,360p、480p、720p、1080p和2160p(4k)等)的短持续时间(例如,20秒等)的多个(例如,以千计的数量级)视频。在一些实施方式中,历史视频数据集240中的数据(例如,视频)可以被分为训练数据和测试数据。例如,历史视频数据集240的视频可以被随机地分成80%和20%,以分别用于训练和测试。
[0046]
为了生成训练输入特征210和训练输出标签220集,训练集生成器231可以对历史视频数据集240中的每个视频迭代以下过程。为了便于参考,关于历史视频数据集240的第一参考视频描述该过程。应该理解,训练集生成器231可以对历史视频数据集240中的所有视频执行类似的过程。
[0047]
对于第一参考视频,训练集生成器231获得第一参考视频的训练输入特征210。在一个实施方式中,针对第一参考视频的每个帧,为第一参考视频的每个帧提取视频颜色属性242、视频空间属性244和视频时间属性246集。视频颜色属性242可以指帧的像素的rgb强度值或y强度值(y'uv模型的)中的至少一个。
[0048]
视频空间属性244可以指gabor滤波器特征组。gabor滤波器是用于纹理分析的线性滤波器,它分析在分析点或分析区域周围的局部区域中在特定方向上的帧中是否存在任何特定频率内容。在空间域中,2d gabor滤波器是由正弦平面波调制的高斯核函数。本公开的实施方式还可以利用帧的其他空间特征,诸如基于块的特征(例如,ssm、vms等)。
[0049]
视频时间属性246可以指光流。光流是指由观察者和场景之间的相对运动引起的视觉场景中物体、表面和边缘的表观运动的模式。光流可以被定义为图像中亮度图案的表观运动速度的分布。本公开的实施方式还可以利用帧的其他时间特征,诸如计算相邻帧的像素之间的差异。
[0050]
第一参考视频中的每个帧的提取的历史视频颜色属性242、历史视频空间属性244和历史视频时间属性246集然后被组合为第一参考视频的第一训练输入特征集。在本公开的实施方式中也可以考虑来自输入视频的帧的其他特征集。
[0051]
为了获得第一参考视频的目标输出标签220,训练集生成器231可以将第一参考视频转码到多个有效视频格式(例如,360p、480p、720p、1080p和2160p(4k)等等),其具有多种转码配置(例如,利用h.264编码器将恒定速率因子(crf)从0扫描到51)。其他编解码器和编码器可以被用在本公开的其他实施方式中,诸如vp9编解码器。训练集生成器231然后将所有转码版本重新缩放为多个显示分辨率(例如,360p、480p、720p、1080p和2160p(4k)等),以及重新缩放输入的原始版本。每个重新缩放的转码版本和原始版本被提供给质量分析器作为源和参考,以获得第一参考视频的每个重新缩放的转码版本和原始版本的每个帧的质量分数。
[0052]
在一种实施方式中,质量分数可以是第一参考视频的每个重新缩放的转码版本和原始版本的每个帧的psnr测量。psnr是指信号的最大可能功率与影响其表示的保真度的破坏噪声功率之间的比率。psnr可以按照对数分贝标度表达。在一种实施方式中,质量分数可以是第一参考视频的每个重新缩放的转码版本和原始版本的每个帧的vmaf测量。vmaf指的是一种全参考视频质量度量,它基于参考和失真的视频序列预测主题视频质量。
[0053]
计算的质量分数被用作第一参考视频的每个可能的视频格式、转码配置和显示分辨率的目标输出标签220的视频分类(例如,输入基本事实标签)248。
[0054]
图3是图示根据某些实施例的用于确定视频分类346的系统300的框图。在框310,系统300执行历史视频342(例如,图2的历史视频数据集240)的数据划分(例如,经由图1的服务器机器130的训练集生成器131和/或图2的训练集生成器231)以生成训练集302、验证集304和测试集306。例如,训练集可以是历史视频342的60%,验证集可以是历史视频342的20%,并且验证集可以是历史视频342的20%。如以上参考图2所述,系统300可以为训练集、
验证集和测试集中的每一个生成多个特征集(例如,颜色属性、空间属性、时间属性)。
[0055]
在框312,系统300使用训练集302执行模型训练(例如,通过图1的训练引擎141)。系统300可以使用训练集302的多个特征集(例如,训练集302的第一特征集、训练集302的第二特征集等)来训练多个模型。例如,系统300可以使用训练集中的第一特征集(例如,对于第一输入分辨率,诸如360p)训练机器学习模型以生成第一训练后的机器学习模型,并使用训练集中的第二特征集(例如,对于第二输入分辨率,诸如480p)生成第二训练后的机器学习模型。在一些实施例中,可以生成许多模型,包括具有各种特征排列的模型和模型的组合。
[0056]
在一些实施方式中,利用卷积神经网络(cnn)训练模型来执行模型训练。cnn训练模型的一些示例包括resnet和efficientnet。在一些实施方式中,也可以使用其他训练模型。
[0057]
在框314,系统300使用验证集304执行模型验证。系统300可以使用验证集304的对应特征集来验证训练后的模型中的每一个。例如,系统300可以使用验证集中的第一特征集(例如,对于360p输入分辨率)验证第一训练后的机器学习模型,并且使用验证集中的第二特征集(例如,对于480p输入分辨率)训练第二训练后的机器学习模型。在一些实施例中,系统300可以验证在框312生成的许多模型(例如,具有各种特征的排列的模型、模型的组合等)。
[0058]
在框314,系统300可以确定一个或多个训练后的模型中的每一个的精度(例如,经由模型验证),并且可以确定一个或多个训练后的模型是否具有满足阈值精度的精度。例如,可以利用基于预测质量和基本事实之间的绝对差异定义的损失函数。也可以在其他实施方式中考虑高阶||l||差异规范。响应于确定没有一个训练后的模型具有满足阈值精度的精度,流程返回到框312,其中,系统300使用训练集的不同特征集执行模型训练。响应于确定一个或多个训练后的模型具有满足阈值精度的精度,流程继续到框316。系统300可以(例如,基于验证集)丢弃具有低于阈值精度的精度的训练后的机器学习模型。
[0059]
在框316,系统300执行模型选择以确定满足阈值精度的一个或多个训练后的模型中的哪一个具有最高精度(例如,基于框314的验证,所选择的模型308)。响应于确定满足阈值精度的两个或更多训练后的模型具有相同的精度,流程可以返回到框312,其中,系统300使用与进一步细化的特征集相对应的进一步细化的训练集来执行模型训练,以用于确定具有最高精度的训练后的模型。
[0060]
在框318,系统300使用测试集306执行模型测试以测试所选择的模型308。系统300可以使用测试集中的第一特征集测试第一训练后的机器学习模型以确定第一训练后的机器学习模型满足阈值精度(例如,基于测试集306的第一特征集)。响应于所选择的模型308的精度不满足阈值精度(例如,所选择的模型308过度拟合训练集302和/或验证集304并且不适用于其他数据集,诸如测试集306),流程继续到框312,其中,系统300使用对应于不同特征集的不同训练集执行模型训练(例如,再训练)。响应于基于测试集306确定所选择的模型308具有满足阈值精度的精度,流程继续到框320。至少在框312中,模型可以学习历史图像342中的模式以进行预测,并且在框318中,系统300可以将模型应用于剩余数据(例如,测试集306)以测试预测。
[0061]
在框320,系统300使用训练后的模型(例如,所选择的模型308)来接收输入视频
348和对应的视频属性344,并且从训练后的模型的输出中提取对应的视频分类346,其代表在视频格式、转码配置和显示分辨率元组的每个可能组合输入视频的预测的质量分数。对于单个输入视频,训练后的模型可以被用于预测每个采样帧的每帧质量分数,然后可以聚合这些帧分数以得到在特定视频格式、转码配置和显示分辨率元组的输入视频的总体分数。在其他形式中,聚合方法也可以变化,即,平均到加权平均等。
[0062]
最终输出是所有可能的索引元组(video_format_index(视频_格式_索引)、transcoding_config_index(转码_配置_索引)、display_resolution_index(显示_分辨率_索引))的3d质量矩阵。在图8a和8b示出本公开的实施方式的训练后的模型的输出的一个示例图形表示。下面进一步讨论的图8a和8b示出了转码到360p、480p和720p版本并以480p和720p显示的视频的预测vmaf分数,其中,训练后的模型预测的各种分数非常接近对应的基本事实分数。
[0063]
在一些实施例中,在生成数据集并使用该数据集训练、验证或测试机器学习模型160之后,机器学习模型160可以被进一步训练、验证、测试(例如,使用手动确定的图像分类等)或调整(例如,调整与机器学习模型160的输入数据相关联的权重,诸如神经网络中的连接权重)。
[0064]
在一些实施例中,动作310-320中的一个或多个可以以各种顺序和/或与本文中未呈现和描述的其他动作一起发生。在一些实施例中,可以不执行动作310-320中的一个或多个。例如,在一些实施例中,可以不执行框310的数据划分、框314的模型验证、框316的模型选择或框318的模型测试中的一个或多个。
[0065]
为了在本公开的实施方式期间的性能和延迟改进,训练后的模型可以与输入视频的时间采样组合。例如,系统可以利用输入视频的几个采样帧(而不是所有帧)作为训练后的模型的输入来预测整体质量。使用输入视频的这种时间采样,可以实现显著的速度改进,而精度几乎没有损失。能够获得这些速度增益而没有模型的任何重新训练。
[0066]
在本公开的实施方式中,从使用训练后的模型320获得的视频分类346可以被用于最优化在客户端侧上(例如,在诸如图1的媒体查看器105的媒体查看器处)的格式选择。对于图8a中所示的示例,当显示分辨率为480p,并且当前播放版本为360p时,假设对于所有转码版本而言带宽足够。根据预测的质量分数,480p和720p版本的感知质量非常接近,并且它们都明显高于360p版本。在这种情况下,最优格式是480p转码版本,而不是720p。
[0067]
在没有提供预测分数的当前提出的算法的情况下,媒体观看器可能盲目地转向使用更多带宽但不会改善实际观看体验的(例如,通过例如psnr或vmaf测量的感知质量)720p版本。当显示分辨率为720p(图8b)时,由于480p和720p之间的差异在vmaf上大于6个点(这大致转化为显著差异中的高1级),因此提高到720p改善实际感知质量。
[0068]
本公开的实施方式的另一个优点是它允许精确的质量评估(例如,在crf级别)。例如,媒体查看器能够计算从480p crf 40版本切换到720p crf 30版本对480p显示分辨率的确切质量改善,以进一步最优化格式选择。
[0069]
图4描绘了根据本公开的一个或多个方面的用于训练机器学习模型的方法400的一个示例的流程图。该方法由可以包括硬件(电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行)或它们的组合的处理逻辑执行。在一种实施方式中,由图1的计算机系统100执行该方法,而在一些其他实施方式中,可以由图中未描绘的一个或多个其他机
器执行图4的一个或多个框。在一些方面,可以由图1的服务器机器130的训练集生成器131和/或图2的训练集生成器231执行图4的一个或多个框。
[0070]
为了解释的简单,方法被描绘和描述为一系列动作。然而,根据本公开的动作能够以各种顺序和/或同时发生,并且与本文未呈现和描述的其他动作一起发生。此外,并非所有图示的动作都可能被需要以实施根据公开主题的方法。另外,本领域技术人员将明白和理解,这些方法可以替代地经由状态图或事件被表示为一系列相互关联的状态。另外,应当理解,本说明书中公开的方法能够被存储在制品上,以促进将这些方法运输和转移到计算设备。如本文中所使用的,术语制品旨在涵盖可从任何计算机可读设备或存储介质访问的计算机程序。
[0071]
方法400以为机器学习模型生成训练数据开始。在一些实施方式中,在框401,训练集t被初始化为空集。在框402,参考视频被转码到具有多个转码配置的多个分辨率格式。在一种实施方式中,多个分辨率格式包括360p、480、720p、1080p和2160p(4k)等。多个转码配置可以包括利用h.264编码器从0到51的crf。其他编解码器和编码器可以在本公开的实施方式中被用于转码配置,诸如vp9编解码器。在一个示例中,参考视频可以是具有480p分辨率的视频,其在从crf 0到51的h.264编码器的每个转码配置被转码为360p、480p、720p、1080p和2160p的每个分辨率格式。例如,对于所有分辨率格式和转码配置,480p参考视频能够被转码为720p crf 0版本到720p crf 51版本等等,从而导致参考视频的多个不同转码版本。
[0072]
在框403,将在框402生成的参考视频的每个转码版本被重新缩放为多个不同的显示分辨率。在一种实施方式中,多个不同的显示分辨率表示播放参考视频的转码版本的客户端设备的可能显示分辨率。多个不同的显示分辨率可以包括360p、480p、720p、1080p和2160p等。参考上面的示例,以480p参考视频的720p crf 30版本作为另一示例,720p crf 30版本能够被重新缩放到360p、480p、720p、1080p和2160p的每个显示分辨率以生成480p参考视频的重新缩放的转码版本。针对在框402生成的参考视频的每个转码版本执行该重新缩放以生成参考视频的多个重新缩放的转码版本。
[0073]
在框404,获得参考视频的每个重新缩放的转码版本的每个帧的质量分数。在一种实施方式中,质量分数可以是为参考视频的重新缩放的转码版本的帧确定的psnr分数或vmaf分数。psnr是指在信号的最大可能功率与影响其表示的保真度的破坏噪声功率之间的比率。psnr可以按照对数分贝标度表达。vmaf指的是一种全参考视频质量度量,它基于参考和失真的视频序列预测主题视频的质量。
[0074]
在框405,为参考视频的每个帧生成输入/输出映射。输入/输出映射是指映射到特定目标输出的训练输入。该训练输入包括或基于参考视频的属性集。针对训练输入的目标输出标识参考视频的重新缩放的转码版本的帧的质量分数。训练输入与目标输出相关联(或映射到目标输出)。在一种实施方式中,参考视频的属性集包括颜色属性(例如,每个帧的rgb强度值或y强度值)、空间属性(例如,每个帧的gabor滤波器特征)和时间属性(例如,每个帧的光流)。在一种实施方式中,参考视频的每个帧的属性集被映射为对于参考视频的每个重新缩放的转码版本的每个帧的质量分数的输入。在框406,在框405生成的输入/输出映射被添加到训练集t。
[0075]
框407基于训练集t是否足够用于训练机器学习模型160进行分支。如果是,则执行
进行到框408,否则,执行返回到框402。应当注意,在一些实施方式中,可以基于训练集中的输入/输出映射的数量来确定训练集t的足够性,而在一些其他实施方式中,可以基于作为输入/输出映射数量的补充或替代的一个或多个其他标准(例如,训练示例的多样性的度量等)来确定训练集t的足够性。
[0076]
在框408,提供训练集t以训练机器学习模型160。在一种实施方式中,训练集t被提供给服务器机器140的训练引擎141以执行训练。例如,在神经网络(例如,cnn)的情况下,给定输入/输出映射的输入值(例如,训练图像的像素值等)被输入到神经网络,并且输入/输出映射的输出值被存储在神经网络的输出节点中。然后根据学习算法(例如,反向传播等)调整在神经网络中的连接权重,并对训练集t中的其他输入/输出映射重复该过程。在框408之后,机器学习模型160然后能够被用于处理视频(例如,根据图5的方法500,如下所述)。
[0077]
图5描绘了根据本公开的一个或多个方面的用于使用训练后的机器学习模型来处理视频的方法500的一个示例的流程图。该方法由可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)或它们的组合的处理逻辑执行。在一种实施方式中,使用图1的服务器机器150和训练后的机器学习模型160来执行该方法,而在一些其他实施方式中,可以由图中未描绘的一个或多个其他机器执行图5的一个或多个框。
[0078]
方法500可以包括接收输入视频(例如,从用户设备或诸如上传服务器125的服务器)并使用诸如训练后的机器学习模型160的训练后的模型来处理输入视频。训练后的模型可以被配置基于输入视频的帧的像素数据生成指示输入视频的预测质量分数的一个或多个输出。
[0079]
在一些实施方式中,在框501,视频(输入视频)可以被标识以进行处理。在一个示例中,视频包括上传视频(例如,上传到内容共享平台的视频)的一个或多个帧。
[0080]
在框502,帧的子集从视频的帧中被提取。在一种实施方式中,视频中每10帧中的一帧可以被提取。在框503,对于每个提取的帧,帧的属性集被标识。该属性集可以包括颜色属性(例如,每个帧的rgb强度值或y强度值)、空间属性(例如,每个帧的gabor滤波器特征)和时间属性(例如,每个帧的光流)。
[0081]
在框504,该属性集作为输入被提供给训练后的机器学习模型。在一种实施方式中,训练后的机器学习模型使用关于图4描述的方法400被训练。在框505,从训练后的机器学习模型获得一个或多个输出。在一种实施方式中,来自训练后的机器学习模型的输出是与视频的每个提取帧相对应的质量分数。训练后的机器学习模型生成多个质量分数,每个质量分数对应于输入视频的视频分辨率格式、转码配置和显示分辨率的所有可能的索引元组。
[0082]
在框506,视频的提取帧的每帧质量分数被组合以生成视频的总体质量分数。为视频分辨率格式、转码配置和显示分辨率的可能的索引元组中的每一个生成总体质量分数。在一种实施方式中,组合每帧质量分数包括聚合分数。在一些实施方式中,聚合过程可以变化并且能够包括平均到加权平均等。
[0083]
在框507,训练后的机器学习模型的最终输出被生成,其中,最终输出是视频分辨率格式、转码配置和显示分辨率的所有可能索引元组的3d质量矩阵。
[0084]
图6描绘了根据本公开的一个或多个方面的方法600的一个示例的流程图,该方法600用于使用训练后的机器学习模型来处理视频并在服务器设备处使用训练后的机器学习
模型的输出来最优化格式选择。该方法由可以包括硬件(电路、专用逻辑等)、软件(诸如在通用计算机系统或专用机器上运行)或它们的组合的处理逻辑执行。在一种实施方式中,该方法使用图1的服务器机器150和训练后的机器学习模型160执行,而在一些其他实施方式中,图6的一个或多个框可以由图中未描绘的一个或多个其他机器执行。
[0085]
方法600可以包括接收输入视频(例如,从用户设备或诸如上传服务器125的服务器)并使用诸如训练后的机器学习模型160的训练后的模型来处理输入视频。训练后的模型可以被配置为基于输入视频的帧的像素数据生成指示输入视频的预测质量分数的一个或多个输出。
[0086]
在一些实施方式中,在框601,视频(输入视频)可以被标识以进行处理。在一个示例中,视频包括上传视频(例如,上传到内容共享平台的视频)的一个或多个帧。
[0087]
在框602,视频的属性集被标识。在一种实施方式中,针对视频的帧的子集中的每个确定该属性集。该属性集可以包括颜色属性(例如,视频的每个帧的rgb强度值或y强度值)、空间属性(例如,视频的每个帧的gabor滤波器特征)和时间属性(例如,视频的每个帧的光流)。
[0088]
在框603,将该属性集作为输入被提供给训练后的机器学习模型。在一种实施方式中,训练后的机器学习模型使用关于图4描述的方法400训练。在框604,一个或多个输出从训练后的机器学习模型获得。在一种实施方式中,来自训练后的机器学习模型的输出是与视频的每个提取帧相对应的质量分数。训练后的机器学习模型生成多个质量分数,每个质量分数对应于视频的视频分辨率格式、转码配置和显示分辨率的所有可能索引元组。在一种实施方式中,视频的提取帧的每帧质量分数被组合以生成视频的整体质量分数。为视频分辨率格式、转码配置和显示分辨率的每个可能的索引元组生成总体质量分数。在一种实施方式中,组合每帧质量分数包括聚合分数。在一些实施方式中,聚合过程可以变化并且能够包括平均到加权平均等。
[0089]
在框605,从在框604获得的输出中提取质量分数数据。在一种实施方式中,质量分数数据包括与视频的每个重新缩放的转码版本相对应的质量分数。质量分数各自反映在特定显示分辨率的视频的相应重新缩放的转码配置下的视频的感知质量。在框606,提取的质量分数被用于确定要在客户端设备的媒体查看器处选择的分辨率格式。在一种实施方式中,格式分析引擎152(在图1的服务器机器150处和/或在客户端设备102a的媒体查看器105处)可以使用提取的质量分数以在具有特定的显示分辨率的客户端设备处选择分辨率格式和转码配置。格式分析引擎152可以比较质量分数以通知客户端设备的最优分辨率格式和转码配置选择。
[0090]
图7描绘了根据本公开的一个或多个方面的用于使用在客户端设备处的训练后的机器学习模型的输出来最优化格式选择的方法700的一个示例的流程图。该方法由可以包括硬件(电路、专用逻辑等)、软件(例如在通用计算机系统或专用机器上运行)或它们的组合的处理逻辑执行。在一种实施方式中,该方法使用图1的客户端102a-102n执行,而在一些其他实施方式中,图7的一个或多个框可以由图中未描绘的一个或多个其他机器执行。
[0091]
方法700可以包括,在框701接收输入视频(例如,在客户端设备102a-10n从诸如上传服务器125的服务器)以用于在客户端设备的媒体查看器处播放,其中,客户端设备具有特定的显示分辨率。在框702,客户端设备以当前格式选择执行视频的播放。当前格式选择
可以包括当前视频分辨率和当前转码配置。
[0092]
在框703,对应于视频的质量分数被访问。使用训练后的模型(例如,图1的训练后的机器学习模型160)生成质量分数。训练后的模型可以被配置为基于输入视频的帧的像素数据生成一个或多个输出,该一个或多个输出指示在视频分辨率、转码配置和显示分辨率的各种元组的输入视频的预测的质量分数。输出可以在服务器设备(诸如服务器机器150)处被维护,或者可以在接收视频以供播放时作为元数据与视频一起被提供。在一种实施方式中,训练后的机器学习模型可以根据上述图4的方法400训练。
[0093]
在判定框704,确定对于客户端设备的特定显示器分辨率而言,质量分数是否指示在与当前格式选择不同的格式选择(例如,在不同的视频分辨率和/或转码配置)的感知改善。下面讨论的图8a和8b提供了使用本公开的实施方式的训练后的机器学习模型的质量分数来优化在客户端设备处的格式选择的示例。如果质量分数指示在不同格式选择下的感知改进,则方法700前进到框705,其中,用于视频播放的当前格式选择被改变为这样的格式选择(例如,视频分辨率和/或转码配置),该格式选择对应于在客户端的显示分辨率提供视频的感知质量改善的质量分数。方法700然后返回到框702以继续在新格式选择播放视频。在判定框704,如果质量分数不指示在不同格式选择的感知质量改善,则方法700返回到框702以继续在当前格式选择的视频的播放。
[0094]
图8a和8b提供了根据本公开的实施方式的用于最优化格式选择的训练后的机器学习模型的输出的示例图形表示。图8a和8b示出了转码到360p、480p和720p版本并以480p和720p显示的视频的预测vmaf分数,其中,训练后的模型预测的各种分数非常接近对应的基本事实分数。
[0095]
对于图8a中所示的示例,该图形显示了当显示分辨率为480p并且当前播放的版本为360p时的预测质量分数(例如,vmaf),假设带宽对于所有转码版本都是足够的。根据预测的质量分数,480p和720p版本的感知质量非常接近,并且它们都明显地高于360p版本。在这种情况下,最优格式是480p转码版本,而不是720p。
[0096]
在没有提供预测分数的本公开的实施方式的情况下,媒体观看器盲目地向上移动到使用更多带宽但不会改善视频的实际观看体验(例如,感知质量)的720p版本。当显示分辨率为720p时(图8b),由于480p和720p之间的差异在vmaf上大于6个点(这大致转化为在刚刚显著的差异中高出1级),提高到720p改善视频的实际感知质量。因此,在这种情况下,媒体查看器应提高到720p版本,以改善播放期间视频的感知质量。
[0097]
本公开的实施方式的另一个优点是它允许精确的质量评估(crf级别)。例如,如图8a和8b所示,媒体查看器能够计算从480p crf40版本切换到720p crf 30版本对480p显示分辨率的准确质量改善,以进一步最优化格式选择。
[0098]
图9描绘了根据本公开的一个或多个方面操作的说明性计算机系统900的框图。在各种说明性示例中,计算机系统900可以对应于图1的系统架构100内的计算设备。在某些实施方式中,计算机系统900可以被连接(例如,经由诸如局域网(lan)、内联网、外联网和互联网的网络630)连接到其他计算机系统。计算机系统900可以在客户端-服务器环境中以服务器或客户端计算机的身份运行,或者在对等或分布式网络环境中作为对等计算机运行。计算机系统900可以由以下部分提供:个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络电器、服务器、网络路由器、交换机或桥接器或能够执行指令集(顺序
或其他方式)的任何设备,这些指令指定要由该设备采取的行动。此外,术语“计算机”应包括单独或联合执行一个(或多个)指令集以执行本文中描述的任何一个或多个方法的任何计算机的集合。
[0099]
在另一方面,计算机系统900可以包括处理设备902、易失性存储器904(例如,随机存取存储器(ram))、非易失性存储器906(例如,只读存储器(rom)或电可擦可编程只读存储器(eeprom))和数据存储设备916,它们可以经由总线908相互通信。
[0100]
处理设备902可以由以下部分提供:一个或多个处理器,诸如通用处理器(诸如,例如,复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、非常长的指令字(vliw)微处理器、实现其他类型指令集的微处理器或实现指令集类型的组合的微处理器)或专用处理器(例如,专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)或网络处理器)。
[0101]
计算机系统900可以进一步包括网络接口设备922。计算机系统900还可以包括视频显示单元910(例如,lcd)、字母数字输入设备912(例如,键盘)、光标控制设备914(例如,鼠标)和信号生成设备920。
[0102]
数据存储设备916可以包括暂时性或非暂时性计算机可读存储介质924,在其上可以存储指令926,该指令926对本文中描述的任何一种或多种方法或功能进行编码,该指令包括用于分别实现图4到7的方法400-700的指令。
[0103]
指令926还可以在由计算机系统900执行其期间完全或部分地驻留在易失性存储器904和/或处理设备902内,因此,易失性存储器904和处理设备902也可以构成机器可读存储介质。
[0104]
虽然计算机可读存储介质924在说明性示例中被示出为单个介质,但术语“计算机可读存储介质”应包括单个介质或多个介质(例如,集中式或分布式数据库和/或关联的高速缓存和服务器),其存储一个或多个可执行指令集。术语“计算机可读存储介质”还应包括能够存储或编码指令集以供计算机执行的任何有形介质,这些指令使计算机执行本文中描述的任何一个或多个方法。术语“计算机可读存储介质”应当包括但不限于固态存储器、光介质和磁介质。
[0105]
本文中描述的方法、组件和特征可以由分立的硬件组件实现,或者可以被集成在其他硬件组件的功能中,诸如asic、fpga、dsp或类似设备。另外,该方法、组件和特征可以由在硬件设备内的组件模框或功能电路实现。此外,该方法、组件和特征可以被实现在硬件设备和计算机程序组件的任何组合中或在计算机程序中。
[0106]
除非另有明确说明,否则诸如“生成”、“提供”或“训练”等的术语是指由计算机系统执行或实施的动作和过程,该计算机系统将在计算机系统寄存器或存储器内表示为物理(电子)量的数据操纵和转换为其他数据,该其他数据类似地被表示为在计算机系统存储器或寄存器或其他这种信息存储、传输或显示设备内的物理量。此外,如本文中所使用的术语“第一”、“第二”、“第三”、“第四”等意在作为用于区分不同元素的标签,并且根据它们的数字指定可以不具有顺序含义。
[0107]
本文中描述的示例还涉及用于执行本文中描述的方法的装置。该装置可以被专门构造用于执行本文中描述的方法,或者它可以包括由存储在计算机系统中的计算机程序选择性地编程的通用计算机系统。这种计算机程序可以被存储在计算机可读有形存储介质
中。
[0108]
本文中描述的方法和说明性示例与任何特定计算机或其他装置没有内在关联。可以根据本文中描述的教导使用各种通用系统,或者可以证明构造更专业的装置来执行方法400到700和/或它们各自的功能、例程、子例程或操作中的每一个是方便的。在以上描述中阐述了各种这些系统的结构示例。
[0109]
以上描述旨在是说明性的而非限制性的。尽管已经参考特定说明性示例和实施方式描述了本公开,但是将认识到本公开不限于所描述的示例和实施方式。本公开的范围应参照所附权利要求以及权利要求所享有的等同物的全部范围来确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献