基于Kinect的动作捕捉系统设计与实现
动作捕捉技术在电影特效制作、电脑动画制作、游戏制作、运动分析等领域发挥着重要作用。
传统的动作捕捉系统存在价格昂贵、穿戴复杂、实时性差、对环境要求高等问题,很难被广泛应用。
随着技术的创新,微软推出了无标记动作捕捉设备Kinect,该设备依靠低廉的价格和先进的骨骼跟踪算法有效地解决了以上问题,从而得到了广泛的应用。
现有的基于Kinect的动作捕捉系统普遍存在着运动数据抖动、骨骼数据关节缺失、动作数据无法复用等不足。
针对上述问题,本文主要研究以下内容:优化Kinect骨骼动作数据;将优化后的动作数据重定向到三维人物模型,驱动模型模仿真人的动作;录制并保存动作脚本。
在此基础上,设计并实现了基于Kinect的动作捕捉系统。
首先,本文概述了动作捕捉技术与动作重定向技术国内外发展现状,通过分析各种动作捕捉系统的优缺点,分析了系统需求,在此基础上提出了基于Kinect 的动作捕捉系统的总体方案。
根据MVC设计模式,将系统分为数据采集层、数据交互中间件、数据处理层和UI界面层,其中数据处理层是系统的关键部分,包括骨骼数据优化模块、动作重定向模块和动作录制模块。
然后,针对目前基于Kinect的动作捕捉系统存在的问题,本课题对人体单关节修复算法进行了改进,提出了丢失关节修复算法,以解决连续丢失多个关节点的问题;提出骨骼动作平滑处理算法,以解决肢体末端关节抖动问题;使用基于正向运动学重定向算法,以解决模型驱动问题;研究DAE模型结构,为录制动作脚本的实现提供理论依据。
其次,本文详细设计并实现了系统功能,包括用户界面、Kinect数据获取模块、骨骼数据优化模块、动作重定向模块、可视化模块和运动录制模块。
最后,为验证基于Kinect的动作捕捉系统的可行性和正确性,对本文所做工作进行了测试和分析。
测试结果表明,本文所做工作符合预期目标。
第1章绪论
1.1 研究背景
动作捕捉技术诞生前,在传统的三维动画、电影特效及游戏制作过程中,角色模型的动作效果基本都是由人工手动调整来完成[1]。
手工调整模型对动画师的熟练要求高、效率低、实时性差,影响制作周期。
进入二十一世纪,随着计算机图形学技术的发展和动作捕捉技术的诞生,动作捕捉系统普遍应用到多媒体领域。
动作捕捉系统不仅在电影特效和三维动画制作中被广泛应用,它在游戏界的优势也逐渐扩大。
为了使游戏人物模型的动作更加贴近真人的动作,使用动作捕捉系统提取真人的动作数据,并驱动游戏人物模型运动,能让用户感觉到身临其境,增加了游戏的沉浸感。
从技术角度可将动作捕捉系统分为两类,即光学式和非光学式动作捕捉系统。
根据标记点能否主动发光,可将光学式动作捕捉系统分为主动式系统和被动式系统。
非光学式动作捕捉系统又细为分电磁式、机械式以及惯性动作捕捉系统。
上述这些动作捕捉系统都有一个共同点,即动作表演者重要关节处需要布满标记点,这些标记点可以是光源或者传感器,表演示者在光线较好的场地进行动作表演,通过标记点来记录人体的运动数据[2]。
目前光学动作捕捉系统在商业中应用最为广泛,但是其高昂的价格和对服装、场地、光线严格的要求让许多中小型电影公司无法承担。
另外光学动作捕捉系统操作和调试复杂,并且每个光源标记点没有特定标号,在表演者运动过程中,肢体相互遮挡会造成光源点不能被识别,导致标记点错位,最终会导致模型的运动失真。
这种情况需要后期进行修复,导致工作量大幅增加。
最近几年,微软推出了无标记动作捕捉设备Kinect,该设备依靠低廉的价格和先进的骨骼跟踪算法让很多基于Kinect的动作捕捉系统应运而生,表演者不用配带任何传感器即可完成动作捕捉过程。
此外,Kinect对服装、场景以及光线没有严格要求。
Kinect革命性的操作方式颠覆了传统,受到了用户和开发者的追捧。
随着微软发布了开发工具包Kinect SDK For Windows,Kinect吸引了更多的开发者。
虽
然Kinect的空间定位性能仅适用于小成本电影制作、游戏开发、虚拟现实以及运动分析等领域中[3],但Kinect以其低廉的价格和优秀的骨骼跟踪算法让基于Kinect 的动作捕捉系统在开发成本、运行效果以及开发效率上达到平衡。
本课题研究如何使用成本和精度较低的Kinect设备来进行动作捕捉系统的开发。
1.2 国内外相关技术研究现状
动作捕捉系统主要完成两个功能,即捕捉动作数据和使用动作数据驱动模型。
实现这两个功能需要用到动作捕捉技术和动作重定向技术,本节将概述这两个技术的国内外研究现状。
1.2.1 动作捕捉技术
在国外,动作捕捉技术最早可追溯到Fleischer于1915年发明的“Rotoscope”技术。
该技术原理是连续拍摄一段真人的动作照片,将此照片作为动画的底样,动画师按照底样逐帧绘出动画底片[4],《格列佛游记》和《超人》等早期的动画片均通过该方法制作而成。
到了19世界70年代,动画制作开始使用计算机技术来完成,随后衍生出各种动作捕捉技术[5],如光学式、机械式、电磁式动作捕捉技术。
光学捕捉技术在电影特效公司工业光魔为《星球大战》系列电影制作特效的过程中得到了很好的发展和提升,目前好莱坞大片基本都是采用这种技术来做动作特效,效果非常逼真。
图1.1是《猩球崛起》使用光学式动作捕捉系统制作特效的场景。
图1.1 光学动作捕捉系统在《猩球崛起》中的应用
随着MEMS(Micro-Electro-Mechanical System,微电子机械系统)技术的完善,惯性动作捕捉技术在欧美市场逐渐商业化[6],美国的3Dsuit与荷兰的MVN是目前比较成功的商用惯性动作捕捉系统。
3Dsuit通过传感器来定位人体关节位置,并逐帧记录运动数据,记录完成后将数据导出到计算机并绑定到模型相应的骨骼关节上[7]。
MVN使用蓝牙直接将传感器标定的人体关节的实时位置数据返回到计算机,可以做到在无摄像机的情况下实时驱动模型[8]。
最近几年,随着技术的进一步发展,自由式无标记动作捕捉技术出现了。
使用了该技术的代表有美国的LeapMotion和Kinect,LeapMotion用于手势捕捉,其原理是利用了两个高帧率灰度摄像头、三个红外发射器以及手势跟踪算法来获取手势。
Kinect则用于人体骨骼跟踪,其原理是通过深度传感器来获取深度图像信息,再利用骨骼跟踪技术来追踪骨骼运动数据。
在国内,中科院吴健康教授,浙江大学金文光副教授等人在研究人体动作捕捉相关技术。
其中吴健康团队在国内最先推出惯性捕捉系统,并将其商业化[9]。
吴健康团队研发的产品叫MMocap动作捕捉系统,并在三维动画《水浒传》中首次使用,MMocap使用16个传感器来采集人体关节点信息,并通过蓝牙将数据返回到计算机中,利用贝叶斯网络算法和人体三维模型骨骼结构特点计算每个关节点的速度,加速度和位移等参数,并结合生物力学模型来驱动人物模型。
金文光团队所研发的动作捕捉系统和吴教授产品类似,但系统利用了自主研发的姿态算法来驱动模型[10],其传感器设备使用了加速度计和磁强计,成本有所降低,但是精准度和鲁棒性不强。
1.2.2 动作重定向技术
动作重定向是利用运动数据来驱动三维模型的一种技术。
在电影或动画制作过程中,无法直接呈现的高难度动作或效果可以由动作重定向技术来完成,且效果逼真。
如何将一个模型的运动轨迹映射到目标模型上,同时保证目标模型运动的逼真性和动作一致性是动作重定向要解决的问题[11]。
在国外,Thalman从人物三维模型建模入手,并结合模型特定动作的研究,提出使用虚拟网络来模拟人物模型来实现重定向[12]。
Badler等人将关键帧技术参数化来完成模型底部的控制,并同时提出给人物模型添加骨骼来减少计算复杂度的。