季 勇,蒋高明
(1.江南大学 针织技术教育部工程研究中心,江苏 无锡 214122;2.南通大学 杏林学院,江苏 南通 226001;3.生态纺织教育部重点实验室(江南大学),江苏 无锡 214122)
人体模型的表达与实现是计算机人体仿真的重要组成部分,不仅是虚拟现实人物模拟的主体内容,更是人工智能领域研究的热点之一[1]。随着虚拟现实技术不断迭代更新,人体模型的表示方法也开始从传统的线框模型不断进行技术升级。
对于人体形状估计的需求,人体感知的图像扭曲方法被提出来,该方法也能将人体整形效果从模型传递到图像,通过改变全身属性,创建所需的整形效果[2]。此外,又进一步提出从单一图像估计人体和服装形状,该方法从训练数据集中学习可变形模型,为不同姿势的人体生成三维试衣网格[3]。对于人体轮廓估计的需求,提出综合几何和统计先验知识的方法,从1个正面和1个侧面轮廓中重建一个标准化物体的形状。学习一个连接轮廓外观的非线性函数,并将其用于创建一阶近似人体模型[4]。此外,参数化人体造型和变形算法也被用于水平剖面横切获取人体模型的特征腰围围线,并引入人体特征尺寸参量,确定相关围线初始值以及迭代初始值,通过指定区域变形,得到个性化人体模型[5]。对于人体数据集,对人体数据的更新需求及人体数据的获取方法、发展趋势等进行调研,汇总国内外22 个人体数据库的研究建立、运行使用以及数据含量等情况,分析了数据库框架特征和功能[6]。
以上相关研究局限于图像生成和二维参数建模,没有结合现有的人体数据库,快速实现人体模型表达,导致工程化适用性不强。本文提出了基于学习功能的线性人体模型表达方法,通过对大量不同人体形状的三维网格进行整体模型训练,快速实现快速人体模型的重建,为人体建模在虚拟现实中虚拟设计和可视化仿真提供有力支撑。
人体模型表达与实现需要大量的训练和验证数据。收集大量的人体形状是一项非常复杂的任务。目前,国内还没有真实的人体形状和测量数据集,由此需要进行人体尺寸的测量、扫描以及重建。
1.1.1 被动三角剖分
三角剖分是人体三维扫描的主要方法之一,被动三角剖分需要对不同姿态拍摄图像寻找点的对应关系,从而完成物体或场景的重建[7-8],如图1所示。根据2张图像中对应点的位置,立体摄像机相对排列并且相同方向,剖分时找到图像中对应点的三维位置并三角化。被动三角剖分依赖于图像中准确的对应点,而人体扫描特征点不明显,所以被动三角剖分在人体扫描上具有一定的局限性。
图1 被动三角剖分Fig.1 Passive triangulation
1.1.2 主动三角剖分
主动三角剖分的原理是将测量系统中的一个摄像头替换为一个光源,光源将一个点从一个校准的位置投射到环境并显示于成对的图像中,如图2所示,激光扫描是一种主动三角剖分的形式,利用校准的激光、传感器以及相机系统的组合来完成物体的三维测量[9]。激光将1条或几条线投射到一个物体上,调到特定波长的摄像机进一步测量这些线的变形,再利用采集的数据将每条线变成三维曲线,进而激光沿着物体的整个表面移动,把获得的三维曲线转变为整个人体的三维表面。
图2 主动三角剖分Fig.2 Active triangulation
本文选用CAESAR人体数据集[10],主要采用主动三角剖分方法采集人体数据,是目前最大的三维人体数据集,也是人体模型几何图形研究领域最常用的数据集,经常被用于人体模型的采集与生成研究。区别于二维人体数据集,该数据集具有准确的体积和表面积的测量能力。如图3所示,CAESAR数据集包含3种人体形态的全身扫描。CAESAR数据集已经被应用到多项人体研究之中,包括学习人体的形状和姿势、站立人体姿态归一化、参数化人体形状表示。
基于学习功能的人体模型重建是利用数据集的再塑过程,结合深度图中人体形状来选择特定的曲面网格,对齐新网格与输入网格以重构整个网格。本文提出的人体线性模型采用校正人体形状的网格顶点算法,以C=20个关节,V=7 160个顶点的人体网格为基准,J()为关节位置函数,如图3所示,其分割初始权重Π∈RV×J,RV×J是V×J阶矩阵,R为人体形状矩阵。
图3 人体模型网格基准Fig.3 Mannequin grid datum
根据标准的人体网格创建方法,人体模型的形状S由V个向量代表的平均模板形成:
(1)
(2)
人体关节的位置是人体模型建模中关键部分,精准的关节位置使人体模型的躯干更加自然并且清晰。基于人体形状的关节位置公式为
(3)
(4)
式中W(·)是一个标准的线性蒙皮函数,对关节中心估计的顶点进行旋转,并用权值来实现平滑。
(5)
(6)
通过以上计算,可以得到与数据集匹配的形状,对转化后的人体网格进行主成分分析,经过位置标准化得到相应形状参数。由此根据方差顶点偏移位置定位人体网格。在顶点构建人体形状时,优化位置能避免人体形状的伪影[11-12]。训练时,人体网格变形的映射方差不能直接转化为顶点位置的方差,但三角形变形拥有灵活自由度,这也确保模型的可行性。
预训练的网络已经能够分割人体部位,这使得合成数据集中的人体表现真实[13-15],由于人体模型训练数量较少,微调会在100次迭代后收敛。评估分段和深度估计的性能时,表1示出人体模型的分割结果,交并比均值达到65.27,像素准确均值达到62.15,比Optimal和Baseline-greedy 2种方法表现较好,在优化Obj文件和时间效率上表现中等。
表1 人体估计分割Tab.1 Mannequin segmentation
为进一步评估模型的泛化能力,将每个模型拟合到已有网格,在人体形状上进行优化即根据平方顶点距离找到最佳拟合。通过优化人体模型的个性化模板形状,使网格之间的位移达到动态匹配,以此扩展线性公式,并简单地添加动态形状函数到蒙皮函数如下:
(7)
(8)
式中:β∈R3V×|ε|,|ε|是凯撒数据集中的主成分个数;γβ∈R3V;f(·)为动态控制向量函数,对动态形状系数的向量进行预估。
根据以上顶点距离最佳拟合公式生成线性人体模型。随着动态控制向量的改变,人体模型出现了显著差异,人体模型的网格变形更加真实,如图4所示。随着动态控制向量的变化,人体形状也产生线性改变,依赖于人体形状参数的人体变形看起来流畅自然,人体线性模型拟合程度较高,这也说明回归训练达到了预期的效果。
图4 线性人体模型Fig.4 Linear mannequin
针对复杂结构的人体重建问题,利用人体网格顶点模型,结合人体形状参数训练,将不同类型的人体连接起来,生成了线性化的人体模型。经过优化关节位置,隐式地建立人体模型的空间关系;并通过考虑人体结构以及关节位置来推断人体网格,完成人体网格的深度估计。根据平方顶点距离找到最佳拟合,实现对人体形状模型进一步优化;优化后的人体形状可使网格之间的位移达到动态匹配,以此快速实现多种复杂的人体模型重建,并可用于人体模型的开发和服装虚拟展示。