当前位置:文档之家› 基于单目视频运动跟踪的三维人体动画

基于单目视频运动跟踪的三维人体动画

29卷第

5期2008年

5月微 计 算 机 应 用

MICROCOMPUTERAPPLICATIONSVol1

29No1

5

May1

2008

基于单目视频运动跟踪的三维人体动画3

吴 玥 田兴彦

(湖南大学软件学院 长沙 

410082)

摘要

:针对传统人体动画制作成本高、人体运动受捕获设备限制等缺陷

,提出了一种基于单目视频运动跟踪的三维人体动画

方法。首先给出了系统实现框架

,然后采用比例正交投影模型及人体骨架模型来恢复关节的三维坐标

,关节的旋转欧拉角由

逆运动学计算得到

,最后采用

H-anim标准对人体建模

,由关节欧拉角驱动虚拟人产生三维人体动画。实验结果表明

,该系

统能够对人体运动进行准确的跟踪和三维重建

,可应用于人体动画制作领域。

关键词

:运动跟踪 单目视频 三维人体动画 逆运动学

3DHumanAnimationBasedonHumanMotionTrackingfrom

MonocularVideoSequences

WUYue,TIANXingyan

(

SoftwareSchool,HunanUniversity,Changsha,410082,China)

Abstract:Thetraditionalapproachestomakehumananimationaresufferingfromtheproblemsofexpensivecostandhumanbodymo2

tionlimitedbymotioncaptureequipment,toovercometheseshortcomings,anew3Dhumananimationbasedonhumanmotiontracking

frommonocularvideosequencesisproposed1

Firstly,theframeworkofoursystemispresented,then,the3Dcoordinatesofjointsare

estimatedbyhumanskeletonconstrainunderscaledorthographicprojection,therotationEuleranglesofjointsarecalculatedbyinverse

kinematics1

Finally,weuseH-animtorepresentvirtualhuman,themotionofvirtualhumanisdrovebytheEuleranglesofjoints1

Theexperimentsshowthattrackingandreconstructingresultsmadebyoursystemareaccurateandeffective1

Thissystemcanbeap2

pliedtohumananimation1

Keywords:Motiontracking,Monocularvideosequences,3Dhumananimation,Inversekinematics

1 引言

如何方便地生成高逼真度的三维人体动画已成为当前计算机动画的一个重要研究方向。按照运动建

模方式不同三维人体动画可以分为以下四类

:关键帧方法、基于运动学和逆运动学、基于动力学和逆动力

学、运动捕获方法。基于运动捕获方法的人体动画具有逼真度高、数据可重用等特点,在动画技术中得到广

泛应用。在商业产品中一般使用硬件设备(如

Vicon)来捕获人体运动

,要求运动员身穿紧身衣并在关节位

置粘贴反光小球或反光片

,这样限制了运动员的运动

;另一方面硬件设备比较昂贵

,制作成本较高。在前人

研究的基础上

,本文提出了一种基于单目视频运动跟踪的三维人体动画方法

,具有使用方便、制作成本低

廉、动画效果较好等特点。

基于视频运动跟踪的运动捕获方法按照其采用摄像机数目多少可以分为两类

:①基于单目视频的方

本文于

2008-1-15收到。

 3本文受基于重建人脸面部器官三维模型的关键技术研究基金项目(

06JJ2065)资助。 

5期 

吴 玥等

:基于单目视频运动跟踪的三维人体动画

法[1~4]

,②基于多目视频的方法[5~7]

。基于多目视频的方法要求两个或两个以上的摄像机同步拍摄

,拍摄

前需要进行摄像机标定

,跟踪到的二维关节坐标一般通过极线方程约束来恢复其三维坐标[8]

。基于单目视

频的方法由于使用方便、数据来源广使得该技术具有极大的吸引力。该方法一般分两步顺序完成

:首先从

视频序列中跟踪人体模型中的各个关节点

,然后恢复三维人体运动序列。运动跟踪部分是将视频序列中各

个特征点匹配起来

,从而产生各个特征点的运动轨迹

,一般利用当前帧的特征位置及运动模型来预测下一

帧特征的位置[9]

。三维人体运动序列恢复部分一般在摄像机成像模型下根据人体骨骼约束来恢复关节在

三维空间中的相对坐标[11]

本文在现有研究的基础上

,提出了一种将视觉技术与图形学技术融合起来制作动画的新思路

,它通过

对单目视频进行运动跟踪来捕获人体运动信息。首先

,本文给出了系统的实现框架

,讲述了系统各部分的

功能及他们之间的相互关系

;其次

,详述了关节三维坐标的重建方法、关节旋转欧拉角的计算方法及虚拟人

动画实现。

2 系统框架

系统总体流程如图

1所示

,共分为三个部分。第一部分为二维关节运动跟踪

,首先对视频首帧进行关节

标注

,得到关节的颜色模型作为匹配模板

;对视频其他帧的跟踪先利用粒子滤波根据已建立的运动模型对

关节点位置进行预测

,预测结果作为模板匹配模块的局部搜索起始位置

,模板匹配采用直方图匹配方法

,以

Bhattacharyya距离作为匹配准则。最大相似度对应的关节位置则为跟踪到的目标关节坐标。第二部分为三

维运动姿态恢复过程

,首先我们以比例正交投影模型近似摄像机成像过程

,根据运动连续性求得唯一的可

变因子

,然后根据人体骨架比例约束求得各关节的三维相对坐标

,最后利用逆运动学求得各关节的旋转欧

拉角。第三部分为人体动画部分

,按照

H-anim标准建立了虚拟人树型关节拓扑结构

,根据已获得的关节

欧拉角驱动虚拟人获得连续的动画效果。

1 算法流程图

由于二维关节运动跟踪已有大量研究者做了深入研究且取得了较好效果[9~10]

,故本文就不再赘述

,下

面相关内容的叙述基于二维关节位置已获取的假定下。

3 三维姿态提取

2 人体骨架模型31

1 人体骨架模型

本文采用的人体骨架模型如图

2所示

,由

16个关节及

15个身体段组成。模型

中的身体段长度由人体测量学得到

,为一相对比例长度(不一定是实际值)。人体骨

架模型以树型结构表示

,其中盆骨关节为树根。在人体各身体段设立局部坐标系

,坐

标系方向见图

2,Z坐标的正向符合左手坐标系指向纸背

,坐标系原点位于各关节中

心。根据多刚体系统运动学知识可知

,人体运动可以近似为一种树型结构的级连关

节旋转

,树根关节旋转为根关节局部坐标系相对于世界坐标系的旋转

,世界坐标系的

方向及坐标原点与人体运动前根关节局部坐标系一致。34 

微 计 算 机 应 用 

2008年

31

2 关节三维坐标恢复

由文献

[11]可知

,三维空间中某点的坐标值(

x,y,z)与该点在二维图像上的坐

标(

u,v)满足以下方程

:

u

v=s100

010x

y

z(

1)

参数

s为一比例因子

,由

s=f/z求得

,其中

z为该点在三维空间中的

z坐标值

,f为摄像机焦距。根据比例

正交成像模型

,成像模型中的

s值必须使各身体段满足下式[11

]

:

s≥

((

u

1-u

2)2

+(

v

1-v

2)2

)

/L(

2)

其中

,(

u

1,v

1)和(

u

2,v

2)分别为连接身体段的两关节在图像上的二维坐标

,

L为该身体段在人体骨架

模型中的长度。通过式(

2)可知

,满足上式的

s值存在无数多值

,对应多种人体姿态。故我们需要确定一个

唯一的

s值

,其对应的身体姿态与真实值极其接近。

根据运动连续性可知

,上下两帧之间人体姿态变化较小

,故两帧中对应身体段在三维空间中的长度值

变化也较小。设上一帧中求得的

s值为

si,各身体段在三维空间中的相对长度

L

i为

:

L

i=

(

u

1/s

i-u

2/s

i)2

+(

v

1/s

i-v

2/s

i)2

。相应地

,当前帧中各身体段在三维空间中的相对长度

L

i+1为

L

i+1=

(

u

1/s

i+

1-u

2/s

i+1)2

+(

v

1/s

i+1

-v

2/s

i+1)2

。则满足式(

2)及式(

3)的

s

i+1值为当前帧成像模型对

应的

s值。

s

i+1

=argmin(∑15

j=1(

Lj

i-Lj

i+1)2

)(

3)

各关节在三维空间中的相对坐标可得

:

x=u/s

i+1,

y=v/s

i+1。上下两关节之间的相对深度值

dz根据

文献[11]

求得为

:

dz=±

L2

-((

u

1-u

2)2

+(

v

1-v

2)2

)

/s

i+12

。参照图

2,上下关节之间深度值按照树

型结构深度遍历获取

,例如

:盆骨→腰骨→锁骨→右肩→右上臂→右前臂。

31

3 计算关节旋转欧拉角

人体运动姿态可以通过关节之间坐标系变换来表征

,即人体在某一时刻的运动姿态是相对于人体在初

始姿态时各关节旋转一定的欧拉角而得到。将人体近似为树型系统

,由多刚体系统运动学可知

,某一时刻

身体段的位姿满足下式

:

P=0

1R1

2R…i-1

iRP

i+1(

4)

其中0

1R为盆骨关节(根关节)相对于世界坐标系之间的旋转矩阵

,1

2R,2

3R…i-1

iR等矩阵为根关节到当前

关节的链通路中上下两关节之间局部坐标系之间的旋转矩阵

,以

31

2节中的示例通路为例

,12R为腰骨局部坐

标系与盆骨局部坐标系之间的旋转矩阵。

P

i+1为初始状态下链通路中第

i+1关节在第

i关节局部坐标系中的

向量值

,P为当前状态下第

i+1关节在第关节局部坐标系中的向量值。

下面我们以求盆骨关节的旋转欧拉角来介绍一下计算过程

,设关节的旋转方向为先绕Z轴旋转角

,再绕

Y轴旋转β

,最后绕

X轴旋转γ

角。由于三维动画中没有考虑盆骨依附身体段在

Y轴上的扭矩作用

,故β

=

0

,0

1R定义如下

:

0

1R=cosα

-sinα

0

sinα

cosα

0

001100

010

001100

0cosγ

-sinγ

0sinγ

cosγ

=cosα

-sinα

cosγ

sinα

sinγ

sinα

cosα

cosγ

-cosα

sinγ

0sinγ

cosγ (

5)

P

i+1为

:

P

1=(0

,L

1,0),

L

1为盆骨关节及腰骨关节之间骨骼段在骨架模型中的相对长度。44

相关主题