论文地址:在公众号「计算机视觉工坊」,后台回复「单目自监督」,即可直接下载。
概述
本文主要从二维图像及其轮廓的集合中,学习一个自监督的、单视图的三维重建模型,预测目标物体的3D网格形状、纹理和相机位姿。提出的方法不需要3D监督、注释的关键点、物体的多视图或者一个先验的网格模板。关键之处在于,物体可以表示为可形变部分的集合,在同一类别的不同实例中,每个部分在语义上是一致的。
利用这一点,可以有效地增强重构网格与原始图像之间的语义一致性,这大大减少了在预测物体的形状、相机位姿以及纹理时的模糊性。实验结果表明,这是第一个尝试解决单视图三维重建问题、没有使用特定类别的网格模型或者语义关键点的方法。
简介
同时从2D图像中恢复3D形状、纹理和相机位姿是一个高度不适定的问题,因为其固有的歧义。现存有很多方法解决这个问题,但是这些监督信息需要大量工作,因此将其泛化到许多缺乏此类注释的对象类别时非常具有挑战性。另一方面,只使用特定类别的单视图图像集合,而不使用其他监督信号学习重建仍然存在挑战。
原因在于,没有监督信号将导致错误的三维重建,一个典型的故障案例是由“相机-形状歧义”引起的。错误预测的相机位姿和形状导致渲染图像和物体边界与输入的2D图像和其轮廓非常匹配,如下图(c)和(d)所示。
有趣的是,人类可以通过联合部分来重建整体,例如鸟有两条腿、两只翅膀和一个头。通过观察物体的一部分,人类就可以粗略地推断出任何物体的相机位姿和3D形状。在计算机视觉中,相似的思想是通过变形模型的部分表达的,物体被表示为一组可以变形的零件。
受到这个idea的启发,作者实现了从图像和轮廓的集合中学习单视图的重建模型。利用二维和三维空间中的语义部分,以及它们的一致性来正确估计形状和相机姿态。
上图展示了语义一致性的自监督,(a)是相同类别的不同物体,(b)是通过自监督对每个部分进行语义分割,(c)是特定类别的规范语义UV映射,(d)是网格上的语义分割,后面表示单视图的3D网格重建和不同视角的重建结果。
总的来说,本文的主要贡献之处在于:进行单视图重建而不需要其他形式的监督信号;利用特定类别实例对象的语义部分不变性属性作为可变形的部件模型;通过迭代学习从头开始学习一个类别级的3D形状模板。
相关工作
3D形状表示:对于3D模型有很多表示方法,例如点云、隐式曲面、三角网格和体素。其中,尽管体素和点云更适合深度学习框架,但是它们存在内存受限或者不能够渲染等问题。因此,本文选择三角网格作为3D模型的表示方法。
单视图三维重建:单视图三维重建旨在通过给定的单张输入图像重建3D模型,有很多工作在不同监督的程度下探讨这一问题。例如利用图像和真实3D网格作为监督,或者使用可微渲染器和综合分析的方法。
为了进一步减少监督的限制,Kanazawa等[1]探索了从不同实例的图像集合中进行3D重建,但是他们的方法仍然需要标注的2D关键点来正确的推断相机位姿。其他方法中也使用了类似的方法,但是受限于刚体或者结构化的物体,不能泛化到其他模型。
自监督对应学习:本文的工作还涉及到自监督的学习,利用自监督的协同部分分割来加强语义一致性,这最初是纯粹针对2D图像提出的。[2]学习一个映射函数,该函数以自监督的方式将2D图像中的像素映射到预定义的类别级的模板,但是没有学习对应的三维重建。
方法
为了从单张图像中完全重建物体实例的三维网格,网络应该能够同时预测物体的形状、纹理和图像的相机位姿。用现有网络(CMR)[1]作为初始的重建网络。输入一张图片,CMR使用编码器E提取出图像特征,使用三个解码器Dshape、Dcamera和Dtexture分别预测网格模型、相机位姿和网格纹理。
CMR方法效果比较好的关键原因之一是利用了标注的关键语义点精确地估计了每个实例的相机位姿,并且有模板网格作为先验知识。但是,注释关键点非常繁琐,对于新的类别不适用。因此,作者提出了一种更容易扩展、更具有挑战性的自监督方法,如下图所示。
其中,(1)绿色的框表示重建网络,和[1]中的架构相同。(2)红色的框表示语义一致性约束,它规范了模块(1)的学习,并在很大程度上解决了上述问题中提到的“相机-形状歧义”。(3)蓝色的框表示从头开始学习规范语义UV图和类别级模板,使用模板(1)迭代训练。
3.1 通过语义一致性解决相机-形状歧义
解决“相机-形状歧义”的关键是在3D和2D中充分利用物体实例的语义部分。具体来说,在二维空间中,自监督即可实现大多数物体的正确分割,即使是那些形状变化很大的实例。在三维空间中,语义部分对于网格变形是不变的,网格表面上特定点的语义部分标签在一个类别的所有重构实例中是一致的。
使用这种语义部分不变性可以建立一个类别级的语义UV映射,即规范语义UV映射,它由所有的实例共享,反过来又允许为网格上的每个点分配语义部分标签。通过在二维空间中加强规范语义映射与实例部分分割的一致性,可以在很大程度上解决“相机-形状歧义”问题。
首先在二维图像中通过SCOPS[3]获得实体分割,然后通过规范语义UV映射获得三维模型中的分割后,利用2D和3D之间的分割一致性,得到正确的模型。如下图所示,(i)表示错误的重建,其中没有用到语义一致性;(ii)表示使用一致性后的表现。
3.2 循序渐进的训练
逐渐训练网络出于两个方面的考虑:第一,构建规范语义UV图需要可靠的纹理流将SCOPS从2D图像映射到UV空间。因此,只有当重建网络能够很好地预测纹理流时,才能得到规范的语义UV映射。第二,一个规范的三维形状模板是可取的,因为它加快了网络的收敛速度,也避免了退化的解决方案。
但是,同时学习类别级三维形状模板和实例级重建网络会得到不希望的平凡解。因此,作者将网络分成两部分,E步骤使用固定的模板和规范语义UV映射训练重建网络,M步骤使用前面训练好的网络不断更新模板和UV映射。
其中,模型的更新方法如下所示。Vt和Vt-1是更新的和当前的模板,I表示输入的图像,传递到图像编码器和形状解码器中,Q是一组具有一致网格预测的选定样本。
3.3 纹理循环一致性约束
如下图所示,学习到的纹理流的一个问题是,具有相似颜色(例如黑色)的3D网格面的纹理可能从图像的单个像素位置错误地采样。因此,作者引入了一个纹理循环一致性目标使预测的纹理流和摄像机投影的一致。
考虑输入图像上黄色的点,可以通过纹理流和预定义的函数φ将其映射到网格表面。同时,可以通过渲染器将网格上的点重新投影到图像中,如输入图像上的绿色点。如果预测的纹理流与预测的相机姿态一致,黄色和绿色的点重叠,形成2D-3D-2D的循环。
3.4 通过重建实现更好的部分分割
提出的三维重建模型可用于改进自监督分割的学习,关键点在于类别级的规范语义UV映射在很大程度上减少了基于实例的语义UV映射中的噪声。结合实例网格重建和相机位姿,为SCOPS方法提供了可靠的监督。
通过将标准UV映射到每个重建网格的表面,并用预测的相机位姿进行渲染,就可以得到“真实”的分割图作为SCOPS训练的监督。使用语义一致性约束作为度量,选择具有高语义一致性的可靠重建来训练SCOPS。改进的SCOPS反过来可以为网格重建网络提供更好的正则化,形成一个迭代和协作的学习循环。
实验效果
参考文献:
备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。
下载2
在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。
下载3
在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。