廉价动态捕捉解决方案

Xsens动作捕捉 2022-11-11 10266

“廉价”只是个玩笑话,一切是为了节约时间成本。

在项目早期为了做一些质量需求不高的测试用动画,考虑到去专业动态捕捉工作室做mocap的成本太高(除了捕捉费用的花销,工作人员的路费,食宿以及时间成本),决定探寻廉价的动态捕捉方案。目前备选方案有两个,一个是Ipisoft Markerless Motion Capture, 另一个是用 IKinema 的HTC vive的VR设备+附带的动补Tracker 的动态捕捉。

目前测试了Ipisoft, 对于质量要求不高的测试动画来说效果还不错,这里简单介绍一下。

Ipisoft Motion Capture 是用 1 到 2 个Xbox 的 Kinect 摄像头或者 3 到 6 个PlayStation 摄像头(专业版支持16个),不需要追踪器(Markerless), 基于视频像素变化来计算骨骼运动的动态捕捉软件。

用了一个会议室,大概25到30平方米,6 个 PlayStation 的摄像头, 摄像头高低位置不同, 6 个摄像头视角基本上涵盖了房间的所有角落。

廉价动态捕捉解决方案  第1张

六个摄像机的视角

廉价动态捕捉解决方案  第2张

首先需要用光点来做Calibration, 这里用了个手电筒(手电筒上包了纸让光稍微散射一点)。

廉价动态捕捉解决方案  第3张

Calibration 的作用是通过让每一个摄像头对视频中光点的追踪,让软件计算出每个摄像头的精确位置和方向。(也就是说Calibration 过后,摄像头就不能移动了,换句话说, 每次移动了摄像头, 都需要重新做Calibration)

Calibration 的结果

廉价动态捕捉解决方案  第4张

因为是基于像素来捕捉, 软件需要明确的知道背景和被捕捉对象的区分,所以需要做Background check. 这一步就是让每一个摄像头对静止背景拍照。 稍后将拍照的图片比对有移动物体(捕捉对象)的视频, 从而将移动的物体区隔出来。

接下来就是捕捉。做了一些测试,发现因为是基于像素,所以将肢体和背景的颜色区别开来会得到更好的效果,我们基本的颜色区分是红色的手臂, 绿色的上衣(测试的时候我穿的灰色),黑色的裤子,红色鞋子。从一元店买了便宜的衣服,剪裁缝制, 做了一些简易的可以包裹身体的“套子”。有条件的话,肢体颜色有明显区隔的紧身衣是最好。

廉价动态捕捉解决方案  第5张

为了让捕捉对象和背景区别更明显,背景的沙发盖上了白纸。

廉价动态捕捉解决方案  第6张


下面就是测试的内容。

某个摄像机角度的视频。

在软件中匹配视频中捕捉对象的肢体颜色和模板角色的肢体颜色。

廉价动态捕捉解决方案  第7张

像素Tracking 过后raw data的效果。

用软件自带的工具光滑动作后的效果。

多年的动态捕捉数据处理的经验来看,这个廉价的捕捉方案已经达到了比较好的效果。当然问题是有的:手腕和头部旋转的捕捉数据基本上没有(官方说可以绑一个PlayStation motion control的控制器,图例,但经过测试后发现效果并不理想)

廉价动态捕捉解决方案  第8张

腰部的弓下后背的Pose没法捕捉,图例,(不过这个在DCC处理的时候很容易修改)。

廉价动态捕捉解决方案  第9张

其次是空间的限制,如果空间太大,摄像头相互之间的距离太远,捕捉数据的质量也会收到影响。

虽然数据并不完美,质量无法和Vicon 之流比,但廉价的捕捉方案已是其最大的优势。 在项目初期阶段(对动画质量的需求不大),当策划提出动画需求,通过半个小时到一个小时的设置和捕捉,即可以输出可以用的数据来验证策划的需求。且不需要提前预约动态捕捉工作室,不需要工作人员飞到另外的城市(现状),一切就在公司的会议室完成, 这也是最开始探寻廉价动态捕捉方案的初衷。

The End