DuLa-Net: A Dual-Projection Network for Estimating Room Layouts from a Single RGB Panorama
Abstract
我们提供了一个称为DuLa-Net的深度学习框架,可从单个RGB全景图预测曼哈顿世界3D房间的布局。 为了获得更好的预测精度,我们的方法同时利用了全景的两个投影,即等距柱状全景视图和透视天花板视图,每个投影都包含有关房间布局的不同线索。 我们的网络架构由两个编码器/解码器分支组成,用于分析两个视图中的每个视图。 另外,提出了一种新颖的特征融合结构来连接两个分支,然后对两个分支进行联合训练以预测2D平面图和布局高度。 为了了解更复杂的房间布局,我们引入了Realtor360数据集,该数据集包含具有不同角数的曼哈顿世界房间布局的全景图。 实验结果表明,我们的工作在预测准确性和性能方面优于最新技术,尤其是在非立方体布局的房间中。
1. Introduction
从室内全景图像推断出高质量的3D房间布局在理解室内场景中起着至关重要的作用,并且可能有益于包括虚拟/增强现实和机器人技术在内的各种应用。 为此,最近的方法通过使用深度学习来预测输入全景图上的房间角落和边界,来恢复3D房间布局。 例如,LayoutNet对曼哈顿世界受限的房间实现了令人印象深刻的重建精度。 但是,房间里的杂物,例如,家具,提取在输入全景图中遮挡的关键拐角和边缘带来了挑战。 另外,从2D拐角和边缘图估计3D布局是一个不适定的问题,因此在优化中施加了额外的约束。 因此,处理复杂的房间布局仍然具有挑战性。
在这项工作中,我们提出了一个新颖的端到端框架,可以从单个RGB全景图估算3D房间的布局。 凭直觉,在给定相同全景图但投影不同的情况下,神经网络可能会提取不同类型的特征,因此,我们建议从全景图的两个不同视图(即等距柱状全景视图和透视天花板视图)预测房间布局。 网络体系结构遵循编码器-解码器方案,并且由全景分支和天花板分支两个分支组成,分别用于分析全景视图和天花板视图的图像。 全景分支的输出包括地板-天花板概率图和布局高度,而天花板分支则输出房屋平面概率图。 为了在分支之间共享信息,我们采用了一种特征融合方案,通过E2P转换连接解码器的前几层,该转换将中间特征图从等距柱状投影转换为透视天花板视图。 我们发现通过联合训练两个相连的分支可以实现更好的预测性能。 然后,通过将轴对齐的多边形拟合到融合的房屋平面概率图(请参见图3),然后通过估计的布局高度将其拉伸,从而获得最终的2D平面图。
要从具有复杂布局的全景图中学习,我们需要用于网络训练和测试的适当数据集。 但是,现有的公共数据集,例如PanoContext 数据集,提供了带有简单长方体形状的大部分带标签的3D布局。 为了学习更复杂的布局,我们引入了一个新的数据集Realtor360,其中包括SUN360 数据集(593个客厅和卧室)的子集和从房地产数据库收集的1980个全景图。 我们使用定制的交互式工具注释了整个数据集,以获取真实的3D布局。
我们的数据集的一个关键特征是,它包含的房间的拐角数量具有更复杂的形状。实验结果表明,我们的方法在预测准确度方面优于当前的最新方法,尤其是对于四个角以上的房间。 我们的方法还需要更少的时间来计算最终房间的布局。 图1显示了通过我们的方法估算的一些房间布局。 我们的贡献总结如下:
· 我们提出了一种新颖的网络体系结构,其中包含两个编码器-解码器分支,以分析两个不同投影中的输入全景图。 这两个分支通过特征融合方案进一步连接。 这种双投影架构可以推断出房间的布局,除了长方体和L形之外,还具有更复杂的形状。
· 我们的神经网络是朝着建立端到端架构迈出的重要一步。 我们的网络直接输出2D平面图的概率图。 与当前最新技术的输出相比,此输出需要更少的后处理来获得最终的3D房间布局。
· 我们引入了一个称为Realtor360的新数据集,其中包含2573个全景图,这些全景图描绘了具有4至12个角的房间。 据我们所知,这是最大的室内图像数据集,其中包含当前可用的房间布局注释。
2. Related Work
有多篇论文提出了一种从室内环境中拍摄的单个图像估算房间布局的解决方案。 它们主要在三个方面有所不同:1)房间布局的假设; 2)输入图像的类型; 3)方法。 就房间布局假设而言,一个流行的选择是“曼哈顿世界”假设,这意味着所有墙壁都与全局坐标系对齐。 为了使问题更容易解决,一个更严格的假设是房间是一个长方体,即正好存在四个房间角。我们的方法采用曼哈顿世界假设,但允许任意数量的拐角。
就输入图像的类型而言,图像的FoV(视场)可能有所不同-从单目(即从标准相机拍摄)到360度全景,以及是否提供深度信息。 然后,这些方法在很大程度上取决于输入图像类型。 仅给出单目RGB图像时,该问题可能最难解决。 通常,从输入图像中提取几何(例如线和角)和/或语义(例如分割成不同区域和体积推理)“线索”, 生成一组房间布局假设,然后采用优化或投票过程对假设进行排名和选择。 最近,基于神经网络的方法在解决这个问题方面取得了长足的进步。 趋势是神经网络生成越来越多的信息-从线段,表面标签到房间类型以及房间边界和角落,以形成最终信息布局生成过程越来越容易解决。 我们的方法通过使用神经网络直接预测2D平面图概率图(仅需要2D多边形拟合过程即可生成最终2D房间布局),将这一趋势进一步向前推进。
如果提供了深度信息,则存在估算场景注释的方法,包括房间布局。 更深入的讨论超出了本文的范围。
密切相关的问题包括根据给定图像进行深度估计和根据点云进行场景重建。 注意,估计的深度或重建的3D场景都不一定等同于洁净室布局,因为此类输入可能包含杂波。
360全景图:Zhang等人的开创性著作提倡将360度全景图用于室内场景理解,因为360度全景图的FOV范围更大。 朝着这个方向发展的工作蓬勃发展,包括基于对几何和/或语义线索进行优化的方法,以及后来基于神经网络的方法。 除了LayoutNet,大多数方法都依赖于利用现有技术对从输入全景拍摄的样本上的单视角图像进行处理。 我们认为,这是LayoutNet出色性能的主要原因,因为它可以对整个全景图进行预测,从而提取输入全景图可能包含的更多全局信息。在【20】中可以找到沿该方向的进一步步骤,其中将输入全景图投影到2D“地板”视图,其中摄像机位置映射到图像的中心,并且全景图中的垂直线变为径向图像中心发出的线条。 这种方法的优点是房间布局成为2D闭环,可以更轻松地提取它。 我们在这里得出“天花板”视图的想法-而不是向下看向包括房间中所有杂物的地板,而是向上看向天花板,从而更清晰地看到房间布局。
3. Overview
图2说明了我们框架的概述。 给定输入为等距柱状全景图像,我们遵循在PanoContext [29]中使用的相同预处理步骤,将全景图像与全局坐标系对齐,即我们以曼哈顿世界为假设。 然后,我们通过等距柱状图向透视(E2P)转换将全景图像转换为透视天花板图像(第4节)。 然后将全景视图和天花板视图图像馈送到由两个编码器/解码器分支组成的网络。 这两个分支通过基于E2P的特征融合方案连接在一起,并经过共同训练以预测平面图概率图,地板最高概率图和布局高度(第5节)。 使用E2P转换从地板-天花板概率图导出两个中间概率图,并将其与房屋平面图概率图结合以获得融合的房屋平面图概率图。最终3D Manhattan布局是通过使用预测的布局高度将在融合平面图概率图上估算的2D Manhattan平面图进行拉伸来确定的(第六节)。
4. E2P conversion
在本节中,我们解释了E2P转换的公式,该公式将等距柱状全景图转换为透视图图像。 我们假设透视图是正方形,尺寸为ww。 对于透视图像中位置(; )上的每个像素,我们得出全景图中相应像素的位置,;,如下。 首先,我们将透视图像的针孔相机的视场定义为FoV。 然后,焦距可以推导为:
,即相机空间中透视图图像中像素的3D位置,然后,如果相机是向上看(看天花板),则沿x轴(逆时针)旋转90,如果是向下看(看地板),则沿x轴(逆时针)旋转-90。
接下来,我们将旋转后的三维位置投影到等距柱状图空间。为此,我们首先通过向量归一化,并应用下列公式:
投影,即单位球面上的3D位置,回到全景图中相应的2D位置。 最后,我们使用对全景图中的像素值进行插值。 我们注意到该过程是可微的,因此可以与反向传播结合使用。
5. Network architecture
我们的网络架构如图2所示。它由两个编码器/解码器分支组成,用于全景视图和天花板视图输入图像。 我们将全景视图分支表示为,将天花板视图分支表示为。 的编码器和解码器表示为和,对于,它们表示为和。 一个关键概念是我们的网络可以预测平面图和布局高度。 通过这两个预测,我们可以在后期处理中重建3D房间布局(第6节)。
5.1. Encoder
我们将ResNet-18用作和的结构。 的输入尺寸为512x1024x3(输入全景图的尺寸),输出尺寸为16x32x512。 对于,输入和输出尺寸为512x512x3和16x16x512。 请注意,的输入是通过对输入全景进行E2P转换(FoV设置为160°,w设置为512)而生成的透视顶视图图像。我们还尝试了其他计算成本更高的网络结构,例如ResNet-50 编码器。 但是,我们发现准确性没有任何提高,因此为了简单起见,我们选择使用ResNet-18。
5.1. Decoder
和都包含六个卷积层。前五层是3x3个具有ReLU激活的调整大小卷积。 最后一层是具有Sigmoid激活的常规3x3卷积。 这六层卷积的通道数分别为256、128、64、32、16和1。为推理布局高度,我们在的最中间部分添加了三个全连接层。 这三层的尺寸分别为256、64和1。为了使布局高度的回归更加可靠,我们在前两层之后添加了dropout层。为了将最中间的特征作为输入,我们首先在x和y维度上应用全局平均池化,从而生成具有512维度的1-D特征,并将其作为全连接层的输入。
的输出是等距柱状图投影的地板和天花板的概率图,表示为地板-天花板概率图()。 对于,输出是天花板视角的平面图的概率图,表示为平面图概率图()。 请注意,还输出预测的布局高度(H)。
5.3. Feature fusion
我们发现,应用融合技术来融合和中的特征可以提高预测准确性。我们推测一个原因如下。 在天花板视图图像中,图像边界附近的区域(存在一些有用的视觉线索,例如阴影和家具布置)更加失真,这可能对天花板视图分支推理房间结构产生不利影响。 通过融合全景视图分支中的特征(失真程度较小),可以改善天花板视图分支的性能。
我们在和的前五层中的每个层之前应用融合。 对于每个融合连接,将FoV设置为160°,E2P转换(第4节)是将中的原本在等距柱状投影视图中的特征投影到透视天花板视图。 每个融合的工作方式如下:
在应用E2P转换后,其中是的特征,而是的特征。 和是衰减系数。 是层的索引。 每次融合之后,合并后的特征被发送到的下一层。 在第8节中讨论了该技术的性能改进。
5.4. Loss function
5.5. Training details
我们用PyTorch实现了我们的方法。 我们使用Adam优化器,其中= 0.9和 = 0.999。 学习率是0。0003,批量尺寸是4。我们的训练损失在大约120轮后收敛。 对于每次训练迭代,我们通过随机翻转和水平旋转将输入全景图分别增加0°、90°、180°和270°。 对于融合部分,我们在等式2中的设置了和,分别是0.6和3。 我们在等式5中设置了为0.5。 因为我们估计了天花板视图中的平面概率图,所以我们假设摄像机和天花板之间的距离为1.6米,并使用此常数对ground truth进行归一化。
6. 3D layout estimation
给定概率图(和)以及网络预测的布局高度(H),我们通过以下两个步骤重建最终的3D布局:
1.使用概率图估算2D 曼哈顿平面图的形状。
2.根据布局高度沿其法线挤压平面图形状。
对于步骤1,使用E2P转换从地板-天花板概率图的天花板像素和地板像素中得出两个中间图,分别表示为和。我们进一步使用比例因子1.6 /(H-1.6),将与配准,其中常数1.6是摄像机与天花板之间的距离。 最后,融合平面图概率图的计算如下:
图3(a)示出了上述过程。 概率图使用阈值0.5进行二值化。 计算最大的连接组件的边界矩形以供以后使用。 接下来,我们将二进制图像转换为密集采样的分段线性闭环,并使用Douglas-Peucker算法对其进行简化(参见图3(b))。 我们对边缘进行回归分析,并将其聚类为轴对齐的水平线和垂直线。 这些线将边界矩形划分为几个不相交的网格单元(请参见图3(c))。 我们将2D平面图的形状定义为栅格单元的并集,其中平面图面积的比率大于0.5(请参见图3(d))。
7. Realtor360 dataset
包含足够数量的3D房间布局(具有不同数量的拐角)的数据集对于训练以及测试我们的网络至关重要。 不幸的是,现有的公共领域数据集,例如Zou等人标记的PanoContext 数据集和Stanford 2D-3D数据集。主要包含具有简单长方体形状的布局。为了证明我们的框架足够灵活,可以处理任意数量的拐角房间,我们引入了一个名为Realtor360的新数据集,其中包含2500多个室内全景图和带注释的3D房间布局。 我们根据房间布局的复杂程度对每个房间进行分类,这些复杂程度是通过平面图中的拐角数量来衡量的。 表1显示了数据集的统计数据,图4中提供了一些可视示例。Realtor360数据集中的源全景图像是从两个源中收集的。 第一个是SUN360数据集的一个子集,其中包含593个客厅和卧室的全景图。 另一个来源是一个房地产数据库,其中包含从一家房地产公司获得的1980个室内全景图。 我们使用定制的交互式工具注释这些室内全景图的3D布局,如下所述。
注释工具。 为了用高质量的3D房间布局注释2D室内全景图,我们开发了一种交互式工具来简化标记过程。 该工具首先利用现有的自动方法从输入全景图中提取深度图和线段。然后,通过沿全景中心的水平线采样深度来创建初始的3D曼哈顿世界布局。 该工具允许用户通过一系列直观的操作来完善初始3D布局,这些操作包括(i)推/拉墙;(ii)合并多堵墙;(iii)分开一堵墙。 它还提供了一个方便的功能,可以在交互式编辑过程中将布局边对齐到估计的线段,以提高准确性。 我们计划在发布此工作后将数据集和注释工具一起发布以供学术使用。