BodyNet: Volumetric Inference of 3D Human Body Shapes. 阅读笔记
我们开发了一种系统架构来实现从单张自然图像预测3D人体形态信息。该系统采用了基于体素的体积表示方法,并结合了体态感知网络(BodyNet)。该网络能够直接从单张自然图像中提取人体三维形态信息,并通过端到端的学习框架完成相关计算任务。具体而言,在网络架构设计中包含以下几大模块:首先是一个用于计算体素体积损失函数的部分;其次是一个多视角再投射损失函数;接着是中间层的人体姿态信息提取模块;之后是对二维人体部分进行分割的具体算法;最后则引入了用于监督学习的人体姿态标签信息。评估过程包括使用SMPL模型拟合人体形状参数,并与本网络预测结果进行对比分析。实验结果表明,在两个公开数据集上的测试结果显示了该方法的有效性与优越性。此外,在体素分割方面也具有良好的性能表现

这种单视角下的人体图像缺乏相应的大型训练数据集支持,在生成的人体三维模型中网格维度过于复杂,在现有的三维人体形状表征手段中尚无理想的解决方案。这些问题本身便构成了一个极具挑战性的研究难点。目前关于最有效的三维表示方法仍存在诸多疑问,并未得到广泛认可。该研究则首次提出了体素化表示方法(Volumetric Representation)。BodyNet则探讨了基于体素网格的可能性,在这一框架下进行人体建模与分析。其外形估计的具体子网架构则是通过体内各体素单元的存在与否来构建人体三维形状模型——即所谓的占有率映射构建方案。通过体内各体素单元的存在与否来构建人体三维形状模型——即所谓的占有率映射构建方案。具体而言,在该框架中每个内部存在的小立方单元都被赋予占位标记位标志其是否存在于身体表面空间中这一特性。为了实现这一目标本文采用了Binvox算法对标准人体模型进行了体素化处理(参考Binvox网站)。这种基于体积元素的空间分割方式能够有效捕捉人体形态特征并将其转化为可计算的空间信息。
本研究涉及BodyNet框架。为提升训练效率与效果,我们提出了多个关键性的损失函数集合。这些包括了关键的空间可测量性相关的3D损失项、引入了一个多角度重投影损失以及多个任务相关的损失函数集合。通过多角度重投影损失有效地模拟了体素空间结构,并强调了边界层体素在整体结构中的关键作用。这些多任务损失函数基于额外引入的2D姿态估计项作为中间级监督信号,并结合人体分割目标信息以及三维姿态预测结果(即三个独立的任务分支),形成了完整的损失体系。
BodyNet由4个子网组成;每个子网分别进行独立训练;随后将它们联合起来用于预测分析2D pose和体块分割;同时还能预测分析3D pose和形状。
主体积测定loss:假设通过正投射与rescale处理获得一致的体素大小,并采用二维分割掩膜对齐xy平面从而保证各图像的空间一致性。在确定体素比例之后,在人体中心沿Z轴方向进行填充其余区域则使用零值填充。
经过将sigmoid函数应用于网络输出后,模型优化了二元交叉熵损失。Sigmoid函数被定义为f(x)=\frac{1}{1+\exp(-x)}。二元交叉熵损失如下:


和

分别表示真值和一个体素的应用了sigmoid的输出。W,H,D是128维。
Lv用于体素网格的前背景分割。
该研究在现有基础之上对多标签交叉熵损失函数进行了 Lv 基础上的拓展研究
为了实现对体形体积预测的高置信度挑战, 人体复杂的骨骼关节结构的存在要求确保可靠的结果预测. 如图5所示的结果令人担忧.

四足远离躯干的部分出现较低置信度的情况。解决方案:引入了额外二维投影损失项,并重视边界体素的作用。多视点投影项对于实现肢体重建质量具有关键性意义,在此前提下进行操作会更为理想。假设采用前向投影(即前视角投影),这种设定是基于一种基于投影体素测定模型的方法:通过将投影体积与图像空间对应关系建立起来,在此过程中使得Z坐标值达到最大(其中Z坐标值最大的单元即代表了正向投影)

。同样还有

。


这里的

就是网络的输出再经过sigmoid函数。
使用真值2D体块分割定义真的轮廓

,数据集提供的。
先从3Dmeshes计算得到体素representation然后得到真值视觉轮廓。

体素化的过程,体素比meshes大,凡是有一点交叉的都被认为占有。
交叉熵损失函数如下:


这就是真实投影与预测投影之间的损失函数用于评估生成样本是否足够好
1
1
1

是预测的2D heatmaps和真值间的平方差。
33
33

。
为了减少不确定性的影响,在相机内置坐标系中采用已知相机参数预测3D pose参数。利用定义在体素网格上的三维高斯函数表示身体各关节的位置。每个关节网络都会预测一个固定分辨率值,并以单一三维高斯函数描述其在关节位置中心处的值。其中体素网格与图像坐标系以及二维关节位置一致,并沿z轴表示深度方向。假设体素网格对齐到标准人体尺寸(85cm),其深度范围被划分为19个等分区间(bins)。引入了一个超分辨率三维网格(64x64x19),该尺寸是输入图像分辨率的四分之一,并用于连接二维pose估计网络及分割网络。针对人体每一个关节设定了一特定的空间位置网格结构,并采用平方差损失函数进行回归计算以确定各点位置关系
采用多种样式作为输入后,在空间上对齐后传递至网络输出过程中。将热图(基于2D关节和体块的热图)与RGB通道关联起来,并经过上采样处理后的热图被整合进输入数据中;其中输入维度为(3+16+15)×256×256。其中关节预测模块负责处理二维骨骼定位的信息;体块分割模块则通过深度信息提取三维结构特征;遮挡关系则为重建三维场景提供了关键线索。

通过设定加权系数,在微调初期使各个LOSS在参数空间中的平均梯度达到一致的比例水平。

在SURREL数据集和所有的实验上都用了相同的权重。
具体步骤包括:首先进行二维姿态估计与图像分割的同步训练。接着保持上述两步网络参数不变的基础上进行三维姿态估计的优化。在此阶段中,在所有其他模块的基础上不更新参数仅对三维形状进行预测。为了提升模型性能,在此阶段引入投影损失函数来优化三维形状预测结果。最后通过全连接的方式完成模型统一微调并计算整体损失函数作为优化目标。
