AIOps 一场颠覆传统运维的盛筵
962
2023-02-06
从单张二维图像重建出三维形状的方法
对于具有丰富的日常经验的人类来说,我们可以通过单一的图像推断出物体的三维形貌,甚至对从未见过的物体也能够通过单一视角的图像对其形状有八九不离十的感官认知,但这对计算机来说却是一个巨大的挑战。目前从单一视图重物体的三维形貌极大地受到了训练数据的影响,对于未知物体的重建依然存在着一系列问题。
在这篇文章中,研究人员提出了一种解耦形状重建几何投影的过程,来实现对于未知物体更好的外形重建泛化能力。在MarrNet的基础上,将先前的f(2.5D-3D)的映射解耦成了两个过程:现充2.5D数据投影到部分的3D模型,再将部分3D模型构建出完整的3D模型,此时f(2.5D->3D)=c(2.5D->3D)&p(2.5D->3D),变成了一个部分三维投影问题和三维体素补全问题的组合。但三维的形状补全问题却面临着严重的稀疏性问题,得不到很好的重建效果。
于是研究人员提出了基于球坐标(spherical maps)的三维补全。spherical maps是一种在单位球面上由UV坐标定义的表示,其中坐标点的值表示从这点沿直径到三维物体表面的最短距离。这种表示结合了2D和3D的特征:其中球面可以看做是2D图像的一种形式,那么就可以利用神经网络图像修复的方法来进行补全;同时其中保留的语义信息可以将它重新投影到3D恢复完整的几何形状。这种表示使得我们可以通过可见区域来补全不可见区域,作为实现三维重建的中间步骤。此时上面的步骤就可以转换为:f(2.5D->3D)=p(S->3D)c(s->s)p(2.5D->S),即2.5D先投影到S表示下,补全后再由S投影到3D。
综上所述,将单幅图像重建为三维形貌的模型总共包含了三部分:
首先利用单幅图像来预测深度图(2D->2.5D),并将深度图投影到球表示上(2.5D->S);
随后利用球面修复网络来对其中的数据进行补全(s->s),将补全后的数据投影到3D体素表示(s->3D);
最后利用体素精调网络来进一步提高体素空间中3D形状的表示。
这一神经网络只需要为目标的几何外形建模而无需学习复杂的几何投影关系。除了这一因素外,还有以下几点提高了模型的泛化性:
模块化设计使得模型学习上一模块给出的特征,避免了模型记住训练集的形状。
每个模块的模型输入输出都在同一个域内,保证了更为有效的映射。
下面将具体介绍各个模块的具体实现过程。
单视角深度估计器
球面修复网络
通过将3D形状补全问题转化为二维球面的修复问题来实现,这对于新类别物体有很好的泛华性,同时也比体素的方法更为高效。球面修复网络的结构类似深度估计,利用了标准的卷积网络,但为了适应球面周期性的结构,在训练目标和输入上加入了周期性的padding。
体素精炼网络
在球面修复后投影到体素空间的三维形状还存在自遮挡问题,还需要通过精炼网络来改善最终输出的形状。通过输入从球面投影而来的体素表示和直接从深度图投影而来的体素表示,共同生成最终的结果。
由于遮挡来自于局部的邻近区域,网络只需要学习局部的结构先验,而这也是与物体类别无关的过程。这一模块的输入包含了两通道的128-128-128的三维体素,并输入320D的隐变量,在解码时每一个解码层还接入了对应编码层的输出。
模型表现
通过对三部分模块进行训练后,研究人员给出了模型对于未知物体的重建表现。首先,利用汽车、椅子和飞机训练的单视图深度估计器,在训练集未包含的物体类别上精度表现良好。
随后对于训练集包含和未知的物体,这一算法GenRe也有着良好的表现。可以看到,除了飞机、汽车和椅子外其他都是没有见过的物体,但依然可以获得与GT较为接近的结果。
在真实数据上的重建误差也达到了前沿水平:
最后为了验证算法的有效性,研究人员利用训练好的模型对非刚体和高度规则化的几何体进行了从深度图到三维外形重建,依然保持了较好的效果。
这篇文章通过将三维形状补全的工作投影到了二维球面上,使用了二维图像修复类似的方法来实现三维图像补全,提高了从单张图像恢复三维形貌的精度,希望这一工作能对相关领域的研究带来一些有益的想法。
发表评论
暂时没有评论,来抢沙发吧~