guodong's blog

master@zhejiang university
   

论文阅读(1)3d Human Body Reconstruction from a Single Image via Volumetric Regression

论文地址:https://arxiv.org/abs/1809.03770

摘要:这篇论文展示了一个端到端的卷积网络,通过体积回归来实现3D几何人体直接的重建。提出的方法不要求适应形状模型,可以接收任意类型的输入,比如地标,图片和分割掩模。另外,不可见的部分,自我遮挡或其他仍然能被重建,和深度图回归无关,我们提出的结果表明,我们的方法可以在给定适当的训练数据集的情况下处理姿势变化和详细重建。

关键词:3D重建,人体重建,体积回归,VRN,单图重建

1、介绍

3D重建是从一张或多个2D图片建立立体几何的过程。在这项工作中,我们关注单张图片的人体重建,包含不可见的自身遮挡的部位。我们的方法建立在单图实现3D人脸回归方法,被称为“Volumetric Regression Network”(VRN)。在这篇论文中,相同的观点可以被应用在其他变形的物体,特别是人体。这带来了一系列在重建面部时不存在的挑战。虽然我们仍然只是重建单个类的对象,但是与面相比,身体具有更多的旋转轴。因此,人体重建通常被认为是一个非常困难的问题。

动机:3D人体重建(以及一般的3D重建)所需的传输途径通常基于解决比较困难的非凸优化问题。 也许最常见的3D人体重建方法是拟合形状模型。 例如,[2]的方法使用优化来将3D形状模型拟合到2D身体关节。 然而,优化方法对初始化很敏感,很容易陷入局部最小值,这两种情况都会因遮挡和潜在的尺度变化而加剧。

在这项工作中,我们的目标是显着降低标准3D人体重建技术的复杂性 – 以至于可以轻松地将其视为分割任务。 我们通过使用标准的空间CNN架构直接回归3D几何体积表示来实现这一点,其中回归的体积结构在空间上与输入对齐。 值得注意的是,我们不会回归深度图; 将3D结构回归为切片,并使用标准表面提取算法从其体积表示中恢复,例如Marching Cubes [3]。 总之,我们在这项工作中的主要贡献如下:

  1. 我们是第一个使用VRN网络来解决人体姿态重建,不仅仅是面部重建
  2. 我们对[1]中的网络提出了一些改进,这些改进都是显著的表现提升。包括,引入中间监督,使用更先进的残差模型,通过减少残差模块的数量来增加沙漏模块的数量来改变网络结构。
  3. 我们证明了VRN在合适的数据集上训练时能够重建复杂的姿势。
  4. 最后,给定高质量的训练数据的情况下,我们的模型能从单张图片中学习制造先前未见过的,高度描绘的,全3D重建。据我们所知,没有其他方法能够获得具有如此高保真度和可靠性的结果。

论文剩余本分的结构如下:首先,3D姿态重建和人体姿势估计的相关工作进行了综述。接着,我们描述了我们的方法,包括volumetric representation,数据集,训练程序。然后我们讨论一些VRN的变体,一些用几乎没描述的姿势变量数据训练的网络结果。最后我们将展示一些使用高度描述的数据训练模型的结果。

2、相关工作

这一部分中,我们将给出近期的和流行的人体姿态估计方法和3D重建方法的概貌,都应用于图片和地标。

人体姿态估计所有流行的人体姿态估计的方法都是基于CNNs。这些方法可以分成两类。一类是使用L2损失直接回归关节的坐标[4,5,6,7,8,9,10]。特别的,[5]通过结合2D特征预测来估计3D姿态。在[6]中使用自动编码器将姿势约束为合理的姿势。相似的,[8]通过使用运动的模型来达到相同的目的。[9]在整个训练的过程中综合数据,来确保网络训练有准确的数据。然而,在[10]中,他们只用合成数据增加了他们现有的训练集。另一类方法是基于CNN的人体姿态估计来回归一个热图[11,12,13,14]。在[11]中,他们从视频里做。在[12]中,他们回归一个3D热图,和我们的工作比较类似。在[13]中描述了另一种基于时间的方法,其中2D地标首先被细化为热图。 基于部件的热图回归方法如[14]所示。

在这项工作中,我们的目标不是将人体姿势估计为一组坐标。 相反,我们的目标是从单个图像重建人类的完整3D几何。 这包括身体的任何自闭塞部位。 然而,在这样做时,我们可选地利用来自人体姿势估计步骤的信息,该步骤作为16个通道提供给网络,每个信道具有以相应地标为中心的高斯算子。

从图片中重建。许多人体重建方法从一个或多个图像估计几何形状。例如,[15,16,17]适合基于单个RGB或灰度图像的模型。特别是,[16]通过分别估计每个身体部位的比例和姿势,将骨骼模型拟合到图像。在[17]中,它们适合由用户点击单独的身体部位初始化的形状模型,由分割面具辅助。在[15]中提出了另一种基于形状模型的方法,使用SCRAPE模型[18],该模型配有随机优化步骤。在[19]中提出了一种用于重建的一般形状拟合方法,其中使用两个高斯模型 – 一个用于形状,一个用于姿势,通过求解非线性优化问题。作者在人体和鲨鱼身上证明了这种方法。在[20]中,单个图像和相应的界标用于使用kd树查找类似的人体姿势,其中包含大约400万个示例。在[21]中描述了一种用于从单个图像拟合多实例模型的方法。

有几种方法旨在仅使用通过人体姿态估计提取的地标来估计3D几何[2,22]。 特别是,SMPLify [2](使用SMPL模型[23])被扩展为包括[24]中的分割掩模的进一步指导。 然而,除非还捕获来自图像的信息,否则这种方法将永远无法回归更精细的细节。

除了之前提到的SCRAPE [18]和SMPL [23],Dyna,能够捕捉体形大变化的形状模型在[25]中给出,但是没有来自单个图像的伴随拟合方法。 一种名为Total Capture的最新形状模型[26]捕捉到身体的许多方面,这些方面通常被其他形状模型忽略,包括面部和手部。

我们的工作与上述所有方法的不同之处在于,我们不回归形状模型的参数,也不直接回归顶点。 此外,我们的方法完全跳过模型生成步骤,这避免了在所有训练示例之间找到密集对应的需要。 相反,我们将问题约束到空间域,并使用CNN中的空间卷积直接回归3D结构,通过体积表示,从中可以恢复完整的3D几何体。

3、方法

这个部分是描述我们提出的方法,包含voxelisation 和 alignment procedure

3.1 Volumetric Regression

在这项工作中,我们的目标是从单个图像重建人体的完整几何。有几种使用深度学习来估计几何的方法。第一种是使用自上而下的网络直接回归顶点,例如VGG [27]或ResNet [28]训练有L2损失。这具有至少两个缺点:首先,它需要重新采样训练数据以具有固定数量的顶点,这意味着找到所有网格的所有顶点之间的对应关系。其次,更重要的是,训练网络直接回归非常大量的顶点是很困难的。一种常见且更有效的替代方案是回归3D形状模型的参数。然而,由于这些参数不能相等地缩放,因此有必要采用归一化方法,例如使用马哈拉诺比斯距离对输出进行加权,这也证明了使其运行良好的挑战[1]。另外,已知基于3D形状模型的方法擅长捕获粗糙形状但是在捕获精细细节方面的能力较差(在详细3D重建的情况下)。

为了消除上述学习挑战,我们通过使用标准卷积神经网络将其约束到空间域来重构3D重建问题。我们的方法可以被认为是一种图像分割,其中输出是捕获3D几何的一组切片。因此,在架构上,可以使用标准体系结构进行(例如,语义)分割。在人脸上[1]的工作之后,我们通过以体积表示编码身体的几何形状来做到这一点。在该表示中,3D空间已被离散化,具有固定的维度。对象内部的空间被编码为值等于1的体素。所有其他空间(即背景或未知对象类)用值等于零的体素编码。对于这个特定的应用程序,我们的卷的维度是128×128×128,考虑到我们的训练集中的详细程度,绰绰有余(尽管我们在第6节中显示了更详细的结果,并且只略大一些体积)。该表示的主要优点之一是它允许重建几何形状的不可见(自遮挡或其他)部分。在尝试使用深度图回归来重建身体的方法中不是这种情况。

在训练体积回归网络的情况下要注意的一个最重要的方面是输入和输出必须在空间上对齐。 简而言之,目标对象的2D投影应该在分割输入时做一个合理的(如果不是很好的话)工作。 通过实验,我们发现只要姿势是固定的(即总是正面的),就可以忽略空间对齐。 但是,忽略空间对齐将严重影响该方法的性能。

当训练以接收来自人体姿势估计的指导时,地标作为单独的通道被传递到网络,每个通道包含以地标位置为中心的高斯。 Guassians的直径约为6像素。

3.2 Dataset and Voxelisation

虽然Human3.6M [29,30]确实包含了自己的3D扫描,但它们与视频帧不对应。 因此,我们通过在Human3.6M数据集上运行SMPLify [2]来生成我们的训练数据。 SMPLify所需的地标是使用[14]提供的代码生成的。 拟合的网格以128×128×128的分辨率进行体素化。就深度而言,网格首先通过Z分量的平均值对齐。 然而,通过实验,我们发现只要Z对齐以看似合理的方式执行,并且在所有图像中保持稳定,网络将学会回归3D结构而没有问题。 在训练过程之前进行随机比例增强,因为在CPU使用方面,即时(对于3D卷)这样做可能非常苛刻。

使用SMPLify生成我们的训练数据的一个不幸的副作用是无法回归手指或面部表情等功能。 SMPLify不对这些进行建模,因此,它们的姿势在所有图像中保持固定。 它也成为性能方面的瓶颈。 我们在第6节中使用不同的数据集显示,使用我们提出的方法也可以进行非常高质量的重建。

3.3 training

我们使用RMSProp [31]优化训练我们的端到端网络,学习率为10-4,在大约20个周期后减少到40个周期的10-5。 我们没有通过进一步降低学习率来观察任何性能提升。 批量大小为6,2个NVIDIA 1080 Ti显卡。 在体素化期间,应用随机比例增强。 在飞行中将比例增大应用于3D体积是非常占用CPU的并且过多地减慢了训练过程。 在训练期间,应用对输入图像的增强。 这种即时增强包括颜色通道缩放,随机平移和随机水平翻转。

4、Architecture

在下面的小节中,我们将介绍我们探索过的几个架构选项作为[1]的扩展。 我们的第一个网络与[1]中使用的网络相同,称为VRN – Guided,它建立了我们的基线。 该网络在堆栈中使用两个编码器 – 解码器(“沙漏”)网络。 除了本节中描述的更改外,我们遵循类似的设计。 我们所有的架构都经过了与[1]中相同的损失功能训练:

4.1  Ours – Multistack

该网络对VRN引导的基线网络进行了以下更改。 我们将残差模块的数量从四个减少到两个。 在这样做的同时,我们还减少了内存需求,允许我们增加堆栈中沙漏模块的数量,从2个增加到4个。 接下来,我们替换VRN中使用的原始残差模块 – 引用[32]中提出的多尺度残差模块。 我们还展示了刚刚推出的性能改进。

我们还通过在结果部分中引入此组件来显示性能改进。 最后,我们在每个沙漏模块之后引入监督。 因此,我们有四个损失。 每个沙漏模块都会为下一个沙漏提供功能,并使体积表示回归。 每个沙漏后的性能提高。 我们发现添加超过四个沙漏网络没有任何好处,因为性能随着更多的添加而波动。 该网络如图2所示。

4.2 Ours – Image Only

我们的标准网络(Ours – Multistack)经过训练,可以接收来自地标的指导,同时还可以使用图像中的有用信息。 通过这个网络,我们尝试用图像来衡量培训的影响,同时保持架构相同。 我们将此网络称为“我们的图像”。 我们期望该网络的性能显着低于人类姿势的指导。

4.3 Ours – Landmarks Only

许多方法,例如[2,22],在训练和推理期间仅使用地标作为输入。 因此,在没有图像的情况下,仅提供地标时,测量我们方法的性能是一项有趣的调查。 因此,我们训练了我们的 – 仅限地标。 但是,仅使用地标来拟合形状模型会产生通用的外观配件。 如果提供高质量的训练数据,我们的方法可以回归这些精细的细节,并在提供图像时匹配身体形状。

4.4 Ours – Mask Only

我们的方法不依赖于分割掩码,如[33]中的情况。 但是,没有理由我们的方法无法从单个分割蒙版或轮廓重建3D几何体。 为了表明这一点,我们训练另一个网络,Ours – Segmentation Mask,它只接受一个包含目标对象掩码的通道。 由此,网络以相同的方式重建3D几何。 再一次,该网络与Ours – Multistack具有相同的配置,除了第一层接收不同数量的输入。 我们期望这个网络表现得相当好,因为我们提供给网络的分段掩码是目标音量的投影。

4.5 Ours – 3D Convolution

虽然体积CNN在性能方面可能超越空间网络,但在此任务中,存储器要求远高于空间CNN。 因此,目前不可能以合适的分辨率采用体积CNN。 但是,我们有兴趣测试两者之间的折衷方案,并培训过滤器平坦的体积CNN。 更具体地,其中f是特征的数量,我们的滤波器具有尺寸f×3×1×1,f×1×3×1或f×1×1×3。 将它们组合成一个扁平的体积残余模块,如图3所示,受[34]的启发。 该网络还将具有相应地标的图像作为输入。 为了与其他方法进行公平比较,我们通过减少参数数量(也允许网络适应内存)将此网络的浮点运算数量与Ours – Multistack相匹配。

5  Results

在本节中,我们将概述上面描述的体系结构的性能。 对于每个网络,我们将结果作为交叉联合(IoU)得分给出,该得分被定义为在任一卷中设置的数量体素上的交叉集体素的数量。 这些数字结果可以在表1中找到。我们将在前面的段落中更详细地讨论这些结果。

我们在图4中显示了Ours – Multistack的视觉结果。定量结果表明,我们对基线网络VRN – Guided所做的更改非常显着,在IoU方面提供了超过4%的性能提升。 从这种性能改进来看,超过2%是由于使用了[32]中提出的残差模块,这可以从我们的结果中看出 – 旧残差。 由于我们的数据是由SMPlify [2]生成的,我们无法提供与此方法的定量比较。

正如所料,删除地标或图像会降低性能。 通过为网络提供图像和地标,可以获得最佳性能,如我们的数量上 Ours – Multistack, Ours – Landmarks Only , Ours – Image Only。 同样不出所料,单独使用地标可以提供比单独使用图像更好的性能。 至少在这种情况下是这样,因为groundtruth模型没有细节。 我们还展示了仅向网络提供分段掩码的性能(在Ours – Multiststack的情况下不提供)。 这些结果标记为Ours – Mask Only。 我们期望这个网络比地标或仅图像网络表现更好,因为我们提供的掩模是目标体积的直接2D投影。

note on the performance:A single forward pass through our network takes approximately 200ms on an NVIDIA 1080 Ti GPU. This produces the volumetric representation. Surface extraction introduces 200-600ms overhead depending on the implementation used. Significantly higher performance may be achieved with smaller volumes, but this will result in a lower level of detail. Training typically takes about two days.

6 High Quality Training Data

在上一节中,我们展示了我们的方法可以重建非常大的姿势的物体。 但是,由于我们训练的数据集,我们只能在没有任何细节的情况下回归粗糙几何体。 在[1]中面部的情况也没有证明详细的三维重建,这也是由于缺乏详细的数据集。 因此,在本节中,我们证明了VRN能够在提供高质量数据集时回归细节。 在本次实验中,我们使用性能最佳的网络Ours – Multistack。

我们的数据集包括来自40名参与者的高度详细的3D扫描,其中4个保留用于定量测试,但所有这些都在姿势方面受到很大限制。 每位参与者只能进行一次扫描。 这些模型没有与模型对齐的相应图像。 因此,我们在各种不同的光照条件,比例和视图下渲染和体素化这些模型,以创建由大约20,000个空间对齐的样本组成的训练集。 体素化以128×256×96的分辨率进行,其有效地封装了数据集中的姿势。 如在我们之前的实验中,Z对齐由平均Z分量执行。 遗憾的是,我们无法公开发布此数据集

6.1 Performance

我们保留用于测试的四个模型也以与上面相同的方式渲染和体素化,以产生60个测试图像。 我们的方法用78%的IoU重建这些。 这显着高于我们之前实验中的重建。 这可能是由于训练图像和目标之间更好的空间对齐。 此外,我们展示了从网络上获取的真实世界图像的定性结果1这些重建可以在图5中找到。我们展示了这些重建的背面,这些重建证明了网络重建自我闭塞的身体部位的能力。 在衣服的皱纹中可以看到更精细的细节。 由于我们的方法是在合成数据上训练的,我们认为现实世界的图像可能会有一些性能下降。 另外,在36个训练样本中未发现图5中的重建中发现的若干姿势。 这表明VRN对先前看不见的姿势有些宽容。

7 Conclusion

在这项工作中,我们已经证明,如[1]中所述,使用体积回归网络进行三维重建的任务并不局限于面部重建的简单任务。 尽管我们正在使用的卷量很小,但它在细节方面也不是一个限制因素。 我们已经提出了对原始VRN的若干改进,其相当大地改善了性能。 最后,我们通过使用两个不同的数据集显示,VRN可以回归两种不寻常的姿势(在人类3.6米训练的网络中)和高水平的细节(在我们的私人但详细的数据集的情况下)。 我们相信,如果有足够大的数据集包含许多姿势变化和高水平的细节,网络将能够进行大型姿势3D人体重建,同时还能从单个图像捕获精细细节。

8 Acknowledgements

Aaron Jackson is funded by a PhD scholarship from the University of Nottingham. Thank you to Chris Manafas and his team at 2B3D for providing data for the experiments. We are grateful for access to the University of Nottingham High Performance Computing Facility, which was used for data voxelisation.

 

 




上一篇:
下一篇:

guodong

没有评论


你先离开吧:)



发表评论

电子邮件地址不会被公开。 必填项已用*标注