面向移动设备的三维人体重建方法

2022-07-06 14:30寿旭峰卢书芳
小型微型计算机系统 2022年7期
关键词:净身轮廓卷积

寿旭峰,卢书芳,高 飞

(浙江工业大学 计算机科学与技术学院,杭州 310023)

1 引 言

三维人体重建一直是计算机视觉领域一个重要的研究问题.精确的三维人体模型可以被运用在人体测量、三维动画、虚拟试衣等诸多的领域.特别是在人体测量上的应用,相比于传统的手工测量,三维人体可以获得更多的人体体积和面积的信息.目前随着我国国民经济水平的快速提高,移动设备开始大规模普及,同时由于移动设备的计算能力大幅度提高,使得通过移动设备来重建三维人体成为可能.然而,与普通的计算机相比,移动设备的计算资源仍然相对较少,同时存储空间也相对较小.这使得通过移动设备实现三维人体重建具有一定难度.

通常三维人体模型可以通过三维人体扫描获得,如TC2,SHLtd,VITLtd等扫描系统,但是存在价格昂贵的问题,不能大规模的推广,并且要求被扫描者的穿着必须尽可能贴身,以减少模型的误差.近年来,通过卷积神经网络从视频和图像中重建的三维人体已经达到了较好的结果.Alldieck等[1]将视频中不同角度的身体姿势转换为标准的T型姿势,然后将其轮廓作为约束项来生成三维人体.Kanazawa等[2]提出了一个端到端的卷积网络来实现从单张图片中建立三维人体模型.他们利用SMPL[3]模型来表示三维人体结构,用卷积编码器和3D回归模块来预测SMPL模型的参数,同时构建了一个辨别网络来判断预测结果的真实性.Smith等[4]通过语义分割的方法对人体正面和侧面图像分割,获得人体掩膜,并将人体掩膜和掩膜的置信图作为卷积网络的输入来预测SMPL模型的参数,以构建三维人体.

然而,由于卷积神经网络的计算量较大,模型参数较多,并不能将这些方法直接运用于移动端.另外,由于图像中的人物可能穿着较为宽松,导致这些方法重建出的三维人体与实际人体存在一定的误差.针对这一点,Zhu等[5]采用的是通过手动标注净身轮廓关键点结合净身轮廓数据库构建正面和侧面净身轮廓,然后根据净身轮廓采用ct-FFD算法建立三维人体.Zhu等[6]提出了一种基于Grab-Cut和模板匹配的方法提取正面和侧面人体净身轮廓,再建立三维人体模型.但是该方法只能用于简单背景,对于复杂的背景并不能较好的处理.

针对上述问题,本文提出了一种适用于移动设备的从正面和侧面图像中重建三维人体的方法.该方法首先通过分割网络获得净身人体轮廓,然后通过卷积神经网络从净身轮廓中回归三维人体模型的参数,最后从这些参数中重建高精度的人体模型.对于三维人体模型则是采用了SMPL模型来进行参数化表示.同时,考虑到移动设备计算资源和存储容量有限的问题,本文利用知识蒸馏的方式对人体体型和姿态参数预测网络进行了轻量化处理.

2 卷积神经网络的轻量化

自从2012年AlexNet获得ImageNet图像识别挑战赛的冠军开始,卷积神经网络CNN开始被广泛地运用于图像分割,分类,关键点检测,目标识别等领域,并且均取得了比较瞩目的成就.但是,CNN也存在着一些缺点,例如计算量较大,模型参数量较大等的缺陷.这也使得其不适用于计算性能较差,存储空间较小的移动设备.

为了解决上述问题,Zhang等[7]提出了ShuffleNet,通过对卷积进行分组连接的方式提高了分组卷积的预测效率.在文献[8]中,Ma等人提出了内存访问成本作为GPU运行卷积网络的速度指标.同时他们发现针对GPU平台,对卷积网络进行过多的分组会降低其并行性,从而减慢速度.针对这些问题,Howard等[9]提出了一种高效的卷积网络模型MobileNet.他们通过将普通的卷积操作利用深度可分离卷积进行代替,并且减少卷积网络的通道数和分辨率来减少卷积网络的计算量.在文献[10]中,Sandler等人在MobileNet的基础上提出了MobileNetV2模型.他们通过线性 Bottleneck层来减少网络激活过程中特征的丢失,同时使用倒残块(Inverted residual block)来扩张中间层的特征.在文献[11]中,Howard等人通过NetAdapt算法搜索获得一个高效的轻量级网络,并且用h-swish激活函数代替swish激活函数,用h-sigmoid函数代替sigmoid函数以减少计算量,同时增加了SE模块提高网络的精度.

不同于MobileNet,ShuffleNet等网络采用的轻量化方法,知识蒸馏则是通过将教师网络中的知识迁移到学生网络中来实现模型的压缩和轻量化.Hinton等[12]通过已经完成训练的教师网络对未标注数据生成预测标签,然后利用预测标签和真实的标签来训练学生网络.相比于真实的标签,这些预测的标签包含更多已经完成训练的教师网络的信息,从而使得学生网络在较少参数的情况下获得相对较好的预测效果.在文献[13]中,Yim等人在教师模型和学生模型之间添加了L2损失,保证了两个网络在预测过程中提取的图像特征的一致性,从而提高学生网络的预测效果.在文献[14]中,Zhang等人则是将知识蒸馏的方法运用于人体关键点检测中,在保证关键点检测的精度的同时,提高了网络的检测速度.在文献[15]中,Li等人则用知识蒸馏的方法对GAN网络进行了压缩.

3 关键技术

3.1 整体设计

整体设计方案的流程如图1所示.首先构建了一个轻量化的人体净身轮廓分割网络,该网络主要通过基于MobileNetV2的DeepLabV3+[16]网络实现,并且采用标注了净身轮廓的数据集对其进行训练.然后对三维人体模型采用SMPL模型参数化表示,并且构造了一个利用知识蒸馏压缩的卷积网络模型,从正面净身轮廓和侧面净身轮廓图像中回归三维人体的参数.之后根据所获得的人体参数构建三维人体模型.最终,将其部署至移动设备上.

图1 三维人体模型建立流程图Fig.1 Framework diagram of three dimensional human body reconstruction

3.2 人体净身轮廓检测

由于现有的人体分割数据集通常会把衣服标注为人体的一部分,所以直接基于这些数据集训练卷积网络时,其输出的预测结果为包含衣服的分割结果,从而影响后续的三维人体重建.图2展示了净身轮廓与普通带衣服轮廓的示意图,图2(a)为带衣服的人体轮廓,图2(b)为净身人体轮廓.为解决该问题,本方法采用了一个包含人体净身轮廓标注的图像数据来训练分割网络.该数据集包括8000对正面和侧面图像,每张图像均包含对应的人体净身轮廓标注.

图2 带衣服轮廓与净身轮廓Fig.2 Profile with clothes and profile without clothes

同时为了适应于移动端计算资源较少和存储空间较小的特点,本文采用了以MobileNetV2为主干网络的DeepLabV3+分割网络实现人体净身轮廓分割.在训练过程中,将净身轮廓分为正面,侧面和背景3类,对于网络的输出采用交叉熵损失(Cross Entropy Loss)对每个像素进行分类,判断为正面,侧面还是背景.式(1)为交叉熵损失的计算方式,xi为像素x在其真实分类i下的值.

(1)

3.3 人体净身轮廓合成掩膜数据集的生成

由于缺少与人体净身轮廓数据集对应三维人体模型数据.本文将SMPL模型投影,获得对应人体净身轮廓掩膜的方法来构建人体净身轮廓合成掩膜数据集.SMPL模型是一种数据驱动的三维人体模型,其通过输入人体体型参数β和关节旋转参数θ,然后根据θ通过正向动力学(Forward Kinematics)连接人体骨骼,最后通过线性蒙皮形变生成共包含6890个顶点,13776个面片的三维人体.公式(2)、公式(3)为SMPL的表达式,T为人体平均模型,Bs(β)和Bp(θ)为SMPL模型顶点相对于T的偏移函数,J(β)为形状参数函数,w为混合权重,W为标准线性混合蒙皮函数.其中体型参数β通过组成成分分析(PCA)的前10个系数控制.关节旋转参数θ由23个关节点三维旋转角度组成.与传统的线性混合蒙皮(LBS)模型相比,SMPL模型在关节处更加真实.

M(β,θ)=W(Tp(β,θ),J(β),θ,w)

(2)

Tp(β,θ)=T+Bs(β)+Bp(θ)

(3)

为了使得由SMPL模型生成的三维人体具有多样性和真实性,本文采用男性和女性两种不同的SMPL模型分别拟合三维人体模型数据库MPII Human Shape,生成符合真实人体体型分布的SMPL模型.MPII Human Shape 是一个基于大型的商业人体扫描数据集CAESAR生成的三维人体模型数据库,共包含4300个标准姿势人体模型,每个模型由6449个顶点,12894个面组成.

对于SMPL人体模型和MPII模型之间的差异通过倒角距离来衡量.计算公式为:

(4)

其中P1为SMPL模型的顶点集合,p1为SMPL模型上的顶点,P2为MPII模型的顶点集合,p2为MPII模型上的顶点.SMPL模型顶点可以根据式(2)、式(3)式得到.通过信赖域方法dogleg优化,使得SMPL中的所有顶点到MPII模型中距离最近顶点的距离和最小,同时使得MPII模型中所有顶点到SMPL模型中的最近顶点的距离和最小.为了防止拟合过程陷入局部最优解,在优化前先将MPII模型进行缩放,平移和旋转变换,使得其与初始的SMPL模型处于同一位置,同样的身高,之后先优化θ使SMPL模型的姿态与MPII模型保持基本一致.然后,再同时对θ和β进行优化.

完成SMPL模型对MPII模型拟合之后,为了进一步扩充模型的数量,本文对SMPL参数添加小范围的随机扰动.具体做法为在SMPL模型的β参数上下[-0.5,0.5]的范围内随机取值,对于θ参数也在其上下[-0.5,0.5]的范围内随机取值.

之后对SMPL模型进行正面和侧面的投影以生成人体净身掩膜数据集.由于相机在实际拍摄人体正面和侧面图像过程中,可能存在一定角度的偏移,为了能使网络更好地处理这些情况,本文将相机的拍摄角度和相机位置均添加了一个随机偏移量.最后,总共生成了40000对正面和侧面净身轮廓掩膜作为训练集,2500对作为验证集,2500对作为测试集.

3.4 基于卷积网络和知识蒸馏的三维人体参数预测

图3显示了本文所采用网络的具体结构.对于男性和女性SMPL参数预测网络,采用相同的结构,均由教师网络和学生网络两部分构成,教师网络与学生网络的主干网络分别采用ResNet18和MobileNetv3.

对于教师网络,本文先采用原始ResNet18作为主干网络,从正面图和侧面图中分别提取512通道的特征.然后分别对正面和侧面512通道的特征采用最大池化操作获得特征T1,T2.为了进一步提高SMPL参数的预测精度,将身高和体重信息采用全连接的方式进行编码,然后将特征T1,T2及身高体重的编码信息按通道数连接融合,最后采用全连接的方式分别回归体型参数TPβ和姿态参数TPθ.

图3 知识蒸馏网络Fig.3 Knowledge distillation network

对于学生网络,由于移动设备的计算资源和存储空间等限制,本文把教师网络中的主干网络由Resnet18替换为MobileNetV3.相比ResNet18,MobileNetV3的参数量以及计算量更适合于移动平台运行.为了使学生网络也能够获得一个较准确的参数,本文在教师网络和学生网络之间加入了2个中间监督,分别计算T1特征和S1特征,T2特征和S2特征之间的差异,确保教师网络和学生网络的中间层特征一致.对于教师网络和学生网络的特征通道数不匹配的情况,则采用linear层对学生模块中的特征的通道数进行调整,然后与教师网络进行比较.同时在学生网络中,采用了h-swish函数近似代替sigmoid函数对特征进行激活,h-swish的公式如公式(5).与sigmoid函数相比,h-swish的计算量更小,更适合移动平台运行.

(5)

(6)

(7)

(8)

4 实验分析

4.1 实验细节

在人体净身轮廓分割网络DeepLabV3+的训练过程中,设置BatchSize为16.对于分割网络的主干MobileNet-V2,用在ImageNet上预训练的权重来初始化,设置初始学习率为1e-3,每迭代10个epoch学习率减半.分割网络其他部分的初始学习率为1e-2,同样在训练过程中每迭代10个epoch学习率减半.分割网络在整个训练过程中共迭代70个epoch,采用的优化器为SGD优化器,并且设置动量为0.9,权重衰减值为0.0005.

对于男性和女性SMPL人体模型参数预测网络本文采用相同的训练方式.先对教师网络进行训练,然后对学生网络进行训练.对于教师网络设置BatchSize为16,初始学习率为1e-3,迭代至10个epoch后降为1e-4,迭代至25个epoch后降为1e-5,迭代至45个epoch后降为1e-6,最后迭代至80个epoch停止.采用的优化器为Admin优化器.完成教师网络的训练后,利用教师网络对学生网络进行训练,学生网络的训练参数与教师网络的训练参数一致.

4.2 实验对比

对于基于MobileNetV2的人体净身轮廓分割网络DeepLabV3+,本文将其与CE2P[17],Gated-scnn[18],DenseASPP[19],HRNet[20]等方法进行了对比,采用了平均并交比(mIoU),平均精度(Avg.Acc.),像素精度(pixel Acc.),预测速度(speed),模型参数量(param),输入图像大小(size),模型计算量(flops)等指标作为评判标准.其结果如表1.对于网络模型的预测速度,本文采用i5-8300H CPU进行测试.可以发现,本文的DeeplabV3+网络在mIoU,Avg.Acc.和pixel Acc.中,与精度最高的分割网络HRNet分别只相差1.42,0.68和0.28,预测速度比HRNet快3.7倍,同时计算量比HRNet减少3倍,参数量比HRNet减少11倍.因此本文选取该网络来对人体净身轮廓进行分割.

表1 压缩后的DeepLabV3+与其他分割网络的对比Table 1 Comparison between compressed DeepLabV3+ and other segmented networks

对于三维人体参数预测网络,为了证明知识蒸馏对于学生网络的积极影响,本文将教师网络移除,对学生网络单独训练来进行对比.图4分别展示了单个学生网络和在教师网络引导下的学生网络训练过程中在验证集上预测的SMPL模型顶点与真实顶点误差.可以发现相比单个学生网络,添加知识蒸馏的学生网络顶点误差下降更快.表2则显示单个教师网络,单个学生网络,知识蒸馏的学生网络在参数量(param),计算量(flops),测试集上的SMPL模型顶点误差(mean error),以及模型预测速度(speed)上的对比.SMPL模型的顶点误差采用网络预测的体型参数β和姿态参数θ作为输入,根据式(2)、式(3)计算获得SMPL模型的6890个顶点,并与实际SMPL模型顶点计算平均欧式距离得到.模型预测速度分别在i58300H和Kryo765上测试得到.对比表2的第3和第5行,可以发现,相比于单个学生网络,知识蒸馏后的学生网络在保持模型参数,模型预测速度不变的情况下,预测的男性SMPL人体模型比单个学生网络在测试集上误差小1.4mm,女性则为11.3mm.在移动端的Kryo765 CPU上测试时,与教师网络相比,本文的学生网络在预测速度上快0.5fps,并且参数量仅为教师模型的1/20.

图4 知识蒸馏在训练过程中对学生网络的影响Fig.4 Influence of knowledge distillation on student network in the process of training

表2 学生网络、知识蒸馏的学生网络与教师网络的对比Table 2 Comparison of student network,knowledge distillation student network and teacher network

图5 姿态参数对构建SMPL人体模型的影响Fig.5 Influence of posture parameters on the construction of SMPL human body model

表3显示本文知识蒸馏后的学生网络与HMR[2],HS-Net[21]等网络在预测速度上的比较.可以看出,相比其他方法,本文提出的方法在参数量上大幅度缩小,并且网络的预测速度也有提高.

表3 不同方法的参数量与预测速度Table 3 Parameters and prediction speed of different methods

图6显示了对真实人体图像的净身轮廓分割和三维人体重建结果.本文三维人体重建模型总大小为68.35MB,包括DeepLabV3+分割网络22.17MB,知识蒸馏后的男性和女性学生网络各4.59MB,男性和女性SMPL人体模型各18.5MB.本文在移动设备的CPU Kryo 765上进行一次正面、侧面净身轮廓分割和人体参数预测的平均用时为4.5秒.

图6 人体净身轮廓分割以及重建结果Fig.6 Segmentation and reconstruction results of under the clothes body profile

同时,本文还对知识蒸馏后的学生网络预测的三维人体进行尺寸测量,并与HMR[2],HS-Net[21],Chen[22],Xi[23],Boisvert[24]这5种方法在腰围,胸围,臀围,手腕,下臂,上臂,大腿,脚踝等8个部位的尺寸上进行了比较.为了获得更加公平的结果,对4个男性人体和3个女性人体进行了测试.本文对每个人体拍摄了4张正面和4张侧面图像,然后将属于同一个人的正面图像和测面图像进行随机组合,获得112组测试用例.同时对每个测试人体重复测量3次,然后取均值作为测试人体的真实尺寸.对于三维人体模型的尺寸,先计算对应部位的周长,然后将周长乘上真实人体和三维模型之间的比例系数得到.表4显示了本文的方法与其他三维人体重建方法在人体尺寸上的误差对比.本文发现由于不同人体在手腕和脚踝等位置的尺寸差异不大,因此本文的方法在这些部位的预测结果也较好;相反,不同人体在腰围和臀围等位置尺寸差异较大,因此这些部位的预测误差较大,在2cm左右.最终,本研究在这些部位的平均误差为1.6cm.

表4 三维人体模型的尺寸测量误差对比Table 4 Comparison of measurement errors of three dimensional human body model

5 结束语

本文提出了一种适用于移动设备的从正面和侧面图像中重建三维人体的方法.首先,使用基于MobileNet-V2的DeepLabV3+分割网络从人体正面图像和侧面图像中分割获得正面和侧面净身轮廓二值掩膜.然后采用SMPL人体模型对三维人体进行参数化表示,并将SMPL模型对MPII三维人体扫描数据库进行拟合,获得符合实际人体形状的SMPL人体模型.之后,针对移动端计算资源有限,存储空间有限等问题,利用了知识蒸馏的方法提高学生网络的预测精度.测试结果表明,知识蒸馏后的学生网络比没有进行知识蒸馏的学生网络预测的SMPL参数更加精确.最后,将DeepLabV3+网络和知识蒸馏后的学生网络部署至移动设备运行.

然而,本文的方法还存在检测的姿态较为单一,预测速度距离实时性还有一定的差距.后续的研究仍然需要进一步改进.

猜你喜欢
净身轮廓卷积
基于全卷积神经网络的猪背膘厚快速准确测定
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
净身出户
基于深度卷积网络与空洞卷积融合的人群计数
跟踪导练(三)
婚内出轨,能让他净身出户吗
法国净身器在意大利开花
领导干部要在人际交往中“净身”
儿童筒笔画