郭瑾,高伟,刘德山,王林松
在动画技术方面,三维人体动画是具有挑战性的课题之一。它具有广泛的应用前景,在仿真训练、影视制作、娱乐游戏、虚拟现实等诸多领域有着重要的应用。目前运动捕获方法由于其数据逼真度高、细节丰富,已经成为高质量的人体运动数据的主要来源,在动画制作中被广泛采用[1-6]。但是该方法存在三个问题。第一是使用不便。以Vicon运动捕获系统为例,它要求运动者身着紧身衣并在各关节处贴上反光小球[7-8]。这对技术型的体育运动如滑冰、体操等,易造成动作变形,影响技术分析。第二是捕获数据的造价高、代价昂贵。运动捕获的本质是记录运动数据再重放,不同运动都要重新采集,十分耗时耗力。第三是捕获数据量庞大、缺少结构化信息和运动数据实时性差等缺点。需对数据进行预处理才能符合人们的需求。相比起运动捕获设备,各种二维视频是记录运动的主要载体,它们更容易获得并且其记录过程不会对运动者造成影响。如果能够重用已有的二维视频运动数据,根据视频内容合成出三维虚拟人体的运动,将能够大大降低动画制作成本。同时这种方法将提高运动生成的实时性,使即时交互的三维视频游戏成为可能,具有广阔的应用前景。
要根据二维视频内容驱动实现三维虚拟人动画,需要在二维视频和三维运动数据间建立映射关系,这种映射关系中包括二维视频的关键帧提取、二维人体姿态的建立、二维数据的三维化以及三维虚拟人动画的实现等。因此,基于二维视频提取出决定人体运动姿态的关键帧、二维数据的三维化等关键问题的解决是实现二维视频内容驱动实现三维虚拟人动画的关键。
本文提出了一个新的二维视频驱动的三维虚拟人动画的实现方法。首先,基于动态帧的关键帧提取算法从二维视频中构建二维关键帧集合。其次,基于二维关键帧构建二维人体骨骼模型。最后,利用小孔成像原理和勾股定理计算得到关节特征点的深度坐标,从而得到了反映人体动画的三维数据。本文以NOBODY二维视频为实验数据,不仅解决了利用运动捕获方法存在数据造价高、存储空间庞大、数据重用性差等缺点,又保证实现的三维虚拟人动画具有高度逼真性和实时处理能力,验证了该方法的有效性。
基于动态帧的关键帧提取算法,首先确定动态帧中每个像素的代表灰度集合,然后通过计算视频中每一帧和动态帧之间的距离来确定关键帧,基于此从二维视频中提取出决定人体运动的二维关键帧集合[9]。
动态帧中某一像素的代表灰度集合记录了最有可能代表该像素的灰度集合,像素(i,j)的代表灰度集合g(i,j)具有如下特征:(1)g(i,j)中各灰度值能代表镜头中像素(i,j)处更多的灰度值;(2)g(i,j)中各相邻灰度值的差别较大。
动态帧像素(i,j)处代表灰度集合(i,j)的构造方法如下:
(1)计算镜头中每一帧的各像素(i,j)的灰度值,第n帧中像素(i,j)的灰度值计算如式(1)所示。
其中,Rn(i,j),Gn(i,j),Bn(i,j)分别为该像素的红、绿、蓝分量.为了加快计算速度,同时考虑到一个镜头持续时间一般不会超过20 min(1 min不超过3000帧),所以直方图纵坐标未归一化,纵坐标为横坐标对应的灰度级在该像素出现的次数,直方图Hb(i,j)的计算如式(2)所示。
式中:N是该镜头中帧的总个数;B是直方图的颜色灰度级个数。为加快计算速度,颜色灰度级设为128级。δ(·)为冲激函数。
(2)按照直方图中像素的灰度值进行排序,如果第m个灰度值 gm(i,j)与相邻灰度值差的绝对值 dm(i,j)=︱gm(i,j)-gm+1(i,j)︱很小,则选取它们中较大的一个灰度值作为代表,而将另一个灰度值去掉。
最后得到的灰度值可能有多个,这些灰度值作为像素(i,j)的代表灰度集合g(i,j),如图2所示,就存在两个代表灰度值。通过以上步骤,可以得出整个镜头在各个像素的代表灰度集合,这样,动态帧的每个像素对应于它的代表灰度集合。
计算镜头所有帧和动态帧之间的距离,帧间距离的定义如式(3)所示:
式中:fi为镜头的第i帧;fk为镜头对应的动态帧;W为帧的宽度;H为帧的高度。由此得到整个镜头与动态帧之间的距离曲线D(fi,fk),曲线上的最大值表明了所对应的帧与动态帧的差别较大,这是由于出现了新的对象引起的,最小值通常代表了视频的背景,所以取曲线上的极值点所对应的帧作为关键帧。
镜头的关键帧提取算法如下:
(1)读入镜头当前帧,根据式(1)计算每个像素的灰度值,同时根据式(2)修改各像素在灰度直方图中对应的值,并将修改后的值存储到三维数组中;
(2)判断当前帧是否是镜头的最后一帧,如果不是,则将下一帧设为当前帧,转向(1),否则转向(3);
(3)根据上节介绍,计算该镜头的动态帧;
(4)根据式(3)计算关键帧;
(5)算法结束。
NOBODY机器人舞蹈视频利用本节基于动态帧的关键帧提取算法得到的二维关键帧截图,如图1所示:
图1 NOBODY机器人舞蹈二维关键帧截图
通过上一节方法获取的二维关键帧包含了三维虚拟人动画的关键运动信息,本文中人体运动数据通过多自由度层次结构骨骼模型来表示,其结构模型,如图2所示:
图2 多自由度的层次结构模型
该模型由14个关节点组成,各关节点采用树形结构组织,root(胯)关节点为树形人体骨架的根结点,从根关节点向人体骨架的各个末端关节逐层延伸形成根结点的各个子树。考虑到人体骨架四肢部分在人体运动中变化最明显,本文将描述运动的方法从关节层上升到骨骼层,将人体骨架中四肢部分的8 段骨骼作为运动特征表示对象,提取14个关节点和这8 段骨骼信息作为三维虚拟人的运动特征。
本文采用的是一种通过人体运动图片序列进行数据处理的方法采集运动数据,并根据二维图像进行人体三维运动的重构,从而建立三维虚拟人运动数据库。本文对运动数据的捕获是根据传统的屏幕取点方式进行的。在多层次骨架模型的基础上,先获取NOBODY机器人的骨骼信息已确定骨骼长度。通过数据输入单选框选择要输入的关节点的名称,在图中相应的位置双击就可得点的坐标。首先选择一幅人体动作图像作为标准图像,根据标准图像的信息获取骨骼长度。可以作为标准图像的图片的要求是:身体各个骨骼自然面向观众,这样所有骨骼的正面都与图片平行,因此骨骼两点的距离就是骨骼的长度。然后取一系列动作序列图像,逐个将每幅运动图像用相同的方法即屏幕取点方式实现二维特征点的输入。非标准图像的骨骼角度往往呈各种方向,而不是与图片法向量垂直的,标准图像和非标准图像的二维关节点信息。完成图像序列的输入的同时也就完成了三维虚拟人的二维关键帧动作库的构建,如图3所示:
图3 标准图像和非标准图像的二维关节点信息
基于二维骨骼数据,进一步计算反映人体运动的三维数据。这里采用了小孔成像原理和勾股定理,根据骨骼长度及其在图片上的投影长度计算出各骨骼与图片平面之间的夹角,从而计算出深度信息,再利用骨骼的树状结构,通过计算得到骨骼在空间中的深度坐标。
设任意相邻两关节特征点的二维坐标为(x1,y1)和(x2,y2),即其在图像平面上的投影点坐标。设该相邻特征点之间骨骼的长度为h。由勾股定理,此骨骼与X-Y平面的夹角Ø为:
由此得到深度信息:
为了消除关节点深度信息可能出现的二义性,本文设计使用了三维观察界面和控制面板,采用人机交互的方法来手动调整骨骼的深度坐标。于是用完成了三维虚拟人的三维关键帧动作库的构建。
本文基于NOBODY舞蹈机器人的二维视频构建了三维虚拟人的三维关键帧动作库,利用三维虚拟人的最小骨骼模型实现了NOBODY舞蹈机器人的三维虚拟人动画。三维虚拟人最小骨骼模型的 NOBODAY舞蹈机器人的关键帧截图,如图4所示:
图4 NOBODY机器人舞蹈骨骼模型三维关键帧
本文提出了一种基于二维视频驱动实现三维人体动画的方法。首先基于动态帧的关键帧提取算法从二维视频中构建了二维关键帧集合;其次基于二维关键帧构建二维人体骨骼模型;接着利用小孔成像原理和勾股定理计算得到关节特征点的深度坐标,从而得到了反映人体动画的三维数据,最后基于NOBODY舞蹈机器人的二维视频驱动实现了三维虚拟人最小骨骼模型的三维动画,表明了本文采用方法的正确性和有效性。进一步的研究工作将集中处理屏幕取点方式以减小误差以及消除关节点深度信息可能出现的二义性问题。
[1]Dasgupta A, Nakamura Y.Making feasible walking motion of humanoid robots from human motion capture data[c].Proceedings of IEEE International Conference on Robotics and Automation ,Detroit , MI, 1999, 2: 1044- 1049.
[2]Delaney B.On the trail of the shadow woman: the mystery of motion capture [J]. IEEE Computer Graphics and Applications,1998, 18(5):14-19.
[3]Pullen K,Bregler C.Motion capture assisted animation :texturing and synthesis[C].The 29th annual conference, San Antonio,2002:501-508.
[4]Lee J, Chai JX, Reitsma PSA, Hodgins JK, Pollard NS. Interactive control of avatars animated with human motion data[C].ACM Trans. on Graphics, 2002, 21(3): 491-500.
[5]Chai J X, Hodgins J K. Performance animation from low-dimensional control signals [J]. ACM Transactions on Graphics, 2005.24(3): 686-696.
[6]Ran L, Shakhnarovich G, Hodgins J, et al.Learning silhouette features for control of human motion data [J].ACM Transactions on Graphics. 2005,24(4): 1303- 1331.
[7]Hirose M ,Ogawa K. Honda humanoid robots development[J].Philosophical Transactions of the Royal Society A: Mathematical Physical and Engineering Sciences,2007,365(1850):ll-19.
[8]Nakaoka s, Nakazawa A. Task model of lower body motion for a biped humanoid robot to imitate human dances[C]//Proc of 2005 IEEE/RSJ Interna- tional Conference on Intelligent Robots and Systems. Edmonton: IEEE, 2005:3157-3162.
[9]李玉峰.基于动态帧的视频关键帧提取算法研究[J].天津科技大学学报,2009,24(4):69-72.