首页 / 专利库 / 信号处理 / 信号处理 / 音频信号处理 / 音频分割 / 用于从多个图像帧生成概要故事板的系统和方法

用于从多个图像生成概要故事板的系统和方法

阅读:672发布:2020-05-16

专利汇可以提供用于从多个图像生成概要故事板的系统和方法专利检索,专利查询,专利分析的服务。并且本公开提供了从多个图像 帧 生成概要故事板的系统和方法。示例计算机实施的方法可以包括将多个图像帧输入到 机器学习 的模型中,并且接收描述在多个图像帧中识别的多个对象的相应 位置 的对象数据,作为机器学习的模型的输出。该方法可以包括生成分别包括多个对象的多个图像裁剪,并且布置多个图像裁剪中的两个或更多个以生成故事板。,下面是用于从多个图像生成概要故事板的系统和方法专利的具体信息内容。

1.一种计算机实施的方法,所述方法包括:
由一个或多个计算设备将多个图像输入到机器学习的模型中;
由所述一个或多个计算设备接收描述在所述多个图像帧中识别的多个对象的相应位置的对象数据,作为机器学习的模型的输出;
由所述一个或多个计算设备生成分别包括所述多个对象的多个图像裁剪;和由所述一个或多个计算设备布置所述多个图像裁剪中的两个或更多个以生成故事板。
2.根据权利要求1所述的计算机实施的方法,还包括:
由所述一个或多个计算设备提供所述故事板以向用户显示。
3.根据任一前述权利要求所述的计算机实施的方法,其中:
所述一个或多个计算设备包括智能手机;和
所述故事板具有和与所述智能手机的显示屏相关联的屏幕纵横比相匹配的故事板纵横比。
4.根据任一前述权利要求所述的计算机实施的方法,还包括:
由所述一个或多个计算设备将格化效果应用于被布置来形成所述故事板的两个或更多个图像裁剪。
5.根据任一前述权利要求所述的计算机实施的方法,还包括,在所述输入之前:
由一个或多个计算设备接收视频;
由所述一个或多个计算设备从所述视频中选择所述多个图像帧,以形成概述所述视频的概要帧集。
6.根据任一前述权利要求所述的计算机实施的方法,还包括:
由所述一个或多个计算设备将所述视频分割成多个视频片段
其中,由所述一个或多个计算设备从所述视频中选择所述多个图像帧包括从所述多个视频片段中的每一个中选择至少一个图像帧,以形成概述所述视频的概要帧集。
7.根据权利要求6所述的计算机实施的方法,其中,由所述一个或多个计算设备将所述视频分割成所述多个视频片段包括以下之一:
由所述一个或多个计算设备将所述视频分割成多个长度相等的视频片段;
由所述一个或多个计算设备至少部分基于在所述视频内检测到的运动将所述视频分割成所述多个视频片段;
由所述一个或多个计算设备至少部分基于在所述视频内检测到的场景变化将所述视频分割成所述多个视频片段;和
由一个或多个计算设备至少部分地基于在所述视频内检测到的对象将所述视频分割成所述多个视频片段。
8.根据任一前述权利要求所述的计算机实施的方法,其中,所述多个图像帧包括来自编码的视频的多个关键帧。
9.根据权利要求5所述的计算机实施的方法,其中,由所述一个或多个计算设备从所述视频中选择所述多个图像帧包括以下之一:
由所述一个或多个计算设备至少部分基于在所述视频内检测到的运动从所述视频中选择所述多个图像帧;
由所述一个或多个计算设备至少部分基于在所述视频内检测到的场景变化从所述视频中选择所述多个图像帧;
由所述一个或多个计算设备至少部分基于在所述视频内检测到的对象从所述视频中选择所述多个图像帧;和
由所述一个或多个计算设备至少部分基于消除相似图像帧来从所述视频中选择所述多个图像帧。
10.根据任一前述权利要求所述的计算机实施的方法,其中:
由所述一个或多个计算设备接收所述对象数据包括,由所述一个或多个计算设备接收描述在所述多个图像帧中识别的多个对象的相应位置的多个边界形状;和由所述一个或多个计算设备生成所述多个图像裁剪包括,由所述一个或多个计算设备至少部分基于所述多个边界形状生成所述多个图像裁剪。
11.根据任一前述权利要求所述的计算机实施的方法,其中,由所述一个或多个计算设备布置所述多个图像裁剪中的两个或更多个以生成所述故事板包括:
由所述一个或多个计算设备获得故事板模板,所述故事板模板包括若干面板,每个面板具有相应的面板纵横比;和
由所述一个或多个计算设备至少部分基于与至少两个或更多个图像裁剪相关联的相应裁剪纵横比和与所述面板中的至少两个相关联的相应面板纵横比的比较,来选择所述多个图像裁剪中的两个或更多个以插入到所述故事板模板中。
12.根据任一前述权利要求所述的计算机实施的方法,其中,由所述一个或多个计算设备布置所述多个图像裁剪中的两个或更多个以生成所述故事板包括:
由所述一个或多个计算设备根据时间顺序布置所述多个图像裁剪中的两个或更多个。
13.根据任一前述权利要求所述的计算机实施的方法,其中:
由所述一个或多个计算设备接收对象数据作为所述机器学习的模型的输出包括,由所述一个或多个计算设备接收分别描述在所述多个图像帧中识别的多个对象的多个语义标签作为所述机器学习的模型的输出;和
由所述一个或多个计算设备布置所述多个图像裁剪中的两个或更多个以生成所述故事板包括,由所述一个或多个计算设备至少部分基于所述多个语义标签选择所述多个图像裁剪中的两个或更多个。
14.根据权利要求13所述的计算机实施的方法,还包括:
由所述一个或多个计算设备至少部分地基于所述语义标签中的至少一个来应用音频图形,所述语义标签描述包括在所述多个图像裁剪中的两个或更多个图像裁剪中的至少一个中的至少一个对象。
15.根据任一前述权利要求所述的计算机实施的方法,其中,由所述一个或多个计算设备布置所述多个图像裁剪中的两个或更多个以生成所述故事板包括:
由所述一个或多个计算设备选择描绘运动中的同一对象的多个图像裁剪中的两个或更多个。
16.一种处理视频文件的计算机实施的方法,所述视频文件包括多个图像帧,所述方法包括:
由处理器从所述多个图像帧中选择若干图像帧;
由所述处理器从多个预存图像布局中选择图像布局,每个图像布局包括对应于所述若干图像帧的若干图像占位符;
由所述处理器使用机器学习的对象检测模型来检测所述若干图像帧中的每一个中的对象的位置;
由所述处理器基于在所述图像帧内的检测到的相应对象的位置来裁剪每个关键图像帧;
由所述处理器通过将多个裁剪的图像帧中的一个插入到所选择的图像布局中的每个图像占位符中,来将所述多个裁剪的图像帧与所选择的图像布局组合以生成输出图像;和由所述处理器输出所生成的输出图像用于显示。
17.根据权利要求16所述的方法,其中,所述选择若干图像帧包括基于所述视频文件的经过时间、所述视频文件中的检测到的运动、所述视频文件中的检测到的场景变化或所述视频文件中检测到的一个或多个对象中的一个或多个来选择至少一个图像帧。
18.根据权利要求16至17中任一项所述的方法,其中,所述选择若干图像帧包括,基于在选择的图像帧中的检测到的运动模糊、检测到的焦点模糊、检测到的曝光过度、检测到的曝光不足或者检测到所选择的图像帧与先前选择的图像帧的相似性中的一个或多个,来丢弃所选择的图像帧和选择替换图像帧。
19.根据权利要求16至18中任一项所述的方法,其中,当在所选择的图像帧中检测到多个对象时,检测对象的位置包括:
基于所述对象的尺寸或形状、基于对象识别模型或基于随机选择来选择多个检测到的对象中的一个。
20.一种计算机系统,包括:
一个或多个处理器;和
一个或多个非暂时性计算机可读介质,所述计算机可读介质存储指令,当所述指令被所述一个或多个处理器执行时,使得所述计算机系统执行操作,所述操作包括:
从视频中选择多个图像帧;
将所述多个图像帧输入到机器学习的模型中;
接收多个图像裁剪作为所述机器学习的模型的输出;
布置所述多个图像裁剪中的两个或更多个以生成故事板;和
提供所述故事板以向用户显示。

说明书全文

用于从多个图像生成概要故事板的系统和方法

技术领域

[0001] 本公开总体上涉及视频和图像概要。更具体地,本公开涉及从多个图像帧生成概要故事板(storyboard)。

背景技术

[0002] 生成图像集合或视频的图形概要可能既慢又乏味。例如,生成图形概要通常需要大量的计算资源,这使得在资源有限的设备(诸如智能手机)上执行这样的任务变得困难或不切实际。此外,生成这样的概要可能需要大量的用户输入,包括例如图像选择、图像布置等。发明内容
[0003] 本公开的实施例的方面和优点将在以下描述中部分阐述,或者可以从描述中获知,或者可以通过实施例的实践获知。
[0004] 本公开的一个示例方面针对从多个图像帧生成概要故事板的系统和方法。示例计算机实施的方法可以包括将多个图像帧输入到机器学习的模型中,并且接收描述在多个图像帧中识别的多个对象的相应位置的对象数据,作为机器学习的模型的输出。该方法可以包括生成分别包括多个对象的多个图像裁剪,并且布置该多个图像裁剪中的两个或更多个以生成故事板。
[0005] 本公开的另一示例方面针对一种处理视频文件的计算机实施的方法。视频文件可以包括多个图像帧。该方法可以包括从多个图像帧中选择若干图像帧。该方法可以包括从多个预存图像布局中选择图像布局,并且每个图像布局可以包括对应于该若干图像帧的若干图像占位符。该方法可以包括使用机器学习的对象检测模型来检测对象在该若干图像帧的每一个中的位置。该方法可以包括基于在图像帧内的检测到的相应对象的位置来裁剪每个关键图像帧。该方法可以包括通过将多个裁剪的图像帧中的一个插入到所选择的图像布局中的每个图像占位符中,来将多个裁剪的图像帧与所选择的图像布局组合以生成输出图像。该方法可以包括输出生成的输出图像用于显示。
[0006] 本公开的另一示例方面针对包括一个或多个处理器和一个或多个非暂时性计算机可读介质的计算机系统,计算机可读介质存储指令,当指令被一个或多个处理器执行时,使得计算机系统执行操作。操作包括从视频中选择多个图像帧,并将多个图像帧输入机器学习的模型。操作包括接收多个图像裁剪作为机器学习的模型的输出,并且布置多个图像裁剪中的两个或更多个以生成故事板。操作包括提供故事板以向用户显示。
[0007] 本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户界面电子设备。
[0008] 参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。结合在本说明书中并构成其一部分的附图图示了本公开的示例实施例,并且与说明书一起用于解释相关原理。

附图说明

[0009] 在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
[0010] 图1A描绘了根据本公开的示例方面的生成故事板的示例计算系统的框图
[0011] 图1B描绘了根据本公开的示例方面的生成故事板的示例计算系统的框图;
[0012] 图1C描绘了根据本公开的示例方面的生成故事板的示例计算系统的框图;
[0013] 图2描绘了根据本公开的示例方面的示例故事板生成器的框图;
[0014] 图3A和图3B描绘了根据本公开的示例方面的用于生成故事板的方法的示例实施例的流程图
[0015] 图4A和图4B描绘了根据本公开的示例方面的用于生成故事板的方法的示例实施例的流程图;和
[0016] 图5描绘了根据本公开的示例方面的用于生成故事板的示例方法的流程图。
[0017] 在多个图中重复的参考数字旨在标识各个实施方式中的相同特征。

具体实施方式

[0018] 概述
[0019] 通常,本公开针对从多个图像帧生成概要故事板(storyboard)的系统和方法。例如,多个图像帧可以被包括在图像集合或相册中或从图像集合或相册中选择,或者多个图像可以是从视频中选择的多个图像帧。然而,多个图像帧可以是任何合适的视觉内容,包括例如gif图像、多媒体、立体视觉内容、全景图等。在一些实施方式中,本公开的系统和方法可以包括或以其他方式利用一个或多个机器学习的模型(machine-learned model)的使用。例如,在一些实施方式中,可以训练机器学习的对象识别模型来接收多个图像帧并输出描述在该多个图像帧中识别的多个对象的相应位置的对象数据。本公开的系统和方法可以生成分别包括多个对象的多个图像裁剪,并且可以布置该多个图像裁剪中的两个或更多个来生成故事板。因此,本文描述的系统和方法可以以故事板的形式生成多个图像(例如,视频)的简明图形概要。特别地,本文描述的系统和方法可以使用最少的计算资源生成故事板,这可以导致相对于其他视频概要技术更快和更有效的执行。例如,根据本公开的各方面,在一些实施方式中,由于减少的计算需求,本文描述的方法可以在诸如智能手机的用户计算设备上快速执行。这样,本公开的各方面可以提高视频概要生成的可访问性,包括例如计算不可用或以其他方式不期望的场景中(例如,出于提高用户隐私和/或降低通信成本的原因)。
[0020] 更具体地,本公开的各方面提供了由计算系统实施或以其他方式执行的视频概要方法。在一个示例中,服务器计算设备(例如,搜索服务器)可以实施本文描述的方法,以基于用户在用户计算设备(例如,智能手机)上上传的或者以其他方式从云存储位置访问的视频或相册来提供故事板。作为另一示例,单个计算设备,诸如例如用户计算设备(例如智能手机、平板电脑、个人助理设备等)可以实施本文描述的方法,以在用户设备上本地生成故事板(例如,不连接到服务器计算设备),并且可以通过例如在用户计算设备的显示器上显示故事板来向用户提供故事板。
[0021] 根据本公开的一个方面,概要故事板可以从多个图像生成。在一些实施方式中,计算系统可以获得视频,并且可以从视频中选择多个图像帧以形成概述该视频的概要帧集。在其他实施方式中,多个图像可以包括图像相册(例如,由用户生成的图像相册和/或基于公共场景、公共捕获时间帧和/或其他图像特性自动生成的图像相册)或从图像相册中选择。
[0022] 在一些实施方式中,为了选择多个图像帧,计算系统可以将视频分割成多个视频片段。在一些实施方式中,可以从多个视频片段中的每一个中选择至少一个图像帧,以形成概述视频的概要帧集。然而,可以从任意数量的视频片段中选择任意数量的图像帧。
[0023] 在一些实施方式中,视频可以被分割成多个长度相等的视频片段。在其他实施方式中,计算系统可以至少部分基于(1)在视频内检测到的运动,(2)在视频内检测到的场景变化,和/或(3)在视频内检测到的对象,来将视频分割成多个视频片段和/或从视频中选择多个图像帧。
[0024] 因此,作为一个示例,计算系统可以将视频输入运动检测模型。运动检测模型可以被训练以输出描述与视频中识别的对象相关联的运动信息的运动数据。运动数据可用于将视频分割成多个视频片段和/或选择某些图像(例如,用于包括在概要帧集中)。
[0025] 作为另一示例,视频可以被分割成多个视频片段和/或多个图像帧可以至少部分地基于在视频内检测到的场景变化来选择。例如,可以比较视频内的相邻帧,以检测构图、照明等的变化,并且这种检测到的变化可以用于识别场景变化。这样,该方法可以提供故事板,该故事板更好地概述包含在视频的各个场景内的信息。
[0026] 作为又一示例,如下文将进一步讨论的,基于在图像帧内检测到的对象,可以分割视频和/或可以选择图像帧。例如,如下文将进一步讨论的,视频或图像相册中包括的一些或所有图像帧可以被输入到机器学习的对象识别模型中,该模型检测图像内的对象。基于某些对象在某些图像内的存在,可以选择这些图像(例如,用于包括在概要帧集中)。
[0027] 在其他实施方式中,该方法可以包括选择多个图像帧以形成概要帧集,而不将视频分割成多个视频片段。例如,在一些实施方式中,多个图像帧可以包括来自编码的视频的多个关键帧。例如,在一些实施方式中,关键帧可以均匀分布在整个视频中。因此,选择关键帧可以使得多个图像帧相对于视频具有均匀的时间分布。在一些实施方式中,这种选择可以提供多个图像,这些图像充分概述了包含在视频内的信息,同时最小化了执行这种选择所涉及的计算需求。这样,该方法可以提供快速和有效的故事板生成。在进一步的实施方式中,考虑选择到概要帧集中的图像限于视频的关键帧。
[0028] 根据本公开的另一方面,包括重复或接近重复(near-duplicate),故事板内的图像可能不提供任何额外信息,因此,可能降低故事板在概述视频中的有效性。这样,在一些实施方式中,作为图像帧选择过程的一部分,计算系统可以从故事板中消除相似的图像。这种消除可以发生在任何合适的阶段。例如,在将多个图像输入到机器学习的对象识别模型之前,可以从多个图像中消除图像。
[0029] 作为一个示例,在一些实施方式中,该方法可以采用修改感知散列(perceptual hashing)来检测和消除非常相似的图像。例如,修改的感知散列可以包括将图像转换成灰度,将灰度图像缩减成低分辨率版本,计算描述低分辨率版本的垂直和/或平梯度,以及比较所得的梯度。具体地,在一些实施方式中,缩减可以包括按因子2来递归缩减,直到图像的分辨率达到最接近的缩放因子,然后应用最终区域过滤器缩减。这可以允许使用比传统缩减技术更少的计算能来将图像缩减到低分辨率版本。
[0030] 作为另一示例,在一些实施方式中,计算系统可以基于图像质量来消除图像,图像质量可以包括曝光、对比度和/或模糊度等。例如,在一些实施方式中,锐度度量可以基于图像的二次采样梯度(subsampled gradient)(例如,中心、前向或后向差梯度)来计算。这种方式可以提供检测模糊图像的有效方法,该方法涉及低计算需求。在其他实施例中,可以采用图像评级(image-rating)机器学习的模型来对图像的锐度进行评分或评级。例如,可以训练诸如卷积神经网络的神经网络来接收图像作为输入,并输出描述图像锐度的锐度度量。
[0031] 根据本公开的另一方面,计算系统(例如,服务器计算设备和/或用户计算设备)可以将多个图像(例如,形成概要帧集的所选择的图像)输入到机器学习的对象识别模型中。计算系统可以接收对象数据作为机器学习的对象识别模型的输出,该对象数据包括描述在多个图像帧中识别的多个对象的相应位置的多个边界形状。
[0032] 计算系统可以至少部分基于多个边界形状来生成多个图像裁剪。例如,对于对象周围的每个边界形状,计算系统可以在这种边界形状的周界(perimeter)周围添加一定的边距(margin)(例如,20个像素、边界形状高度/宽度的10%或一些其他边距),然后提取(例如,通过裁剪)边界形状加上外部边距。在其他实施方式中,边界框被简单地提取,而没有添加任何边距。可以为检测到一个或多个对象的每个图像帧提取一个或多个图像裁剪。
[0033] 类似于消除上面讨论的类似图像帧,在一些实施例中,可以识别和消除(例如,丢弃)重复或接近重复的图像裁剪。例如,上述用于识别相似图像帧的任何技术也可以用于识别和丢弃相似图像裁剪。在一些实施方式中,可以在生成故事板期间的任何合适阶段消除重复的图像。
[0034] 根据本公开的另一方面,计算系统可以布置多个图像裁剪中的两个或更多个来生成故事板。作为一个示例,在一些实施方式中,为了生成故事板,计算系统可以获得包括若干面板的故事板模板。每个面板可以具有相应的面板纵横比,并且至少部分基于纵横比的比较,可以选择多个图像裁剪中的两个或更多个以插入到故事板模板中。例如,计算系统可以将与至少两个或更多个图像裁剪相关联的相应裁剪纵横比和与面板中的至少两个相关联的相应面板纵横比进行比较。换句话说,计算系统可以尝试基于图像裁剪与故事板面板之间相应纵横比的匹配程度来将图像裁剪与故事板面板匹配。
[0035] 这样,在一些实施方式中,计算系统可以有效地选择多个图像内的感兴趣区域以包括在故事板中。此外,在一些实施例中,该方法可以用最小的计算需求来做到这一点。例如,与在生成多个图像裁剪时考虑故事板的纵横比相比,生成多个图像裁剪然后选择子集(即,两个或更多个)以包含在故事板中可能需要更少的计算能力。
[0036] 在一些实施方式中,故事板模板可以从故事板模板的预定集中选择。例如,在一些实施方式中,故事板模板可以从故事板模板的预定集中随机选择。然而,在其他实施例中,故事板模板可以基于控制故事板模板的各种特性的一组规则(诸如面板的数量、最大和/或最小面板尺寸以及故事板内面板的允许布置)来生成。因此,在一些示例中,故事板模板可以基于图像裁剪的大小和/或形状、检测到的运动的量和类型、视频(例如,肖像或景)的原始纵横比等来选择(例如,通过执行优化过程)。
[0037] 在一些实施方式中,计算系统可以根据时间顺序(chronological order)布置多个图像裁剪中的两个或更多个。这样,生成的故事板可以保留视频内包含的信息的“故事”方面。
[0038] 另外,在一些实施方式中,计算系统可以接收分别描述在多个图像帧中识别的多个对象的多个语义标签作为机器学习的对象识别模型的输出。计算系统可以通过至少部分地基于多个语义标签来选择多个图像裁剪中的两个或更多个来布置多个图像裁剪中的两个或更多个,以生成故事板。
[0039] 在一些实施方式中,计算系统可以至少部分地基于语义标签中的至少一个来应用音频图形,该语义标签描述包括在多个图像裁剪中的两个或更多个图像裁剪中的至少一个中的至少一个对象。例如,在一些实施方式中,语义标签可以是对象类别(例如,汽车、人等),并且音频图形可以指示一个动作(例如,汽车的“呜呜声”)或一个口头语言(例如,已经被标记为说话的人的面部旁边的对话气泡)。
[0040] 作为另一示例,计算系统可以选择描绘运动中的同一对象的多个图像裁剪中的两个或更多个。例如,如果两个或更多个图像裁剪显示一个对象,诸如运动中的儿童玩具车,则选择两个或更多个图像裁剪用于包含在故事板中可以导致故事板提供在若干面板上显示运动中的对象的视觉效果,这可以具有“讲述”故事的效果。
[0041] 作为另一示例,在一些实施方式中,该方法还可以包括将风格化效果(stylization effect)应用于被布置来形成故事板的两个或更多个图像裁剪。在一些实施方式中,风格化效果可以被配置为提供喜剧样的外观并提高故事板的视觉吸引力。这样的故事板可以有美学上令人愉悦的外观。作为示例,风格化效果可以通过应用一个或多个过滤器(例如,双向过滤器)来实现。在一些实施方式中,用户可以选择所应用的风格化效果和/或过滤器。
[0042] 根据本公开的各方面,在一些实施方式中,智能手机可以生成故事板。在一些这样的实施方式中,故事板可以具有和与智能手机的显示屏相关联的屏幕纵横比相匹配的故事板纵横比。因此,例如,故事板可以提供视频的概要,同时仍然能够在单个显示屏上显示。
[0043] 在一些实施方式中,该方法可以包括提供故事板以向用户显示,并接收来自用户的反馈。例如,在一些实施方式中,故事板可以在智能手机上向用户显示,并且如果用户希望保留故事板(例如,存储、共享等),用户可以例如通过在智能手机的触摸屏界面上沿第一方向滑动来指示这一点。然而,如果用户不想保留故事板,用户可以在第二方向滑动。
[0044] 响应于从用户接收到指示用户不希望保留故事板的反馈,可以生成新的故事板。新的故事板可以不同于原始故事板。例如,在一些实施方式中,某些输入可以在潜在输入的预定集内随机化或随机变化。例如,可以使用来自视频的图像的新选择、经由对象识别模型识别对象的新参数、新的故事板模板、新的风格化效果等来生成新的故事板。此外,因为所公开的方法的各方面提供了有效的操作,所以新的故事板可以例如在用户设备(例如智能手机)上本地快速生成。这样,用户能够快速生成新的故事板,直到用户找到一个吸引人的故事板。
[0045] 如上所述,根据本公开的各方面,该方法可以在具有低计算需求的一个或多个计算设备上执行。
[0046] 此外,生成概述多个图像(诸如视频)的故事板可以有许多用途。例如,这种故事板可能能够比观看整个视频更有效地向用户传达视频内包含的信息。此外,这种故事板(例如,以图像文件的形式)可以以比视频文件更节省空间的方式存储信息。在一些实施方式中,故事板可以有效地提供视频或图像文件的“压缩”版本,使得与原始文件相比,传输压缩版本需要更少的带宽。此外,如上所述,本公开的各方面可以提供一种方法,用于使用比以其他方式所需更少的计算资源来生成故事板。这样,例如,用户可以在具有有限资源的本地计算设备(诸如智能手机)上执行这样的方法。这可以允许用户快速生成概述视频的故事板,即使在访问云计算不可用、受限或极其缓慢的情况下。最后,例如,在智能手机上本地快速生成故事板的能力可以提供额外的好处。例如,用户可以从相同的输入视频中快速生成新的和不同的故事板。这可以允许用户快速生成视觉上吸引人的故事板,而不必手动选择或改变与执行该方法相关联的输入参数。
[0047] 这样,所公开的方法可以提供概述输入视频文件内容的输出图像。以输出图像的形式提供的令人难忘的概要可以允许用户在更短的时间内识别视频文件,例如,从视频文件列表中选择视频文件。这样,提供根据该方法生成的一个或多个输出图像可以提供与一个或多个视频文件相关的更有效的用户体验。用户体验的这种改善可以导致例如移动设备中的特定优势,其中改善的用户体验可以减少用户完成与设备的交互所需的时间,这可以导致设备的活动时间的减少以及设备功耗的相应降低。通过使用基于帧内的检测到的对象位置而裁剪的所选择的关键图像帧来生成输出图像,视频文件概要可以特别基于其中检测到的一个或多个对象。这种检测到的对象可以容易地被用户识别,因此可以使用高效的计算过程来生成令人难忘的视频概要。该方法可以生成输出图像,而无需对视频文件进行详细的计算分析,从而降低了显示视频文件概要的处理要求,并因此降低了功耗要求。
[0048] 本公开的系统和方法的其他示例用途包括:查看视频镜头(footage)(例如,安全镜头)、社交媒体应用或期望具有低计算要求的视频概要的其他实例。
[0049] 现在参考附图,将进一步详细讨论本公开的示例实施例。
[0050] 示例设备和系统
[0051] 图1A描绘了示例计算系统100的框图,该示例计算系统100可以被配置为实施或以其他方式执行本公开的系统和方法。系统100可以包括通过网络180通信耦合的用户计算设备102、服务器计算系统130和/或训练计算系统150。
[0052] 用户计算设备102可以是任何类型的计算设备,诸如,例如个人计算设备(例如膝上型或台式)、移动计算设备(例如智能手机或平板电脑)、游戏控制台或控制器可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
[0053] 用户计算设备102可以包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等)并且可以是可操作地连接的一个处理器或多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等、以及它们的组合。存储器114可以存储由处理器112执行的数据116和指令118,以使用户计算设备102执行操作。
[0054] 用户计算设备102可以存储或包括一个或多个机器学习的模型120,诸如机器学习的对象识别模型和/或运动检测模型。例如,(多个)机器学习的模型120可以是或以其他方式是神经网络或其他多层非线性模型。在一些实施方式中,神经网络可以包括递归神经网络(例如,长短期记忆递归神经网络)、序列对序列(sequence-to-sequence)神经网络、前馈神经网络或任何其他合适形式的神经网络。
[0055] 在一些实施方式中,一个或多个机器学习的模型120可以通过网络180从服务器计算系统130接收,存储在用户计算设备存储器114中,并且由一个或多个处理器112使用或以其他方式实施。在一些实施方式中,用户计算设备102可以实施单个机器学习的模型120的多个并行实例(例如,跨机器学习的模型120的多个实例执行并行的对象或运动识别)。
[0056] 用户计算设备102可以存储或包括一个或多个故事板生成器122。(多个)故事板生成器122可以被配置为从多个图像帧生成一个或多个概要故事板。例如,在一些实施例中,(多个)故事板生成器122可以接收描述在多个图像帧中识别的多个对象的相应位置的对象数据,作为(多个)机器学习的对象识别模型120的输出。在一些实施例中,(多个)故事板生成器122可以生成分别包括多个对象的多个图像裁剪,并且可以布置多个图像裁剪中的两个或更多个来生成故事板,如下面参考图3-图5更详细讨论的。
[0057] 在一些实施方式中,一个或多个故事板生成器122可以通过网络180从服务器计算系统130接收,存储在用户计算设备存储器114中,并且由一个或多个处理器112使用或以其他方式实施。在一些实施方式中,用户计算设备102可以实施(多个)单个故事板生成器122的多个并行实例(例如,从多个图像帧生成一个或多个概要故事板)。
[0058] 额外地或替代地,一个或多个机器学习的模型140和/或(多个)故事板生成器142可以被包括在根据客户端-服务器关系与用户计算设备102通信的服务器计算系统130中或者以其他方式由服务器计算系统130存储和实施。例如,机器学习的模型140和/或(多个)故事板生成器142可以由服务器计算系统140实施为网络服务(例如,个人助理服务)的一部分。因此,一个或多个模型120可以在用户计算设备102处存储和实施,和/或一个或多个模型140可以在服务器计算系统130处存储和实施。类似地,一个或多个故事板生成器122可以在用户计算设备102处存储和实施,和/或一个或多个故事板生成器142可以在服务器计算系统130处存储和实施。
[0059] 故事板生成器122包括用于提供所需功能的计算机逻辑。故事板生成器122可以用控制通用处理器的硬件固件和/或软件来实施。例如,在一些实施方式中,故事板生成器122包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,故事板生成器122包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,诸如RAM硬盘或光学或磁性介质。
[0060] 用户计算设备102还可以包括接收用户输入的一个或多个用户输入组件124。例如,用户输入组件124可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。触敏组件可以用来实施虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或用户可以通过其输入通信的其他手段。在一些实施例中,用户输入组件124可以包括照相机(例如,正面或背面智能手机照相机)。
[0061] 服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等)并且可以是可操作地连接的一个处理器或多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等、以及它们的组合。存储器134可以存储由处理器132执行的数据136和指令138,以使服务器计算系统130执行操作。
[0062] 在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或者以其他方式由一个或多个服务器计算设备实施。在服务器计算系统130包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算体系结构、并行计算体系结构或它们的某种组合来操作。
[0063] 如上所述,服务器计算系统130可以存储或以其他方式包括一个或多个机器学习的模型140。例如,机器学习的模型140可以是或可以以其他方式包括各种机器学习的模型,诸如神经网络(例如,递归神经网络)或其他多层非线性模型。参考图2讨论示例模型140。
[0064] 服务器计算系统130可以经由与通过网络180通信耦合的训练计算系统150的交互来训练模型140。训练计算系统150可以与服务器计算系统130分离,或者可以是服务器计算系统130的一部分。
[0065] 如上所述,服务器计算系统130可以存储或以其他方式包括一个或多个故事板生成器142。参考图3-图5讨论示例故事板生成器142。
[0066] 训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等)并且可以是可操作地连接的一个处理器或多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等、以及它们的组合。存储器154可以存储由处理器152执行的数据156和指令158,以使训练计算系统150执行操作。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备或者以其他方式由一个或多个服务器计算设备实施。
[0067] 训练计算系统150可以包括模型训练器160,模型训练器160使用各种训练或学习技术,诸如,例如错误的反向传播,来训练存储在服务器计算系统130中的机器学习的模型140。在一些实施方式中,执行错误的反向传播可以包括随着时间的推移执行截断的反向传播。模型训练器160可以执行若干泛化技术(generalization technique)(例如,权重衰减、丢失(dropout)等)来提高被训练模型的泛化能力。
[0068] 特别地,模型训练器160可以基于一组训练对象数据162训练机器学习的对象识别模型140。训练数据162可以包括例如一组训练图像和一组训练对象数据,该组训练对象数据描述在该组训练图像中描绘的多个对象的相应位置。
[0069] 模型训练器160包括用于提供所需功能的计算机逻辑。模型训练器160可以用控制通用处理器的硬件、固件和/或软件来实施。例如,在一些实施方式中,模型训练器160包括存储在存储设备上、加载到存储器中并由一个或多个处理器执行的程序文件。在其他实施方式中,模型训练器160包括一组或多组计算机可执行指令,这些指令存储在有形的计算机可读存储介质中,诸如RAM硬盘或光学或磁性介质。
[0070] 网络180可以是任何类型的通信网络,诸如局域网(例如内联网)、广域网(例如互联网)或它们的一些组合,并且可以包括任何数量的有线或无线链路。一般地,网络180上的通信可以经由任何类型的有线和/或无线连接,使用各种各样的通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL)来承载。
[0071] 图1A示出了可用于实施本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实施方式中,用户计算设备102可以包括模型训练器160和训练数据集162。在这样的实施方式中,模型120可以在用户计算设备102处被本地训练和使用。在一些这样的实施方式中,用户计算设备102可以实施模型训练器160,以基于用户特定的数据个性化模型120。
[0072] 图1B描绘了根据本公开的示例实施例执行的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。
[0073] 计算设备10包括若干应用(例如,应用1至应用N)。每个应用都包含其自己的机器学习库和(多个)机器学习的模型。例如,每个应用可以包括机器学习的模型。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。
[0074] 如图1B所示,每个应用可以与计算设备的若干其他组件通信,诸如,例如一个或多个传感器(例如,照相机)、上下文管理器、设备状态组件和/或额外组件。在一些实施方式中,每个应用可以使用API(例如,公共API)与每个设备组件通信。在一些实施方式中,由每个应用使用的API是特定于该应用的。
[0075] 图1C描绘了根据本公开的示例实施例执行的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。
[0076] 计算设备50包括若干应用(例如,应用1至应用N)。每个应用都与一个中央智能层通信。示例应用包括文本消息应用、电子邮件应用、听写应用、虚拟键盘应用、浏览器应用等。在一些实施方式中,每个应用可以使用API(例如,所有应用中的公共API)与中央智能层(以及存储在其中的(多个)模型)通信。
[0077] 中央智能层包括若干机器学习的模型。例如,如图1C所示,可以为每个应用提供相应的机器学习的模型(例如,对象识别模型),并由中央智能层管理。在其他实施方式中,两个或更多个应用可以共享单个机器学习的模型。例如,在一些实施方式中,中央智能层可以为所有应用提供单个模型(例如,单个对象识别模型)。在一些实施方式中,中央智能层被包括在计算设备50的操作系统内或者以其他方式由计算设备50的操作系统实施。
[0078] 中央智能层可以与中央设备数据层通信。中央设备数据层可以是用于计算设备50的集中数据储存库。如图1C所示,中央设备数据层可以与计算设备的若干其他组件通信,诸如,例如一个或多个传感器、上下文管理器、设备状态组件和/或额外组件。在一些实施方式中,中央设备数据层可以使用API(例如,专用API)与每个设备组件通信。
[0079] 示例模型布置
[0080] 图2描绘了根据本公开的示例实施例的示例故事板生成器200的框图。在一些实施方式中,故事板生成器可以包括机器学习的对象识别模型202和故事板生成器模型204。
[0081] 在一些实施方式中,机器学习的对象识别模型202可以被训练成接收多个图像帧206并输出对象数据208,对象数据208描述在多个图像帧206中识别的多个对象的相应位置。例如,多个图像帧206可以被包括在图像集合或相册中或从其中选择。在一些实施例中,多个图像可以是从视频中选择的多个图像帧。然而,多个图像帧可以是任何合适的视觉内容。在一些实施方式中,机器学习的对象识别模型202可以被配置为深层神经网络(参见Liu,Wei et al.SSD:Single Shot MultiBox Detector.In European conference on computer vision(2016),Springer,pp.21–37)。
[0082] 此外,在一些实施方式中,故事板生成器200可以包括多个机器学习的对象识别模型202,其被优化以检测对象的特定类别。更具体地,在一些实施方式中,至少一个对象识别模型202可以被优化以检测面部。在其他实施方式中,故事板生成器200可以包括对象识别模型202,其被优化以检测额外类别的对象,诸如车辆、食物盘、动物等。
[0083] 在一些实施方式中,故事板生成器200可以包括其他类型的机器学习的模型。例如,在一个实施方式中,运动检测模型和/或对象识别模型202可以被配置为额外检测运动。运动检测模型可以被训练以输出描述与视频中识别的对象相关联的运动信息的运动数据。
在一些实施方式中,故事板生成器200可以包括图像评级机器学习的模型,该模型被配置为接收图像作为输入,并输出描述图像锐度的锐度度量。在一些实施例中,可以采用额外的机器学习的模型来执行本文描述的其他过程。
[0084] 在一些实施例中,故事板生成器200可以被配置为将多个图像帧206输入到机器学习的对象识别模型202中,并且接收描述在多个图像帧206中识别的多个对象的相应位置的对象数据208作为机器学习的对象识别模型202的输出。故事板生成器模型204可以被配置为使用多个图像帧206中的两个或更多个和对象数据208来生成故事板210。例如,在一些实施例中,故事板生成器模型204可以被配置为生成分别包括由对象数据208描述的多个对象的多个图像裁剪。故事板生成器模型204还可以被配置为布置多个图像裁剪中的两个或更多个来生成故事板210。下面参考图3-图5讨论根据本公开各方面的故事板生成方法的示例实施方式。
[0085] 说明性示例
[0086] 图3A描绘了本文公开的方法和系统的一个实施方式的说明性示例。根据本公开的各方面,在一些实施方式中,本文描述的方法可以在诸如例如智能手机300的用户计算设备上快速执行。在一些实施方式中,多个图像帧可以输入智能手机300。例如,智能手机300可以包括可用于捕获多个图像帧302的照相机。在一些实施例中,多个图像帧302可以是视频和/或包括或以其他方式选自图像相册(例如,由用户生成的图像相册和/或基于公共场景、公共捕获时间帧和/或其他图像特性自动生成的图像相册)。可选地,多个图像帧302可以从其他资源接收,诸如从网站下载、从本地存储器检索或从云存储检索,例如从服务器计算系统检索。在一些实施方式中,图像帧302可以直接从智能手机300的照相机捕获。
[0087] 根据本公开的各方面,可以使用多个图像帧302生成一个或多个故事板304。在一些实施方式中,(多个)故事板304可以具有和与智能手机300的显示屏相关联的屏幕纵横比相匹配的故事板纵横比。因此,例如,(多个)故事板304可以提供多个图像帧302的概要,这些图像帧302的大小适于显示在单个显示屏上。在一些实施方式中,(多个)故事板304可以实时生成(例如,当图像帧302被智能手机304的照相机捕获时)。
[0088] 图3B描绘了本文公开的方法和系统的一个实施方式的另一说明性示例。在一些实施方式中,例如,第二多个图像帧352可以被输入到用户计算设备,诸如智能手机。在一些实施例中,可以向用户显示第一故事板356,并且基于从用户接收的反馈,可以生成新的故事板358-364并向用户显示。例如,在一些实施方式中,如果用户希望保留(例如,存储、共享等)第一故事板356,用户可以例如通过在智能手机的触摸屏界面上沿第一方向滑动来指示这一点。然而,如果用户不希望保留第一故事板356,用户可以在第二方向滑动。
[0089] 响应于从用户接收到指示用户不希望保留第一故事板356的反馈,可以生成新的故事板358。新的故事板358可以不同于原始故事板356。例如,在一些实施方式中,某些输入可以在潜在输入的预定集内随机化或随机变化。例如,可以使用来自视频的图像的新选择、经由对象识别模型识别对象的新参数、新的故事板模板、新的风格化效果等来生成新的故事板358。此外,因为所公开的方法的各方面提供了有效的操作,所以新的故事板358-364可以例如在用户计算设备(例如智能手机)上本地快速生成。这样,用户能够快速生成新的故事板358-364,直到用户找到吸引人的故事板。
[0090] 示例方法
[0091] 图4A和图4B描绘了根据本公开的示例实施例的示例方法400的流程图。尽管为了说明和讨论的目的,图4A和图4B描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。方法400的各种步骤可以以各种方式被省略、重新布置、组合和/或调整,而不偏离本公开的范围。
[0092] 在(402),计算系统可以获得图像集合。图像集合可以是相册、视频或任何其他合适的图像集合(例如,由用户生成的图像相册和/或基于公共场景、公共捕获时间帧和/或其他图像特性自动生成的图像相册)。图像集合可以是任何合适的视觉内容,包括例如gif图像、多媒体、立体视觉内容、全景图等。计算系统可以从任何可用的资源获得图像集合,诸如,本地数据存储、云数据存储,或者直接从照相机获得图像集合。
[0093] 在(404),在一些实施方式中,计算系统可以从图像集合(例如,相册和/或视频)中选择多个图像帧,以形成概述该图像集合的概要帧集。例如,在一些实施例中,计算系统可以从视频中选择多个图像帧,以形成概述该视频的概要帧集。例如,在一些实施例中,计算系统可以将视频分割成多个视频片段,以选择概要帧集。在一些实施方式中,可以从多个视频片段中的每一个中选择至少一个图像帧,以形成概述该视频的概要帧集。然而,可以从任意数量的视频片段中选择任意数量的图像帧。
[0094] 在一些实施方式中,视频可以被分割成多个长度相等的视频片段。在其他实施方式中,计算系统可以至少部分基于(1)在视频内检测到的运动,(2)在视频内检测到的场景变化,和/或(3)在视频内检测到的对象,来将视频分割成多个视频片段和/或从视频中选择多个图像帧。
[0095] 因此,作为一个示例,计算系统可以将视频输入到运动检测模型中,例如参考图1-图2所讨论的。运动检测模型可以被训练以输出描述与视频中识别的对象相关联的运动信息的运动数据。运动数据可用于将视频分割成多个视频片段和/或选择某些图像(例如,用于包括在概要帧集中)。
[0096] 作为另一示例,视频可以被分割成多个视频片段和/或多个图像帧可以至少部分地基于在视频内检测到的场景变化来选择。例如,可以比较视频内的相邻帧,以检测构图、照明等的变化,并且这种检测到的变化可以用于识别场景变化。这样,方法400可以提供故事板,该故事板更好地概述包含在视频的各个场景内的信息。
[0097] 作为又一示例,如下文将进一步讨论的,可以基于在图像帧内检测到的对象来分割视频和/或选择图像帧。例如,如下文将进一步讨论的,视频或图像相册中包括的一些或所有图像帧可以被输入到机器学习的对象识别模型中,该模型检测图像内的对象。基于某些对象在某些图像内的存在,可以选择这些图像(例如,用于包括在概要帧集中)。
[0098] 在其他实施方式中,方法400可以包括选择多个图像帧以形成概要帧集,而不将视频分割成多个视频片段。例如,在一些实施方式中,多个图像帧可以包括来自编码的视频的多个关键帧。例如,在一些实施方式中,关键帧可以均匀分布在整个视频中。因此,选择关键帧可以使得多个图像帧相对于视频具有均匀的时间分布。在一些实施方式中,这种选择可以提供多个图像,这些图像充分概述了包含在视频内的信息,同时最小化了执行这种选择所涉及的计算需求。这样,方法400可以提供故事板的快速和有效生成。在进一步的实施方式中,考虑选择到概要帧集中的图像限于视频的关键帧。
[0099] 根据本公开的另一方面,包括重复或接近重复,故事板内的图像可能不提供任何额外信息,因此,可能降低故事板在概述视频中的有效性。这样,在一些实施方式中,作为图像帧选择过程的一部分,计算系统可以从故事板中消除相似的图像。这种消除可以发生在任何合适的阶段。例如,在将多个图像输入到机器学习的对象识别模型之前,可以从多个图像中消除图像。
[0100] 作为一个示例,在一些实施方式中,方法400可以采用修改的感知散列来检测和消除非常相似的图像(参见Nandisha M.,Piracy  Detection  App  of  Android Applications.In International Journal of Computer Applications 146,6(2016))。例如,修改的感知散列可以包括将图像转换成灰度,将灰度图像缩减成低分辨率版本,计算描述低分辨率版本的垂直和/或水平梯度,以及比较所得的梯度。
[0101] 作为另一示例,在一些实施方式中,计算系统可以基于图像质量来消除图像,图像质量可以包括曝光、对比度和/或模糊度等。例如,在一些实施方式中,锐度度量可以基于图像梯度的二次采样版本(例如,中心、前向或后向差梯度)来计算。这种方式可以提供检测模糊图像的有效方法,该方法涉及低计算需求。例如,在一个实施例中,可以为相似或接近重复的图像计算二次采样梯度,并且可以基于二次采样的中心差梯度来计算锐度度量。例如,在一个实施例中,差梯度可以如下计算:
[0102]
[0103] 其中#是基数,Ω是图像的子样本域(例如,每个方向3个),并且 是梯度幅度(例如,中心差)。锐度度量然后可以被计算为直方图变化系数的倒数,如下所示:
[0104]
[0105] 其中 描述直方图的平均值,并且 描述直方图的标准偏差。虽然直方图的平均值是接近重复之间锐度的良好度量,但是在一些实施方式中,将直方图的平均值除以直方图的标准偏差可以提供图像之间更具可比性的锐度度量。在一些实施方式中,直方图的平均值可以如下计算:
[0106]
[0107] 在一些实施方式中,直方图的标准偏差可以如下计算:
[0108]
[0109] 在其他实施例中,可以采用图像评级机器学习的模型来对图像的锐度进行评分或评级。例如,可以训练诸如卷积神经网络的神经网络来接收图像作为输入,并输出描述图像锐度的锐度度量。
[0110] 在(406),在一些实施方式中,故事板模板可以从故事板模板的预定集中选择。例如,在一些实施方式中,故事板模板可以从故事板模板的预定集中随机选择。然而,在其他实施例中,故事板模板可以基于控制故事板模板的各种特征的一组规则(诸如面板的数量、最大和/或最小面板尺寸以及故事板内面板的允许布置)来(例如,随机地)生成。因此,在一些示例中,故事板模板可以基于图像裁剪的大小和/或形状、检测到的运动的量和类型、视频(例如,肖像或风景)的原始纵横比等来选择(例如,通过执行优化过程)。在一些实施方式中,机器学习的模板生成模型可以被配置为生成模板。例如,在一些实施方式中,机器学习的模板生成模型可以被训练成使用一组训练模板生成具有美学吸引力的模板。
[0111] 在(408),计算系统可以生成多个图像裁剪。在一些实施例中,生成图像裁剪可以包括基于概要帧集执行裁剪操作。例如,参考图4B,在一些实施方式中,计算系统(例如,服务器计算设备和/或用户计算设备)可以将多个图像412(例如,形成概要帧集的所选择的图像)输入到机器学习的对象识别模型中,例如参考图1-图2所描述的。计算系统可以接收对象数据作为机器学习的对象识别模型的输出,该对象数据包括描述在多个图像帧中识别的多个对象(例如,人、面部、车辆等)的相应位置的多个边界形状414。图4B示出了叠加在图像412上的边界形状414。应当理解,例如,在一些实施方式中,边界形状414可以简单地是描述检测到的对象的边缘的坐标。
[0112] 计算系统可以至少部分基于多个边界形状414生成多个图像裁剪416。例如,对于对象周围的每个边界形状414,计算系统可以在这种边界形状414的周界周围添加一定的边距(例如,20个像素、边界形状高度/宽度的10%或一些其他边距),然后提取(例如,通过裁剪)边界形状加上外部边距。在其他实施方式中,边界框被简单地提取,而没有添加任何边距。可以为检测到一个或多个对象的每个图像帧提取一个或多个图像裁剪416。
[0113] 类似于消除上面讨论的类似图像帧,在一些实施例中,可以识别和消除(例如,丢弃)重复或接近重复的图像裁剪416。例如,上述用于识别相似图像帧的任何技术也可以用于识别和丢弃相似图像裁剪416。
[0114] 在(410),在一些实施例中,计算系统可以布置多个图像裁剪416中的两个或更多个来生成故事板。在(406)获得的故事板模板的每个面板可以具有相应的面板纵横比,并且至少部分基于纵横比的比较,可以选择多个图像裁剪416中的两个或更多个以插入到故事板模板中。例如,计算系统可以将与至少两个或更多个图像裁剪416相关联的相应裁剪纵横比和与面板中的至少两个相关联的相应面板纵横比进行比较。换句话说,计算系统可以尝试基于图像裁剪416与故事板面板之间相应纵横比的匹配程度来将图像裁剪416与故事板面板匹配。在一些实施方式中,可以布置单个图像裁剪416来生成故事板。
[0115] 在一些实施方式中,计算系统可以基于每个相应图像裁剪416中检测到的对象的大小来放大或缩小图像裁剪416。例如,计算系统可以基于匹配的故事板面板的大小来放大或缩小图像裁剪416,以将图像裁剪416配合(fit)到故事板的面板。例如,在一些实施方式中,计算系统可以放大图像裁剪416以更好地描绘其中检测到的(多个)对象。
[0116] 另外,在一些实施方式中,计算系统可以根据匹配的故事板面板的形状裁剪图像裁剪416。例如,在一些实施方式中,一些故事板面板可以具有非矩形形状(例如三形、菱形、梯形等)。
[0117] 因此,在一些实施方式中,计算系统可以有效地选择多个图像412内的感兴趣区域以包括在故事板中。此外,在一些实施例中,该方法可以用最小的计算需求来做到这一点。例如,生成多个图像裁剪416,然后选择子集(即,两个或更多个)以包含在故事板中,与在生成多个图像裁剪416时考虑故事板的纵横比相比,可能需要更少的计算能力。
[0118] 在一些实施方式中,计算系统可以根据时间顺序布置多个图像裁剪416中的两个或更多个。这样,生成的故事板可以保留视频内包含的信息的“故事”方面。
[0119] 此外,在(410)处,在一些实施方式中,风格化效果可以被应用于被布置来形成故事板的两个或更多个图像裁剪416。在一些实施方式中,风格化效果可以被配置为提供喜剧样的外观并提高故事板的视觉吸引力。这样的故事板可以有美学上令人愉悦的外观。作为示例,风格化效果可以通过应用一个或多个过滤器(例如,双向过滤器)来实现。在一些实施方式中,风格化效果可以包括(1)从颜色转换成灰度,(2)从灰度转换成颜色,和/或(3)多色调分色法(posterization)(例如,减少离散颜色的数量)。风格化效果还可以包括调整各种图像参数,诸如亮度饱和度、色调和/或应用一个或多个阈值。例如,在一些实施方式中,风格化效果可以包括应用软阈值函数。在一个实施方式中,软阈值函数可以对一个或多个图像参数(例如,亮度、饱和度、色调等)施加限制。在一些实施方式中,风格化效果还可以包括模糊、锐化、平滑和/或检测边缘。
[0120] 在一些实施方式中,风格化效果和/或过滤器可以通过使用一组规则半随机地选择。例如,在一些实施方式中,该规则可以允许在上限和下限之间有任意数量的过滤器。在一些实施方式中,过滤器的相应输入参数可以类似地在相应的上限和下限之间随机选择。在一些实施方式中,一些效果或过滤器可以被应用多于一次。例如,在一些实施方式中,可以在为每个过滤器定义的相应上限和下限之间随机选择每个过滤器的应用次数。在其他实施例中,风格化效果/过滤器和/或风格化效果/过滤器的相应输入参数可以由用户选择和/或调整。
[0121] 另外,在其他实施方式中,可以选择风格化效果的预定组合。例如,在一些实施方式中,预定的组合可以具有预定的输入参数。在一些实施方式中,可以从预定的过滤器集中随机选择预定的过滤器集(例如,过滤器和/或效果的特定组合)。
[0122] 另外,在一些实施方式中,计算系统可以接收分别描述在多个图像帧中识别的多个对象的多个语义标签作为机器学习的对象识别模型的输出。计算系统可以通过至少部分地基于多个语义标签选择多个图像裁剪416中的两个或更多个来布置多个图像裁剪416中的两个或更多个,以生成故事板。
[0123] 在一些实施方式中,计算系统可以至少部分地基于语义标签中的至少一个来应用音频图形,该语义标签描述包括在多个图像裁剪416中的两个或更多个中的至少一个中的至少一个对象。例如,在一些实施方式中,语义标签可以是对象类别(例如,汽车、人等),并且音频图形可以指示一个动作(例如,汽车的“呜呜声”)或一个口头语言(例如,已经被标记为说话的人的面部旁边的对话气泡)。作为另一示例,在一些实施方式中,计算系统可以应用描述多个图像裁剪416的内容的多个语义标签。例如,语义标签可以被配置为字幕和/或可以叙述故事板的内容或“故事”。
[0124] 在一些实施方式中,计算系统可以检测来自视频音轨的声音,并利用检测到的声音来选择音频图形以应用于多个图像裁剪416中的至少一个。例如,响应于检测到视频的音轨中的鼓掌的声音,计算系统可以应用诸如“拍手”的音频图形。
[0125] 作为另一示例,计算系统可以选择描绘运动中的同一对象的多个图像裁剪416中的两个或更多个。例如,如果两个或更多个图像裁剪416显示诸如运动中的儿童玩具车的对象,则选择两个或更多个图像裁剪416包含在故事板中可以导致故事板提供在若干面板上显示运动中的对象的视觉效果,这可以具有“讲述”故事的效果。
[0126] 在一些实施方式中,一个或多个机器学习的模型可以被配置为执行一个或多个上述操作。例如,在一些实施方式中,机器学习的模型可以被配置为在(408)生成图像裁剪416,而不识别任何对象和/或生成任何边界形状414。例如,在一些实施方式中,可以训练机器学习的选择和放置(selection-and-placement)模型来接收概要帧集,并且作为响应,生成图像裁剪416。在一些实施方式中,可以使用机器学习的选择和放置模型来代替上述对象识别和/或运动检测模型。例如,机器学习的选择和放置模型可以被训练来选择用于裁剪的图像,生成图像裁剪416,和/或布置图像裁剪416以形成故事板。在一些实施方式中,机器学习的选择和放置模型可以使用概要帧的训练集和图像裁剪的训练集来训练。在其他实施例中,机器学习的选择和放置模型可以使用图像集合的训练集和故事板的训练集来训练。在一些实施方式中,多个机器学习的模型可以一起工作来执行上述操作中的一些或全部。
[0127] 图5描绘了根据本公开的示例实施例的示例方法500的流程图。尽管为了说明和讨论的目的,图5描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。方法500的各种步骤可以以各种方式被省略、重新布置、组合和/或调整,而不偏离本公开的范围。
[0128] 参考图5,在一些实施例中,方法500可以包括在(502)将多个图像帧输入到机器学习的对象识别模型中。机器学习的对象识别模型可以被训练成接收多个图像帧并输出描述在多个图像帧中识别的多个对象的相应位置的对象数据。
[0129] 在(504),方法500可以包括接收描述在多个图像帧中识别的多个对象的相应位置的对象数据作为机器学习的对象识别模型的输出。例如,计算系统可以接收对象数据作为机器学习的对象识别模型的输出,该对象数据包括描述在多个图像帧中识别的多个对象(例如,人、面部、车辆等)的相应位置的多个边界形状。
[0130] 在(506),方法500可以包括生成分别包括多个对象的多个图像裁剪。例如,对于对象周围的每个边界形状,计算系统可以在这样的边界形状414的周界周围添加一定的边距(例如,20个像素、边界形状高度/宽度的10%或一些其他边距),然后提取(例如,通过裁剪)边界形状加上外部边距。在其他实施方式中,边界框被简单地提取,而没有添加任何边距。可以为检测到一个或多个对象的每个图像帧提取一个或多个图像裁剪。
[0131] 在(508),方法500可以包括布置多个图像裁剪中的两个或更多个以生成故事板。故事板模板的每个面板可以具有相应的面板纵横比,并且至少部分地基于纵横比的比较,可以选择多个图像裁剪中的两个或更多个来插入到故事板模板中。例如,计算系统可以将与至少两个或更多个图像裁剪相关联的相应裁剪纵横比和与面板中的至少两个相关联的相应面板纵横比进行比较。换句话说,计算系统可以尝试基于图像裁剪与故事板面板之间相应纵横比的匹配程度来将图像裁剪与故事板面板匹配。
[0132] 在其他实施方式中,处理包括多个图像帧的视频文件的计算机实施的方法可以包括从多个图像帧中选择若干图像帧。例如,该若干图像帧可以是预定数量的图像帧。该方法可以包括从多个预存图像布局中选择图像布局(例如故事板模板)。每个图像布局可以包括对应于该若干图像帧的若干图像占位符(例如故事板面板)。该方法可以包括使用机器学习的对象检测模型来检测对象在若干图像帧的每一个中的位置。例如,机器学习的对象检测模型可以被配置为输出标识(多个)对象的(多个)位置的一个或多个边界形状。该方法可以包括基于在图像帧内的检测到的相应对象的位置来裁剪每个关键图像帧。该方法可以包括通过将多个裁剪的图像帧中的一个插入到所选择的图像布局中的每个图像占位符(例如故事板面板)中,来将多个裁剪的图像帧与所选择的图像布局组合以生成输出图像(例如故事板)。该方法可以包括输出生成的输出图像。
[0133] 在一些实施方式中,选择若干图像帧可以包括基于视频文件的经过时间、视频文件中的检测到的运动、视频文件中的检测到的场景变化或视频文件中检测到的一个或多个对象中的一个或多个来选择至少一个图像帧。在一些实施方式中,选择若干图像帧可以包括,基于在选择的图像帧中的检测到的运动模糊、检测到的焦点模糊、检测到的曝光过度、检测到的曝光不足、或者检测到的所选择的图像帧与先前选择的图像帧的相似性中的一个或多个,来丢弃选择的图像帧和选择替换图像帧。
[0134] 在一些实施方式中,检测对象的位置可以包括,当在所选择的图像帧中检测到多个对象时,基于对象的尺寸或形状、基于对象识别模型或基于随机选择来选择多个检测到的对象中的一个。
[0135] 额外公开
[0136] 本文讨论的技术涉及服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作和发送到这些系统和从这些系统接收的信息。基于计算机的系统固有的灵活性允许各种可能的配置、组合以及组件之间任务和功能的划分。例如,本文讨论的过程可以使用单个设备或组件或者组合工作的多个设备或组件来实施。数据库和应用可以在单个系统上实施,也可以分布在多个系统上。分布式组件可以顺序或并行操作。
[0137] 尽管已经针对本主题的各种具体示例实施例详细描述了本主题,但是每个示例都是通过解释的方式提供的,而不是对本公开的限制。本领域技术人员在理解前述内容后,可以容易地产生对这些实施例的改变、变化和等同物。因此,本主题公开不排除包括对本主题的这种修改、变化和/或添加,这对本领域普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用,以产生又一个实施例。因此,本公开旨在覆盖这些改变、变化和等同物。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈