通过帧选择的实时超延时视频创建的制作方法

文档序号:13519197阅读:249来源:国知局

背景

摄像机的增长伴随对视频分享的日益增长的支持导致被捕捉的视频的数目逐步增加。尽管越来越富足的存储允许记录具有更长持续时间的视频,但在查看和导航这些视频时却经常是麻烦的,因为用户通常没有时间和耐心来在以分钟计的未经编辑的镜头中进行筛选。一种减少观看长段视频的负担的传统技术是通过创建延时视频来提速这样的视频。

延时视频(time-lapsevideo)可以以比实时更快的速度被播放;这样,当被播放时,时间看上去过得更快并且因而推移。例如,场景的图像可以以每秒一幅的速度被捕捉(例如每秒仅记录一帧),随后以每秒30帧的速度被回放;所产生的延时视频可以具有显见的30倍的速度提升。根据另一个示例,场景的视频可以被捕捉(以例如每秒30帧的给定帧速率)并且除了一帧之外每秒的所有帧都被省略;如果所产生的视频以每秒30帧被回放,则所产生的延时视频可再次具有显见的30倍的速度提升

当视频用固定相机捕捉时,延时视频通常是有效的;然而,如果视频用移动相机捕捉,加速过程加强了明显的运动,导致注意力分散且难以观看延时视频。超延时(hyper-lapse)视频是通过除了加速处理之外还执行相机运动平滑或稳定来解决用移动相机捕捉延时视频的困难的新兴媒介。然而,通过除第x帧外跳过所有帧(其中x可以是基本上任何整数)来创建超延时视频可以导致难以对准的帧;这样,即使当稳定技术被应用于这样的帧,源自相机移动的显著运动仍然在所产生的超延时视频中保留,因而降低了所产生的超延时视频的质量。

概述

在此描述了涉及从输入视频创建输出超延时视频的各种技术。指示输入视频中的各帧对之间的重叠的值可以被计算。指示各帧对之间的重叠的值可以基于来自该对中的各帧的每个帧的稀疏点集被计算。而且,可以从输入视频选择各帧的子集。各帧的子集可以基于输入视频中的各帧对之间的重叠的值被选择。目标帧的加速率可以指定x的值,以使得输入视频的每第x个帧被期望地选择,而该输入视频的剩余帧则被期望跳过。而且,在从输入视频选择的帧的子集的至少一部分上,目标帧加速率可以与实际帧加速率不同。而且,输出超延时视频可以基于帧的子集被生成。输出超延时视频可以在无需除所述帧的子集之外的输入视频的剩余帧的情况下被生成。

以上概述呈现了简化概述,以提供对本文讨论的系统和/或方法的一些方面的基本理解。本概述并不是对此处所讨论的系统和/或方法的全面综述。并不旨在标识关键/重要元素,也不描绘这样的系统和/或方法的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更详细说明的序言。

附图简述

图1解说了从输入视频生成输出超延时视频的示例性系统的功能框图。

图2解说了示出在传统单纯超延时技术和由如本文所述的视频生成系统使用的具有帧选择的超延时方案之间的比较。

图3解说了由视频生成系统从输入视频创建输出超延时视频的示例性图表。

图4解说了根据各示例的视频生成系统的功能性框图。

图5解说了从输入视频生成输出超延时视频的另一个示例性系统的功能性框图。

图6解说了捕捉输入视频并基于所捕捉的输入视频创建输出超延时视频的示例性计算系统的功能性框图。

图7是从输入视频生成输出超延时视频的示例性方法的流程图。

图8示出了示例性计算设备。

图9是示例性计算系统。

详细描述

现在参考附图来描述与从输入视频生成输出超延时视频有关的各种技术,其中在附图中贯穿始终使用相同的附图标记来引述相同的要素。在以下描述中,为解释起见,阐明了众多具体细节以提供对一个或多个方面的全面理解。然而,显然这(些)方面可以在没有这些具体细节的情况下实施。在其他实例中,以框图形式示出公知的结构和设备以便于描述一个或多个方面。另外,要理解,被描述为由特定系统组件执行的功能性可由多个组件执行。类似地,例如,一组件可被配置成执行被描述为由多个组件实现的功能。

此外,术语“或”意指包括性“或”而非排斥性“或”。即,除非另有指定或从上下文显而易见,否则短语“x采用a或b”意指任何自然的包括性排列。即,短语“x采用a或b”藉由以下实例中任何实例得到满足:x采用a;x采用b;或x采用a和b两者。另外,本申请和所附权利要求书中所使用的冠词“一”和“某”一般应当被解释成表示“一个或多个”,除非另外声明或者可从上下文中清楚看出是指单数形式。

现在参考附图,图1示出了从输入视频104生成输出超延时视频102的系统100。该系统100包括计算系统106。该计算系统106包括至少一个处理器108和存储器110。处理器108被配置为执行被加载到存储器110中的指令(例如被加载到存储器110中的一个或多个系统可以由处理器108执行,被加载到存储器110中的一个或多个组件可以由处理器108执行等)。如本文更加详细描述的,存储器110包括被配置为从输入视频104创建输出超延时视频102的视频生成系统112,其中视频生成系统112可由处理器108执行;这样,存储器110包括被配置为生成输出超延时视频102的指令。

根据各示例,计算系统106可以是计算设备或包括计算设备。按照各种说明,计算设备可以是桌面计算设备、移动计算设备(例如膝上计算设备、移动电话、智能电话、平板计算设备、可穿戴计算设备、手持计算设备、便携式游戏设备、个人数字助理、相机等)、游戏控制台、车载通信和信息系统等等。根据其它示例,计算系统106可以是一个或多个服务器计算设备,或包括一个或多个服务器计算设备。例如,计算系统106可以是一个或多个数据中心或包括一个或多个数据中心,其中数据中心包括多个服务器计算设备。另外地或替换地,计算系统106可以是分布式计算系统。

而且,计算系统106可以包括数据存储114。数据存储114可以保留输入视频104。输入视频104包括帧序列f=<1,2,...,t>。尽管未示出,但可以构想数据存储114还可以保留由视频生成系统112所创建的输出超延时视频102。

视频生成系统112被配置为执行创建输出超延时视频102的算法。视频生成系统112可以创建输出超延时视频102,同时减轻(在输入视频104的捕捉期间的相机的)高频相机运动的不利影响。视频生成系统112不需要使用除输入视频104之外的传感器数据来生成输出超延时视频102;这样,视频生成系统112可以基于由几乎任何相机所捕捉的输入视频来创建输出超延时视频而且,视频生成系统112可以在移动计算设备上实时(例如每秒30帧(fps))创建输出超延时视频102,比在桌面计算设备等上的30fps更快。

视频生成系统112可以以几乎任何帧加速速率创建输出超延时视频。而且,视频生成系统112不受被用于捕捉输入视频104的摄像机的类型、场景内容或相机运动的约束。例如,输入视频104可以由计算系统106(例如使用计算系统106的图像传感器)捕捉或者直接或间接地从异构的计算系统(例如可以包括能够捕捉输入视频104的图像传感器的不同的计算系统)获得。

典型的超延时算法对于具有平滑输入相机运动的输入视频来说可以生成令人满意的超延时视频。然而,当输入相机在输入视频捕捉期间经历了高频运动时,所产生的由传统方案所生成的输出超延时视频可能是无法观看的。单纯从由经历高频运动的相机所捕捉的输入视频中捡取帧可能导致选择到具有最小或没有重叠的帧;这样,通过典型技术选择的帧在稳定这样的帧时可能不能被对准;因而影响了平滑所产生的输出超延时视频的能力。然而,相机的高频运动可能是可重复的(例如归因于手的颤动、行走、跑步、头部运动等)。相对于各种传统方案,视频生成系统112可以选择输入视频104的帧的子集,从该子集中可以基于除了目标帧加速率之外的各帧对之间的重叠生成输出超延时视频102。

视频生成系统112可以使用特征跟踪技术复原二维(2d)相机运动。相对于传统的方案,视频生成系统112可以将相机运动平滑和加速结合地进行优化。视频生成系统112可以使用动态编程算法,所述算法从输入视频中选择帧的子集,该子集近似期望目标帧加速率并平滑在输出超延时视频102中的可能的相机运动。一旦帧的子集被视频生成系统112选中,2d视频稳定可以被执行以创建从其可以渲染输出超延时视频102的经平滑相机路径。

视频生成系统112可以包括被配置为计算指示在输入视频104的帧对之间的重叠的值。指示在各帧对之间的重叠的值可以由帧匹配组件116基于来自该对中的各帧的每个帧的稀疏点集被计算。来自该对中的各帧的每个帧的稀疏点集可以包括来自该对中的各帧的每个帧的中心点。然而,将理解来自该对中的各帧的每个帧的稀疏点集可以包括作为中心点的补充或替代的其它点。而且,帧匹配组件116还可以进一步被配置为基于在该对中的各帧的每个帧的稀疏点集的移动计算指示在该帧对之间的重叠的值。

帧匹配组件116可以使用基于稀疏特征的技术来估计每个帧可以如何与其时间上的邻居对准。更具体而言,帧匹配组件116可以被配置为计算在输入视频104的帧对之间的基于特征的变换。帧匹配组件116还可以被配置为根据基于特征的变换对准各帧对。而且,帧匹配组件116可以计算指示当被对准时在输入视频104中的各帧对之间的重叠的值(例如基于当被对准时来自在该对中的各帧的稀疏点集)。

视频生成系统112还可以包括被配置为从输入视频104选择帧的子集的路径选择组件118。帧的子集可以基于输入视频104中的各帧对之间的重叠的值以及目标帧加速率被选择。动态时间规整(dtw)算法可以被路径选择组件118用于查找在匹配目标帧加速率与使帧到帧的运动最小化之间进行折衷的优化帧路径。因此,路径选择组件118可以被配置为从输入视频104选择对输出超延时视频102中相邻帧之间的重叠和归因于来自目标帧加速率的变化的成本进行优化的帧的子集。

目标帧的加速率可以指定x的值,以使得输入视频104的每第x个帧被期望地选择,而该输入视频104的剩余帧(除第x帧之外的帧)则被期望跳过。根据一个示例,x可以是整数值。作为另一示例,构想了x可以是非整数的。而且,在从输入视频104中所选的帧的子集的至少一部分上,目标帧加速率可以不同于实际帧加速率(例如在所选帧之后的第x帧可以被路径选择组件118跳过,而除第x帧之外的帧则可以被路径选择组件118选择)。作为说明,目标帧加速率可以是8(例如指定每第8个帧期望被选择)。遵循该说明,在所选帧的至少一部分上实际帧加速率可以不同。例如,帧a、b、c和d的序列可以由路径选择组件118选择;在输入视频104中,帧b可以是在帧a之后的第7帧,帧c可以是在帧b之后的第8帧,而帧d可以是在帧c之后的第10帧。然而,应该理解,所要求保护的主题不限于上述示例。

路径选择组件118还可以被配置为基于加速度惩罚值从输入视频104中选择帧的子集,所述惩罚值对在从输入视频104中选择出的帧的子集上的实际帧加速率中的变化进行惩罚。这样,可以通过对在输出超延时视频102中的相邻帧之间的重叠、归因于来自目标帧加速率的变化的成本以及归因于在从输入视频104中选择出的帧的子集上的实际帧加速率中的变化的成本进行优化,来选择从输入视频104中选择帧的子集。例如,加速度惩罚值可以惩罚从实际帧加速率8到实际帧加速率9的变化。按照另一个示例,从实际帧加速率8到实际帧加速率9的变化的第一加速度惩罚值可以小于从实际帧加速率8到实际帧加速率10的变化的第二加速度惩罚值。

视频生成系统112还包括被配置为基于由路径选择组件118选择的帧的子集生成输出超延时视频102的渲染组件120。输出超延时视频102可以在无需除所述帧的子集之外的输入视频104的剩余帧的情况下被生成。渲染组件120可以被配置为在所述帧的子集上执行视频稳定。这样,渲染组件120可以执行输出超延时视频102的路径平滑和渲染。给定所选的输入视频104的帧的子集,渲染组件120可以平滑相机路径以产生经稳定的输出超延时视频102虽然并未示出,可以构想图形处理器可以另外地或替换地被用于在从输入视频104选择所述帧的子集之后的图像规整。

存在各种用于创建延时和超延时视频的传统方案。一些传统技术通过单纯跳过视频中的帧而没有任何稳定来执行延时。其它典型的方案通过以任一顺序依次执行稳定和延时(即先稳定后跳过帧或先跳过帧后稳定)来创建超延时视频。

一些传统方案(例如在跳过帧之后或跳过帧之前)使用稳定相机运动的基于硬件的技术。相机运动的硬件稳定可以在捕捉时使用板载惯性传感器(例如陀螺仪、加速度计等)获得用于稳定的传感器数据;除了输入视频,这一数据也可以被捕捉。传统的基于硬件的方案经常稳定前景对象失败,因为传感器数据被用于稳定而没有利用输入数据的内容(例如全局惯性坐标系可以被稳定而不自动跟踪移动的前景对象)。而且,这些传统技术不可以被应用于在没有对应的传感器数据的情况下被捕捉的现存的视频。

用于稳定相机运动的其它典型方案是基于软件的。例如,基于软件的计算机视觉技术可以对像素自身进行操作。示例包括2d稳定和全三维(3d)重构和稳定。传统的2d稳定方案可以在相机运动缓慢时很好地工作;然而,当相机经历高频运动时这样的方案会崩溃。3d重构和稳定方案在场景中存在充足相机运动和视差时可以提供令人满意的结果;然而,这样的3d重构和稳定方案通常具有高昂的计算成本并且当存在不足够的相机平移时易于产生跟踪和重构错误。

相比较于前述传统技术,视频生成系统112不依靠惯性传感器,并且不单纯跳过帧。例如,单纯的帧跳过可以降低所产生的超延时视频的可观看性,因为这样的技术可以导致拾取不能令人满意地被稳定的帧。相反,视频生成系统112允许与目标帧加速率的偏差,如果这样的偏差导致增强平滑的话。视频生成系统112可以优化能量函数,该函数在匹配目标帧加速率和最小化在输出超延时视频102中的帧到帧的运动之间进行平衡。因此,视频生成系统112可以以比传统3d重构和稳定技术相比更少的复杂度来处理高频相机运动(与这些传统3d方案相比这可以减少处理器的负载并降低输出超延时视频102的创建的持续时间)。

视频生成系统112可以执行优化技术来从输入视频104中选择帧的子集,该子集接近目标帧加速率,还可以被对准并且因而在加速的输出超延时视频102中被稳定。在匹配目标帧加速率的同时最小化帧到帧的运动以进行平衡的能量函数可以被优化以选择可以被渲染组件120稳定的帧的子集。而且,视频生成系统112可以处理高频相机运动并且可以实时在高分辨率视频(例如输入视频104)上执行。而且,除了输入视频104之外视频生成系统112无需利用传感器数据,并且因此可以基于几乎任何相机捕捉的输入视频创建输出超延时视频。

参考图2,解说了示出在传统单纯超延时技术和由如在此所述的视频生成系统112使用的具有帧选择的超延时方案之间的比较。如图2所示,如虚线202所示,输入视频可以展现显著的半规则的高频相机运动(例如示出在水平平移中的半周期变化)。相机运动,例如可以是归因于奔跑、行走、头部运动、手抖等等。如在图2中所示,典型的8x超延时(其中每第8个帧被使用并且剩余的七个帧被丢弃)可以导致具有少量重叠的帧(这些帧难以对准),如由虚线204所示。相反,在此所述的方案允许与目标帧加速率的偏差来创建平滑的输出超延时视频,即使是当存在如点线206所示的明显相机运动。因此,利用输入视频的半周期水平抖动(如虚线202所示),单纯的跳过可以选择具有与在此所述的允许与目标帧加速率偏差的方案相比更少的重叠和增加的视差的帧。这样,在此所述的技术可以被用于选择具有在其之间更少运动的帧,导致增强的对准以及更平滑的所产生的超延时视频。

现在参考图3,解说了由视频生成系统112从输入视频104创建输出超延时视频102的示例性图表300。如所例示的,输出超延时视频102可以在三个阶段中被创建:第一阶段可以由帧匹配组件116来执行,第二阶段可以由路径选择组件118来执行,而第三阶段可以由渲染组件120来执行。

作为阶段1的部分,帧匹配组件116可以执行帧匹配以构建成本矩阵。帧匹配组件116可以使用基于稀疏特征的技术来估计每个帧可以如何与其时间上的邻居对准。作为阶段2的一部分,路径选择组件118可以通过使用动态编程算法来标识在匹配目标帧加速率和最小化帧到帧的运动之间进行平衡的优化帧路径。作为阶段3的一部分,渲染组件120可以通过实现路径平滑和渲染生成输出超延时视频102;这样,给定从输入视频104所选的帧子集,渲染组件120可以平滑相机路径并渲染输出超延时视频102。

再次,输入视频104可以被表示为帧序列f=<1,2,...,t>。延时可以被定义为是f的单调递增序列的任意路径p。所述路径可以内在地用作从输出时间到输入时间的映射其中t∈f。

而且,输出超延时视频102可以具有路径p,其中在后续帧之间的时间接近目标帧加速率,而后续帧可以被对准,并且总体结果可以具有平滑相机运动。路径的标识可以被公式化为最小化包括各个项的成本函数(例如目标函数)的优化问题。例如,项可以包括朝着优化帧过渡方面驱动的成本、朝着匹配目标帧加速率方面驱动的项和最小化加速度的项。成本函数可以被用于填充成本矩阵,并且通过该矩阵的路径可以直接对应于路径p。路径选择组件118可以利用动态编程方案,其中动态时间规整算法被用于标识优化路径。

期望的帧到帧的过渡可以是在可以被对准且具有明显重叠的帧对之间。帧对准的能力提供了在各帧之间的平滑视觉过渡,并且重叠允许过渡以最小的帧裁剪发生。

给定两个视频帧ft=i和ft=j,注释转换t(i,j)为从fi规整为fj的单应性(注意“t=”的记号出于简明的目的被省略)。这样的转换可以映射帧之间的一组特征点。帧匹配组件116可以被配置为计算在输入视频104的帧对之间的基于特征的变换。例如,t(i,j)可以由帧匹配组件116在稀疏特征点上使用ransac(随机采样一致性)方法来计算。

因此,帧匹配组件116可以计算在输入视频104的帧对之间的基于特征的变换。而且,帧匹配组件116还可以根据基于特征的变换对准各帧对。因此,帧匹配组件116可以计算当被对准时指示在输入视频的帧对之间的重叠的值。

更具体来说,给定t(i,j),对应于前述准则的两个成本函数可以被定义用于估计帧到帧的过渡。

第一项可以是对准成本:

对准成本可以等价于由ransac处理所选择的n个对应的特征的2d几何再现错误的平均。

第二项可以测量运动和对帧之间的重叠的缺失进行惩罚:

co(i,j)=||(x0,y0)t-t(i,j)(x0,y0)t||2

在上式中,(x0,y0,1)可以是图像的中心。前述内容可以等价于在所述两个帧之间的图像的中心的平移的量级(例如在帧对中的帧之间的稀疏点集的移动),其是相机的(平面外)旋转和平移的函数。这可以用作相机查看矢量的运动的估值。

而且,对准成本和重叠成本可以被组合到单个运动成本函数中:

根据一个示例,τc=0.1*d和γ=0.5*d。而且,d是在运动成本函数中的各像素中的图像对角线。基于运动成本函数,如果对准误差相对低(例如在上述示例中少于图像对角线的10%),运动成本可以等于重叠成本。或者,如果对准误差相对较大,变换和运动成本可以是不可靠的,因此,t(i,j)可以被设定为恒等,并且成本可以被设定为显著成本(即在上述示例中的图像的对角线的一半),其对应于零图像重叠。这些情况可以归因于在输入视频中的急剧过渡。这一显著的成本可能引起优化以避免选择这样的帧;然而,如果没有其它帧被选择则所述帧可以被选择。上述方法可以确保所述算法标识贯穿视频的完整路径。

上述匹配成本可以允许依据相机运动平滑超延时视频。然而,还可以期望超延时视频实现期望的加速。因此,第二成本函数可以对来自输入目标帧加速率的偏离进行惩罚:

cs(i,j,v)=min(||(j-i)-v||2,τs)

前述项是对在帧i和j之间的实际跳转与目标帧加速率v之间的差的经截取l2。根据一个示例,可以利用τs=200的设置;然而,可以理解所要保护的主题不局限于上述参数的这样的值。

如上所述的成本可以导致在选择帧之间的平衡,所述帧平滑了与违反目标帧加速率相对的运动。根据说明,违反目标帧加速率以实现更加平滑的相机运动可以在时间突然加速时引起可察觉的视觉跳转。因此,加速度惩罚可以被用于通过使得速度改变更加渐进来减少这样的效应。

ca(h,i,j)=min(||(j-i)-(i-h)||2,τa)

该项也是经截取的l2。而且,可以使用τa=200的设置,所保护的主题再次不局限于该参数的这样的值。

而且,三个帧的给定加速率的总成本v可以如下被估计:

c(h,i,j,v)=cm(i,j)+λscs(i,j,v)+λaca(h,i,j)

根据一个示例,λs=200和λa=80。然而,所要求保护的主题不限于使用前述参数的这样的值。例如,这样的参数可以被改变以在匹配目标帧加速率和平滑速度中的改变之间进行平衡。

用于特定目标帧加速率的路径成本v可以被定义为:

而且,经优化的路径p可以如下被标识:

在阶段1,帧匹配组件116可以使用帧匹配计算匹配成本,如下所述。这样的成本可以被存储在用于所有帧<1,2,...,t>的稀疏、静态成本矩阵cm。注意相同的记号在此可以被用于成本函数和矩阵cm(例如由于成本函数的离散)。

由于cm是对称的,cm的上三角可以被构建。根据一个示例,cm可以被完全填充以捕捉位于任意两个帧之间的过渡成本。根据另一个示例,c的带状的或窗口状版本可以被计算,其中带w定义了在该路径的相邻帧之间的最大允许跳转。因此,在输入视频104中的其指示重叠的值被计算的帧对可以包括在输入视频104中的具有少于或等于最大允许帧分隔(例如在由带w设定的相邻帧之间的最大允许跳转)的特定帧对,并且可以排除在输入视频104中的具有大于最大允许帧分隔的剩余帧对。对于特定输入视频104和w的值,cm是静态的并且由帧匹配组件116计算一次且被重复用于生成任意加速v≤w。

作为阶段2的一部分,路径选择组件118可以使用可包括两次通过的动态编程(dp)算法。路径选择组件118可以执行算法的第一次通过以填充动态成本矩阵dv,该矩阵是(例如基于接收的输入所指定的等)目标帧加速率v的函数。尽管在阶段1中可以计算一次cm,但dp算法可以帧对每个期望加速率被执行。相同的窗口大小w可以被用于dv和cm。所述算法可以通过在其元素上进行迭代来构建dv,其中每个条目dv(i,j)表示运行的最小成本路径,并以帧i和j结束。该成本可以是cm、cs和ca之和。cm可以是距离矩阵,cs可以是间隙惩罚,而ca可以是第二阶惩罚。因此,路径选择组件118可以求解自对准,其中不重要的对准可以被允许,而某些大小的间隙可以被期望。在过滤dv的每个步骤处,算法可以通过估计在i和j处的cm和cs的成本函数并查找最小成本的先前帧h(其取决于先前的成本和ca)来累积成本。而且,h可以被存储在追溯矩阵t以用于算法的第二次通过。

一旦d被填充,路径选择组件118可以执行算法的第二次通过以通过查找在dv的最后的行和列中(在某个结束间隙g内)的最小成本并随后贯穿矩阵跟踪路径来标识优选路径。开始间隙和结束间隙g可以被允许,因为当优化没有被限制包括第一和最后的帧时所述优化可以执行得更好。而且,对于长的超延时序列,开始和结束间隙在所产生的视频中可以是不引人注目的。根据一个示例,g=4可以被使用,然而,其它大小间隙也可被使用。

下述伪代码提供了可由路径选择组件118执行的帧选择算法的示例。应该理解,示例性的伪代码是出于说明的目的被提供,并且所要求保护的主题不限于这样的示例。

在前述伪代码中,第一通过可以填充动态成本矩阵d,其中每个条目dv(i,j)表示在帧t=j处结束的最小成本路径的成本。追溯矩阵t可以被填充以存储在该路径中的最小成本前导。优化最小成本路径可以由路径选择组件118通过检查d的最后的行和列被标识,而最后的路径p可以通过行进贯穿追溯矩阵来创建。

一旦帧的子集由路径选择组件118来选择,渲染组件120可以计算平滑相机运动路径并规整图像以生成输出超延时视频102。作为阶段3的一部分,渲染组件120可以运行视频稳定,其可以计算帧到帧的变换的序列并平滑经变换的帧以创建稳定结果。

通过为每个帧提取图像特征并在帧之间执行搜索以查找匹配特征,渲染组件120可以计算对准,由渲染组件120实现的该过程可以不同于由帧匹配组件116使用的用于帧匹配的过程,因为跨多个帧的跟踪可以被使用以避免自动跟踪场景运动。相反,帧匹配组件116使用帧对以用于匹配。因此,渲染组件120可以将前景运动与背景静态特征区分开来。而且,跟踪可以使用ransac方法被分析以查找内围跟踪集,这样,在单个单应性的时间序列将背景特征映射到它们在初始化帧中的位置。如果跟踪的阈值数目(或百分比)在多个帧之后丢失,则跟踪器可以用新的特征点集重置。跟踪过程可以导致帧到帧单应性的序列,其可以被平滑。根据一个示例,卷帘快门校正也可以被执行。而且,渲染组件120可以通过经平滑的变换和校正来规整所述帧以产生输出超延时视频102。

参考图4,示出根据各个示例的视频生成系统112。视频生成系统112可以再次包括帧匹配组件116、路径选择组件118和渲染组件120。而且,视频生成系统112可以从输入视频104生成输出超延时视频102。

视频生成系统112可以进一步包括目标率估计组件,其被配置为基于输入视频104的各帧的相机速度计算在输入视频104的各帧上的目标帧加速率。时间上变化的目标帧加速率可以被用于减少在输出超延时视频102中的相机速度中的变化。而且,时间上变化的目标帧加速率可以被用于放慢相机的横向摇摆。因此,时间上变化的目标帧加速率可以被用于生成等价运动输出超延时视频(例如输出超延时视频102)。

惩罚与目标帧加速率的偏离的成本可以被修改为基于时间上变化的目标帧加速率,v(i)。

cs(i,j,v(i))=min(||(j-i)-v(i)||2,τs)

v(i)是输入视频104中相机速度的函数。目标率估计组件402可以通过对在输入序列中的由帧到帧变换所引发的光流进行采用来估计在像素空间中的该速度。如上所述给定变换t(i,j),帧i的相机速度可以是帧的四个角的平均流量:

在前述内容中,(xp,yp)∈{(1,1),(1,h),(w,1),(w,h)},其中w和h分别是帧宽度和高度。

根据一个示例,时间上变化的目标帧加速率可以通过目标率估计组件402如下被计算出:

前述函数可以计算在帧i处的加速率,其导致是平均相机速度的v倍的相机速度。∝可以被用于在等价运动和等价时间结果之间进行平衡。根据一个示例,∝=.8可以被使用;然而,要保护的主题不限于此。

根据另一个示例,帧匹配组件116可以进一步被配置为通过链接在不同的帧对之间的两个或更多不同的基于特征的变换来计算在给定帧对之间的给定基于特征的变换。计算变换t(i,j)可以是在计算上昂贵的。而且,计算上昂贵可以随着成本矩阵窗口w的增加而增加(例如由于w变换可以在每输入帧基础上被计算)。这样,帧匹配组件116可以如下通过链接变换来近似变换t(i,j)的子集:

t(i,j)=t(i,i+1)t(i+1,i+2)...t(j-1,j)

当链接相对小数目的变换时这样的近似可能更加有效,因为所述近似可以在较大的链上漂移。

借助另一个示例,帧匹配组件116可以被配置为使用链接和直接被计算的变换t(i,j)的组合。因此,帧匹配组件116可以确定是链接还是直接计算变换。例如,这样的确定可以基于估计漂移的试探法。作为说明,重叠成本co(i,j)可以使用链接的近似被计算。如果co(i,j)≤0.05d,其中d是图像对角线,那么链接计算的成本可以被使用。或者,如果co(i,j)>0.05d,那么帧匹配组件116可以直接计算t(i,j)并重新计算co(i,j)。根据另一个示例,变换可以以固定间隔(例如2x,4x等)被计算,并且链接可以根据这样的变换被使用。

转向图5,示出从输入视频生成输出超延时视频的系统500。系统500包括计算系统106,其进一步包括一个或多个处理器108和存储器110。如本文所述,存储器110可以包括视频生成系统112(或其一部分)。尽管未示出,可以构想计算系统106可以进一步包括数据存储114。

系统500还包括与计算系统106通信的异构计算系统502。异构计算系统502可以通过有线或无线连接与计算系统106通信。另外或替换地,该异构计算系统502可以是借助网络与计算系统106通信。借助该示例,网络可以是因特网、蜂窝网络、局域网、其组合等等。还有,可以构想几乎任何网络旨在落在所附权利要求的范围内。根据另一个示例,异构计算系统502可以通过一个或多个中间计算系统与计算系统106通信(例如异构计算系统502可以与中间计算系统通信且中间计算系统可以与计算系统106通信)。

异构计算系统502包括可以被用于捕捉输入视频的图像传感器504。图像传感器504可以是异构计算系统502的部件、被耦合到异构计算系统502等等。尽管未示出,还可以构想异构计算系统502可以包括一个或多个处理器和存储器。异构计算系统502可以被配置为将输入视频传送给计算系统106。

视频生成系统112可以进一步包括接口组件506,被配置为通过异构计算系统502的图像传感器504来接收输入视频。例如,接口组件506可以通过网络直接从异构计算系统502、经由一个或多个中间计算系统从异构的计算系统502接收输入视频等等。如在此所述,视频生成系统112可以从输入视频创建输出超延时视频。

接口组件506还可以被配置为将输出超延时视频传送到异构计算系统502(和/或不同的计算系统)。另外地或替换地,由视频生成系统112生成的输出超延时视频可以被保留在计算系统106的数据存储(例如数据存储114)中,由计算系统106播放等等。

根据示例,异构计算系统502可以是包括图像传感器504的移动计算设备。这样,异构计算系统502可以随时间移动通过空间以使用图像传感器504捕捉输入视频。这样的移动计算设备的示例可以包括相机(例如第一人称相机、手持相机等)、膝上计算设备、移动电话、平板计算设备、可穿戴计算设备、手持计算设备、便携式游戏设备、个人数字助理等等。

根据另一个示例,构想了异构计算系统502可以包括视频生成系统112的一部分。这样,视频生成系统112可以跨异构计算系统502和计算系统106分布。因此,视频生成系统112的各部分可以在各个位置中被实现,这可以减少通过网络在计算系统106和异构计算系统502之间传输的数据量。根据说明,在将经处理的数据上传到计算系统106之前,可以在异构计算系统502上执行处理的部分。根据进一步的示例,计算系统106可以从多个异构计算系统(例如异构计算系统502以及一个或多个与异构计算系统502类似的其它计算系统)接收输入视频。

根据进一步的示例,输出超延时视频的一个期望目标帧加速率(或几个目标帧加速率)可以由图5中的视频生成系统112接收。输入视频可以从计算系统106的数据存储(例如数据存储114)被读取。例如,超延时创建的三个阶段可以由视频生成系统112来执行,就如同输入视频是来自实况相机流。视频生成系统112可以生成超延时视频并将这些视频保存到计算系统106的数据存储中。而且,成本矩阵窗口参数w可以被设定为等于最大目标帧加速率的两倍,但所保护的主题不局限于此。

回到图6,示出了计算系统106的示例。再次,计算系统106可以包括处理器108、存储器110和数据存储114。

在图6的示例中,计算系统106可以是可以随时间移动通过空间以捕捉输入视频104的移动计算设备。更能够具体而言,计算系统106可以包括图像传感器602。而且,计算系统106的存储器110可以包括可由处理器108执行的视频捕捉系统604。视频捕捉系统604可以将来自数据存储114中的图像传感器602的输出数据存储为输入视频104。

计算系统106的存储器110进一步包括视频生成系统112。如在此所述,视频生成系统112可以从输入视频104创建输出超延时视频102。而且,视频生成系统112可以将输出超延时视频102存储在数据存储114中。

尽管未示出,但视频生成系统112可以包括帧匹配组件116、路径选择组件118和渲染组件120。根据一个示例,帧匹配组件116可以被配置为并发计算在输入视频104中的各帧对之间的重叠的值,同时视频捕捉系统604将来自图像传感器602的输出数据作为输入视频104保存。这样,成本矩阵的帧匹配和构建可以在输入视频104的捕捉期间发生。在输入视频104的捕捉之后,路径选择组件118可以执行路径选择以从输入视频104选择帧的子集。此后,渲染组件120可以生成输出超延时视频102。例如,渲染组件120可以在互动观看期间渲染输出超延时视频102,其中输入可以(例如来自用户的输入通过诸如计算系统106的触摸屏等输入组件)被接收以控制经渲染的输出超延时视频102的加速。

计算系统106的存储器110还可以包括可以播放输出超延时视频102的回放系统606。例如,回放系统606可以在计算系统106的显示屏或与计算系统106耦合的显示屏上显示输出超延时视频102。

根据一个示例,视频生成系统112可以由图像传感器602实时捕捉输入视频104。根据另一个示例,视频生成系统112可以在经导入的输入视频104上操作。根据另一个在其中计算系统106是移动计算设备的示例,视频生成系统112可以允许离散的可能加速率集(例如1x,2x,4x,8x,16x,和32x)而成本矩阵窗口w可以被设定为32。根据该示例,视频生成系统112可以在输入视频104的捕捉期间执行阶段1,在捕捉之后执行阶段2,并可在超延时视频的预览期间执行阶段3。而且,滑块可以被用于交互改变加速率。然而,应该理解,所要求保护的主题不限于上述示例。

图7解说了与创建超延时视频有关的示例性方法。尽管该方法被示出且被描述为顺序地执行的一系列动作,但可以理解并意识到,该方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,某一动作可以与另一动作并发地发生。此外,在一些实例中,实现本文描述的方法并不需要所有动作。

此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。

转向图7,示出用于从输入视频生成输出超延时视频的方法700。在702,指示输入视频中的各帧对之间的重叠的值可以被计算。根据一个示例,指示在各帧对之间的重叠的值可以基于来自该对中的各帧的每个帧的稀疏点集被计算;然而所要求的主题不局限于此。在704处,可以基于输入视频中的各帧对之间的重叠的值以及目标帧加速率从输入视频中选择帧的子集。目标帧的加速率可以指定x的值,以使得输入视频的每第x个帧被期望地选择,而该输入视频的剩余帧则被期望跳过。在从输入视频选择的帧的子集的至少一部分上,目标帧加速率可以与实际帧加速率不同。在706,可以基于帧的子集生成输出超延时视频。输出超延时视频可以在无需除所述帧的子集之外的输入视频的剩余帧的情况下被生成。

现在参考图8,示出了可以根据本文公开的系统和方法使用的示例性计算设备800的高级图示。例如,计算设备800可以被用于从输入视频生成输出超延时视频的系统。计算设备800包括执行存储在存储器804中的指令的至少一个处理器802。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器802可以通过系统总线806访问存储器804。除存储可执行指令之外,存储器804还可存储输入视频、输出超延时视频、成本矩阵、追溯矩阵等等。

此外,计算设备800还包括可由处理器802通过系统总线806访问的数据存储808。存储器808可包括可执行指令、输入视频、输出超延时视频、成本矩阵、追溯矩阵等等。计算设备800还包括允许外部设备与计算设备800通信的输入接口810。例如,输入接口810可被用于从外部计算机设备、从用户等处接收指令。计算设备800也可包括使计算设备800和一个或多个外部设备相对接的输出接口812。例如,计算设备800可以通过输出接口812显示文本、图像等。

考虑了通过输入接口810和输出接口812与计算设备800通信的外部设备可被包括在提供实质上任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的(诸)输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然语言界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与计算设备800交互。相反,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、语音和语音、视觉、触摸、姿势、以及机器智能等。

此外,尽管被示为单个系统,但可以理解,计算设备800可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备800执行的任务。

转向图9,示出了可以根据本文公开的系统和方法使用的示例性计算设备900的高级图示。例如,计算系统900可以是计算系统106或包括计算系统106。另外地或替换地,计算系统106可以是计算系统900或包括计算系统900。

计算系统900包括多个服务器计算设备,即服务器计算设备902、……、以及服务器计算设备904(统称为服务器计算设备902-904)。服务器计算设备902包括至少一个处理器和存储器;所述至少一个处理器执行存储在存储器上的指令。这些指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。类似于服务器计算设备902,除服务器计算设备902之外的服务器计算设备902-904的至少一个子集每个分别包括至少一个处理器和存储器。而且,服务器计算设备902-904的至少一个子集包括各自的数据存储。

一个或多个服务器计算设备902-904的处理器可以是处理器108或包括处理器108。而且,一个或多个服务器计算设备902-904的处理器可以是处理器110或包括处理器110。而且,一个或多个服务器计算设备902-904的数据存储可以是数据存储114或包括数据存储114。

计算系统900还包括各种网络节点906,所述节点在服务器计算设备902-904之间传送数据。而且,网络节点902借助网络908从服务器计算设备902-904传送数据到(例如计算系统900之外的)外部节点。网络节点902还借助网络908从外部节点传送数据给服务器计算设备902-904。网络908,例如,可以是因特网、蜂窝网络等等。网络节点906包括交换机、路由、负载平衡器等等。

计算系统900的结构控制器910管理服务器计算设备902-904的硬件资源(例如服务器计算设备902-904的处理器、存储器、数据存储等)。结构控制器910还管理网络节点906。而且,结构控制器910管理在服务器计算设备902-904上例示的虚拟机的创建、提供、取消提供和监督。

现在描述各个示例。

示例1:一种计算系统,包括:至少一个存储器;以及包括被配置为从输入视频创建输出超延时视频的视频生成系统的存储器,所述视频生成系统由至少一个处理器执行,所述视频生成系统包括:被配置为计算指示在输入视频的帧对之间的重叠的值的帧匹配组件,指示在帧对之间的重叠的值是基于所述对中的每个帧的稀疏点集来计算的;被配置为从输入视频选择帧的子集的路径选择组件,所述帧的子集基于输入视频的各帧对之间的重叠的值以及目标帧加速率来选择;以及被配置为基于帧的子集生成输出超延时视频的渲染组件,所述输出超延时视频是在无需输入视频的除帧的子集之外的剩余帧的情况下被生成的。

示例2:根据示例1的计算系统,所述帧匹配组件进一步被配置为基于在该对中的各帧之间的稀疏点集的移动计算指示在该帧对之间的重叠的值。

示例3:根据示例1-2中的任一个所述的计算系统,其特征在于,进一步包括:数据存储;图像传感器;并且所述存储器还包括可由所述至少一个处理器执行的视频捕捉系统,所述视频捕捉系统将来自所述图像传感器的输出数据作为输入视频存储在所述数据存储中。

示例4:根据示例3的计算系统,所述帧匹配组件116还被配置为并发计算指示输入视频中的各帧对之间的重叠的值,同时所述视频捕捉系统将来自所述图像传感器的输出数据作为输入视频保存。

示例5:根据示例1-4中任意示例所述的计算系统,所述视频生成系统还包括被配置为接收所述输入视频的接口组件,所述输入视频由异构计算系统的图像传感器捕捉。

示例6:根据示例1-5中任意示例所述的计算系统,所述渲染组件还被配置为在所述帧的子集上执行视频稳定。

示例7:根据示例1-6中任意示例所述的计算系统,所述路径选择组件还被配置为从所述输入视频选择优化输出超延时视频中相邻帧之间的重叠和归因于来自目标帧加速率的变化的成本的帧的子集。

示例8:根据示例1-7中任意示例所述的计算系统,所述路径选择组件还可以被配置为基于加速度惩罚值从输入视频中选择帧的子集,所述惩罚值对在从输入视频中选择出的帧的子集上的实际帧加速率中的变化进行惩罚。

示例9:根据示例1-8中任意示例所述的计算系统,所述目标帧的加速率指定x的值,以使得输入视频的每第x个帧被期望地选择,而该输入视频的剩余帧则被期望地跳过。

示例10:根据示例9所述的计算系统,所述路径选择组件还被配置为从输入视频中选择优化输出超延时视频中的相邻帧之间的重叠、归因于来自目标帧加速率的变化的成本以及归因于在从输入视频中选择出的帧的子集上的实际帧加速率中的变化的成本的所述帧的子集。

示例11:根据示例1-10中任意示例所述的计算系统,在从输入视频选择的帧的子集的至少一部分上,目标帧加速率与实际帧加速率不同。

示例12:根据示例1-11中的任一个所述的计算系统,所述帧匹配组件还被配置为:计算输入视频中的帧对之间的基于特征的变换;根据基于特征的变换对准所述帧对;并且计算当被对准时指示输入视频中的帧对之间的重叠的值。

示例13:根据示例12所述的计算系统,所述帧匹配组件还被配置为通过链接在不同的帧对之间的两个或更多不同的基于特征的变换来计算给定帧对之间的给定基于特征的变换。

示例14:根据示例1-13中的任一个所述的计算系统,所述视频生成系统还包括被配置为基于输入视频的帧的相机速度计算在输入视频的各帧上的目标帧加速率。

示例15:根据示例1-14中的任一个所述的计算系统,在输入视频中的其指示重叠的值被计算的帧对包括在输入视频中的具有少于或等于最大允许帧分隔的特定帧对,并且可以排除在输入视频中的具有大于最大允许帧分隔的剩余帧对。

示例16:一种用于从输入视频生成输出超延时视频的方法,包括:计算指示所述输入视频的帧对之间的重叠的值;基于下述项从输入视频选择帧的子集:在输入视频中的各帧对之间的重叠的值;以及目标帧加速率,所述目标帧加速率指定了x的值,以使得输入视频的每第x个帧被期望地选择,而该输入视频的剩余帧则被期望地跳过,在从输入视频中所选的帧的子集的至少一部分上,目标帧加速率可以不同于实际帧加速率;并且基于所述帧的子集生成输出超延时视频,所述输出超延时视频是在无需输入视频的除所述帧的子集之外的剩余帧的情况下被生成的。

example17:根据示例16所述的方法,还包括基于在输入视频中的帧对中的各对中的各帧的稀疏点集计算指示帧对之间的重叠的值。

示例18:根据示例16-17中的任一个所述的方法,从输入视频中选择帧的子集进一步基于加速度惩罚值,所述惩罚值对在从输入视频中选择出的帧的子集上的实际帧加速率中的变化进行惩罚。

示例19:根据示例16-18中的任一个所述的方法,从输入视频中选择帧的子集还包括优化在输出超延时视频中的相邻帧之间的重叠、归因于来自目标帧加速率的变化的成本以及归因于在从输入视频中选择出的帧的子集上的实际帧加速率中的变化的成本。

示例20:一种计算系统,包括:至少一个存储器;以及包括被配置为从输入视频创建输出超延时视频的视频生成系统的存储器,所述视频生成系统由至少一个处理器执行,所述视频生成系统包括:被配置为计算指示在输入视频的帧对之间的重叠的值的帧匹配组件;被配置为从输入视频选择帧的子集的路径选择组件,所述帧的子集基于在输入视频中的各帧对之间的重叠的值、目标帧加速率以及加速度惩罚值来选择,所述加速度惩罚值对在从输入视频中选择出的帧的子集上的实际帧加速率中的变化进行惩罚;以及被配置为基于帧的子集生成输出超延时视频的渲染组件,所述输出超延时视频是在无需输入视频的除帧的子集之外的剩余帧的情况下被生成的。

如本文所使用的,术语“组件”和“系统”旨在包含用使得在被处理器执行时执行特定功能的计算机可执行指令配置的计算机可读数据存储。计算机可执行指令可包括例程、功能等等。还要理解组件或系统可以位于单个设备上或跨若干设备分布。

另外,如此处所用的,术语“示例性”旨在是指“充当某事物的图示或示例”。

本文中描述的各功能可在硬件、软件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是能被计算机访问的任何可用存储介质。作为示例而非限定,这样的计算机可读介质可包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(cd)、激光碟、光碟、数字多用碟(dvd)、软盘和蓝光碟(bd),其中盘(disk)往往以磁的方式再现数据,而碟(disc)常常用激光以光学方式再现数据。另外,所传播的信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,该通信介质包括促成将计算机程序从一地转移到另一地的任何介质。连接例如可以是通信介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)、或诸如红外线、无线电、以及微波之类的无线技术来从web网站、服务器、或其它远程源传输,则该同轴电缆、光纤电缆、双绞线、dsl、或诸如红外线、无线电、以及微波之类的无线技术被包括在通信介质的定义中。上述的组合应当也被包括在计算机可读介质的范围内。

替换地或附加地,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(fpga)、程序专用的集成电路(asic)、程序专用的标准产品(assp)、片上系统系统(soc)、复杂可编程逻辑器件(cpld)、等等。

以上所描述的包括一个或多个实施例的示例。当然,出于描绘前述各方面的目的而描述上述设备或方法的每个可以想到修改和改变是不可能的,但本领域内的普通技术人员可以认识到,各方面的许多另外的组合和置换都是可能的。因此,所描述的各方面旨在包括所有这些属于所附权利要求书的范围内的改变、修改和变型。此外,就在详细描述或权利要求书中使用术语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释的相似的方式为包含性的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1