基于视频提取和重用的卡通动画制作方法转让专利

申请号 : CN200810059141.5

文献号 : CN100583158C

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 庄越挺肖俊俞俊

申请人 : 浙江大学

摘要 :

本发明公开了一种基于视频提取和重用的卡通动画制作方法。首先将卡通视频分解为卡通帧;之后,采用基于边界的前景分割技术提取卡通角色;之后,利用角色在边界上的相似度计算任意两帧角色之间的距离并得到距离矩阵;之后依据得到的距离矩阵采用流形学习的算法构建无向图;最后,由用户在无向图中指定任意两点并建立两点之间的最短路径,路径上所包含的帧组成一段平滑的动画帧序列。本方法通过设计出一个基于边界的前景提取技术,有效的将卡通角色从复杂背景中提取出来;通过光流跟踪技术计算每帧中角色的运动属性,使得角色之间的相似度计算更加精确;通过流形学习构建出的卡通数据重用平台,使得用户能够方便,快捷的制作卡通动画。

权利要求 :

1.一种基于视频提取和重用的卡通动画制作方法,其特征在于包括以下步 骤:

(1)基于图像中的灰度信息,计算图像中每帧的梯度并检测出角色的轮廓, 并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色;

(2)对每帧,采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;

(3)基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权值并计算两 帧在运动属性和边界上的距离,构建距离矩阵;

(4)依据步骤(3)中计算得到的距离矩阵,采用流形学习算法将提取的卡通角 色投影到低维空间并建立无向图,然后由用户在无向图中任取两点作为起点和 终点并构建最短路径,路径上的点组成卡通帧序列。

2.根据权利要求1所述的一种基于视频提取和重用的卡通动画制作方法,其 特征在于,所述的基于图像中的灰度信息,计算图像中每帧的梯度并检测出角 色的轮廓,并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色: 提取轮廓的基本思路是逐一计算每个像素点在灰度上的二阶导数,并可通过 Laplacian of Gaussian滤波器近似得到,当其中某一点上的二阶导数为零时, 则该点被定为边界的一部份;提取得边界图像仍存在一部分噪音,需采用卷积 的方式去除图像中的噪音,去噪的公式为: C ( i , j ) = Σ m = 0 Ma - 1 Σ n = 0 Na - 1 A ( m , n ) * F ( i - m , j - n ) - - - ( 1 ) 其中,A是带有噪声的图像矩阵,F则是用于过滤的矩阵,且0≤i<Ma+4, 0≤j<Na+4;过滤后得到角色的封闭轮廓,接着采用像素填充算法,即在轮廓 中选取一个点作为起始点,并利用八通图对整个轮廓进行深度优先的遍历,当 遇到边界时,则停止遍历并返回上一层,结束时所有被遍历到的点都作为前景 上的点;结合原始图像和经过区域填充的灰度图像,可将角色从原始图像中分 割出来。

3.根据权利要求1所述的一种基于视频提取和重用的卡通动画制作方法,其 特征在于,所述的对每帧采用光流跟踪算法计算当前帧的运动属性,包括运动 方向和速度;通过前景分割可得到视频中相邻两帧的前景角色Ii和Ii+1,首先采 用几何平均计算出两个角色的质心Ci和Ci+1,因此角色之间的相对位移的计算公 式是: M r i = C i C i + 1 - - - ( 2 ) 卡通视频中镜头的位移可基于相邻两帧通过光流跟踪计算得到,为了找到帧Ii中 像素(x0,y0)在帧Ii+1上的位置,在Ii+1的像素(x0,y0)周围设计一个正方形的区域进 行搜索,当相关度匹配最大化时,则认为找到了对应的位置,计算公式为:

r = Σ m , n ( W i ( m , n ) - W i ) ( W i + 1 ( m , n ) - W i + 1 ) Σ m , n ( W i ( m , n ) - W i ) 2 · Σ m , n ( W i + 1 ( m , n ) - W i + 1 ) 2 - - - ( 3 ) 其中,Wi和Wi+1是帧Ii和Ii+1上用于匹配的正方形区域;依据两个相匹配的像 素可计算得到像素的位移向量,通过平均所有像素的位置向量,可得到图像整 体位移即相机的位移,计算公式为:

M b i = 1 n Σ a = 0 n M P a - - - ( 4 ) 再通过合并角色的相对位移和相机位移可得到角色的运动方向和速度,计算公 式为:

M c i = M r i - M b i - - - ( 5 )

4.根据权利要求1所述的一种基于视频提取和重用的卡通动画制作方法,其 特征在于,所述的基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权 值并计算两帧在运动属性和边界上的距离,构建距离矩阵:首先对比任意两个 角色的轮廓计算轮廓上的相似度,计算公式为:

D H ( I i , I j ) = max ( h ( E i , E j ) , h ( E j , E i ) ) i j 0 i = j - - - ( 6 ) 其中,Ei和Ej是帧Ii和Ij的边界集合,且h(Ei,Ej)是计算两个集合之间的 Hausdorff距离,计算公式为:

h ( E i , E j ) = Σ p a E 1 mi n p b E 2 ( | | p a - p b | | ) - - - ( 7 ) 其中,Pa和Pb是Ii和Ij的边界上任意两点,||pa-pb||是这两点之间的欧式距离; 通过合并运动属性上的差距以及边界上的差距计算两帧的距离,计算公式为:

D(Ii,Ij)=αDH(Ii,Ij)+(1-α)DG(Ii,Ij)              8

α作为合并用的权重,DH(Ii,Ij)代表两帧在边界上的差距,而DG(Ii,Ij)表示 两帧在运动属性上的差距,计算公式为:

D G ( I i , I j ) = 1 π cos - 1 ( M c i · M c j | M c i | | M c j | ) - - - ( 9 ) 其中是角色的运动方向和速度。

5.根据权利要求1所述的一种基于视频提取和重用的卡通动画制作方法,其 特征在于,所述的依据计算得到的距离矩阵,采用流形学习算法将提取的卡通 角色帧投影到低维空间并建立无向图,然后由用户在无向图中任取两点作为起 点和终点并构建最短路径,路径上的点组成卡通帧序列:首先依据距离矩阵确 定任意一点与周围若干邻居结点之间的边长为最短路径,其中邻居结点的个数 是提前确定的,由此构建出无向图;然后基于该无向图计算任意两点之间的最 短路径,得到最短路径图;最后采用MDS算法构建低维空间;在得到该低维空 间之后,由用户在空间中任意指定两点作为起点和终点,两点之间最短路径所 包含的点作为新生成的动画帧。

说明书 :

技术领域

本发明涉及二维卡通动画领域,尤其涉及一种基于视频提取和重用的卡通动 画制作方法。

背景技术

卡通动画有着广泛的应用领域,包括教育,广告,娱乐等。传统的卡通画 制作分为:情节设计、细节设计、声音的录制、关键帧绘制、过渡帧绘制、背 景绘制等。传统动画是一个繁琐的制作过程,尤其是过渡帧的绘制需要消耗动 画师大量的时间和工作。
当前计算机辅助动画设计系统主要是希望基于关键帧自动绘制过渡帧,减 轻动画师的工作量,即针对相邻两关键帧的各个部分建立对应关系,并基于该 对应关系通过插值生成过渡帧,再依据关键帧中各部分的颜色生成过渡帧的颜 色。
建立相邻两关键帧的对应关系。由于2维图像本身不是结构化的数据,因 此需要对其进行结构化。比如2002年在NPAR会议上发表的《Computer Aided Inbetweening》就属于这种方法,该文章提出基于层次的算法将关键帧以笔画 为单位,对图像进行结构化。首先帧中角色上的笔画将基于其连通性分为若干 笔画组,之后对于两幅关键帧中的笔画组依据它们之间存在的包含,相邻以及 层次关系构建对应关系。又如1995年在Journal of Visual Computer上发表 的《Feature matching and affine transformation for 2D cell animation》 提出了一种自动建立过渡帧的算法,该方法首先确定一对相似的关键帧,同时 在关键帧各自的边界上确定特征点,其周围的邻近像素要有三个或三个以上属 于角色,在两帧的特征点中选中若干相互匹配的特征点,并建立它们之间的仿 射变换矩阵,接着运用该变换矩阵针对其中一个进行变形得到的结果与另一帧 将非常接近,在原关键帧与变换得到的帧之间利用插值构建过渡帧。
通过插值得到的过渡帧仅具有轮廓,而不具有颜色信息,而为过渡帧上色 是一件繁琐的工作。在2000年Journal of Visual Computer上发表的 《Computer-assisted coloring by matching line drawings》一文中提出针 对过渡帧的自动上色算法。首先针对角色轮廓进行修复工作,然后针对角色中 大面积区域给出编号,并进行匹配,对于面积较小的区域则按照与大面积区域 的邻接关系进行匹配。
基于传统动画制作过程得到的计算机动画辅助设计系统往往存在两个难 题。一是这类方法中的关键帧依旧需要由动画师进行设计,因此并不适合业余 动画爱好者;二是采用插值的方式生成的过渡帧的质量并不能被保证。

发明内容

本发明的目的在于提供一种基于视频提取和重用的卡通动画制作方法。
包括以下步骤:
(1)基于图像中的灰度信息,计算图像中每帧的梯度并检测出角色的轮廓, 并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色;
(2)对每帧,采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;
(3)基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权值并计算两 帧在运动属性和边界上的距离,构建距离矩阵;
(4)依据步骤(3)中计算得到的距离矩阵,采用流形学习算法将提取的卡通角 色投影到低维空间并建立无向图,然后由用户在无向图中任取两点作为起点和 终点并构建最短路径,路径上的组成卡通帧序列。
所述的基于图像中的灰度信息,计算图像中每帧的梯度并检测出角色的轮廓, 并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色:提取轮廓 的基本思路是逐一计算每个像素点在灰度上的二阶导数,并可通过Laplacian of Gaussian滤波器(LOG)近似得到,当其中某一点上的二阶导数为零时,则该点被 定为边界的一部份;提取得边界图像仍存在一部分噪音,需采用卷积的方式去 除图像中的噪音,去噪的公式为:
C ( i , j ) = Σ m = 0 Ma - 1 Σ n = 0 Na - 1 A ( m , n ) * F ( i - m , j - n ) - - - 1
其中,A是带有噪声的图像矩阵,F则是用于过滤的矩阵,且0≤i<Ma+4, 0≤j<Na+4;过滤后得到角色的封闭轮廓,接着采用像素填充算法,即在轮廓 中选取一个点作为起始点,并利用八通图对整个轮廓进行深度优先的遍历,当 遇到边界时,则停止遍历并返回上一层,结束时所有被遍历到的点都作为前景 上的点;结合原始图像和经过区域填充的灰度图像,可将角色从原始图像中分 割出来。
所述的对每帧采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;通过前景分割可得到视频中相邻两帧的前景角色Ii和Ii+1,首先采用几何平 均计算出两个角色的质心Ci和Ci+1,因此角色之间的相对位移的计算公式是:
M r i = C i C i + 1 - - - 2
卡通视频中镜头的位移可基于相邻两帧通过光流跟踪计算得到,为了找到帧Ii中 像素(x0,y0)在帧Ii+1上的位置,在Ii+1的像素(x0,y0)周围设计一个正方形的区域进 行搜索,当相关度匹配最大化时,则认为找到了对应的位置,计算公式为:
r = Σ m , n ( W i ( m , n ) - W i ) ( W i + 1 ( m , n ) - W i + 1 ) Σ m , n ( W i ( m , n ) - W i ) 2 · Σ m , n ( W i + 1 ( m , n ) - W i + 1 ) 2 - - - 3
其中,Wi和Wi+1是帧Ii和Ii+1上用于匹配的正方形区域;依据两个相匹配的像 素可计算得到像素的位移向量,通过平均所有像素的位置向量,可得到图像整 体位移即相机的位移,计算机公式为:
M b i = 1 n Σ a = 0 n M P a - - - 4
再通过合并角色的相对位移和相机位移可得到角色的运动方向和速度,计算公 式为:
M c i = M r i - M b i - - - 5
所述的基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权值并计算 两帧在运动属性和边界上的距离,构建距离矩阵:首先对比任意两个角色的轮 廓计算轮廓上的相似度,计算公式为:
D H ( I i , I j ) = max ( h ( E i , E j ) , h ( E j , E i ) ) i j 0 i = j - - - 6
其中,Ei和Ej是帧Ii和Ij的边界集合,且h(Ei,Ej)是计算两个集合之间的 Hausdorff距离,计算公式为:
h ( E i , E j ) = Σ p a E 1 min p b E 2 ( | | p a - p b | | ) - - - 7
其中,Pa和Pb是Ii和Ij的边界上任意两点,||pa-pb||是这两点之间的欧式距离; 通过合并运动属性上的差距以及边界上的差距计算两帧的距离,计算公式为:
D(Ii,Ij)=αDH(Ii,Ij)+(1-α)DM(Ii,Ij)          8
α作为合并用的权重,DG(Ii,Ij)代表两帧在边界上的差距,而DM(Ii,Ij)表示 两帧在运动属性上的差距,计算公式为:
D G ( I i , I j ) = 1 π cos - 1 ( M c i · M c j | M c i | | M c j | ) - - - 9
所述的依据计算得到的距离矩阵,采用流形学习算法将提取的卡通角色帧投 影到低维空间并建立无向图,然后由用户在无向图中任取两点作为起点和终点 并构建最短路径,路径上的组成卡通帧序列:首先依据距离矩阵确定任意一点 与周围若干邻居结点之间的边长为最短路径,其中邻居结点的个数是提前确定 的,由此构建出无向图;然后基于该无向图计算任意两点之间的最短路径,得 到最短路径图;最后采用MDS算法构建低维空间;在得到该低维空间之后,由 用户在空间中任意指定两点作为起点和终点,两点之间最短路径所包含的点作 为新生成的动画帧。
本发明具有的有益的效果是:通过Laplacian of Gaussian滤波器提取的 边界,有效的避免了轮廓线条断裂的情况,使得之后的填充算法能顺利进行, 这种基于边界的角色提取算法与别的算法相比,能更稳定,并且完整的提取角 色。通过光流跟踪提取每一帧中角色的运动信息,且与角色边界上的Hausdorff 距离相合并能更精确的衡量帧之间的相似度。通过将卡通帧投影到低维空间, 并由动画师指定空间中的起点和终点,两点之间最短路径上的点组成动画帧序 列。本方法能有效利用已有的卡通数据生成新的动画序列,并且适用于那些没 有动画制作经验的用户。

附图说明

图1是基于视频提取和重用的卡通动画制作方法的流程图;
图2(a)是本发明使用的卡通角色示意图;
图2(b)是通过边界检测的卡通角色示意图;
图2(c)是通过去噪得到的卡通角色示意图;
图2(d)是提取的完整的角色边界示意图;
图2(e)是通过角色填充得到的角色侧影示意图;
图2(f)是提取出的角色示意图;
图3(a)是使用的原图像i示意图;
图3(b)是使用的原图像j示意图;
图3(c)是角色在前景中的位移示意图;
图3(d)是通过光流计算结果示意图;
图3(e)是去掉前景的光流计算结果示意图;
图3(f)是跟踪角点光流的计算结果示意图;
图3(g)是前景与背景运动的合成示意图;
图3(h)是得到的角色运动示意图;
图4是本发明中构建最短路径的示意图;
图5是本发明中降维与残差之间的对比图;
图6是本发明中生成动画序列的示意图。

具体实施方式

基于视频提取和重用的卡通动画制作方法包括以下步骤:
(1)基于图像中的灰度信息,计算图像中每帧的梯度并检测出角色的轮廓, 并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色;
(2)对每帧,采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;
(3)基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权值并计算两 帧在运动属性和边界上的距离,构建距离矩阵;
(4)依据步骤(3)中计算得到的距离矩阵,采用流形学习算法将提取的卡通角 色投影到低维空间并建立无向图,然后由用户在无向图中任取两点作为起点和 终点并构建最短路径,路径上的组成卡通帧序列。
所述的基于图像中的灰度信息,计算图像中每帧的梯度并检测出角色的轮廓, 并对轮廓采用像素填充算法获得角色的侧影并从动画帧中提取角色:提取轮廓 的基本思路是逐一计算每个像素点在灰度上的二阶导数,并可通过Laplacian of Gaussian滤波器(LOG)近似得到,当其中某一点上的二阶导数为零时,则该点被 定为边界的一部份(见图2(b));提取得边界图像仍存在一部分噪音,需采用 卷积的方式去除图像中的噪音(去噪结果见图2(c)),去噪的公式为:
C ( i , j ) = Σ m = 0 Ma - 1 Σ n = 0 Na - 1 A ( m , n ) * F ( i - m , j - n ) - - - 1
其中,A是带有噪声的图像矩阵,F则是用于过滤的矩阵,且0≤i<Ma+4, 0≤j<Na+4;过滤后得到角色的封闭轮廓(见图2(d)),接着采用像素填充 算法,即在轮廓中选取一个点作为起始点,并利用八通图对整个轮廓进行深度 优先的遍历,当遇到边界时,则停止遍历并返回上一层,结束时所有被遍历到 的点都作为前景上的点(见图2(e));结合原始图像和经过区域填充的灰度图 像,可将角色从原始图像中分割出来(见图2(f))。
所述的对每帧采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;通过前景分割可得到视频中相邻两帧的前景角色Ii(见图3(a))和Ii+1(见 图3(b)),首先采用几何平均计算出两个角色的质心Ci和Ci+1,因此角色之间的 相对位移(见图3(c))的计算公式是:
M r i = C i C i + 1 - - - 2
卡通视频中镜头的位移可基于相邻两帧通过光流跟踪计算得到,为了找到帧Ii中 像素(x0,y0)在帧Ii+1上的位置,在Ii+1的像素(x0,y0)周围设计一个正方形的区域进 行搜索,当相关度匹配最大化时,则认为找到了对应的位置,计算公式为:
r = Σ m , n ( W i ( m , n ) - W i ) ( W i + 1 ( m , n ) - W i + 1 ) Σ m , n ( W i ( m , n ) - W i ) 2 · Σ m , n ( W i + 1 ( m , n ) - W i + 1 ) 2 - - - 3
其中,Wi和Wi+1是帧Ii和Ii+1上用于匹配的正方形区域;依据两个相匹配的像 素可计算得到像素的位移向量(见图3(d)),通过减去前景点上的光流计算结 果(见图3(e)),并提取角点上的光流计算(见图3(f)),可得到图像背景的 位移即相机的位移(见图3(g)),计算机公式为:
M b i = 1 n Σ a = 0 n M P a - - - 4
再通过合并角色的相对位移和相机位移可得到角色的运动方向和速度,计算公 式为:
M c i = M r i - M b i - - - 5
所述的基于提取的角色轮廓计算两帧轮廓上的相似度,然后设定权值并计算 两帧在运动属性和边界上的距离,构建距离矩阵:首先对比任意两个角色的轮 廓计算轮廓上的相似度,计算公式为:
D H ( I i , I j ) = max ( h ( E i , E j ) , h ( E j , E i ) ) i j 0 i = j - - - 6
其中,Ei和Ej是帧Ii和Ij的边界集合,且h(Ei,Ej)是计算两个集合之间的 Hausdorff距离,计算公式为:
h ( E i , E j ) = Σ p a E 1 min p b E 2 ( | | p a - p b | | ) - - - 7
其中,Pa和Pb是Ii和Ij的边界上任意两点,||pa-pb||是这两点之间的欧式距离; 通过合并运动属性上的差距以及边界上的差距计算两帧的距离,计算公式为:
D(Ii,Ij)=αDH(Ii,Ij)+(1-α)DM(Ii,Ij)          8
α作为合并用的权重,DG(Ii,Ij)代表两帧在边界上的差距,而DM(Ii,Ij)表示 两帧在运动属性上的差距,计算公式为:
D G ( I i , I j ) = 1 π cos - 1 ( M c i · M c j | M c i | | M c j | ) - - - 9
所述的依据计算得到的距离矩阵,采用流形学习算法将提取的卡通角色帧投影 到低维空间并建立无向图,然后由用户在无向图中任取两点作为起点和终点并 构建最短路径(如图4所示),路径上的组成卡通帧序列:首先依据距离矩阵确 定任意一点与周围若干邻居结点之间的边长为最短路径,其中邻居结点的个数 是提前确定的,由此构建出无向图;然后基于该无向图计算任意两点之间的最 短路径,得到最短路径图;最后采用MDS算法构建低维空间;在得到该低维空 间之后,由用户在空间中任意指定两点作为起点和终点,两点之间最短路径所 包含的点作为新生成的动画帧。在利用降维建立低维空间的过程中,很重要的 一点是降维后维度的选择,如果维度过大,则造成信息的冗余,而如果维度过 小,则导致信息的缺失影响动画序列的生成。图5给出了一种判断维度的方法 即通过分析残差分量的变化来判断,当残差分量没有太多变化的时,则为合适 的维度。
至此,通过角色提取,距离计算,低维空间建立以及用户指定这些步骤, 可重用已有的卡通数据建立新的卡通动画序列。
实施例
国产动画片中最有名的是已西游记为主题的系列动画片,包括《大闹天宫》、 《三打白骨精》等,然而随着老一辈艺术家的辞世,目前已很难制作出与这些 经典动画片具有相同风格的作品了。下面结合前面所述的具体技术方案重用这 些动画片中的帧得到新的动画序列的步骤,如下:
(1)利用前面描述的基于图像中的灰度信息,计算图像中每帧的梯度并检测出 角色的轮廓,并对轮廓采用像素填充算法获得角色的侧影。具体来说,对于任 意的卡通帧提取轮廓的基本思路是逐一计算每个像素点在灰度上的二阶导数, 并可通过Laplacian of Gaussian滤波器(LOG)近似得到,当其中某一点上的二 阶导数为零时,则该点被定为边界的一部份;提取得边界图像仍存在一部分噪 音,需采用卷积的方式去除图像中的噪音,去噪的公式为:
C ( i , j ) = Σ m = 0 Ma - 1 Σ n = 0 Na - 1 A ( m , n ) * F ( i - m , j - n )
其中,A是带有噪声的图像矩阵,F则是用于过滤的矩阵,且0≤i<Ma+4, 0≤j<Na+4;过滤后得到角色的封闭轮廓,接着采用像素填充算法,即在轮廓 中选取一个点作为起始点,并利用八通图对整个轮廓进行深度优先的遍历,当 遇到边界时,则停止遍历并返回上一层,结束时所有被遍历到的点都作为前景 上的点;结合原始图像和经过区域填充的灰度图像,可将角色从原始图像中分 割出来。
(2)在每帧中采用光流跟踪算法计算当前帧的运动属性,包括运动方向和速 度;通过前景分割可得到视频中相邻两帧的前景角色Ii和Ii+1,首先采用几何平 均计算出两个角色的质心Ci和Ci+1,因此角色之间的相对位移的计算公式是:
M r i = C i C i + 1
卡通视频中镜头的位移可基于相邻两帧通过光流跟踪计算得到,为了找到帧Ii中 像素(x0,y0)在帧Ii+1上的位置,在Ii+1的像素(x0,y0)周围设计一个正方形的区域进 行搜索,当相关度匹配最大化时,则认为找到了对应的位置,计算公式为:
r = Σ m , n ( W i ( m , n ) - W i ) ( W i + 1 ( m , n ) - W i + 1 ) Σ m , n ( W i ( m , n ) - W i ) 2 · Σ m , n ( W i + 1 ( m , n ) - W i + 1 ) 2
其中,Wi和Wi+1是帧Ii和Ii+1上用于匹配的正方形区域;依据两个相匹配的像素可 计算得到像素的位移向量,通过平均所有像素的位置向量,可得到图像整体位 移即相机的位移,计算机公式为:
M b i = 1 n Σ a = 0 n M P a
再通过合并角色的相对位移和相机位移可得到角色的运动方向和速度,计算公 式为:
M c i = M r i - M b i
(3)针对提取的角色轮廓计算两帧轮廓上的相似度,然后设定合理的权值并 综合考虑两帧在运动属性和边界上的差异计算它们之间的距离,并构建距离矩 阵;首先对比任意两个角色的轮廓计算轮廓上的相似度,计算公式为:
D H ( I i , I j ) = max ( h ( E i , E j ) , h ( E j , E i ) ) i j 0 i = j
其中,Ei和Ej是帧Ii和Ij的边界集合,且h(Ei,Ej)是计算两个集合之间的 Hausdorff距离,计算公式为:
h ( E i , E j ) = Σ p a E 1 min p b E 2 ( | | p a - p b | | )
其中,Pa和Pb是Ii和Ij的边界上任意两点,||pa-pb||是这两点之间的欧式距离; 通过合并运动属性上的差距以及边界上的差距计算两帧的距离,计算公式为:
D(Ii,Ij)=αDH(Ii,Ij)+(1-α)DM(Ii,Ij)
其中,α作为合并用的权重,DG(Ii,Ij)代表两帧在边界上的差距,而DM(Ii,Ij)表 示两帧在运动属性上的差距,计算公式为:
D G ( I i , I j ) = 1 π cos - 1 ( M c i · M c j | M c i | | M c j | )
(4)采用流形学习算法Isomap构建低维空间,首先依据计算得到的距离矩 阵,确定每个结点周围的邻近结点,并建立无向连通图,由于这些样本点处在 一个流形上,因此任意两点的距离可通过测地距离即两点在流形上的最短路径 计算得到,最后采用MDS算法构建低维空间;在得到该低维空间之后,由用户 在空间中任意指定两点作为起点和终点,两点之间最短路径所包含的点作为新 生成的动画帧。
本实施例中,通过以上步骤重用已有的动画帧,获得平滑的动画序列。附图 6显示了其中的一帧的效果。图中的两行是重构得到的动画序列,下面的编号代 表原始帧号。