基于模型的行为驱动算法研究

2012-09-20 05:31宋金宝郑仁柱李骏宇张勤
关键词:轮廓粒子物体

宋金宝,郑仁柱,李骏宇,张勤

(1.中国传媒大学信息工程学院,北京100024;2.中国广播电视国际经济技术合作总公司,北京100124)

1 引言

近年来,数字媒体技术、IP网络技术、3G移动通信技术及文化创意产业迅速发展,并且越来越紧密的结合在一起。随之引发的是人们对实时且高质量的多媒体数据传输、新的媒体制作方法(特别是计算机动画的制作)和新型人机交互等方面的需求,这些需求反过来则对媒体处理技术提出了更高的要求。而媒体处理中往往对于一个已知模型的运动分析是最基本的也是最重要的。分析一个动态视频的基本动作特征,不仅仅可以帮助理解视频的动作行为,也可以用于相似物体间动作行为的模仿。所以在本文中将着重阐述基于模型的动作行为驱动相关算法及程序实现的研究。

2 运动行为捕捉与驱动阐述

动作行为的捕捉和模型驱动重点在于如何将移动中的物体进行分割,分析出所需物体的运动轨迹,这一类的捕捉问题都可以简析为图2-1中所示的流程图。对动画视频目标行为跟踪、动作捕捉的应用领域与发展现状的描述中,视频目标跟踪、动作捕捉作为视觉领域中的一项基本研究问题,出现了许多的跟踪算法,这些算法的标准和分类不同,往往结果也不相同。不论怎么样的行为捕捉都离不开物理运动的几个关键点,重心、运动轨迹、边沿轮廓、物体属性等问题[1]。所以在运动行为捕捉上,只要能够解决这些核心问题,就能实现模型的建立,得到模型后便可以对相似物体进行驱动。

图2-1 行为驱动流程图

大多数的动画制作者之所以不愿意使用模型驱动而是直接使用铅笔或者电脑压杆进行绘画创作,都是因为在基于动画物体的模型建立这一块难度很大,难以得到较好的运动行为捕捉,这也是为什么这项工作在国内外也很难兴起的一个重大难点。随着近几年来粒子滤波器的发展,简化了繁琐的逐帧提取运动点信息的方式,大大解放了建模者的劳动力,使得计算上更为智能,可以摆脱掉只有3D才能使用模型驱动的方式,增加了2D动画也可以实现使用运动模板的方式,能够使相似物体进行驱动从而得到新的动画成为现实[2]。

2.1 动画物体行为捕捉

在动画物体行为捕捉与跟踪的统计模型方面,近年来粒子滤波器(Particle Filter)作为一种非线性滤波算法,由于摆脱了高斯分布的制约条件,已经成为一种主流的、面向目标的运动跟踪算法。选用粒子滤波器作为本课题中动画物体行为的捕捉将大大提升物体动作行为的跟在能力,将捕捉方式更加完善,便于模型建立时数据的录入。在粒子滤波器中,通过蒙特卡罗采样(Monte Carlo Sampling)来执行递归贝叶斯滤波(Recursive Bayesian Filter)的算法,其关键思想是利用一组带权值的随机样本,以及基于这些样本的估算来表示后验概率密度函数pdf(Posterior Density Function),当样本数非常大时,这种估算将等同于pdf[3]。使用粒子滤波器可以从动态图像中提取出所需要的动作模型,将这个模板当作下一部分驱动其他物体运动的基础。这样可以大大减轻运动物体繁琐的物理属性,而简单的从形态图像等方面对运动进行捕捉,如图2-2。

图2-2 基于模型驱动的整体预览图

2.2 目标模型的建立

目标跟踪过程是随机的,非线性的,可以把问题描述为:在给定的一组观测条件下,对运动目标的状态进行贝叶斯估计[4]。这样就把目标的跟踪问题,抽象为对状态向量的估计,状态向量用来描述目标的位置、速度、加速度和轮廓等信息。一个动态系统至少是需要两个参照模型的,一个是描述随着时间变化的状态模型以及另一个与状态有关的观测模型。

由于经典粒子滤波器是基于贝叶斯跟踪算法的,利用先验概率估计出运动目标的状态概率,再通过最新的观测数据来修正目标的状态分布。估计问题的实质就是在获取了t时刻以及t时刻之前的所有观测数据的前提下,利用系统的状态模型预测状态的先验概率密度,再使用最近的观测值进行更新,得到t时刻的后验概率密度P(Xt|Z1:t)。跟踪过程由状态预测、数据关联和状态更新组成。其中目标的当前状态只和最近的过去状态相关,而与更早的状态无关。而最早的状态概率密度,大致以高斯分布作为初始值[5]。这样就可以逐帧算出预测位置,得到运动矢量,从而建立起模型矩阵,便于之后的相似物体的动态行为驱动[6]。

2.3 运动物体的行为驱动

基于物体动态行为的滤波后,得到驱动的模型矩阵。找到相似物体,根据相同算法,将相似物体进行粒子跟踪,使用矩阵内数据,套用在相似物体上,让物体看起来在遵循所得模板中的运动轨迹,进行相同的运动。由于粒子滤波后,得到的矩阵中不仅包括轮廓信息,也包括了下一帧画面的位置矢量,所以可以用在相似物体上,预测出它下一帧的走势,以此达到对相似物体的驱动效果[7]。使得相似物体能够遵循粒子滤波后得到的模板,进行该运动行为,从而使得模板能够真正意义上的驱动该物体的运动行为。

在物体行为驱动中,要确立驱动的物体与模型物体有相似性在其中[8],毕竟在物体模型建立中,只是对点的运动轨迹进行预测,没有办法改变它的运动方式和运动形态。例如一只老虎矫健地奔跑就不能驱动一只河马笨重的奔跑状态,因为两者间物理运动上的一致和形态体积上的不一致难以统一。所以一只老虎矫健地奔跑可以驱动一只豹子的奔跑,这两者间的形态相似部分几乎一致,驱动效果甚佳。

3 技术的具体实现

在该部分将针对笔者的程序进行实例说明和分析,简述该理论的技术具体实现,特别是其中的优势部分和不足点,对整个技术进行全方位的剖析。

3.1 运用matlab分析视频寻找轮廓

1.视频分析

在视频分析部分,思索出两种方式,第一种是自动的利用编解码时压缩时的信息进行轮廓分析;另一种是将视频图像解析出来,利用人工的方式标取轮廓和关键点,以此分析视频。第一种的方式实现速度比第二种快,但是轮廓点和关键点的选取不理想,对后续帧分析产生影响,没有选取。第二种方式虽然麻烦但是却能直接得到动画人物的关键信息,使得后续分析大大提高精确度,是一种较为可行的分析方法。所以在程序实现中选择了该方式对视频进行分析。

2.轮廓寻找

轮廓是在亮度不同的区域之间有一个明显的变化,即明度级差突然变化而形成的。轮廓是构成任何一个形状的边界或外形线。在轮廓寻找中,发现因为程序只识别坐标点,所以在标出坐标点后,必须对相应点的视频信息进行提取,特别是RGB与α通道的信息提取,这个对于后面建立观测方程十分重要,在笔者程序中,主要依靠RGB三值进行观测方程的建立。轮廓效果图如图3-1

图3-1 轮廓信息的提取

由于轮廓信息是在一个区域内有明显变化而形成的,那么在取点的时候就必须注意与物体与背景的反差。而且根据轮廓是否有形,是否有显见的形,而把轮廓分为客观轮廓和主观轮廓。客观轮廓是指一个明度级差的比较突然的变化,它是有形的、显见的,如马赫带;主观轮廓是在没有明度级差的情况下,由于某种原因,人们也会看到的轮廓。而且在一个两维图形中,轮廓上具有丰富的信息,轮廓变化最陡或曲率最大的部分是信息最集中的地方,而轮廓方向一致的地方,则是信息多余性最大的地方。所以特别需要注意轮廓线的RGB阈值的选取,轮廓是会多少产生色彩偏差,但是不会产生得十分明显,一旦和背景区别开后便可以很好的实现轮廓的提取了,产生明显的轮廓。这样提出的明显轮廓,轮廓的信息量就会很丰富,方便进行运动轨迹的预测。

3.2 粒子滤波器非线性动作预测

1.运动方程的建立

在粒子滤波器中,建立运动方程很重要,在此我们使用的是序列重要采样法(SIS)的方式建立运动方程。所以使用的是公式3-1,该公式包含了运动中所需要的角度和部分形变偏移量,适用于动画片中运动幅度不是很大的运动轨迹预测。公式中y(t)为预测值,x(t)为运动方程中关键粒子点,v为过程噪声,w为观测噪声。

在运动方程建立中不难看出所选公式是基于一种非线性的粒子运动轨迹的预估,公式中所体现每个点的运动都是杂乱无章,毫无规律可言的。这样特别符合动画运动中的无规律非线性的运动模式,在程序实现中很容易就能看出预测的轨迹,十分明确的展示出各个点之间的无规律性,满足运动动画轨迹的无序性。

2.观测方程的建立

观测方程(observation equation)是指在观测值和待估参数之间建立的函数关系式。观测方程存在的目的在于能够辅助运动方程,达到预测的目的。观测值一般十分确定,在笔者的程序中观测值就是RGB和α通道,一般物体在运动中RGB值与α通道中的值是不会有太大改变,当然有可能从阳光照射处进入到阴影处,这时阈值会有一个变化,但是两者间的RGB模型的整体趋势会保持不变,方便观测。

在观测方程中,选择的参变量是RGB三值,当该粒子点RGB与前一帧得到的点的RGB值在一定阈值内相同,则认为两个粒子点相同,则后一帧的关键点与前一帧的关键点相同。以此为观测值比用灰度直方图更能够针对每一点进行观测,且每一点的准确度更大。

图3-2 运动模型的行为驱动

3.3 运用模型的行为驱动

行为驱动部分是整个程序实现的最后部分,首先选取相似物体,用相似物体进行驱动会达到较好的效果,其次对选好的相似物体也需要用取关键点的方式进行轮廓的标画,这样程序才能够得以更好的对运动方程进行一一对应。如图3-3所示,就是运动模型的对应关系,对应点越精准,对应关系越明确,驱动效果越佳。

当运动方程矩阵得到后,便可以用运动矩阵X当作模板去驱动新的相似物体。假设新的运动物体各个点与模型X中的点一一对应,得到第一帧的关键点集合Y,与驱动方程中X中第一帧对应点运算得到转换矩阵P。这样就可以得出驱动方程(3-2),利用驱动方程就可以算出整个新物体的运动矩阵。得到运动矩阵后便可以利用关键点和轮廓进行色彩恢复,得到新的图像,驱动过程效果如图3-2,完成对新动画的相同运动驱动如图3-3。Y=P*X (3-2)

图3-3 运动模型相似物体驱动示意图

3.4 程序流程图解析

图3-4 最终程序流程图

1)选取出需要的视频

2)将选出的视频进行分析

3)将读取出来的视频提取出第一帧,方便使用

4)找出第一帧的关键运动捕捉的物体

5)在选出的关键物体中标注关键点

6)利用预测公式,用粒子滤波器的算法,预测出该关键点下一帧的位置

7)将每一帧预测出的位置进行GRB比对,选出运动轨迹

8)将运动轨迹组成运动矩阵

9)选取相似物体,便于新动画的驱动

10)最终利用驱动方程将新物体的运动状态进行驱动,形成新的动画。

4 结论

本文首先针对视频信息的读取和关键点的选择;其次选择使用粒子滤波器作为预测运动轨迹的算法,对运动轨迹的预测,可以准确获取到动画中的运动轨迹;最后实现对新动画角色的提取和相似动作的驱动。不难看出利用这一理论完成基于模型运动的行为驱动是可以实现的。这不仅仅可以提高制作动画的速度,更能够完成很多重复性劳动,带来更多2D传统动画中很多新角度的再思考。

[1]C Bregler,L Loeb,E Chuang,H Deshpande.Turning to the masters:motion capturing cartoons[J].ACM Transactions on Graphics(TOG),Volume 21,Issue 3(July 2002),Proceedings of ACM SIGGRAPH 2002,SESSION:Character animation,399-407.

[2]M Rastegari,N Gheissari.Multi-scale Cartoon Motion Capture and Retargeting without Shape Matching[J].Proceedings of the 2008 Digital Image Computing:Techniques and Applications(DICTA),2008,Australia,Canberra,320-326.

[3]胡士强,敬忠良.粒子滤波原理及其应用[M].北京:科学出版社,2010.

[4]F Sumi,M Nakajima.A Production Method of Reusing Existing 2D Animation Sequences[J].In Proceedings of Computer Graphics International 2003(CGI),July,2003,Tokyo,Japan,282-287.

[5]朱志宇.粒子滤波算法及其应用[M].北京:科学出版社,2010.

[6]MRastegari,M Rouhani,N Gheissari,M M Pedram.Cartoon Motion Capturing and Retargeting by Rigid Shape Manipulation[J].Digital Image Computing:Techniques and Applications(DICTA),2009,498-504.

[7]Wang Hongbin,Li Hua.Cartoon Motion Capture by Shape Matching[J].In Journal of Computer-aided Design & computer Graphics,Vol 15,No 19,Sep,2003.

[8]Chui Haili,Rangarajan A.A new algorithm for non-rigid point matching[J].In Proceedings of IEEE Computer Society Conference on Computer Vision and Pattern Recognition,Hilton Head Island,2001,44-51.

猜你喜欢
轮廓粒子物体
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
OPENCV轮廓识别研究与实践
基于膜计算粒子群优化的FastSLAM算法改进
深刻理解物体的平衡
Conduit necrosis following esophagectomy:An up-to-date literature review
基于粒子群优化极点配置的空燃比输出反馈控制
高速公路主动发光轮廓标应用方案设计探讨
揭开物体沉浮的秘密
为什么同一物体在世界各地重量不一样?
一个改进的CV活动轮廓模型