三维人体形状指的是以三维网格形式表示的人体几何形状模型。按照[1]中的分类方式,可以将三维人体形状重建粗略的分为参数化方法与非参数化方法。本次先介绍参数化方法。
参数化人体形状重建方法依赖于某个基于统计得到的人体参数化模型,仅需一组低维向量(即人体参数)即可描述人体形状。目前常见的参数化人体模型如SCAPE[2]、SMPL[3]、SMPL-X[4]等。
以SCAPE为例,它定义了两个独立的低维参数空间:人体体型(Shape)空间与人体姿态(Pose)空间。给定空间下的一组人体体型参数与人体姿态参数,即可直接合成一个人体形状。其中人体体型空间是通过对相同姿态、不同体型的人体数据库进行PCA(Principal Component Analysis,主成分分析)降维得到的子空间进行表示,体型参数则是该子空间中各个基的系数。图1(a)显示SCAPE体型基上的参数变化影响人体体型变化。SCAPE的姿态参数则以17个人体部分相对于标准模板人体相应部分的旋转表示。
图1(a) 经典人体参数化模型-SCAPE
随着SCAPE模型的成功,一些研究者在其基础上不断改进,提出了各种升级版本,较为知名的如Blend Scape[5],Breath Scape[6],S-Scape[7]等等。但是SCAPE模型的变形依赖于三角形面片的旋转变形,而不是以动画软件中常用的顶点变形方法(如骨骼蒙皮)进行变形,因此SCAPE生成的人体几何模型难以在现有的动画软件(如Maya, Blender等)直接使用。
最近,德国马克思-普朗克研究所开源了一个基于顶点变形的人体参数化模型SMPL[3]。SMPL模型同样由人体体型参数与人体姿态参数控制变形。其体型参数与SCAPE的体型参数相同,都以PCA提取出的体型变形基的参数进行表示。而姿态参数则是以人体的全局旋转以及23个关节的关节角旋转表示,并通过LBS(Linear Blend Skinning,线性混合蒙皮)进行人体姿态变形。SMPL的人体生成如图1(b)所示。
图1(b) 经典人体参数化模型-SMPL人体形变示意
传统的参数化人体重建方法通常利用特殊的设备获得人体的稠密三维点云数据或者深度数据,然后通过点云配准、模板变形等方式拟合SCAPE参数,进而重建出三维人体形状。
近年来,许多研究者利用Kinect深度相机捕获的人体深度数据以及SCAPE模型重建三维人体形状。Zhang等人[8]通过单个Kinect相机采集中间转动人体的多视图局部点云数据,并进行配准,然后采用类似SCAPE构建人体的方法对多个视图的点云进行拟合。
Weiss等人[9]也采用单个Kinect相机,不同于转动人体来获得多视图局部点云,他们捕获单人在Kinect前移动的多个单目深度图,通过最小化SCAPE人体模型的轮廓重投影与深度图轮廓之间的配准误差进行优化求解,如图2所示。但是该方法的求解过程非常耗时(重建一个人体需超过1小时)。
图2 Weiss等人的工作
Zhao等人[10]也提出了基于单个Kinect的参数化人体重建方法。他们首先利用Kinect拍摄人体正面和背面两张深度图,随后分别利用这两张深度图重建人体的半身网格,最后将其缝合在一起。上述