陈佳宇,钟跃崎,2,余志才
(1.东华大学 纺织学院,上海 201620; 2.东华大学 纺织面料技术教育部重点实验室,上海 201620)
三维人体模型重建在纺织服装领域服装合身性评价、三维服装设计以及虚拟试衣等方面均有着至关重要的作用[1-2]。三维人体模型重建技术可以分为2种方法,一是三维扫描模式,通过激光测距,结构光栅反演以及飞行时间(Time of Fly,TOF)等直接计算出人体表面的三维点云坐标[3];二是通过单张或者多张照片,利用数据驱动或机器学习,重现二维图像空间与三维人体模型表面点云数据间的映射关系,从而恢复出三维人体模型点云数据。
早期关于三维人体模型重建的研究主要实现了几何意义上的粗略近似[4-5]。而人体统计模型的出现使得人们可以输入单张或多张图像以得到更为精确的三维人体模型[6-8]。如Endri等[9]最先利用神经网络训练了一个从图像到三维人体模型形状参数的全局映射,从而再利用人体形状参数重建三维人体模型;之后又提出了一种新的方法,利用多视图输入与热核签名(Heat Kernel Signature,HKS)实现了精度更高的三维人体模型的重建[10];2018年,JI[11]提出了一种双分支的神经网络,通过分别训练不同视图来共同预测人体的三维模型。这类重建方法的人体精度较高。
在建立映射方面,卷积神经网络是一种非常有效的特征提取方法。自30年前被提出至今,卷积神经网络(Convolutional Neural Network, CNN)极大地促进了计算机视觉领域的快速发展。在三维领域,CNN处理分类及识别等相关任务的一种重要方法是提取三维数据的低维形状描述子并用于形状的匹配、分类或检索。DIBRA E等[10]将HKS作为特征描述子,将人体统计模型编码为一个新的隐空间,通过训练学习了一种从三维描述子空间到人体形状空间的逆映射,并通过将其重新解码完成了三维人体模型的重建。此外,文献[10-11]还利用主成分分析(PCA)法,将人体统计模型通过PCA降维的方式进行重新编码,得到了一系列PCA描述子,通过CNN提取了二维图像的特征值并对其进行回归预测,最终再对预测生成的PCA描述子进行逆映射完成了对三维人体模型的重建。
机器学习算法需要良好的人体统计模型作为训练的基础,因此人体统计模型也是人体三维重建的关键因素之一。人体统计模型是一种可以用低维参数来表示人体形状与姿势的表征方式。ANGUELOV等[6]基于不同的人体形状和姿态学习三角变形从而建立了SCAPE数据库,是一个可有少量参数驱动的参数化人体统计模型空间。之后,PISHCHULIN等[8]为降低数据的冗余度,同时统一人体扫描数据的拓扑形式,以现有最大商业人体扫描库CAESAR中的三维人体模型为基础,构建了一个人体统计模型空间MPII Human Shape。
本文提出利用MPII Human Shape人体统计模型,通过PCA提取三维模型的低维形状描述子,并以此作为人体模型在隐空间中降维后的低维编码,然后构建了一个以人体轮廓二值掩码图为输入、对应的低维形状描述子为输出的双分支回归神经网络。本文的主要贡献在于采用权值共享的方式来学习输入输出之间的映射,并最终对预测生成的形状描述子进行解码,完成了对人体的高精度重建。
本文采用的人体统计模型空间MPII Human Shape是基于现有最大的商业人体扫描库CAESAR[12]构建的,该数据集共有4 300个以标准姿势站立的男、女人体模型,所有的人体模型已经过姿势校准以消除姿势不同所带来的误差,每个人体模型共由6 449个数据点组成。
首先运用主成分分析法提取人体三维模型的低维形状描述子,并对人体进行重建。重建得到的人体可用以下式表示:
本文构建了一个可以以人体轮廓的二值掩码图像作为输入重建三维人体模型的卷积神经网络(body reconstruction convolutional neural network,BRCNN),后文简称“BRCNN网络”。BRCNN网络的主要架构是基于密集网络(DenseNet)建立的,运用了多个卷积层、密集块与转换层来提取人体轮廓二值掩码图像的具体特征。重建三维人体模型卷积神经网络见图1。
密集网络是2017年HUANG等[13]提出了一种可以通过对前面所有层与后面层进行密集连接来实现特征重用的新型CNN深度网络,其在图像识别、目标检测等计算机领域得到了非常好的表现。本文通过人体轮廓二值掩码图全面收集人体信息,因此,通过密集网络中引入的密集块构建了一个深度网络,可以将前面的网络收集到的信息反馈到后面的网络中。其中,每个密集网络的每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。这种网络结构减轻了梯度消失,加强了特征的传递,也在一定程度上减少了参数数量。
本文设计的BRCNN网络拥有双分支,通过对2个不同视角(正视图与侧视图)的人体轮廓二值掩码图和人体轮廓草图图像来训练网络,使之可以从中提取到人体全局特征。这是因为三维建模领域通常用三视图来对三维模型进行定义。换言之,三维模型在XYZ坐标空间内的投影视图蕴含了该模型的局部特征与全局特征。就人体建模而言,由于人体具有自遮挡性,其俯视图包含的信息十分有限,因此可以通过人体正视图与侧视图充分地表达人体的主要形状。为了保护用户的隐私,一个较为合理的输入方式是仅使用二值化处理过的人体掩码图图像作为BRCNN网络的输入。
图1 重建三维人体模型卷积神经网络
对于人体轮廓二值掩码图像,由于训练集与测试集均来自于已知的三维人体模型数据库在正视图和侧视图方面的三维渲染效果,因此直接关闭光照后,即可得到相应视图的人体轮廓二值掩码图像,如图2(a)(b)所示。而人体的轮廓草图则是在提取人体统计模型的正视图与侧视图之后,利用简单的阈值变换法得到的。阈值变换法即设定一个阈值,将输入图像中亮度大于该阈值的像素都替换为白色(255),低于该阈值的像素都替换为黑色(0)。经过多次实验,当阈值200时,可以获得合适的人体轮廓草图。这里没有采用自适应阈值的轮廓获取方法原因是大量实验表明深度卷积神经网络在图像特征提取方面,对于背景噪声的自适应能力较强,对有效信息的浓缩能力足以克服前述过程中的干扰信号。人体轮廓二值掩码图与人体轮廓草图见图2。
图2 人体轮廓二值掩码图与人体轮廓草图
考虑到人体的正视图与侧视图之间的关联性,BRCNN网络的2个分支的参数是共享的,这使得每个分支训练得到的局部描述子不再是相互独立的。将2个相关联的局部描述子相连,通过联合训练可以最终预测人体模型的形状描述子。为了探索该方案的适用范围,本文尝试通过单张正视图或侧视图来对人体进行三维重建,实验结果详见2.1。
根据本文的重建目标,将BRCNN网络的损失函数定义如下:
式中:λ为投影矩阵;φ为预测生成的人体描述子;φs为PCA低维形状描述子;N为人体模型表面顶点数目。
为了验证所提出的人体重建网络BRCNN的可行性,本文以不同的输入进行了大量的实验并对结果进行了对比分析,具体如表1所示。
表1 本文实验内容及说明
所有方法均在相同的数据集上进行训练和测试。其中,训练样本集包含4 000个人体模型,测试样本集包含300个人体模型。为了客观地评估实验重建得到的人体模型的精度,本文利用了均方根误差(root mean squared error,RMSE)作为衡量指标。通过计算预测模型与原始模型差值期望的算术平方根,得到如图2所示的结果。
式中:φ为预测生成的人体描述子;φs为PCA低维形状描述子;N为人体模型表面顶点数目。
RMSE对误差的异常值非常敏感,因此可以精准地评估各参与实验的网络的精度。其中,RMSE的值越小,说明预测模型的精度越高。同时,本文也利用RMSE对人体进行了偏差分析并得到了偏差分布图,其可以直观地观察到人体重建细节。
本文实验内容说明见表1。各实验总RMSE值与单样本的RMSE值见图3。
图3 各实验总RMSE值与单样本的RMSE值
M-BRCNN-1 生成的三维人体模型及其偏差分析图见图4。M-BRCNN-1生成的模型图4(b)与原始模型图4(a)的形状基本一致,其偏差分布图如图4(c)(d)所示。由偏差谱图可知,越靠近浅色的颜色表示该部位的偏差更小,偏差的单位为mm。从正视图4(c)可以发现,由 M-BRCNN-1网络生成的模型在膝盖、胸部、裆部等部位有较大的偏差;而从背视图4(d)则可以发现除了膝盖以外,后肩、臀部等部位偏差也较大。由此可见,人体的正视图因为只有人体的正面轮廓信息而缺少人体的深度信息,故以此为输入重建三维人体模型时,虽然能生成与原始模型形状基本一致的人体模型,但是在人体厚度方向上(即矢状面上)若干较为重要的部分(如胸、膝盖、臀部等)的偏差则相对较大。
M-BRCNN-2 生成的三维人体模型及其偏差分析图见图5。以人体侧视图的轮廓二值掩码图像作为单输入通过M-BRCNN-2也可以生成人体的三维模型,且生成的人体模型图5(b)与原始模型图5(a)从直观上看也并无明显差异。但是从偏差分布图图5(c)(d)中可以看出,该模型较大的偏差主要分布在手臂、腿侧等人体的轮廓边缘。由于人体的侧视图包含人体的深度信息而人体的轮廓信息较少,因此与M-BRCNN-1生成的模型相比,该模型在胸、膝盖、臀部等部位的偏差相对较小,手臂、腿侧等人体的边缘部位偏差则相对较大。
图5 M-BRCNN-2 生成的三维人体模型及其偏差分析图
M-BRCNN-3 生成的三维人体模型及其偏差分析图见图6。作为对比,M-BRCNN-3以人体正视图与侧视图的轮廓二值掩码图像作为2个分支的输入生成了人体,但该网络的2个分支间的权重参数不共享。从偏差分布图图6(c)(d)可以看出,该模型的偏差分布较为均匀,主要分布在-4.405 8~4.405 7 mm之间,与M-BRCNN-1与M-BRCNN-2相比,偏差相对减小。
图6 M-BRCNN-3 生成的三维人体模型及其偏差分析图
以人体轮廓草图为输入生成的三维人体模型的偏差分析图见图7。以单视图人体轮廓草图与双视图人体轮廓草图为输入的C-BRCNN-1、C-BRCNN-2、C-BRCNN-3同样证明了这一点。可以明显的看到以双视图人体轮廓草图为输入的C-BRCNN-3生成的人体模型图7(c)精度高于分别由主视图人体轮廓草图、侧视图人体轮廓草图作为输入的C-BRCNN-1与C-BRCNN-2生成的人体模型图7(a)(b)。并且图7(a)模型的主要偏差集中在人体膝盖、胸、臀部等部位,而图7(b)模型的主要偏差集种在人体的边缘部位。
图7 以人体轮廓草图为输入生成的三维人体模型的偏差分析图
RMSE值(图3)也客观地支撑了从偏差分布图得到的结论。从单样本来看,M-BRCNN-3与C-BRCNN-3的RMSE为1.859 9 mm与2.248 2 mm,明显小于M-BRCNN-1(2.929 4 mm)、M-BRCNN-2(2.001 4 mm)与C-BRCNN-1(2.513 0 mm)、C-BRCNN-2(2.999 1 mm)的RMSE值。而测试集生成的300个模型的平均RMSE值也同样呈现出这样的趋势,M-BRCNN-3与C-BRCNN-3的总RMSE值为5.204 7 mm与5.635 2 mm,明显小于M-BRCNN-1、M-BRCNN-2与C-BRCNN-1、C-BRCNN-2的总RMSE值。同时,也可以观察到M-BRCNN-1与C-BRCNN-1的总偏差值为6.844 4 mm和6.955 7 mm,精度高于平均RMSE值为7.254 6 mm和7.414 9 mm的M-BRCNN-2与C-BRCNN-2。
以上结果说明以人体轮廓二值掩码图或者人体轮廓草图的单视图或双视图作为输入,BRCNN都能生成近似的人体模型,且以双视图为输入得到的人体模型精度高于以单视图为输入生成的人体模型,以主视图为输入得到的人体模型精度高于以侧视图为输入得到的人体模型。
以人体轮廓二值掩码双视图为输入生成的三维人体模型及其偏差图见图8。前人利用2个权重不共享的深度网络学习得到了不同视图的描述子,随后将这2个描述子连接以最终预测人体的低维形状描述子并解码进行三维人体模型的重建[3],认为权重不共享有利于2个深度网络独立地学习不同视图的人体信息,从而得到针对每个视图的具有代表性的特征描述子。这种方法着重于提取人体不同视图的独立特征却忽略了视图之间的相关性。本文在提取人体不同视图特征的同时也考虑到了不同视图之间的相关性,采用了权重共享机制。换言之,使得双分支在梯度下降时所有参数矩阵保持同步更新。由表1可知,以人体双视图的轮廓二值掩码图为输入的M-BRCNN-3与M-BRCNN-4分别采用了权重不共享与权重共享的机制。从M-BRCNN-3生成的人体模型的正反面误差偏差图图8(c)(d)可以看出,该模型的主要偏差集中在-4.405 8~4.405 7 mm;而从M-BRCNN-4生成的人体模型的正反面误差偏差图图8(e)、(f)可以看出偏差主要集中在-1.068 6~4.405 8 mm,偏差明显变小。
图8 以人体轮廓二值掩码双视图为输入生成的三维人体模型及其偏差分析图
图9 以人体轮廓草图双视图为输入生成的三维人体模型及其偏差分析图
以人体轮廓草图双视图为输入生成的三维人体模型及其偏差分析图见图9。以人体双视图的人体轮廓草图为输入的C-BRCNN-3与C-BRCNN-4也证明了这一点。C-BRCNN-3生成模型的偏差在主要集中在-4.405 7~11.043 4 mm;而C-BRCNN-4生成模型的偏差主要集中在-4.405 7~4.405 7 mm,明显减小。
综上所述,当输入为人体双视图的轮廓二值掩码图像时,权重共享的BRCNN所得人体模型精度比权重不共享的BRCNN提高了1.07%,而以人体轮廓草图作为输入时,权重共享比不共享架构,其三维人体模型重建精度提高了0.6%。换言之,双分支的回归卷积神经网络BRCNN分别提取了主视图与侧视图所包含的体型特征,而权重共享机制则使得视图之间的形状相关性信息得以保留,从而使得重建的三维人体模型精度更高。
本文提出了一种可以从人体轮廓图准确地估计三维人体模型形状的方法,通过CNN建立了一个双分支的回归卷积神经网络且参数共享的回归卷积神经网络,卷积神经网络在训练后可学习到输入人体轮廓图像与由PCA得到的人体三维形状描述子之间的一个全局映射,从而可以重建三维人体模型。在测试集上对该卷积神经网络进行评估后,证明该方法可通过人体轮廓二值掩码图快速精准地预测人体的三维形状,并进一步证明了双视角的预测结果优于单视角的预测结果,权重共享网络的预测结果优于权重不共享网络的结果。本文提出的三维人体模型重建的方法在纺织服装领域有着至关重要的作用,可运用于虚拟试衣、远程服装定制、服装合身性评价、三维服装设计等方面。