对《Live Sketch:Video-driven Dynamic Deformation of Static Drawings》一文的理解(上)
本文发表于CHI2018,作者是:
Qingkun Su1, Xue Bai3, Hongbo Fu2, Chiew-Lan Tai1, Jue Wang3
1Department of Computer Science and Engineering, HKUST
2School of Creative Media, City University of Hong Kong
3Megvii Inc. US
本博重在翻译
Live Sketch:Video-driven Dynamic Deformation of Static Drawings
ABSTRACT
使用传统工具创建草图动画需要专门的艺术技能,即使是经过培训的专业人员也很繁琐。为了降低创建草图动画的障碍,我们提出了一个新系统Live Sketch,它允许新手用户通过应用从视频示例中提取的基于变形的动画效果,以交互方式将静态绘图变成活的动画(which allows novice users to interactively bring static drawings to life by applying deformation-based animation effects that are extracted from video examples)。动态变形首先从视频中提取为一组稀疏的移动控制点,然后传输到静态绘图。我们的系统解决了一些主要的技术挑战,例如从视频中提取运动,从视频到草图对齐以及多对一运动驱动的草图动画(Our system addresses a few major technical challenges , such as motion extraction from video ,video-to-sketch alignment,and many-to-one motion-driven sketch animation)。虽然每个子问题可能难以完全自动解决,但我们通过将新的计算算法与直观的用户交互相结合来提供可靠的解决方案。我们的试验研究表明,我们的系统允许具有或不具有动画技能的用户轻松地为静态图纸添加动态变形。
Keywords:Sketch animation; video examples; motion extraction; motion transfer; dynamic deformation.
INTRODUCTION
近年来,开发智能用户界面以帮助新手用户创建具有艺术表现力的草图和绘图方面展开了新一轮的研究。代表性的例子包括ShadowDraw [31 2011],EZ-Sketch [42 2014],ColorSketch [32 2017]和重复自动完成系统[492014]。通过将智能计算算法与直观的UI控制相结合,这些系统使得几乎没有或没有正式艺术培训的新手用户能够以最少的努力创建高质量的静态绘画,这是使用传统工具无法实现。
尽管通过这些工具创建静态绘图变得更加容易,但创建高质量的2D动画仍然既困难又耗时。传统的动画工具,如Adobe Flash和ToonBoom软件,需要精确的动作关键帧,即使对于有经验的艺术家来说,这也是一个繁琐且劳动密集的过程。为了避免这种情况,已经提出了新的交互式工具,允许艺术家以更具创造性的方式指定运动,例如时空草图[20],或使用特别设计的草书手势[44]。尽管如此,使用这些工具不仅需要强化培训,还需要新手用户不具备的动画技能。新手用户很难将所需的连续对象运动关联到离散而稀疏的静态关键帧绘图(It is very hard for novice users to mentally map a desired continuous object motion to static keyframe drawings that are discrete and sparse.)。
另一方面,视频中存在了丰富的运动信息,其可以被潜在地提取并用于动画2D草图。适当的视频示例应该主要包含可以在语义上映射到草图的2D运动。理想的视频驱动草图动画工作流程将是:1)给定任意草图,从大型视频数据集中搜索适当的视频示例; 2)提取并将检索到的相关视频的运动转移到草图。虽然这两个子问题都很有趣,但我们的目标是解决第二个子问题,并着重于如何有效地重用给定视频示例的运动,来动画化可能具有与视频对象不同形状的草图。因此,我们的工作与Bregler等人的目标相同[10 2002]制作视频驱动动画。但是,他们的技术需要一系列用户准备的目标键形状,与视频中的源键形状相对应,并传递插值权重以实现基于关键帧的动画,而我们只需要一个草图(However, their technique requires a series of user-prepared target key-shapes corresponding to the source key-shapes from a video, and transfers interpolation weights to achieve keyframe-based animation, while ours needs only a single sketch.)
在本文中,我们提供了一个新的智能界面Live Sketch,它通过使用相应的视频示例,通过表达动态变形来帮助非专业用户动画化单个草图,如Fig1所示。我们的主要想法是提取来自现有视频的所需运动作为稀疏的一组移动控制点(Fig1(d)),然后用于驱动嵌入草图的网格的变形(Fig1(b))(Our main idea is to extract the desired motion from an existing video as a sparse set of moving control points,which are then used to drive the deformation of the mesh on which the sketch is embedded.)。我们提出了新的计算算法,并将它们与直观的用户控制相结合,实现稳健可控的运动提取和转移,使我们的系统即使对于没有动画技能或动画技能很少的用户也很友好。
在运动提取阶段,我们提出了一种新的半自动视频跟踪方法,该方法能够跟踪复杂的非刚性物体运动并且能够抵抗遮挡和模糊。我们的方法扩展了现有技术[2,11 2011,2006],引入了一个额外的组件,允许我们的跟踪方法处理由于模糊和拓扑变化引起的漂移问题。它在第一帧上需要一组用户指定的,语义上最有意义的控制点,并自动跟踪它们在整个视频中的位置。此方法还可以将稀疏的用户编辑作为硬约束,在很困难的情况下细化跟踪结果(This approach can also incorporate sparse user edits as hard constraints to refine the tracking results in difficult cases.)
在运动传递阶段,我们通过跟踪结果引导的基于网格的变形为输入草图设置动画(Fig1(b)),同时为用户提供一组工具来微调变形效果,如运动的局部刚度。我们进一步展示了如何将草图交互式分解为多个层以处理复杂的对象运动模式,例如自遮挡和拓扑变化。
我们进行了一项试点用户研究,以评估我们系统的可用性和表现力,展示了非常不错的结果。我们的工作主要有以下几点:
•第一个高效且用户友好的2D动画工具,通过重用视频示例的运动信息来动画单个绘图。
•一种新的稀疏点跟踪方法,可以有效抵抗遮挡和模糊,并且可以轻松让用户控制。
•用于动画化草图的新的保持笔划的网格变形方法,具有用于更好地保留用户指定笔划的形状的约束。
RELATED WORK
Digital sketching。有关如何协助艺术家或新手用户创建草图的存在着大量的研究。 一些方法通过分析众包图像集[31 2011],低质量绘图[19 2012],甚至是在[42 2014]上追踪的单个图像来改进或指导用户的草图绘制。 Xing等人 [49 2014]提出了一个自动完成繁琐重复的绘画系统。 这些方法的重点是帮助用户生成单独的静态绘图。 另一方面,动画很大程度上依赖于用户对空间和时间的感觉[41,9 2014,2013]。 我们的系统旨在通过利用视频示例来减轻用户对动作创作所需的繁琐控制。
Sketch-based animation。近年来已经提出了几种具有直观交互技术的动画工具。共同的目标是开发有助于交互式规范运动轨迹的工具。 Willett等 [48 2017]和索恩等人 [44 2004]提出了一组过渡动作或草书动作,用于绘制2D角色的各种动作。 Guay等[20 2015]引入了一个时空草图概念,使动画师能够通过仅绘制一个笔划来创建一个运动,包括随时间变形的形状。其他技术使用预定义的运动效果(粒子,波浪,烟雾等)来动画2D静态图纸[27,50 2014,2016]。这些方法专注于特定的动画效果或少量的动画风格。其他方法旨在使用时间相干性以交互方式预测用户可能下一步绘制的内容[46,1,51 2004,2004,2015]。但是它们仍然需要为每个关键帧进行许多手动草图绘制操作。与这些方法不同,我们的Live Sketch能够通过用少量用户帮助重新定位视频中的动作,为静态草图生成复杂的非刚性变形。
Animation tools using video。由于视频提供了丰富的动作,因此也存在现有的工具也利用视频进行动画制作。一种方法是通过处理颜色或RGBD视频以交互方式产生剪切风格的动画[6,22 2008,2012]。另一类是非真实感渲染(NPR)技术,它将图像或视频转换为艺术风格的渲染。例如,Ben-Zvi等人[8 2015]开发一种数据驱动方法,可自动将视频和CG动画转换为风格化的动画线条图。有关此主题的深入调查,请参阅[30 2013]。这些方法专注于更改输入视频的渲染样式,而不是提取底层动画以设置新线条图的动画。 Santosa等人 [38 2013]提供了一个用户界面,使用光流为在视频上绘制的草图设置动画,因此他们的系统只能为与输入视频类似结构的绘图制作动画。
还可以通过跟踪视频中的对象的轮廓并使用其时间上相干的信息来创建动画。例如,Bregler等人[10 2002]跟踪传统动画漫画的动作,并将其重新定位到3D模型或2D绘图上。它采用基于关键帧的方法,并且需要一系列相应的输入和输出键形状用于变形插值,从而产生比我们更具表现力的结果,但代价是显著增加用户输入。相比之下,我们采用基于非关键帧的方法将控制点的动态移动转换为单个静态绘图,因此需要显着减少用户输入并降低新手的障碍。他们的方法还需要子部分分解程序,这对于卡通人物来说相对容易,但对于真实的视频对象来说很难。 Agarwala等 [1 2004]提出了一种使用计算机视觉技术来减少轮廓跟踪过程中用户交互的旋转方法。从该系统提取的轮廓可用于驱动用户草图以进行视频风格化。我们的系统使用稀疏控制点作为运动表示,其比轮廓更容易准确地跟踪,因此在跟踪过程中需要更少的计算和用户干预。
Face and body driven animation。我们的系统与自动化的人性化动作动画密切相关(Our system is closely related to automated human-performance-driven animation.)。 MoCap [29 2008]是捕捉动画3D人体姿势的行业标准。 它需要普通用户无法轻松访问的复杂硬件设置。 已经广泛研究了将3D面部或身体模型拟合到图像和视频以提取人体运动[13,15,47,17,35,43 2013,2012,2016,2003,2016,2016]。 它启用了新的实时面部或身体驱动的动画系统,如Adobe Character Animator。 Park等 [34 2006]通过分析样本直接合成视频中的人体运动。 然而,这些系统仅限于面部表情或身体运动。 相比之下,我们的系统专注于为各种物体提取和传输(转移)2D动态变形。 此外,它使用常规视频作为动作源,相对容易捕获并且可在线广泛使用。
Cross-modality motion retargeting。已经提出许多系统来跨不同模态传递运动。 例如,Yamane等 [52 2010]从人类运动捕捉数据生成非人类角色的动画。 Hornung等[23 2007]将3D运动数据传输到2D图像对象,而Diener等人 [18 2006]重新定位用于3D植物模型动画的2D运动场。 周等人[55 2005]建议使用体积图拉普拉斯算法进行大型三维网格变形,允许运动从夸张的二维动画转移到三维网格。 伯恩哈德等人 [36 2016]专注于使用视频示例的3D关节生物的动画。 我们的系统是纯2D系统,因此即使没有3D模型也适用。
Video tracking。先前的单个对象跟踪方法[33,5,14,12 2008,2011,2013,2014]通常利用采样补丁的弱局部特征来跟踪边界框级别的单个对象。通过投票或统计聚合方法从所有补丁确定框位置。然而,我们的应用需要的不仅仅是边界框:它需要跟踪一组稀疏的控制点来捕捉主要的结构变形(Previous single object methods often utilize weak local features of sampled patches to track a single object at the bounding box level. The box position is determined from all patches through a voting or statistical aggregation method. Our application however requires more than a bounding box: it requires tracking a sparse set of control points to capture major structural deformation.)。
稀疏特征跟踪是视频分析的基本组成部分,已在计算机视觉文献中进行了广泛研究。我们的跟踪方法建立在众所周知的跟踪技术之上,例如good-feature-to-track[40 1994]和Struck [21 2011]。但是,大多数先前的跟踪方法单独跟踪每个特征点而不考虑它们的几何关系。这对于大多数计算机视觉任务都是有效的,其中在每个帧上跟踪数百个特征,并且通过诸如RANSAC的异常值移除方法消除跟踪错误。但是,由于我们只跟踪一些语义上有意义的控制点,因此跟踪单个点的失败会导致大的失真。我们通过多点联合优化来缓解这个问题。
OUR SYSYEM
System Overview
Inputs。如Fig1所示,我们的系统将表示为矢量图形的静态草图绘制作为输入,并且包含用于动画草图的运动对象的期望运动的视频示例(our system takes as input a static sketch drawing represented as a vector graphics, and a video example that contains the desired motion of a moving object for animating the sketch)。 移动物体应该在整个视频中完全可见。 源运动应该是近似2D并且在图像平面内,因为在3D中使2D草图变形可以容易地导致(例如,扭曲)伪像。 此外,由于我们关心的是前景对象的运动,我们假设输入视频的摄像机是静态的。 诸如[54,3 1999,2012]的现有相机运动预测方法可以帮助移除相机运动。
Motion Representation。我们的运动传递任务的一个关键问题是物体运动的表示。鉴于自然物体运动的复杂性,很难用参数形式来描述它,就像[10]中所做的那样。对于非参数表示,我们可以选择密集或稀疏运动流。前者可以通过光流方法提取,而后者可以通过使用稀疏特征跟踪来计算。我们已经对这两种表示进行了实验,并得出结论,稀疏特征点轨迹更适合我们的任务。原因是密集流通常包含可能在动画期间扭曲草图的跟踪误差,并且这些误差很难通过用户界面纠正,因为在每个像素上定义了运动。相反,稀疏轨迹允许我们在运动中强制执行强烈的空间和时间平滑性,从而产生更稳定的动画(On the contrary, sparse trajectories allow us to enforce strong spatial and temporal smoothness in motion, resulting in more stable animation)。它还允许通过交互式移动这些点的位置来快速进行用户编辑。使用稀疏表示的缺点是无法捕获和传输具有更细粒度的运动。但是,通过调整控制点的空间分布可以部分地缓解这个问题,如“Control Point”一节中所述。
User Interface
我们的系统使用两阶段工作流来动画用户的2D静态草图:(1)从输入视频中提取运动; (2)运动转移到草图。我们首先介绍这两个阶段的用户界面,如Fig2所示。
Motion Extraction
我们提供直观的用户界面,从视频中提取所需的运动。用户首先在对象内定义一组结构控制点,这些控制点通过整个视频自动跟踪。有关控制点提取的详细信息,请参见“Control Point Extraction”一节,我们的跟踪方法在“Motion Extraction”一节中介绍。这些控制点的轨迹代表物体运动,并将应用于动画草图上的相应控制点。鉴于自动跟踪并不总是完美的,我们的界面还提供了手动工具,通过添加,删除或重新定位控制点来微调提取的运动。运动轨迹实时更新并在编辑过程中可视化给用户(参见Fig2(左))。
Motion Transfer
系统自动将控制点轨迹映射到用户的草图(“Control Point Transfer”部分)。这些映射控制点在网格变形过程中用作约束来驱动动画,详见“Motion Transfer”一节。用户可以立即查看动画结果,无需任何额外的手动操作。
我们的界面提供了用于微调自动生成的草图动画的交互式工具,如Fig3所示。首先,它允许用户调整草图上控制点的空间位置,其初始位置自动从视频对象上的控制点推断而来。另一个有用的工具是“刚性线条”,可用于减轻动画期间的局部形状失真。用户还可以使用“装饰描边”工具来标记要保持静止的草图组件,如用于背景装饰的草图组件或用于向草图添加固定控制点的“Pin Point”工具(图中没有ID的黑点)。Fig10(a))。
我们系统的一个重要特征是能够分解草图并在多个层中对其进行动画处理(参见Fig3,右)。这对于处理自遮挡特别有用,自遮挡对于具有复杂运动的视频对象是常见的。为了创建这样的图层,用户可以使用“Layer Brush”根据对象的语义及其运动来绘制应该组合在一起的笔划。我们还为用户提供了一个界面,用于细化图层之间自动生成的关节以微调动画。有关详细信息,请参阅“Multi-layer Animation”一节。
Control Point Extraction
在我们的系统中,对象运动由一组稀疏控制点表示,这些控制点在整个视频中被跟踪,并用作使动画草图变形的约束。我们已经对自动计算这些要点进行了广泛的研究。我们尝试使用诸如SIFT或SURF之类的图像特征来找到要跟踪的好点,并且还探索了基于初始对象形状确定点的方法。最后,我们得出结论,尽管这些自动方法在某些情况下确实运行良好,但它们无法很好地处理各种各样的例子。这是由于对这些控制点的以下要求:
R1。它们应该稀疏地分布在整个对象形状上以覆盖动画区域。
R2。它们的分布应该反映潜在运动的自由度。例如,一个控制点可能足以用于飞行棒球;然而,飞鸟捕捉其鸟翼运动需要更多。
R3。它们应该很容易在视频中跟踪,例如图像角落(image corners),它们与邻域有很大的外观差异。
R4。控制点的数量应该是最小的,以便于用户调整。
R5。它们应该遵守对象的语义,例如,尊重语义对称性(例如Fig1中运行的病毒的触角)。
R1建议具有足够数量的控制点来捕获对象的基础运动。 另一方面,R4旨在最小化控制点的数量。 这表明相对于基础运动(R2)自适应地分配控制点,同时确保每个控制点是语义感知的(R5)并且位于具有显着图像特征(R3)的区域中。 虽然使用局部图像特征空间,运动分析和形状分析可以满足各个要求,但是以平衡的方式满足所有要求更加困难,并且需要对对象及其运动进行深入的语义理解。 另一方面,用户相对容易预览视频并确定对象及其动作的语义。 因此,我们采用手动程序来指定控制点。 我们采用强大的跟踪算法,共同优化所有跟踪点,详见下一节。
Disscussion。控制点的分布决定了我们提取的运动的粒度; 较少的控制点导致较粗糙的运动,反之亦然。 然而,具有太多控制点可能是有问题的,因为跟踪失败可能增加,并且运动场由于跟踪误差而变得不太稳定。 鉴于我们将强制执行动态稳定的时间平滑运动场,我们发现一组较小的控制点(一个或两个数十个)通常足以用于各种示例。
Motion Extraction
指定控制点后,我们会在整个视频中跟踪其位置。一种天真的方法是使用标准点跟踪方法单独跟踪每个控制点,例如KLT点跟踪器[53 2006]。然而,对于一些难以跟踪的点,例如在无纹理区域中指定的点,这些方法可能会失败,从而导致漂移。作为硬约束,这些漂移点稍后会扭曲最终动画中的草图形状。鉴于无论底层算法有多强大,都可能始终发生自动跟踪失败,我们采用了交互式跟踪程序。我们首先采用基于动态编程的轨迹优化框架(dynamic-programming-based trajectory optimization framework)[2,11 2011,2006]来跟踪各个点。当跟踪漂移发生一个点时,用户仅需要修改特定帧中的失败点的跟踪位置,该跟踪位置被合并为硬约束以全局细化失败点的整个轨迹。因此,用户可以通过仅编辑几帧来快速细化跟踪结果。这种交互式跟踪方法非常有效,并且能够解决由于遮挡引起的漂移问题。为了处理由于模糊导致的第二个漂移源,我们联合优化多个跟踪轨迹。具体而言,跟踪算法针对每个控制点轨迹优化以下能量:
其中表示控制点x在帧t中的位置,而
表示以
为中心的图像块(我们使用9*9个patches)的特征描述符(在我们的实现中为SIFT)(where xt represents the position of a control point x in frame t, and pt denotes the feature descriptor(SIFT in our implementation) of the image patch (we use 9*9 patches) centered at xt.)。 能量由三部分组成。 速度项
和更新惩罚项
测量两个连续帧之间的相应运动强度和外观变化,以实现平滑动作和外观过渡。 第三项中
是与用户指定的控制点位置
的外观偏差的度量,其中
是
的
补丁特征描述符(patch feature descriptor)。 用户可以在不同的帧处手动指定两个或更多个控制点位置。 我们使用测量其他帧处的点的外观能量,以便它们应该匹配这些用户指定的控制点中的至少一个。
我们最小化 方程式 (1) 中的能量函数,通过找到图的最短路径(Fig4)。 首先,用户在某些帧(黑色圆圈)指定跟踪点的位置。 然后,对于每个剩余帧,我们找到一组轨迹候选位置(绿色圆圈),其具有与用户指定位置的小外观偏差。 然后我们构建一个图表,将这些候选点和用户指定的点作为其节点。 我们将每个帧t的点与下一帧t + 1的点连接作为图的边缘(灰线)。 每个节点
的权重是其外观偏差
。 每条边的权重由下式计算
因此,最短路径的总成本是的最小值。
为了处理遮挡问题,我们还将每个帧的点与其下一个m帧的点完全连接(Fig4中的虚线,我们设置m = 10)。 帧和
的两个相应节点
和
之间的额外边缘的权重
是
参数值和更多该方法的细节可以在[2,11 2011,2006]中看到。
Ambiguity Handling
除了遮挡问题之外,漂移的另一个来源是模糊性,即,当具有相似外观的两个或更多个跟踪点彼此接近时。 一个例子如Fig6(上)所示。 当虎的两条腿交叉时,两个控制点变得彼此太靠近,并且它们最终跟踪相同的图像特征,导致碰撞。
为了解决这个问题,我们提出了一种新的能量最小化方法来联合优化多个点的跟踪轨迹(Fig5)。 主要思想是首先为每个控制点生成一组轨迹作为候选轨迹(Fig5(上图)),然后采用全局优化方法,通过共同考虑多个点来为每个点选择最佳点。
Candidate Trajectories。给定关键帧上的所有控制点,我们首先根据方程式(1)中的计算任意两点之间的外观相似性。 然后我们将点分组成几组,每组包含具有相似外观的点。 将一个这样的集合表示为
。 对于每个点
,我们应用[16 2015]中提出的方法来计算一组候选跟踪轨迹。 该方法有两个主要参数:(1)任意两个候选轨迹之间的最大重叠,我们将其设置为
,其中T是帧的总数; (2)跟踪成本阈值(设置为最短路径成本的4.0倍)。
Trajectory Optimization。我们联合优化多个跟踪点,以找到每个点的最佳轨迹。 这可以表述为以下能量最小化问题:
其中跟踪能量由方程式(1)测量。
被定义为两个轨迹的重叠部分的归一化持续时间。
是权重参数,在我们的实现中设置为0.25。直观地,该术语阻止两个类似的控制点折叠成单个控制点-----在这种情况下,两个轨迹的重叠部分将是大的。
我们使用贪婪算法来最小化这种能量。我们首先通过选择每个点具有最小跟踪能量的轨迹来初始化解决方案(根据等式1)。从具有最大总能量的点开始,根据Eq2,我们为其分配另一个最能使这种能量最小化的候选轨迹。我们重复这个过程,直到总能量不能进一步降低。
请注意,我们不会对视频的背景做出任何假设。具有复杂背景的视频的一个跟踪结果如Fig6(下)所示。此外,我们的运动提取方法是一种通用的特征跟踪方法,因此能够跟踪涉及3D运动的对象(Fig6(底部)和Fig15(右)),尽管它可能需要额外的用户帮助。这样的视频示例对于其他应用更有用,例如,驱动3D模型的运动而不是动画2D静态绘图。
Control Point Transfer
要将提取的运动传输到输入草图,我们首先需要将视频对象上指定的控制点映射到草图。由于草图内容和视频对象之间可能存在不同的外观,因此基于内容的局部特征的现有方法[4,39 2017,1996]不适合我们的场景。我们提出了一种基于轮廓的半自动映射方法。
可以使用Active Contour models[26 1988]提取草图的轮廓。视频对象的轮廓可以通过自动GrabCut分割[37 2004]提取,边界框将所有跟踪点作为输入。请注意,由于要求R1,跟踪点的边界框通常可以很好地覆盖视频对象。当背景干净时,这种轮廓提取方法很有效。否则,用户可以使用钢笔工具快速绘制正确的轮廓(例如,Fig6(底部)中的示例)。然后我们应用Shape Context方法[7 2000]来构建两个轮廓之间的对应关系。接下来,对于视频对象内的控制点,我们使用一组均匀采样的轮廓点的重心坐标来表示其位置,并使用草图图像上的相同重心坐标计算其位置。当草绘和视频对象的对象轮廓与Fig10(b)中的示例非常不同时,我们还提供直观的用户界面以帮助微调映射结果(部分用户界面)。
Motion Transfer
我们使用稀疏控制点轨迹来驱动最终的草图动画。为此,我们首先将草图嵌入到网格中,然后使用网格变形方法来扭曲网格以进行动画处理。通过对草图的扩展区域进行三角测量来生成网格(参见Fig1)。我们对变形的期望是双重的:(1)变形网格应紧密跟随控制点的引导以保持提取的运动,因此要求网格的分辨率足够高以提供详细的运动; (2)原始草图笔画不应过度扭曲,以免造成不自然的变形伪影。
传统的受控网格变形方法,例如尽可能刚性(ARAP)网格变形[24,25],设计为仅保持网格三角形的刚度(见Fig8),不一定保留形状嵌入的笔划,特别是那些穿过多个三角形的笔画。此外,希望使草图的一部分更加刚性,而其他部分可以灵活地捕获大的运动。Fig7显示了这样的例子。由于原始的ARAP变形,鸟的身体因其翅膀的大运动而不期望地扭曲。用户可以对鸟的身体施加更强的刚性约束,同时对其翅膀施加较弱的刚度,以更好地捕捉强烈的拍打动作。
我们开发了一个保留笔划的ARAP,以在输入笔划上获得用户指定的局部刚度。我们的方法将从输入笔划得到的新网格三角形添加到原始网格中。 将原始网格表示为,如Fig8中的灰色所示。我们从每个用户指定的输入笔划中均匀地采样点,并构造一个草图三角形集
(紫色三角形) 在Fig8)中,通过连接每个笔划上的每三个连续点,排除线段上的简并三角形。 然后,我们通过将
中的每个顶点与
中的三角形的三个顶点连接起来构造链接三角形集
。
给定增强网格结构,我们将保留笔划的ARAP变形表示为以下能量最小化问题:
这是基于[24]。 它也可以通过其他ARAP优化方法制定,如[25]。 H是一个刚性且与尺度相关的ARAP变换矩阵,它通过两步优化算法实现。 第一步为每个三角形找到合适的旋转,第二步调整其比例。 有关详细信息,请参阅[24]。 最小化可保持笔划的形状,同时最大限度地减少
将原始网格的变形转移到笔划。 在我们的系统中,我们将权重
设置为小值0.01,允许链接三角形集中的三角形失真,以在网格变形和笔划形状保持之间取得平衡。 我们默认设置
,以便更好地保留笔划形状。 对于需要更加刚性的所有笔划,用户可以通过移动滑块将相应的
值增加大于1.0的因子。
Multiple-Layer Animation
如前所述,单层,基于网格变形的动画无法处理拓扑变化,这对于动态对象是常见的(参见Fig9a)。 为了处理这种情况,我们的系统允许用户创建具有多个层的动画。 使用此工具,用户首先将草图笔划分成几组,每组代表一个图层(Fig9b)。 为了避免在动画过程中将不同的图层彼此分离,我们的系统会自动检测这些图层的交点,并在每个交叉区域的中心添加一个关节点(Fig9c,蓝色圆圈),以便连接这些图层。 因此,在运动传递阶段,所有层都可以一起变形,如图Figd-e所示。
RESULTS
我们已经用C ++实现了我们的系统,并在各种输入草图和视频上进行了测试。 为了绘制美学,我们要求艺术家创建草图(除了Fig13之外,本文中的所有例子)。 我们的主要贡献是制作这些静态草图的生动动画。 Live Sketch可以很好地处理复杂的非刚性运动,例如弹性运动(Fig10a),关节运动(Fig10c)等。通过应用分层动画,它还可以生成涉及自我遮挡的高质量动画(Fig10C)。 从一个视频示例中提取的运动可以容易地重复使用以驱动具有不同样式的不同输入草图(图1;图10b;图11)。 类似地,可以通过将多个运动示例应用于其不同部分来动画单个复杂绘图,如图10d所示,其中最终动画组合从病毒和风筝视频提取的运动。 有关生成的动画,请参阅随附的视频。
EVALUTIONS AND DISCUSSIONS
我们进行了一项试点研究,以评估我们系统的效率和有效性。 理想情况下,我们希望将我们的工具与现有动画工具进行比较。 但是,没有现有工具可以获得与我们相同的输入。 如前所述,Bregler等人最接近的工作 [10]需要一系列关键形状进行插值,而不是单个草图。 我们的工具会更快,因为它不需要勾画其他关键形状。 另一方面,现有的工具,如Adobe Flash和Toon Boom,可以获得更多用户输入,可能会产生超出运动源的更详细,更富有表现力的结果。 因此,这种比较实验可能无法产生有用的见解。
我们不是要与这些现有工具进行比较,而是更加关注我们的系统是否可以被非专业用户有效使用。 我们还为用户提供了足够的动画技能,以确定我们工具的性能是否取决于动作的复杂程度而非动画技能。 此外,我们想知道我们的系统是否能够完全支持用户的创造力,以便不同用户为草图制作动画。
Participants and Apparatus。12名大学生(a1至a12)被邀请参加这项研究,其中包括6名男性和6名女性。 一半的科目(a1-a6)具有良好的专业绘画技巧和2D动画技能,而另一半(n1-n6)没有或只有很少的动画经验。 所有受试者都对创建自己的2D动画的想法充满热情。 使用运行Windows 10的触摸屏笔记本(具有Intel(R)Core(TM)i5-6300U @ 2.40GHz 2.5GHz 8GB RAM的Surface Pro 4)作为测试设备。 我们的系统在此设备上以交互速率顺利运行。
Design and Procedure。每位参与者首先接受了20分钟的培训,如何使用我们的系统绘制草图,从视频中提取动作并将动作转移到草图,由其中一位作者指导。 我们的系统只提供基本的草图绘制界面,因为如何创建好的静态绘图不是我们关注的焦点。 在本教程中,提供了一个用于培训的视频,并且未在正式研究中使用。
然后给予受试者10分钟以使用相同的实例进行练习。 在受试者能够为他们绘制的草图创建动画并感觉舒适继续深入之后,他们被要求为5个不同的视频示例(即鸟类,病毒,鱼类,心脏和风筝)中的每一个完成两项任务,参见Fig11行1):任务1:动画由艺术家预先绘制的两个给定草图(图11第2行和第3行)和任务2:绘制两个新草图并为它们制作动画。
我们使用任务1来评估运动提取和传递的可用性,并使用任务2来评估我们工具的表现力。 没有为这些任务设定时间限制,其中一位作者总是可以回答主题可能有的任何问题。 要求受试者在研究结束时完成问卷调查。
Results。我们的系统记录了每个主题的时间,包括草图的开始和结束时间,动作提取和转移步骤。我们还记录了所有用户互动:添加和调整跟踪点;素描;标签装饰线;应用局部刚度画笔,调整运动比例和旋转等。新手和艺术家用户的任务1的平均完成时间如图14所示。平均手动操作数的数字相似,因此不包括在内。纸。更详细的统计数据可以在表1中找到。任务2的一些结果如图12和13所示。一些动画结果可以在补充视频中找到。任务1的结果表明,当产生类似的动画结果时,新手和艺术家用户之间在运动提取和转移的用户时间上没有显着差异。更具体地说,新手用户和艺术家平均每帧花费3.066和3.107秒。两组受试者在心脏例子上花费的时间最多,主要是因为运动提取的控制点的规格对于单个部分的弹性运动而言不太明显。艺术家应用了稍多的手动操作(艺术家每帧平均操作0.655次,初学者每帧操作0.510次)。这可能是因为他们更喜欢对跟踪和运动结果进行更精细的控制,以产生更高质量的动画。有趣的是,他们的动画体验帮助他们更快地操作,这也许是他们的完成时间与初学者相当的原因。通过问卷调查,参与者表示他们对我们的系统表示满意。他们评论说Live Sketch易于使用,直观且高效。进一步来说,
n5:“老实说,我没有2D素描动画制作的经验;这个系统提供了一种非常直观的方法来将逼真的动作传递给2D草图。”
a2:“通过这个系统,我们可以跟踪现有动画并将其应用到其他草图中,可以轻松创建一个简单的动画。使用现有工具,我们需要自己创建一个全新的动画。”
十二位参与者中有十一位提到动作提取工具易于学习和使用。还有十个用户喜欢这样一个事实,即他们不需要逐帧控制动画。此外,我们对任务2的统计数据表明,与素描时间相比,运动提取和传递部分花费的时间非常短。新手草图,动作提取和动作传递的平均时间分别为306.80s,149.86s,108.62s;用户和艺术家的450.36s,144.23s和95.90s。这意味着一旦准备好动作,艺术家和新手都可以快速制作动画。
Motion extraction。一些用户对运动提取的用户界面印象深刻。他们评论说,他们可以通过少量的用户干预来提取令人满意的动作。跟踪细化操作的频率非常低,更具体地,每个控制点每34帧平均一次操作。
n2:“我喜欢将运动从被跟踪物体转移到绘制草图的想法,这使得动画非常有效......尽管跟踪结果有时不稳定,但用户可以选择手动更新控制点的工具,这肯定是一个不错的附加组件。“
a5:“我喜欢运动捕捉的功能,可以节省动画师的时间。对于2D手绘制动画师,他们必须逐帧绘制(每秒12-24帧),以创建流畅的动画。但是,通过使用这个系统,动画师只需绘制一个草图来创建一个短动画。“
动作转移。艺术家a1,a2和a5以及新手n1和n3-5也对运动传递部分给出了正反馈。如参与者所证实的,笔划保留约束和运动调整工具简化了整个动画过程。
n3:“系统还提供了一些有用的工具,可以添加锚点,修复背景和添加约束......用它们,我可以通过多次交互进一步提高质量和自定义动画。”
Limitations。一些艺术家提到转移的动画缺乏视频的精细细节。这主要是因为动画是由稀疏分布的控制点驱动的。一种可能的解决方案是使用密集跟踪方法来提取运动。然而,现有的密集跟踪方法通常不能提供纠正跟踪错误的好方案。我们将在未来探索交互式密集跟踪校正和精确密集点映射方法,以获得更丰富细节的结果(图15(左))。此外,因为我们的系统只需要一个草图作为输入,所以很难通过简单地在3D中变形单个草图来引入3D动画,尽管我们的运动提取方法可以捕获3D运动(图15(右))。
CONCLUSION AND FUTURE WORK
我们提出了一个新的交互式系统,用于使用视频示例为草图绘制动画。关键思想是使用稀疏点跟踪提取视频中呈现的对象运动,并使用受控网格变形将其传递到草图图像。对于运动提取,我们提出了一种新的跟踪方法,该方法可以抵抗遮挡和模糊,并进一步将其与简单的用户控制相结合,实现可靠的跟踪。对于动作传输,我们的系统允许用户使用一组交互式工具精确控制动画。我们进行了一项试验性研究,以显示给定的静态草图和相应的视频,非专业用户可以使用与专业用户类似的时间和努力将它们变成生动的动画。我们相信,我们目前的工作只是触及了令人兴奋的机会。如前所述,我们的系统在处理平滑图像区域(例如变形云)或随机运动(例如海浪)方面仍存在问题,其运动难以使用自动或交互方式提取。需要扩展系统以处理更多类型的运动。系统当前只能传输从视频中提取的原始运动,使用现有的运动风格化或夸张方法(例如Animation Filter[45])通过应用简单的滤波器来产生更生动的运动轨迹将是有趣的。通过交互式地将运动放大器[28],元素动力学[50]应用于我们的动画结果,也可以制作更多风格化的动画。在未来,我们希望通过构建具有不同运动属性的大量视频并开发检索方法来寻找适当的视频示例(如任意草图作为输入)来解决引言部分中讨论的第一个子问题。
-------------------------------------------------------------------------- END----------------------------------------------------------------