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

非遮挡视频叠加的制作方法

2022-07-10 14:52:46 来源:中国专利 TAG:

非遮挡视频叠加


背景技术:

1.流式传输至用户的视频可以包括在原始视频流之上叠加的附加内容。叠加的内容可以在叠加和阻挡一部分原始视频屏幕的矩形区域内提供给用户。在一些方法中,用于提供叠加的内容的矩形区域位于视频屏幕的中心底部。如果原始视频流的重要内容位于视频屏幕的中心底部,则可能会被叠加的内容阻挡或遮住。


技术实现要素:

2.本说明书描述了与在视频流之上叠加的内容、同时回避了底层视频流中以有用内容为主的视频屏幕区域,例如,原始视频流中包含面部、文本或重要对象(诸如快速移动的对象)的区域相关的技术。
3.通常,本说明书中描述的主题的第一创新方面可以体现在下述方法中,该方法包括:为视频的帧序列当中的每个视频帧识别对应排除区域,基于在视频帧区域中的对应排除区域内的指定对象的检测,从排除区域排除叠加的内容;为在指定持续时间或指定的帧序列的数量中的视频帧聚合对应排除区域;在指定持续时间或指定的视频的帧序列的数量内定义叠加的内容符合包含条件包含区域,该包含区域被定义为在所聚合的对应排除区域之外的、指定持续时间或指定的数量中的视频帧区域;以及在客户端设备处显示视频期间,提供叠加的内容以包含在指定的持续时间或数量的视频的帧序列的包含区域中。该方面的其他实现包括被配置为执行该方法的多个方面并编码在计算机存储设备上的对应装置、系统和计算机程序。
4.在一些方面,排除区域的识别可以包括为帧序列中的每个视频帧识别视频中显示文本的一个或多个区域,该方法还包括从视频帧的其他部分生成标示一个或多个区域的一个或多个边界框。识别显示文本的一个或多个区域可以包括用光学字符标识系统识别一个或多个区域。
5.在一些方面,排除区域的识别可以包括为帧序列中的每个视频帧识别视频中显示人类特征的一个或多个区域,该方法还包括从视频帧的其他部分生成标示一个或多个区域的一个或多个边界框。识别显示人类特征的一个或多个区域可以包括用被训练为识别人类特征的计算机视觉系统来识别一个或多个区域。计算机视觉系统可以是卷积神经网络系统。
6.在一些方面,排除区域的识别可以包括为帧序列中的每个视频帧识别视频中显示重要对象的一个或多个区域,其中,显示重要对象的区域的识别是用被配置为从选定的不包括文本或人类特征的对象类别的集合中标识对象的计算机视觉系统进行识别。识别排除区域可以包括基于对在连续帧之间移动超过选定的距离的对象的检测或对在指定的序列帧的数量期间移动的对象的检测来识别视频中显示重要对象的一个或多个区域。
7.在一些方面,对应排除区域的聚合可以包括从视频的其他部分生成标示对应排除区域的边界框的并集。定义包含区域可以包括在视频的帧序列内识别在指定的持续时间或指定的数量内不与所聚合的对应排除区域重叠的矩形的集合;以及提供包含区域中包含的
叠加的内容可以包括:识别具有适合矩形的集合当中的一个或多个矩形的维度的叠加;以及在指定的持续时间或指定的数量期间在一个或多个矩形内提供叠加。
8.本说明书中描述的主题可以在特定实施例中实现,以便实现以下优点中的一个或多个。
9.当用户正在观看填充视频屏幕的视频流时,该视频屏幕区域内对用户有价值的内容可能不会填充视频屏幕的整个区域。例如,有价值的内容(例如面部、文本或诸如快速移动的对象的重要对象)可能仅占据视频屏幕区域的一部分。因此,有机会以叠加的内容不阻挡含有有价值的底层内容的视频屏幕区域部分的形式向用户呈现附加的有用内容。本公开的方面提供了识别从中排除叠加的内容的排除区域的优势,因为在这些排除区域上叠加的内容会阻挡或遮掩被包括在底层视频流中的有价值的内容,这将导致当有价值的内容对用户而言无法感知时通过向用户传递视频而浪费计算资源。在某些情况下,机器学习引擎(诸如贝叶斯分类器、光学字符标识系统或神经网络)可以在视频流内识别感兴趣的特征,诸如面部、文本或其他重要对象;可以识别包含这些感兴趣的特征的排除区域;然后可以在这些排除区域之外呈现叠加的内容。因此,用户可以在不阻挡底层视频流的有价值内容的情况下接收叠加的内容,从而不会浪费传递视频所需的计算资源。这导致更有效的视频分发系统,防止计算系统资源(例如,网络带宽、内存、处理器周期和有限的客户端设备显示空间)因传递的视频中有价值的内容被遮挡或因其他方式而无法被用户感知而浪费。
10.这具有在传递给观看者的有用内容的带宽方面提高屏幕区域的效率的其他优点。如果用户正在观看视频,其中视频的有价值内容通常只占据观看区域的一小部分,则向观看者传递有用内容的可用带宽未被充分利用。通过使用机器学习系统来识别含有底层视频流的有价值内容的那部分观看区域,本公开的方面提供了在该部分观看区域之外叠加附加内容,从而导致更有效地利用屏幕区域向观看者传递有用的内容。
11.在一些方法中,叠加的内容包括观看者可以点击以移除叠加的内容的框或其他图标,例如,如果叠加的内容阻挡了底层视频中的有价值的内容。本公开的其他优点是,因为叠加的内容不太可能阻挡底层视频中有价值的内容,所以观看体验的扰乱更少并且观众将不会“点击离开”已经呈现的叠加的内容的可能性更大。
12.下面参照附图描述前述主题的各种特征和优点。从本文描述的主题和权利要求中,附加的特征和优点是显而易见的。
附图说明
13.图1描绘了对包括帧序列的视频进行聚合排除区域以及定义包含区域的概览。
14.图2描绘了用于图1示例的排除区域的逐帧聚合的示例。
15.图3描绘了用于识别和聚合排除区域以及选定叠加的内容的机器学习系统的示例。
16.图4描绘了包括聚合排除区域和选定叠加的内容的过程的流程图。
17.图5是示例计算机系统的框图。
18.不同附图中的相同的附图标记和名称表示相同的元件。
具体实施方式
19.通常希望在底层视频流上提供叠加的内容,以向视频流的观看者提供附加内容,并针对给定的视频流带宽提高观看区域内传递的内容量。然而,存在确定如何放置叠加的内容以使其不遮挡底层视频中的有价值内容的技术问题。对于将内容叠加在视频上的情况,这是一个特别困难的问题,因为视频中重要内容的位置会随着时间而迅速改变。因此,即使视频内的特定位置在某个时间点是叠加的内容的良好候选,该位置也可能在稍后的时间点(例如,由于视频内字符的移动)成为叠加内容的不良候选。
20.本说明书通过描述机器学习方法和系统来呈现该技术问题的解决方案,这些方法和系统可以识别与更可能含有有价值内容的视频流的区域相对应的排除区域;随着时间而聚合这些排除区域;然后将叠加的内容定位在所聚合的排除区域之外的包含区域中,以使叠加的内容不太可能阻挡底层视频中的有价值内容。
21.图1描绘了视频流的排除区域、包含区域和叠加的内容的说明性示例。在该示例中,原始的底层视频流100描绘为图左侧的帧101、102和103。每个帧可以包括可能含有不应被叠加的内容特征遮挡的有价值内容的区域。例如,视频的帧可以包括文本111的一个或多个区域,诸如隐藏式字幕文本或出现在视频内的特征上的文本,例如出现在产品标签、路标、学校讲座视频的屏幕上的白板上的文本等。要注意的是,视频内的特征是视频流本身的一部分,而任何叠加的内容都与视频流本身独立。如以下进一步讨论的,诸如光学字符标识(ocr)系统的机器学习系统可以用于识别具有含有文本的帧的区域,并且如图所示,该识别可以包括识别包围所识别文本的边界框。如图1的示例所示,文本111可能处于不同帧内的不同位置,因此在包括多个帧101、102、103的一段时间内持续存在的叠加的内容不应位于文本111跨多个帧所处的任何位置。
22.不应被叠加的内容特征遮挡(例如,以确保底层视频的重要内容不被遮挡)的其他区域是包括人员或人类特征的区域112。例如,帧可能包括一个或多个人员或其部分,诸如人脸、躯干、四肢、手等。如以下进一步讨论的,诸如卷积神经网络(cnn)系统的机器学习系统可以用于识别帧内含有人员(或其部分,诸如面部、躯干、四肢、手等)的区域,并且如图所示,该识别可以包括识别包围所识别的人类特征的边界框。如图1的示例所示,人类特征112可能处于不同帧内的不同位置,因此在包括多个帧101、102、103的一段时间内持续存在的叠加的内容不应位于人类特征112跨多个帧所处的任何位置。在一些方法中,可通过将人类特征检测限制为更大的人类特征(即与背景人类特征相反、位于前景中并且更靠近视频视点的特征)来区分人类特征112。例如,与视频前景中的人员相对应的较大人脸可被包括在检测方案中,而与视频背景中的人员相对应的较小人脸(诸如人群中的人脸)可排除在检测方案之外。
23.不应被叠加的内容特征遮挡的其他区域是含有其他潜在感兴趣对象的区域113,诸如动物、植物、路灯或其他道路特征、瓶子或其他容器、家具等。如以下进一步讨论的,诸如卷积神经网络(cnn)系统的机器学习系统可以用于识别帧内含有潜在感兴趣对象的区域。例如,可以训练机器学习系统对从对象类别列表中选定的各种对象进行分类,例如识别狗、猫、花瓶、花或观看者潜在感兴趣的任何其他类别的对象。如图所示,该识别可以包括识别包围检测到的对象的边界框。如图1的示例所示,检测到的对象113(在此示例中为猫)可能处于不同帧内的不同位置,因此在包括多个帧101、102、103的一段时间内持续存在的叠
加的内容不应位于检测到的对象113跨多个帧所处的任何位置。
24.在一些方法中,可以通过将对象检测限制为运动中的对象来区分检测到的对象113。运动中的对象通常更有可能向观看者传达重要内容,因此可能不太适合被叠加的内容遮挡。例如,检测到的对象113可以限制为在选定的时间间隔(或选定的帧间隔)内移动某个最小距离的对象,或者在指定的序列帧的数量期间移动的对象。
25.如图1中的视频屏幕120所示,可以基于在观看者更可能感兴趣的视频中检测到的特征来识别从中排除叠加的内容的排除区域。因此,例如,排除区域可以包括区域121,其中文本已被识别为出现在视频帧中(与原始视频帧101、102、103中识别的文本111相比较);排除区域还可以包括区域122,其中人类特征已被识别为出现在视频帧中(与原始视频帧101、102、103中识别的人类特征112相比较);以及排除区域还可以包括区域123,其中其他感兴趣的对象(诸如移动较快的对象,或从选定的对象类别列表中识别的对象)已被识别为出现在视频帧中(与原始视频帧101、102、103中识别的对象113相比较)。
26.因为叠加的内容可能被包括在选定的持续时间(或选定的底层视频中的帧的数量)内,所以可以在选定的持续时间(或选定的帧跨度)上聚合排除区域以定义聚合排除区域。例如,聚合排除区域可以是与在视频的帧序列中的每个视频帧中检测到的感兴趣的特征相对应的所有排除区域的并集。选定的持续时间可以是1秒、5秒、10秒、1分钟或任何其他适合显示叠加的内容的持续时间。可选地,选定的帧跨度可以是24帧、60帧、240帧或任何其他适合显示叠加的内容的帧跨度。选定的持续时间可以对应于选定的帧跨度,反之亦然,这由底层视频的帧速率确定。虽然图1的示例示出了仅在三个帧101、102、103上的聚合,但这仅是为了说明的目的而不旨在进行限制。
27.图2呈现了排除区域的聚合如何能够在图1的示例中逐帧进行。首先,可以选定连续帧的最小数量,在这些帧上可以聚合排除区域(或者,在某些情况下,可以选定最小时间间隔,并根据视频帧速率转换为若干连续帧)。在该示例中,仅出于说明的目的,连续帧的最小数量是三个帧,对应于所示的帧101、102和103。
28.如图2的列200所示,底层视频帧中的每一帧101、102和103可能含有感兴趣的特征,诸如文本111、人类特征112或其他潜在的感兴趣对象113。对于每一帧,机器学习系统诸如光学字符标识系统、贝叶斯分类器或卷积神经网络分类器可用于检测帧内感兴趣的特征。如图2的列210所示,检测帧内的特征可以包括确定包围该特征的边界框。因此,机器学习系统可以输出每帧内包围检测到的文本的边界框211、每帧内包围人类特征112的边界框212、和/或每帧内包围其他潜在感兴趣对象213的边界框213。可以选定包围人类特征112的边界框212来包围在帧内检测到的任何人类特征的全部,或者可以选定它们以仅包围在帧内检测到的任何人类特征的一部分(例如,仅包围面部、头部和肩膀、躯干、手等)。如图2的列220所示,连续帧的边界框211、212、213可以分别对应排除区域221、222、223,其可以逐帧累加或聚合,新增加的排除区域230被累加用于帧102的排除区域以及新增加的排除区域240被累加用于帧103的排除区域,从而如图2的最右下帧所示,聚合包括在所选连续帧间隔内的所有帧内检测到的所有特征的所有边界框。要注意的是,在此示例中,在图2右下角看到的所聚合的排除区域是所选连续帧间隔(在本例中为三个)的帧101的聚合排除区域。因此,例如对于帧102,所聚合的排除区域会包括帧102、帧103和未示出的第四帧的单帧排除区域;类似地,帧102的聚合排除区域会包括帧103的单帧排除区域、未示出的第四帧和未示
出的第五帧;等等。
29.具有在选定的持续时间或选定的帧跨度上所聚合的排除区域,可以定义包含区域,在该包含区域内符合显示叠加的内容的条件。例如,图1中的包含区域125与其中文本111、人类特征112或其他感兴趣的对象113都没有出现在帧101、102、103的跨度上的观看区域120的区域相对应。
30.在一些方法中,包含区域可以被定义为包含区域矩形的集合,其并集定义了整个包含区域。包含区域矩形的集合可以通过迭代已经累加以定义聚合排除区域的所有边界框(例如图2中的矩形211、212和213)来计算。对于累加的边界框中给定的边界框,选定右上角作为起点(x,y),然后向上、向左、向右扩展,找到不与其他任何边界框(或观看区域的边缘)重叠的最大框,并将最大框添加到包含区域矩形列表中。接下来,选定右下角作为起点(x,y),然后向上、向下、向右扩展,找到不与其他任何边界框(或观看区域的边缘)重叠的最大框,并将最大框添加到包含区域矩形列表中。接下来,选定左上角作为起点(x,y),然后向上、向左、向右扩展,找到不与其他任何边界框(或观看区域的边缘)重叠的最大框,并将最大框添加到包含区域矩形列表中。接下来,选定左下角作为起点(x,y),然后向下、向左、向右扩展,找到不与其他任何边界框(或观看区域的边缘)重叠的最大框,并将最大框添加到包含区域矩形列表中。然后对累加的边界框中的下一个边界框重复这些步骤。要注意的是,这些步骤可以以任何顺序完成。因此定义的包含区域是帧101的包含区域,因为它定义了叠加的内容可以在帧101中和对于连续帧的选定间隔(在本例中为三个)的后续帧中定位的区域,而不会遮挡帧101、102、103的任何一个中(即在选定的连续帧间隔内的任何帧内)所检测到的任何特征。类似地,可以定义帧102的包含区域,但它会涉及帧102、帧103和未示出的第四帧的单帧排除区域的补充;类似地,帧103的包含区域会涉及帧103、未示出的第四帧和未示出的第五帧的单帧排除区域的补充;等等。
31.通过定义包含区域,可以选定合适的叠加的内容以在包含区域内显示。例如,候选叠加的内容的集合可能是可用的,其中候选叠加的内容的集合中的每个项目具有规范,该规范可以包括例如每个项目的宽度和高度、每个项目将被提供给用户的最小持续时间等等。从候选叠加的内容的集合中可选定一个或多个项目以适合进入定义的包含区域内。例如,如图1的可视区域所示,可选定叠加的内容的两个项目126以适合在包含区域105内。在各种方法中,叠加的内容特征的数量可限制为一个、两个或更多个特征。在一些方法中,可在第一时间跨度(或帧跨度)期间提供第一叠加的内容特征,并且可在第二时间跨度(或帧跨度)期间提供第二叠加的内容特征等等,并且第一、第二时间跨度(或帧跨度)等可能是完全重叠的、部分重叠的或不重叠的。
32.通过已经选定了要与底层视频流一起提供给观众的叠加的内容126,图1描绘了包括底层视频和叠加的内容两者的视频流130的示例。如该示例中所示,叠加的内容126不遮挡或阻挡在底层视频100中检测到的并定义叠加的内容的排除区域的感兴趣特征。
33.现在参照图3,说明性示例被描绘为用于选定包含区域并在视频流上提供叠加的内容的系统的框图。该系统可操作为视频管线,接收在其上叠加的内容的原始视频作为输入,并且提供具有叠加的内容的视频作为输出。系统300可以包括视频预处理器单元301,其可用于提供视频规范的下游一致性,诸如帧速率(可通过重采样器调整)、视频大小/质量/分辨率(可通过重放缩器调整)以及视频格式(可通过格式转换器调整)。视频预处理器的输
出是标准格式的视频流302,供系统的下游组件进一步处理。
34.系统300包括文本检测器单元311,其接收视频流302作为输入并且提供在视频流302中出现文本的区域的集合作为输出。文本检测器单元可以是机器学习单元,诸如光学字符标识(ocr)模块。出于效率的目的,ocr模块只需要找到文本出现在视频中的区域,而无需实际标识这些区域内出现的文本。一旦区域已被识别,文本检测器单元311可以生成(或指定)边界框,该边界框标示(或以其他方式定义)每个帧内已被确定为包括文本的区域,其可以用于识别叠加的内容的排除区域。文本检测器单元311可以将检测到的文本边界框输出为例如阵列(按回一句ng帧的数量索引),其中该阵列的每个元素是定义在该帧内检测到的文本边界框的矩形的列表。在一些方法中,检测到的边界框可以作为视频每一帧的元数据信息添加到视频流中。
35.系统300还包括人员或人类特征检测器单元312,其接收视频流302作为输入并提供含有人(或其部分,例如面部、躯干、四肢、手部等)的视频区域的集合作为输出。人员检测器单元可以是计算机视觉系统,诸如机器学习系统,例如贝叶斯图像分类器或卷积神经网络(cnn)图像分类器。人员或人类特征检测器单元312可以例如在被标记有由训练样本描绘的人类特征的标记的训练样本上进行训练。一旦被训练,人员或人类特征检测器单元312可以输出识别在视频的每一帧中检测到的一个或多个人类特征的标签和/或指示每一帧内的一个或多个人类特征所在的置信水平的置信度值。人员或人类特征检测器单元312还可以生成标示其中已经检测到一个或多个人类特征的区域的边界框,该边界框可以用于识别叠加的内容的排除区域。出于效率的目的,人类特征检测器单元只需要找到在视频中出现人类特征的区域,而无需实际标识这些区域内出现的人的身份(例如,标识这些区域内出现的特定人的面部)。人类特征检测器单元312可以将检测到的人类特征边界框输出为例如阵列(按帧的数量索引),其中该阵列的每个元素是定义在该帧内检测到的人类特征边界框的矩形的列表。在一些方法中,检测到的边界框可以作为视频每一帧的元数据信息添加到视频流中。
36.系统300还包括对象检测器单元313,该对象检测器单元313接收视频流302作为输入并且提供含有潜在感兴趣对象的视频区域的集合作为输出。潜在感兴趣对象可以是被分类为属于选定的对象类别列表中的对象类别的对象(例如,动物、植物、道路或地形特征、容器、家具等)。潜在感兴趣对象也可以限制为识别的运动的对象,例如在选定的时间间隔(或选定的帧间隔)内移动某个最小距离或在视频流302中的指定的连续帧的数量期间移动的对象。对象检测器单元可以是计算机视觉系统,诸如机器学习系统,例如贝叶斯图像分类器或卷积神经网络图像分类器。对象检测器单元313可以例如在标记的训练样本上被训练,这些样本被标记有被分类为属于选定的对象类别列表中的对象类别的对象。例如,可以训练对象检测器标识诸如猫或狗等动物;或者可以训练对象检测器标识诸如桌椅等家具;或者可以训练对象检测器标识诸如树木或路标等地形或道路特征;或诸如这些所选定对象类别的任意组合。对象检测器单元313还可以生成标示(或以其他方式指定)其中所识别的对象已被识别的视频帧区域的边界框。对象检测器单元312可以将检测到的对象边界框输出为例如阵列(按帧的数量索引),其中该阵列的每个元素是定义在该帧内检测到的对象边界框的矩形的列表。在一些方法中,检测到的边界框可以作为视频每一帧的元数据信息添加到视频流中。在其他说明性示例中,系统300可以包括文本检测器311、人员检测器312或对象
检测器313中的至少一个。
37.系统300还包括包含区域计算器单元或模块320,其接收来自文本检测器单元311(具有关于在视频流302中出现文本的区域的信息)、人员检测器单元312(具有关于在视频流302中出现人员或其部分的区域的信息)和对象检测器单元313(具有关于在视频流302中出现各种潜在感兴趣对象的区域的信息)中的一个或多个输入。这些区域中的每一个都可以定义排除区域;包含区域计算器单元可以聚合这些排除区域;然后包含区域计算器可以定义其内叠加的内容符合包含条件的包含区域。
38.所聚合的排除区域可以被定义为矩形列表的并集,每个矩形包括潜在感兴趣特征,诸如文本、人员或其他感兴趣的对象。它可表示为由检测器单元311、312和313在选定的连续帧的数量上生成的边界框的累加。首先,边界框可以被聚合用于每一帧。例如,如果文本检测器单元311输出每个帧中的文本边界框列表的第一阵列(按帧的数量索引),人类特征检测器312输出每个帧中的人体特征边界框列表的第二阵列(按帧的数量索引),以及对象检测器单元313输出每个帧中检测到的对象的边界框列表的第三阵列(按帧的数量索引),则这些第一、第二和第三阵列可以合并以定义单个阵列(还按帧的数量索引),其中每个元素都是单独列表,该列表合并了在该帧中检测到的所有特征(文本、人类或其他对象)的所有边界框。接下来,边界框可以在选定的连续帧间隔上聚合。例如,可能会定义新阵列(同样按帧的数量索引),其中每个元素都是单独列表,该列表合并了在帧i、i 1、i 2、...i (n-1)内检测到的所有特征的所有边界框,其中n是选定的连续帧间隔中的帧的数量。在一些方法中,聚合的排除区域数据可以作为视频每一帧的元数据信息添加到视频流中。
39.然后,由包含区域计算器单元320计算的包含区域可以被定义为由检测器单元311、312和313在选定的连续帧的数量上生成的边界框的累加的补充。例如,可以将包含区域指定为另一个矩形列表,其并集形成包含区域;或者作为具有水平和垂直边的多边形,例如可以通过多边形的顶点列表来描述;或者例如,如果包含区域包括观看屏幕的断开区域,则作为此类多边形的列表。如上所述,如果累加的边界框由阵列(按帧的数量索引)表示,其中每个元素是列表,该列表合并了在该帧内及随后的n-1个连续帧内检测到的所有特征的所有边界框,则包含区域计算器单元320可以将包含区域信息存储为新阵列(还按帧的数量索引),其中每个元素是该帧的包含矩形列表,考虑到通过在每个累加的边界框和每个边界框的四个角上迭代在该帧及随后的n-1个连续帧上累加的所有边界框,如上文在图2的背景中所讨论的。要注意的是,这些包含区域矩形可以是共同定义包含区域的重叠矩形。在一些方法中,该包含区域数据可以作为视频每一帧的元数据信息添加到视频流中。
40.系统300还包括叠加的内容匹配器单元或模块330,其接收来自包含区域计算器单元或模块320的输入,例如,以包含区域的规范的形式。叠加的内容匹配器单元可以选定合适的内容以叠加在包含区域内的视频上。例如,叠加的内容匹配器可访问候选叠加的内容目录,其中候选叠加的内容目录中的每个项目具有可以包括例如每个项目的宽度和高度、每个项目应提供给用户期间的最小持续时间等。叠加的内容匹配器单元可以从候选叠加的内容的集合中选择一个或多个项目以适合在包含区域计算器单元320提供的包含区域内。例如,如果包含区域信息存储在阵列中(按帧的数量索引),其中阵列中的每个元素都是该帧的包含区域矩形列表(考虑到在该帧及随后的n-1个连续帧上累积的所有边界框),然后,对于候选叠加的内容目录中的每个项目,叠加的内容匹配器可以识别阵列中大到足以适合
选定项目的包含区域矩形;它们可以按大小顺序和/或持久性顺序排列(例如,如果相同的矩形出现在阵列的多个连续元素中,则指示包含区域可用于甚至超过连续帧的最小数量n),然后可以从排序的列表中选定包含区域矩形用于包含选定的叠加的内容。在一些方法中,叠加的内容可能是可放缩的,例如在可能的x或y维度范围内或在可能的纵横比范围内;在这些方法中,可选定与叠加的内容项目相匹配的包含区域矩形,例如,可以适合可放缩的叠加的内容的最大区域包含区域矩形,或者可以持续连续帧的最长持续时间的足够大小的包含区域矩形。
41.系统300还包括叠加单元340,其从叠加的内容匹配器330接收底层视频流302和选定的叠加的内容332(及其位置)两者作为输入。然后叠加单元340可以提供包括底层视频内容302和选定的叠加的内容332两者的视频流342。在用户设备处,视频可视化器350(例如,嵌入在网络浏览器中的视频播放器,或移动设备上的视频应用)向用户显示带有叠加的内容的视频流。在一些方法中,叠加单元340可驻留在用户设备上和/或嵌入在视频可视化器350中;换言之,底层视频流302和选定的叠加的内容332都可传递给用户(例如通过互联网),并且它们可在用户设备上组合以向用户显示叠加视频。
42.现在参照图4,说明性示例被描绘为用于在视频流上提供叠加的内容的方法的过程流程图。该过程包括410——为视频的帧序列当中的每个视频帧识别从中排除叠加的内容的对应排除区域。例如,包含区域可以与含有观看者更可能感兴趣的视频特征的观看区域的区域相对应,诸如含有文本的区域(例如,图1中的区域111)、含有人员或人类特征的区域(例如,图1中的区域112)及含有特定感兴趣对象的区域(例如,图1中的区域113)。例如,这些区域可以使用机器学习系统(诸如用于文本的ocr检测器(例如,图3中的文本检测器311)、用于人员或人类特征的计算机视觉系统(例如,图3中的人员检测器312)以及用于其他感兴趣对象的计算机视觉系统(例如,图3中的对象检测器313))来检测。
43.该过程还包括420——为在指定的持续时间或指定的帧序列的数量中的视频帧聚合对应排除区域。例如,如图1所示,作为潜在感兴趣特征的边界框的矩形121、122和123可以在帧序列上被聚合以定义聚合排除区域,该区域是帧序列的排除区域的并集。例如,排除区域矩形的这种并集可以通过图3的包含区域计算器单元320来计算。
44.该过程还包括430——在指定的持续时间或指定的视频的帧序列的数量内定义叠加的内容符合包含条件的包含区域,所述包含区域被定义为在所聚合的对应排除区域之外的、指定的持续时间或指定的数量的视频帧的区域。例如,图1中的包含区域125可以被定义为所聚合的排除区域的补充,并且包含区域可描述为共同填充包含区域的矩形的并集。例如,包含区域可通过图3的包含区域计算器单元320来计算。
45.该过程还包括440——在客户端设备处显示视频期间,提供叠加的内容以包含在指定的持续时间或数量的视频的帧序列的包含区域中。例如,叠加的内容可基于例如候选叠加的内容目录中的项目的维度从候选叠加的内容目录中来选定。在图1的示例中,两个叠加的内容特征126被选定以包含在包含区域125内。叠加的内容(及其在观看区域内的定位)可通过图3的叠加的内容匹配器330来选定,并且叠加单元340可以将叠加的内容添加在底层视频流302之上,以定义要提供给用户在客户端设备处观看的具有叠加的内容的视频流342。
46.在一些方法中,从叠加的内容的目录中选定的叠加的内容可以以下列方式选择。
对于帧i,包含区域可被定义为包含区域矩形列表的并集,这些矩形不与帧i、i 1、

i (n-1)中的任何排除区域(检测到的对象的边界框)相交,其中n是选定的连续帧的最小数量。然后对于帧i和对于来自叠加的内容目录的给定候选项目,包含区域矩形从可以适合候选项目的包含区域矩形列表中选定。这些是可以适合所选定的连续帧的最小数量n的候选项目的包含区域矩形。可以对帧i 1执行相同的过程;然后,通过对帧i和帧i 1的结果交集(intersection),可以获得可以适合n 1个连续帧的候选项目的包含区域矩形列表。再与帧i 2的结果进行交集,可以获得可以适合n 2个连续帧的候选项目的包含区域集合。该过程可以针对任何选定的帧跨度(包括视频的整个持续时间)进行迭代,以获得适合包含帧持续时间n、n 1、...n (k-1)的候选项目的矩形,其中n k是可能的最长持续时间。因此,例如,叠加的内容的位置可以从包含区域矩形列表中选定,该包含区域矩形可以持续最长持续时间,即对于n k帧,而不遮挡检测到的特征。
47.在一些方法中,可能同时包括多于一个的内容特征。例如,可选定叠加的内容的第一项目,然后通过定义包围叠加的内容的第一项目的附加排除区域,可选定叠加的内容的第二项目。换言之,通过将与叠加的内容的第一项目叠加的视频视为适合于附加内容的叠加的新底层视频,可放置叠加内容的第二项目。叠加的内容的第一项目的排除区域可能做得比叠加的内容本身大得多,以增加观看区域内不同叠加的内容项之间的空间独立。
48.在一些方法中,叠加的内容的选择可能包括选择允许对排除区域的指定程度的侵占。例如,通过根据叠加的内容在空间上延伸到每个包含区域矩形之外的程度来权衡包含区域矩形可以容忍一些基于区域的侵占。可选地或附加地,通过忽略仅存在相对较短时间的短暂排除区域来容忍一些基于时间的侵占。例如,如果仅针对60帧中的单个帧定义了排除区域,则与整个60帧中存在排除区域所在的区域相比,它的权重会较低,因此更有可能被遮挡。可选地或附加地,通过对与不同类型的检测特征相对应的不同类型的排除区域的相对重要性进行排名可以容忍一些基于内容的侵占。例如,检测到的文本特征可以被列为比检测到的非文本特征更重要,和/或检测到的人类特征可以被列为比检测到的非人类特征更重要,和/或更快速移动的特征可以被列为比更缓慢移动的特征更重要。
49.图5是可以用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个都可以例如使用系统总线550互连。处理器510能够处理用于在系统500内执行的指令。在一些实现中,处理器510是单线程处理器。在另一实现中,处理器510是多线程处理器。处理器510能够处理存储在存储器520或存储设备530上的指令。
50.存储器520在系统500内存储信息。在一个实现中,存储器520是计算机可读介质。在一些实现中,存储器520是易失性存储器单元。在另一实现中,存储器520是非易失性存储器单元。
51.存储设备530能够为系统500提供大容量存储。在一些实现中,存储设备530是计算机可读介质。在各种不同的实现中,存储设备530可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如云存储设备)、或一些其他大容量存储设备。
52.输入/输出设备540为系统500提供输入/输出操作。在一些实现中,输入/输出设备540可以包括网络接口设备中的一个或多个,例如以太网卡、串行通信设备(例如,rs-232端口)、和/或无线接口设备(例如,802.11卡)。在另一个实现中,输入/输出设备可以包括被配
置为接收输入数据并将输出数据发送到外部设备460的驱动器设备,例如,键盘、打印机和显示设备。然而,也可以使用其他实现,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
53.尽管已经在图5中描述了示例处理系统,本说明书中描述的主题和功能操作的实现可以在其他类型的数字电子电路中,或在计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等同,或其中一个或多个的组合。
54.本说明书中描述的主题和操作的实施例可以在数字电子电路或计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等同,或其中一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,编码在计算机存储介质上,用于由数据处理装置执行或控制数据处理装置的操作。计算机存储介质(或介质)可能是暂时性的或非暂时性的。可选地或附加地,程序指令可在人工生成的传播信号上编码,例如,机器生成的电、光或电磁信号,生成该信号以编码信息用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备,或其中一个或多个的组合。此外,虽然计算机存储介质不是传播信号,但计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包含在一个或多个单独的物理组件或介质(例如,多个cd、磁盘或其他存储设备)中。
55.本说明书中描述的操作可以实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
56.术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,包括例如可编程处理器、计算机、片上系统、或前述一个或多个的组合。该装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或其中一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。
57.计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序、对象或其他适合在计算环境中使用的单元。计算机程序可以但不需对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件中、或者多个协调文件中(例如存储一个或多个模块、子程序或部分代码的文件)。可以部署计算机程序以在一个计算机或者位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上执行。
58.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。
59.适合于执行计算机程序的处理器包括例如通用和专用微处理器。通常,处理器将
从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备(例如,磁盘、磁光盘或光盘)或可操作地耦合以从其接收数据或向其传输数据或两者皆有。然而,计算机不需具备这种设备。此外,计算机可以嵌入到其他设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器),仅举几例。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cd-rom和dvd-rom碟片。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
60.为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备、键盘和定点设备的计算机上实现,例如,crt(阴极射线管)或lcd(液晶显示器)监视器的显示设备用于向用户显示信息,用户可以通过例如鼠标或轨迹球的键盘和定点设备向计算机提供输入。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;来自用户的输入可以以任何形式接收,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从其接收文档来与用户交互;例如,通过将网页发送到用户客户端设备处的web浏览器,以响应从web浏览器收到的请求。
61.本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实现进行交互;或者包括一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信互连,例如通信网络。通信网络的示例包括局域网络(“lan”)和广域网络(“wan”)、互联网络(例如,互联网)和对等网络(例如ad hoc点对点对等网络)。
62.计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是凭借在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而生成的。在一些实施例中,服务器将数据(例如,html页面)传输至客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。
63.虽然本说明书包含许多具体的实施细节,但这些不应被解释为对任何发明的范围或可能要求保护的内容的限制,而是对特定发明的特定实施例特有的特征的描述。在本说明书中单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可能在上文中被描述为在某些组合中起作用,并且甚至最初如此要求保护,但在某些情况下,来自要求保护的组合的一个或多个特征可以从组合中删除,并且要求保护的组合可能针对子组合或子组合的变体。
64.类似地,虽然在附图中以特定顺序描绘了操作,但这不应理解为需要以所示特定
顺序或按依次顺序执行此类操作,或者执行所有所示操作以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中各个系统组件的独立不应理解为在所有实施例中都需要这样的独立,而应理解的是所描述的程序组件和系统一般可以一起集成在单个软件产品中或打包成多个软件产品。
65.因此,本主题的特定实施例已经进行了描述。其他实施例在以下权利要求的范围内。在某些情况下,权利要求中所列的动作可以以不同的顺序执行,并且仍能达到期望的结果。此外,附图中描绘的过程不一定需要所示的特定顺序或依次顺序来获得期望的结果。在某些实现中,多任务和并行处理可能是有利的。
再多了解一些

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

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

相关文献