背景技术
在当今,越来越多的人利用具有视频和照片捕获的数字设备来捕获其体验的视听回忆。用于视听回忆记录的技术越来越广泛流传并且高效。现今,找到具有记录短视频序列的能力的照相机或者具有内嵌的高分辨率的照相和摄像机的移动电话的确是常见的。由于这些数字设备的可用性如此普遍,因此事实上大多用户习惯于记录对于相同事件的照片和视频回忆,或者习惯于从在该事件中也在场的一个或多个其它的人那里接收所述照片和视频回忆。因此,用户具有涉及相同场合、地点和时间的视频和照片素材是很常见的。
为了帮助用户编辑和管理其个人的视听回忆,已经提出了许多构思和系统,例如,用于自动视频编辑和半自动家用视频编辑的系统。
存储设备日益增长的容量允许用户拍摄大量的照片,并不加以任何选择地存储这些照片。结合适当可视工具的缺乏,这种非常多的数据量可能导致用户很少观看其记录的回忆。
通过在视频内添加一些照片,照片集也可用来丰富视频。通过提取给定照片的顺序子部分,可以人工地生成一些小的视频剪辑,并将其包括在视频中。基本设想是:通过在视频流内添加一些与内容有关的照片,作为结果的视频相比于考虑单个视频源将会向用户提供多得多的信息。来自Muvee Technologies的Muvee Reveal AutoProducer是允许将照片插入视频内的商业软件包的示例。照片利用一些虚拟相机动作而制成动画。构思在于,通过这么做,看照片对于用户而言可变为更加愉快的体验。
尽管用户具有涉及相同事件的视频和照片素材是很常见的,但是进行了很少的尝试来联合地利用这种信息,同时尚没有执行已知的尝试用以根据媒体美学原则混合这两种数据源。
因而,将视频和静态照片加以组合的替换方法将会是有益的,并且尤其是照片和视频的组合由于在视觉上更加吸引人的体验而提供了增强的用户体验的方法将会是有益的。
发明内容
据此,本发明优选地试图单独地或者以任何组合的方式减轻、缓解或消除以上提到的缺点中的一个或多个。具体地,可以把提供改善静态照片和视频之间的过渡的可视外观的方法看作为本发明的目的。
通过提供将静态照片并入在视频序列内的方法,在本发明的第一方面中获得了此目的以及若干其它的目的,所述方法包含以下步骤:
- 获得视频序列和静态照片,
- 创建合成的视频序列,
其中,创建合成的视频序列的步骤包括以下步骤:
- 在视频序列中要包括静态照片的插入位置上估计视频序列中摄像机动作,
- 创建静态照片的子帧的虚拟视频序列,所述虚拟视频序列具有虚拟相机动作,虚拟视频序列的所述虚拟相机动作与所述插入位置上的所述摄像机动作相关,并且
- 将视频序列和虚拟视频序列组合为合成的视频序列。
通过创建具有与视频内的插入点处的摄像机动作相关的虚拟相机动作的静态照片的子帧的虚拟视频序列,可以获得从视频到照片的无缝过渡。仅将静态图像添加在视频流中将会干扰视觉的连续性。通过仅添加任何虚拟相机动作以使照片制成动画将会产生不自然和奇怪的效果。通过使虚拟相机动作与摄像机动作相关,在不创建任何干扰的视觉或可听的效果的情况下,以无缝和连续的方式将照片混和在视频流中。
术语“相关”意在与“相关联”或“有关”同义,而术语“虚拟相机动作与摄像机动作相关”意在表示在虚拟相机动作的确定期间考虑摄像机动作,以及在某种程度上使得虚拟相机动作符合摄像机动作。一个示例是使得虚拟相机动作与摄像机动作类似或相同。
术语“虚拟视频序列”意在表示静态照片的子帧的序列,每个子帧重新调整(rescale)至视频序列内的图像的尺寸,而子帧的序列可能一起表示动作中的场景。“虚拟相机动作”是与例如通过修剪和/或重新调整而从照片的部分获得的帧的序列中的模拟相机动作相对应的虚拟视频序列中的视觉效果。虚拟相机动作的帧表示为“子帧”或“静态照片的子帧”。由此,术语“子帧”意在表示静态照片的连续的子部分;对应于对于子帧的放大,子帧通常被内插直至静态照片的像素尺寸。术语“插入位置”意在表示视频序列的帧的范围内的位置,即,适时的位置。由此,该术语与静态照片在视频序列的单个帧内的插入部分无关。
为了使得虚拟相机动作的效果清晰可见,可以假设视频和动画照片之间的硬剪切(hard cut)。然而,为了更平滑地进行过渡,可以应用渐变或渐隐的过渡。
根据所述方法的一方面,虚拟视频序列开始处的虚拟相机动作与插入位置之前的视频序列中的所估计出的相机动作相关。因此,实现了从视频序列到静态照片的子帧的虚拟视频序列的平滑过渡。另外地或可替代地,虚拟视频序列结束处的虚拟相机动作与所述插入位置后面的视频序列中的所估计出的相机动作相关。因此,实现了从静态照片的子帧的虚拟视频序列到视频序列的平滑过渡。
根据所述方法的另一方面,此方法还包含确定所述插入位置的步骤。插入位置的这种确定可以基于同步,例如,基于与静态照片和视频序列一起存储的时间戳信息。可以有利地确定插入位置,以使得在靠近于拍摄静态照片的时刻的时间点上记录的视频段之间插入静态照片。插入位置也可以基于在视频序列和静态照片上识别出的类似对象,如,在视频序列和静态照片两者上出现的旅游胜地。
根据所述方法的又一方面,所述确定包含:将所述视频序列分段为视频段,并将视频序列中的所述插入位置确定为两个视频段之间的位置。视频序列至视频段的分段可以是视频序列至相关视频帧的段的分割,其中,不同段涉及不同场景、相机角度、时刻或其它。由此,对应于静态照片的虚拟视频序列的插入不会在视频序列内创建额外的断开(breakup),这是由于将虚拟视频序列插入在原始视频序列内的现有断开的位置中。
根据所述方法的又一方面,在创建所述虚拟视频序列的步骤中,考虑照片的一个或多个特定的感兴趣区域。因此,虚拟视频序列例如可包含静态照片内尤其感兴趣的部分的放大。
摄像机动作的估计可包含:估计摇拍(pan)、倾斜(tilt)和/或缩放(zoom)。然而,也可以考虑其它的相机动作参数。
根据所述方法的另一方面,也可以包含:为虚拟视频序列选择静态照片的子帧,其中对于要应用于子帧的缩放因子,静态照片的子帧都没有超出静态照片的边界。这种子帧的选择可以包含针对静态照片的多个子帧确定和应用不同的缩放因子。该不同的缩放因子是在静态照片的缩小否则将导致超出静态照片的边界的情形下可以添加至缩放因子的辅助缩放因子。
本发明还涉及一种用于在视频序列内并入静态照片的设备。最后,本发明还涉及一种计算机程序产品,适配为使得计算机系统能够控制根据本发明的设备,所述计算机系统包含至少一个计算机,其具有与其相关联的数据存储装置。
本发明的这个方面是特别地但是非排他地有利的,因为本发明可以通过使得计算机系统能够执行本发明的方法的计算机程序产品来实现。因此,预想,诸如摄像机设备之类的一些已知设备可以被改变以通过在控制该设备的计算机系统上安装计算机程序产品来根据本发明操作。这样的计算机程序产品可以提供在任何种类的计算机可读介质上,例如基于磁性或光学的介质上,或者通过基于计算机的网络(例如,因特网)来提供。
本发明的不同方面中每个可以与其他方面的任一个相组合。根据在下文中描述的实施例本发明的这些和其他方面将显而易见,并且将参照所述实施例进行阐述。
具体实施方式
图1是根据本发明的方法10的流程图。方法10开始于11,并且继续至其中获得视频序列和静态照片的步骤12。
该方法继续至其中创建合成的视频序列的步骤13。
步骤13包含步骤14-16,其中步骤14包含:在视频序列中要包括静态照片的插入位置上估计视频序列中的摄像机动作。相机动作估计通常包含视频序列的摇拍、倾斜和缩放参数。在随后的步骤15中,创建静态照片的子帧的虚拟视频序列,其中虚拟视频序列具有虚拟相机动作并且其中虚拟视频序列的虚拟相机动作与所述插入位置处的摄像机动作相关。随后,在步骤16中,将视频序列和虚拟视频序列组合为合成的视频序列。该方法结束于步骤17。
图2是根据本发明的方法100的示例的示意图。在方法100中,输入由原始视频20与来自照片集21的多个静态照片组成。在22中,估计原始视频中的相机动作。可以通过估计相机动作参数:摇拍、倾斜和缩放来估计相机动作。然而,另外也可以估计下列的相机动作参数:转动、跟踪、测视(booming)和远摄(dolling)。Akio Nagasaka,Takafumi Miyatake的文献“Real-time video mosaics using Luminance-Projection Correlation”,IEICE Transactions on Information and Systems,Pt.2 (日文版),vol.J82-D-2;no.10;page.1572-1580 (1999)描述了可以如何估计出相机动作参数的示例。方框22产生一组估计出的动作参数25,其随后被利用以便合成视频和照片之间的相干过渡(coherent transition)。
在方框23中,估计视频中图像的其它低级别特征,使得产生一组估计出的低级别特征26。这种低级别特征可包含以下之一或多个:边缘检测、边角检测、斑点检测、脊线检测、缩放不变(scale-invariant)特征变换。随后在视频分段、概略化过程期间以及在确定用于视频过渡合成的开始和结束参数的过程中可以使用这组估计出的低级别特征26。
在方框28中,在把原始视频20分为一组视频段29的分段过程中,使用该组估计出的动作参数25和该组估计出的低级别特征26。
在方框24中,例如通过利用时间戳信息执行原始视频20和照片集21之间的时间同步。然而,可以使用其它适当的同步方法,例如像Yuichiro Takeuchi,Masanori Sugimoto的“Video Summarization using Personal Photo Libraries”,Proceedings of the 8th ACM international workshop on Multimedia Information Retrieval,October 2006或者Aya Aner-Wolf,Lior Wolf的“Video de-Abstraction or how to save money on your wedding video”, Proceedings of the 6th IEEE Workshop on Applications of Computer Vision,2002中描述的那些。同步过程24的结果是同步的视频和照片集27。
在方框30中,执行其中选择适合于形成视频概略的视频段的概略化过程。对于概略的视频段的适合性例如可以由段的低级别特征以及该段中同步的多个照片加以确定。过程30的结果是视频照片组成段集31。
在方框32中,合成视频和照片之间的过渡。过程32使用所估计出的动作参数35、来自照片集21或来自同步的照片集27的照片、来自原始视频20或来自视频照片组成段集31的视频部分、以及关于把照片插入在视频内的时间点的信息。此外,过程32可以考虑照片的一个或多个感兴趣的区域。关于图3更详细地描述过程32。过程32的结果是一组过渡段33,用于方框34中的可选后续重新编码过程。在此重新编码过程34中,视频流被重新编码,以便提供合成的视频序列35,其可包括利用来自照片集21的(一个或多个)照片以及原始视频和插入的(一个或多个)照片之间的过渡而被丰富的原始视频20的部分。如所提到的,重新编码过程是可选的,这是由于可以设想在呈现序列的同时实时地执行所有的操作。可替代地,可以以播放列表、多媒体演示描述或代码的形式存储为了获得最终视频所必须应用的转换和过渡的描述。在呈现期间,适当的播放器可安排用于解释该描述,并且在运行中创建最终序列。可使用的语言和播放器的示例是Macromedia Flash(专有)和SMIL(标准)。
图3是在图2的视频过渡合成32中执行的步骤的示例的示意图。视频合成32涉及任何过渡,即,两个静态照片之间的过渡、从静态照片到视频段的过渡、或从视频段到静态照片的过渡。在步骤40中,进行确定过渡是否是从照片到照片的过渡的步骤。在肯定时,方法前进至其中执行两个静态照片之间的渐变效果的步骤50,并且该方法随后结束。在否定时,方法继续至步骤41,在步骤41中,确定过渡是否是淡出过渡,即,从视频段到照片的过渡,可能伴随着视频段和照片之间的渐变效果。结合可选的步骤46描述这种渐变效果。在其中确定过渡不是淡出过渡的情况下,该方法继续至步骤42,在步骤42中,作为图2中方法100的步骤22的结果而在方框25中获得的估计出的动作参数被重新安排。既不是从一个静态照片到另一个静态照片的过渡又不是从视频段到静态照片的过渡的过渡必定是从静态照片到视频段的过渡,并且这种过渡可以通过镜像(mirror)所估计出的动作参数并且将该过渡视为从视频段到静态照片的过渡来应对。方法从方框42继续至43;在方框41中的结果是肯定的情况下,方法也从方框41继续至方框43。
在方框43中,计算对于子帧的三个动作参数曲线。这三个动作参数(即,摇拍、倾斜、缩放)需要对应于所检测的照片周围的视频段的动作。如关于图2所提到的,虚拟相机动作还可取决于照片的感兴趣区域(图中未示出)。
结合图4描述方框43的可能实施方案。在图4中,示出了动作参数摇拍、倾斜和缩放的图的示例。沿着X轴的点表示按照时间顺序的视频的帧。因此,帧a先于帧b等。图4示出其中图4的曲线图中从点a到b的动作值的可自定义区间对于视频帧相同的示例。随后,从点b到c应用线性下降的帧的可自定义区间,并且在稍后的部分中,从点c到d,与其中照片保持静态的情形对应地将值设置为0。因此,图4的示例对应于其中对于视频帧的所估计出的动作参数在开始时跟随(follow),平滑地减缓并最终停止的情形。
可以使用下列公式,通过数据的区间[a,b]中的值的加权平均来执行对于每一曲线的b点上的图表值的计算,其中,x表示动作参数(摇拍、倾斜或缩放),n等于b-a+1:
再次参照图3,该方法继续至方框44,在方框44中,确定要向所估计出的动作参数zoom(缩放)添加的另外的缩放因子。计算该另外的缩放因子以便确保要包括在虚拟视频序列中的子帧都没有超出它对于其而言为一部分的静态照片的边界。例如,在将高缩放因子应用于靠近于静态照片的边界的子帧并且开始进行缩小的情况下,可能出现其中对于放大后子帧的所有部分的充足信息并不存在的情形。为了避免可能导致在子照片帧中出现的不想要的黑长条的这种情形,使用用于从动作参数选取适当的子照片帧的算法。
为了合成子照片帧,算法需要它们每一个的中心和尺寸。下列公式适用于其中动作的线性下降之后是整个照片的静态拍摄的先前情况。
其中:
i = [过渡帧,……,1]
Xi c = 帧i的水平中心坐标
Yi c = 帧i的垂直中心坐标
scale(i)=2zoom(i) 。
由于对于帧f-1的各坐标参数完全取决于它们在帧f的值以及在帧f-1的动作参数,因此没有预先确保动作参数不致使超出照片边界。万一这发生了,对于这部分的子照片帧,没有信息可被合成,因此在内插的子照片帧中将会出现一些不想要的黑色长条。为了避免此问题,算法针对每个帧检查是否超出了照片边界,并且如果超出了,则将用于该特征帧的缩放因子充分地增大以再次使得尺寸合适。
这样做的好处在于,通过增大缩放因子,子照片帧将表示照片的有限部分。在这些状况下,转变的特定额定值对应于更低的绝对值。例如,在子照片对应于1的缩放因子的情况下,贯穿整个子照片的摇拍将对应于仅通过子照片帧对于其而言是一部分的静态照片的一半的摇拍。
下面描述此效果的示例。开始于代表整个照片(具有宽度(width)1024和高度(height)768)的子照片帧,基于用于先前帧的缩放因子,许可的转变值(即,许可的摇拍和倾斜)往往如图6中所示那样增大,其指示对于不同缩放值的许可的转变值。
图5示出三个缩放参数(即,初始缩放参数zoom(缩放)、不同的缩放参数和调节之后作为结果的缩放参数zoom’(缩放’))的图。从点d至点b向后计算缩放参数。
计算和应用不同的缩放参数,以便避免其中缩小可能导致子帧超出静态照片的边界的任何情形。
图5示出其中已经确定不同于零的不同缩放参数的情形。在点e的帧中,为了避免其中必要的子帧超出静态照片的边界的情形,不同的缩放因子是必要的。这作为点e的顶点指示在图5的中间曲线上。然而,所计算出的不同缩放参数不应当隔离地添加在需要其的帧e上,这是由于此集中的值将会在缩放因子曲线中形成突然的变化。该不同的缩放参数应用于缩放因子曲线的点f,其在需要其的帧和最后一帧、图5中的点d和点e之间的中途。高斯分布用于以避免突然过渡的这种方式在区间[e,d]上延展缩放量。作为结果的缩放因子zoom’(图5中的下方曲线)对应于不同的缩放因子(图5中的中间曲线)与缩放因子(图5中的上方曲线)的相加。
不同缩放因子必须加以计算并在需要其的帧之前完全添加至缩放因子。作为结果的缩放参数对于点d和e之间的子帧的应用对应于虚拟视频序列中揭示的静态照片的子帧的变化。在点d中,子帧在图5的所有三个曲线图中相同;然而,在点e和帧d与帧e之间的点处,相比于图5中的上方曲线的缩放参数应用到的子帧,子帧在应用不同的缩放参数之后是不同的。
下面给出用于计算帧尺寸的算法的伪代码的示例:
当子帧超出静态照片的边界时,重新开始所有子帧的尺寸和位置的计算。一旦已执行了该运算,则包含每个子帧的中心和尺寸的阵列是可用的。对于照片的每个子帧,其中心和尺寸是已知的。因此可以应用内插方法以便针对子帧的每个像素确定静态照片内的对应像素。
再次参照图3,该方法继续至方框45,在方框45中,计算每个子帧的中心、宽度和高度,并且进一步继续至方框46,在方框46中,通过照片的内插来合成静态照片的子帧。
在随后的(但是可选的)步骤47,渐变效果在视频帧和静态照片的子帧之间起作用。在步骤48中,确定过渡是否是淡出过渡(即,从视频段到照片的过渡)。在否定的情况下,该方法继续至步骤49,在步骤49中,合成的过渡的帧顺序被反转。接下来该方法结束。在步骤48的肯定情况下,该方法也结束。
如上所述,图3中的方法32是图2中的方法100的方法步骤32的示例。方法步骤32的结果是可以被重新编码以获得合成的视频序列35的一组过渡段33。
本发明可以实施成任何适当的形式,包括硬件、软件、固件或这些的任何组合。本发明或本发明的一些特征可以实施为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明实施例的元件和组件可以以任何适当的方式在物理、功能和逻辑上进行实施。实际上,功能可以实施在单个单元中、多个单元中或者作为其它功能单元的一部分。这样,本发明可以实施在单个单元中,或者可以物理地和功能地分布在不同单元和处理器之间。
尽管已经结合特定实施例描述了本发明,但是并非旨在限于这里所阐述的特定形式。而是,本发明的范围仅受限于所附的权利要求书。在权利要求书中,术语“包含”不排除其它元件或步骤的存在。另外,尽管单独的特征可以包括在不同的权利要求中,但是这些特征可能可以有利地加以组合,并且包括在不同权利要求中不意味着特征的组合不是切实可行的和/或有益的。另外,单数的引用不排除多个。由此,对于“一”、“第一”、“第二”等的引用不排除多个。此外,权利要求书中的参考符号不应当被解释为限制范围。