CVPR2020 Oral: 一张照片三维重建你的房间

资讯 4年前
2.09K

作者是来自将门计算机视觉社群、香港中文大学(深圳)GAP实验室的韩晓光博士,这次分享的是在其指导下团队在CVPR 2020 Oral的工作:完整三维理解:从单张室内场景图片联合重建房间布局、物体姿态及网格形状。

三维场景理解与重建

从单张图片完整地恢复整个室内场景的几何信息目前仍然是具有挑战性的任务,完整的三维室内场景理解与重建需要预测房间的布局、相机的位置与姿态、图片中单个物体的姿态以及物体几何形状。

想让一个网络学好如此多的任务过于困难,除此之外:

1. 以前的方法或者只解决其中的一个子任务;

2. 或者用多个网络去做多个子任务,然后拼接起来,但各个子网络的学习是独立的;

3. 又或者只关注场景中独立的物体,并没有综合考虑整个室内环境。

我们针对上述三种情况实现了“3个Total”:

1. 整合了场景理解与重建,首次提出了一种端到端的方法从单张室内图像完整重建(Total)房间布局、物体及相机姿态和实例级的几何形状,并取得了不错的效果,如图1;

2. 我们的网络也由多个子网络组成,但它们并不是独立的,我们会对整个网络进行联合训练(Total),让多个子网络分享梯度信息,这是因为房间布局、物体姿态及三维包围盒和物体形状之间有着很强的联系,如果分开训练,后面的子网络不能向前面的网络进行反馈;

3. 室内物体的姿态和位置遵循一定的设计规则,各物体之间的关联关系尤为重要,比如说床头柜与床、桌椅间以及多把椅子之间的关系等等。之前的工作在预测物体的三维包围盒时,一般只考虑单个物体,或者考虑一对一物体间的关系。与本文工作较类似的Mesh R-CNN[1]只是在图片上检测出物体,然后在各物体的图像平面分别重建,并没有考虑物体间的关联关系。在本文方法中,我们考虑物体与房间中所有其他物体间的关联关系(Total),并将其应用到了三维目标检测子网络的设计中。

与SOTA的对比以及消融实验均说明了“3个Total”的重要作用,这使我们的方法在所有子任务上都达到了最先进的水平,详见后面实验分析部分。

三维形状表示

与我们的工作比较类似的研究大多使用体素(voxel)表示三维形状,这种表达方式受限于有限的分辨率,重建出的形状十分粗糙。其中Mesh-RCNN [1]能重建出网格(mesh),但仍然是以体素为中间媒介,重建网格质量差强人意。由于我们在以物体为中心的三维物体网格重建方面有一定的积累,所以我们决定跳过体素,直接来做物体的网格,并且改进了最新的TMN[2]方法,这也是除了“3个Total”以外本文最重要的贡献。在物体网格生成任务中,我们提出了一种新的密度感知拓扑修改器。该方法直接解决了TMN [2]的主要瓶颈问题,即需要严格的距离阈值来删除与目标形状距离较远的面,这使我们的方法对复杂背景下不同形状的室内物体具有较强的鲁棒性。

网络结构

图2(a)给出了本文方法的概述。该网络由三个模块组成:布局估计网络(Layout Estimation Network-LEN)、三维目标检测网络(3D Object Detection Network -ODN)和网格生成网络(Mesh Generation Network -MGN)。对于输入单张图像,我们首先用2D检测器(e.g. Faster R-CNN)预测二维物体包围盒。LEN将整个图像作为输入,生成世界坐标系下相机姿态和三维房间布局包围盒。根据二维目标检测结果,ODN在相机坐标系中检测三维物体包围盒,而MGN在以物体为中心的规范坐标系中生成由网格表示的三维几何形状。我们通过将所有网络的输出信息嵌入到场景中,进行联合训练和推理,从而重建出完整的场景。其中,来自MGN的三维物体网格将根据ODN及 LEN生成的物体与相机坐标系线性变换,从网格规范坐标系转换至世界坐标系进行联合训练。图2(b)给出了LEN和ODN坐标系转换的参数化图示,详细内容请参考我们的文章和补充材料。

1. 三维目标检测网络ODN

ODN网络结构如图3所示。在预测某个物体的三维包围盒时,我们考虑该物体与房间中所有其他物体间的关联关系。对于输入的图片,经由ResNet对物体包围盒内图像生成外观特征,同时利用物体的二维包围盒之间相对位置产生相对几何特征。最后通过目标物体与其他物体之间的多边几何特征,利用注意力机制 (Attention mechanism) [3],加权各自外观特征从而获得其他物体与目标物体之间的关联特征(relational feature),并将其用于最后决策每个物体在相机坐标系下的三维空间位置,尺寸和姿态。

2. 布局估计网络LEN

与ODN不同,LEN则负责预测房间的布局(房间包围盒)和相机姿态。其中,相机姿态由R(β,γ)定义,即相机的俯仰角β及横滚角γ。LEN的网络结构与ODN相同,只是不会使用关联特征,即,LEN将整个场景看作一个物体包围盒(而ODN 将每个检测到的物体视为一个包围盒),这一步我们则预测的是场景包围盒在世界坐标系下的位置,尺寸和姿态,以及相机对于场景世界坐标系的旋转。到目前为止,ODN给出了相机坐标系下单个物体的3D包围盒信息,同时LEN获得了场景布局在世界坐标系下的3D包围盒,以及相机外参数用于统一所有物体坐标系进行联合训练。

3. 网格生成网络MGN

我们的MGN解决了TMN的瓶颈问题。TMN通过对模板形状(单位球)进行变形和修改网格拓扑来逼近对象形状,其中需要预定义距离阈值才能从目标形状中移除距离GT较远的面。但是,对于不同比例的物体网格,给出一个通用的阈值是非常重要的(见图4)。通过实验,我们发现TMN在室内物体的形状预测上不能很好的删除细节网格面 (见图5),可能的原因是室内物体在不同类别之间有很大的拓扑尺寸差异,并且因为复杂的背景和遮挡常常导致无法准确估计距离值。

密度 v.s. 距离

与采用严格距离阈值进行拓扑修改的TMN不同,我们发现判断网格面是否该删除应该由其局部几何特征决定。在这一部分中,我们提出了一种基于局部密度的自适应网格修改方法。我们将pi设置为重建网格上的一个点,而qi则对应于它在GT上的最近邻(见图4)。我们设计了一个二进制分类器f (*) 来预测pi是否接近GT网格(如下):

其中,N (qi)为qi在GT曲面的所有近邻点,而D用于定义局部密度。我们认为,在形状逼近中,如果一个点属于GT的N邻域,就应该保留它,否则删除。在实验中,我们观察到该分类器在不同的网格尺度下比使用距离阈值具有更好的鲁棒性。

移除边 v.s. 移除面

相对于移除网格面,我们选择移除网格边的方式进行拓扑修改。我们随机抽取网格边上的点,并使用分类器f (*) 来移除平均分类分数较低的边。较移除网格面,移除多余的边可以减少在计算边损失函数时(edge loss [2] )因多余边存在而受到的惩罚,并创建紧凑的网格边界。

图4中给出了MGN网络架构。它以二维物体检测为输入,使用ResNet-18生成图像特征。我们将检测到的物体类别编码为one-hot向量,并将其与图像特征连接起来。在我们的实验中,我们观察到类别编码提供了形状先验,有助于更快地逼近目标形状。我们将扩展后的特征向量和模板球输入到AtlasNet [4]的解码器中,以预测球的形变,并在第一阶段拓扑不变的情况下输出合理的物体形状。在此基础上通过我们的边分类器进行第二阶段的拓扑修改,最后经过边界优化完成形状的预测。边分类器与AtlasNet形状解码器具有相似的网格结构,其中最后一层替换为全连接层进行分类。它根据图像特征,将变形网格作为输入,预测f(*)以移除冗余网格边。

4. 联合学习

LEN和ODN中采用的损失函数主要涉及相机参数,包围盒尺寸,位置与姿态的回归问题。而MGN使用Chamfer距离损失、边损失 (edge loss) 、边界损失 (boundary loss) 和用于剪边分类器的cross-entropy loss,详见文章。

在联合训练时,损失函数的设计建立在以下两点:一是相机姿态估计精度的提高可以提升三维物体包围盒的预测结果,反之亦然;二是场景中的物体形状预测可以提供物体的空间占有信息(spatial occupancy),这对三维物体检测有积极影响,反之亦然。根据第一点,我们采用cooperative loss Lco [5]来保证预测出的房间布局/物体包围盒与GT间的世界坐标系下坐标值的一致性。第二,我们要求重建出的物体靠近场景中点云,即,对齐世界坐标系下物体的网格与场景点云,展现出全局坐标的约束。对于此,我们根据Chamfer距离定义global loss Lg:

以下是用于联合训练的loss,前三项分别是ODN,LEN和MGN的loss,后两项分别为cooperative loss和global loss。其中,

为各项loss的权重。

© 版权声明

相关文章