基于改进分段铰链变换的人体重建技术
2020-03-19张小蒙方贤勇汪粼波田利利孙有为
张小蒙, 方贤勇, 汪粼波, 田利利, 孙有为
(安徽大学计算机科学与技术学院媒体计算研究所,安徽 合肥 230601)
从图像或视频序列中恢复人体模型的重建技术,可以应用到电影、游戏[1]和虚拟试衣等多个领域。本文通过改进基于分段铰链变换的人体重建技术对着装宽松衣服下的人体模型恢复问题进行了研究。
近些年,研究人员采用多视角、多相机[2]的方法,或采用单幅 RGB图[3]进行估计的简单方式获取待建人体模型数据信息。多视角方式的不足为,多相机不能协同工作,较大的误差可导致重建结果失败。而单幅图像的方法则相对部署简单,不存在协同问题,是本文感兴趣的技术。
但现有的单幅图像方法常常因为手臂、衣服等对身体部位的遮挡以及因视角产生的自我身体遮挡而无法准确进行关节检测,从而导致骨骼追踪失败和变形区域的畸变,难以恢复完整人体模型。在已有的方法中,基于分段回归的(piecewise regression,PR)的刚性配准技术[4]虽然能够很好地展示出铰链模型的优势,但难以处理柔性人体中的关节、模型姿势变化和高维人体模型数据问题。因此,结合基于分段铰链变换模型,通过关节连接2个刚体部分,并允许两者之间做转动操作,在前项分段回归(FPR-PEM)算法驱动下,最大角度调节各肢体姿势,并在高维数据上具有很出色的表现。在此基础上,提出了基于单幅图像的人体重建方法,最大程度减少了关节在转动时产生的畸变。该方法利用人体2D关节标签和3D人体骨架互补的优势,实现更加准确的3D建模。
目前三维重建领域已有许多获取自由变形的物体模型方法,如线性变分变形、变形图、子空间变形、关节变形、4D时空表面、不可压缩流、动画制图[5]、准刚性运动和方向场等等。这些技术常用于多幅图像、视频(多视点)或单幅图像(单视点)等的人体3D重建。
多视点方法:多视点提供了更多的互补数据,可以显著降低噪声和遮挡的影响,因此可以有效地解决三维人体重建数据信息缺失问题。早期的方法[6]需要数小时的处理时间,并且对于相机的安装摆放和校准都有较高的要求,因此不适合日常使用。新近的方法[7]具有较好的性能,但仍然需要大量的处理时间;另外,对于硬件和软件的要求也非常高。多台深度相机的方法也获得了较好的实验结果,但需要专门配备具有深度成像功能的相机。
单视点方法:GUAN等[8]根据用户提供的RGB图像结合SCAPE模型估计初始3D人体的姿态和形状,并结合轮廓、边距等信息对身体形状进行高度约束估计,实现3D人体模型提取。CHEN等[9]采用 2个阶段的方法:①学习人体形状、姿态和衣服的训练数据集;②通过指定服装类型和2D关节点,以平均形状初始化模型生成初始3D人体形状,再结合二维轮廓信息迭代优化参数进行模型匹配。蔡青宏[10]通过 Kinect采集人体正面数据,以包围盒作为约束参照,统一点云与模型高度。首先将模型与点云进行粗略的配准,然后使用法向量约束确立对应关系,最后使用蒙皮技术进行进一步拟合。
近年,基于深度学习的单帧图像恢复人体模型的方法越来越多。通常采用给定的二维彩色图像和SMPL模型,经过网络指导训练估计人体姿势。OMRAN等[11]则使用2D体部分分割作为中间表示估计SMPL参数。YAO等[12]通过编码器-解码器的CNN直接回归人体网格,利用UV图解决3D人体姿势和形状估计问题。TAN[13]利用编码器-解码器架构估计SMPL参数,使用唯一的2D轮廓监督。PAVLAKOS等[14]使用2D人体关节热图和掩模做中间表示,分别预测 SMPL姿势和形状参数。VAROL等[15]用3D人体形状估计任务的体积,且将3D关节位置预测作为中间结果。上述方法均需要进行大量的3D数据监督和前期训练。本文方法通过自动的检测骨骼关节点,能够直接约束模型的姿态,其创新点为:
(1) 设计基于人体分段铰链变换的柔性变形模型。该模型通过机械零件思想进行人体姿势变换,在模型点云部件分割的基础上结合 SMPL模型实现灵活的线性建模,达到人体模型的机械式构造,实现模型的柔性变化。
(2) 提出以骨骼和轮廓作为约束,借助改进的铰链模型进行铰链式线性模型的FPR-PEM回归,得到目标图像人体形状姿势。
1 方法概述
针对人体骨骼关节分布特点,结合具有零件模型计算优势的铰链式三维重建框架,实现具有真实感的形状姿势重建。本文提出新的基于单幅图像的人体重建方法。
1.1 系统流程
从单帧图像恢复三维人体模型,如图1所示。首先,对输入的RGB图像进行数据集的轮廓覆盖和边缘距离等的计算,从而固定模型点云表皮的形状。接着,借助CNN神经网络[16]预测人体关节点,从而保障能够准确快速地预测2D人体关节点位置,引导3D模板骨架的定位跟踪。进一步,SMPL模型拥有24个关节旋转向量,本实验则通过检测的15个关节与SMPL模型进行躯干关节的对应图5(b),以此嵌入到铰链模型的各关节部位,形成完整的人体铰链模型。然后,根据人体铰链模型的原理,将人体三维模型通过骨骼关节和轮廓形状进行姿态形状参数化,其中每个身体部分对应一个节点,躯干位于根节点。最后,对这一分段铰链方法处理过的参数化模型施加2D轮廓和3D骨骼等约束,并在薄板样条(thin plate spline,TPS)的插值下进行3D模型的恢复重现。
图1 系统流程图
1.2 能量模型
本文提出的基于分段变换铰链的恢复技术,通过轮廓和骨骼双重约束,能够较好的回归人体形状和姿势。总能量式为
其中,λ为各部分权重;Edata为模型数据项;Emodel为铰链式模型项;E2D为模型 2D约束;Ejoint则为关节骨骼项。
2 改进的铰链模型
分段铰链模型是基于人体零部件的3D形状姿势参数化的模型。模型由14个部分组成,每一部分均被设计为身体的局部零件,各零件使用骨骼关节进行连接,并且依赖于各自身关联节点实施独立的3D旋转变换。
2.1 人体铰链模型
人体铰链模型类似一个机械装置,通过关节部位的转动角度改变各部件之间的相对位置,改变模型的姿势变化。每个身体部分使用规范的、刚性的3D三角形网格表示,2个部位之间定义一个关节相连接。身体所有关节点分布似树形结构的图形模型[17],设置节点索引为i∈[0,···,14],节点部位可表示为
其中,oi为节点在全局帧位置的3D矢量;di为线性形状系数矢量,表示关节相关位置的变形;ri为部件相对于参考姿势的旋转的三维罗德里格斯矢量;t为根基节点的一个全局平移向量。
2.2 面向线性建模的SMPL模型改进
构建SMPL的线性化,需要对其表面点云进行重新分割整合。
(1) 根据SMPL模型网格拓扑结构,预先定义一个初始平均形状s0。对于每一关节部分的形状dk,模型形状S为
(2) 从SMPL模型的实例中学习人体铰链模型,确定模型各关节分布位置以此分割各模块(图2)。为了减弱关节刚性变换的影响,对训练的形状进行普氏分析(Procrustes analysis)对齐
其中,tp为每个点的刚体平移向量;R为θ角度的旋转矩阵;sp为一个重排列的2×N矩阵。
图2 人体铰链模型
2.3 基于SMPL铰链模型的构建
假设铰链模型肢体在运动变化的某一范围内服从某种斜率不同的线性关系,且使用指示变量对各段(即不同肢体)数据同时拟合,进行统一的模型回归。因此可以将其转化为一个状态估计问题,假设点集的分布符合高斯混合分布,待配准的顶点集为x=[x1,x2,···,xn]T,其概率密度函数为
铰链模型和三维网格数据将顶点和法向量之间的匹配关系定义为模型顶点与3D数据之间的距离,能量项为
其中,Ci为第i个关节点所关联的身体部位;Pprior= m inS(ξ) + t ,且姿态形状参数ξ=(rT,dT)T,t为根节点全局平移向量。
另外,对于铰链模型部分,采用顶点与线性模型的偏差表示该模型的线性变化,通过加入一个法向量约束,使其与临近点变化方向一致
图3 铰链模型3D姿态回归
3 铰链模型约束
通过边界约束和关节骨骼约束完成模型形状姿势的正确变换。
3.1 基于SMPL铰链模型的构建
边缘轮廓可以提供更加精确的定位目标位置(图 4)。本文方法通过边界约束解决身体部位的遮挡现象,实现更加准确的人体建模。使用像素覆盖分割算法对图像进行人体分割以获取轮廓。采用彩色信息聚类和图像二值化的方法,即:将像素Ii,j的轮廓值Bi,j定义为
其中,Ai,j为Ii,j周围8-领域内所有像素点的几何;N(Ai,j)为该邻域内的像素点总数。
图4 轮廓边缘
因模型顶点边缘投影对应于可见图像轮廓边界,所以图像Bi,j和模型可使用标准距离函数。通过投影模型表面三角面片法线与相机到边缘中点的光线间点积的符号变化,对检测到的轮廓进行欧式距离变换
其中,vs为模型图像顶点边界;bs∈{-1,+1}为权重;γ= 0 .1。
3.2 2D/3D关节骨骼约束
为了能够更好的优化铰链模型参数,需采用双向约束机制,即3D到2D姿势投影和2D到3D姿势变换(图 5)。在检测图像中所有关节点时,需定义基于2D的重投影约束,即
其中,ΠK是参数为K的相机从3D到2D的投影;ωj为 CNN神经网络 2D关节检测置信度;ρ为Geman-McClure惩罚函数;J()β为基于CNN的骨架关节回归网络;Rθ(J(β)3D,i)为每一个3D关节j以Rθ的角度进行刚性变换。通过最小化3D骨骼关节和检测2D关节之间的重投影误差,强制所有投影的关节位置均接近其相应的检测值。另外,定义了模型骨骼J(β)3D,i和 3D检测骨骼J3D,i之间的3D-3D对齐项
其中,t′ ∈ R3为回归后的三维关节位置J3D,i从以根为中心的局部坐标系转换为全局坐标系的辅助变量。这样,根据参数化骨骼模型的骨骼长度和姿势重新缩放回归骨骼进行2D和3D的关节对准约束,式(1)中的Ejoint为
其中,ω2j和ω3j的值均设置为0.1。
图5 关节骨骼
4 人体模型求解
人体模型求解可通过FPR-PEM的细节优化及铰链模型点云的重采样和细化完成。
4.1 基于FPR-PEM回归求解
FPR-PEM 算法迭代步骤,首先挑选和当前残差最相关的自变量,然后计算自变量的简单最小二乘法系数的当前残差,接着迭代相加到自变量系数上,直到相关系数最小。本文能量式(1)由4项组成,采用从粗到精的渐进策略进行计算。首先,对模型项和数据项实施最小化,恢复模型的形状和姿态;然后通过关节骨骼的约束,获取精细的人体细节,从而精确计算出模型。
对Emodel实施变形,恢复2D图像人体形状和姿势
最小化式(12)时,需先对d求偏导,然后转换为线性方程求解。采用列文伯格-马夸尔特(Levenberg-Marquardt,LM)进行非线性求解Edata。根据FPR-PEM回归对于E(r,σ2) 部分进行简化,即
其中,σ2为超参数;pold(m|xi)为已知参数且
式(13)化简后得到QTQx=QTe(Q为雅克比矩阵)。
骨骼Ejoint项中的线性方程E3D需采用线性方法求解,而非线性的E2D部分,则首先进行Taylor展开,然后进行梯度迭代求解
其中,F(x)为对应的误差项。将式(1)的参数设置为:γdata=1,γmodel= 0 .1,γ2D=1,γjoint=0 .01。
4.2 重采样和细化
基于 Delaunay准则剖分的三角网格,由于三角形不重叠,得到的曲面更光滑。本实验采用了TPS中的线性三角网法的空间数据插值方法,进一步解决模型关节部位的变形问题。
为寻找一个通过所有的控制点且弯曲最小的光滑曲面,需在每一步迭代中,对模型中的每个节点ji(关节)和肢体顶点x(s)i均进行重新采样。TPS得到的曲面不一定要通过所有的控制点,所以对于三角网格化具有很大的帮助,也可以有效地控制变形区域凹凸的平滑度(图 6)。首先,对人体样本和参考模型进行网格划分,使其具有相同的拓扑结构,达到一个粗对齐;然后针对人体样本和参考模型对应分块之间构建局部 TPS方程,实现每一个分块的对齐,从而实现人体的精对齐。
图6 点云细化重采样
5 试验和分析
采用定性和定量的方式对实验结果进行评估。实验操作系统为Ubuntu16.04LTS,硬件设施是16 G DDR4内存和GEFORCE GTX TITAN X显卡。实验采用的数据集为 Human3.6M 和 UP-3D,其中Human3.6M拥有超过360万不同姿态视频帧图像数据;UP-3D的数据集源于Leeds Sports Pose及其本身的扩展版本,具有丰富的分割、姿势和骨骼关节等数据信息。利用SMPLify[4]和HMR[18]2种方法对比重建效果,SMPLify通过检测12个关节点,从单帧图像中估计 3D人体形状姿态;HMR采用端到端的最小化关键点的重投影损失进行形状姿势学习估计任务。
5.1 定性评估
本文方法的重建效果如图7所示。对输入图像(图7a)分割和计算边缘以及估计出目标人体2D关节点后(图7b),使用3D骨骼进行匹配拟合得到完整的人体模型(图7(c))。
图7 重建结果流程图
图8为不同方法对形状大小、姿势各异的人体重构对比。本文与2种方法比较,通过TPS线性插值能够平滑地处理关节变形处的凹凸褶皱问题,并且在 FPR-PEM 算法下展现出良好的重构效果。
图8 人体估计方法对比展示
由于 SMPLify方法只能粗略地估计出人体姿态,对于关节处的变形与旋转角度均与实际的姿态有很大的差距,并且头部的校准(脖子弯曲度)也具有较大误差。HMR的结果相对于SMPLify的拟合更加精确,直观的视觉效果更好,但是对于关节角度的调整比较僵硬。另外在某视角下重叠身体部分不能很好地控制各部分之间的距离,导致重建的结果不理想,且不能准确地调整头部的姿态。
图9为大尺度运动下的重建实验结果。本文是以先验形状姿势为基础且能够准确定位人体关节,在大尺度运动的图像中,也能够重建出较佳的模型。图10显示了本文方法通过处理预先训练的女性模型形状姿势,完成了女性模型姿势的恢复。
5.2 定量评估
采用顶点方向误差检验人体铰链建模性能,并与其他方法对准确性进行比较。在不考虑手部和脚部形状姿势的情况下,直接估计模型与3D扫描得到的每个顶点真值之间的距离误差,图11采用了热度图形式。
图9 运动中的人物图像拟合
图10 女性模型重建效果
图11 模型顶点误差对比
通过图11可以看出,本文方法估计的模型与真实模型和其他2种方法相比,总体误差最小。而其他 2种方法因无法满足正常人体姿态先验,导致结果具有很大的偏差,所以不能正确地引导模型重建。
另外,图12从重建结果深度错误率角度对本文方法和其他方法进行比较。采用Kinect v2相机进行彩色数据和深度数据采集,并将彩色图像恢复的形状模型反投影到图像平面上,从而计算与对齐的深度数据间的欧氏距离误差。
图12 算法深度信息错误率对比
进一步,计算骨骼关节检测的错误率(图13)。本文对躯干上的15个关节点进行观测并完成计算。
5.3 不足与分析
本文借助 SMPL模型的特点与铰链模型相结合,进行基于零部件思想的机械式变换,从2D图像中恢复3D人体模型的形状和姿势。某一关节的旋转变化影响着其相邻关节角度的旋转变化,即:前节点的旋转可引起相邻2个节点的变动,其可导致铰链模型的错误形变,而失败。使用形状姿势先验能够缩小变化的差距,从而部分减少铰链模型在形变过程中产生的扭曲变异,使其更加接近于形状姿势的微调变化形式。
另外,本文中轮廓边缘的约束在一定范围内具有矫正姿势错误变化的作用,但对于人体大动作双手、双腿交叉或者大面积身体的自我遮挡等极端情况还存在一些不足,在后续的工作中将会进一步研究解决。
6 结 论
本文基于刚性的前向分段回归概率期望最大化技术,提出了一种针对柔性物体的基于分段铰链模型的人体建模技术,实现了仅在单幅RGB图像上新的任意姿态下的人体模型重建方法。该方法通过精确的人体骨骼关节点的检测并结合轮廓约束,运用局部到全局的层次化迭代,实现准确的3D人体建模,克服复杂遮挡带来的建模挑战。
本文的构想为今后的工作开辟了许多方向,特别是,身体的形状和姿势不仅可以从轮廓和特征点等其他线索中受益,还可以将其扩展到多帧之间实时动态转换效果。在将来的工作中,还可以考虑增加一些额外的约束,如三维特征。另外,还可以考虑利用GPU编程实现算法的实时运行。