HorizonNet: Learning Room Layout with 1D Representation and Pano Stretch Data Augmentation
Abstract
我们提出了一种从单一全景图像估算3D房间布局问题的新方法。 我们将房间布局表示为三个一维矢量,它们在每个图像列中编码地板-墙和天花板-墙的边界位置以及墙-墙边界。所提出的网络架构HorizonNet经过训练可预测一维布局,其性能优于以前的最新方法。所设计的从一维预测中恢复三维房间布局的后处理程序可以自动推断出房间形状,计算成本低,一张全景图需要不到20毫秒的时间,而之前的工作可能需要几十秒。 我们还提出了Pano Stretch Data Augmentation,它可以使全景数据多样化,并应用于其他与全景相关的学习任务。 由于非立方体布局可用的培训数据有限,因此我们重新注释了当前数据集中的65个常规布局数据以进行微调,并定性显示了我们的方法估算总体布局的能力。
1. Introduction
这项工作的目的是根据全景图像预测房间布局。 大多数最先进的方法通过为模型采用更有效的深度网络体系结构来从图像的不同线索中学习来解决此问题。 关于房间结构的假设通常是用来约束解空间的,因此深度模型的预测不会与普通情况有太大差异。 可以进一步执行后处理步骤以完善预测。 给定许多带有带注释的布局图像以进行训练,最新技术方法能够在测试数据上获得良好的结果。 但是,为全景图像获取高质量的房间布局注解很费力。 由于对墙壁边界位置的含糊不清,尤其是对于装潢精美的房间,由不同人完成的注释可能会不一致。 此外,当前可用的数据集不包含更多复杂房间布局的图像。 复杂布局的注释仅近似于长方体或L形布局,从而为训练和测试引入了更多歧义。
为了改进现有技术,可以进一步解决两个重要且相关的问题。 第一个问题是缺少更多带有精确注释的训练和验证数据。 第二个问题是,如果没有更多带注释的数据用于训练,则深度网络不能太大,否则,由于过度拟合,测试精度可能会较低。 收集更多数据以训练更复杂的模型确实是有益且可行的,但是也应该欢迎采用更有效的方式来提高性能。 我们认为,如果我们对问题有更好的了解并充分利用领域知识,则可以在不获取更多带注释数据或使用更大的深度网络的情况下提高性能。 数据扩充是深度学习中生成更多数据进行训练的常见过程。 诸如随机裁剪或用于图像分类或对象检测的亮度变化之类的标准数据增强试探法可能对布局预测无效。 我们的想法是考虑到潜在的几何约束,并设计一种更好的数据增强机制,专门用于训练预测深层网络的布局。 另一方面,我们的目标不是通过增加模型的复杂性,而是通过针对几何约束设计紧凑的表示来增强模型。 因此,我们可以删除多余的自由度,并迫使模型更加专注于学习布局预测的关键属性。
我们将我们的贡献描述如下:
· 我们引入一维(W)表示形式,该表示形式可对全景场景的整个房间布局进行编码。 用这种表示进行训练使我们的方法可以胜过以前的最新结果,但需要更少的参数和更少的计算时间。
· 我们提出了一种称为Pano Stretch Data Augmentation的数据增强机制,该机制可在训练过程中即时生成全景图像,并在实验的所有设置下提高准确性。这种数据增强机制还具有增强直接在全景图上工作的其他任务(例如语义分割,对象检测)的潜力。
· 我们表明,在布局预测任务中利用RNN有助于提高准确性。 RNN能够捕获房间布局的远程几何图案。
· 由于采用1D表示和高效的后处理程序,因此模型的计算成本非常低,并且可以轻松扩展模型以处理具有长方体形或L形以外的布局的复杂场景。
我们将在此工作中使用的代码和所有带注释的数据将公开提供。
2. Related Work
在过去十年中,从单视图RGB图像估计房间布局是一个活跃的研究主题。 在该领域已经开发了许多方法。 他们中的大多数人利用曼哈顿世界的假设,即房间布局,甚至家具都与三个主轴对齐。 曼哈顿世界的假设对布局估计问题施加了限制,并且基于该假设,曼哈顿对齐的消失点也可以用于校正图像并提取特征以推断布局。
Delage等训练动态贝叶斯网络来识别透视图像每一列中的地板边界。许多方法搜索曼哈顿对齐布局基于提取的几何线索。Lee等人使用方向图(OM)验证假设,Hedau等人使用几何上下文(GC)验证假设。Hedau等人的进一步联合推断了房间布局与三维物体,如床。后来的方法也采用了类似的策略,如引入改进的评分函数,用曼哈顿生成布局假设,建模对象与布局的相互作用。
前述方法仅处理透视图像。 张等建议从360 H-FOV全景图像估计布局。 他们扩展了基于OM,GC和对象交互作用的消失点检测,假设生成和评分假设的先前方法,并将所有方法应用于全景图。 徐等还使用OM,GC,对象检测和对象方向来重建3D布局。 杨等使用超像素和曼哈顿对齐的线段作为特征,并通过约束图表达问题。 [29]的方法遵循类似的方法,使用更多的几何和语义特征。 其他方法尝试使用图像梯度提示或从多个全景图像恢复全景平面图。
最近的方法更多地依赖于深度网络来改善布局估计。 它们中的大多数利用密集的预测模型对每个像素的几何或语义标签进行分类。 对于透视图图像,通常的方法是预测边界概率图,边界类别(天花板,地板,墙壁,背景),布局表面类别(左侧, 正面,右侧,天花板,地面)和角关键点热图。 可以对预测的密集地图进行后处理以生成布局。 已经开发了一些深度学习方法用于基于全景的布局估计。 邹等直接从全景图预测拐角概率图和边界图。 他们还使用带注释的布局扩展了Stanford 2D3D数据集,以进行训练和评估。Fernandez-Labrador等在透视图像上训练深度网络。 在测试过程中,他们将预测的透视图边界图拼接成全景图,并将它们与几何线索结合起来以推理出布局。
与之前使用神经网络进行密集预测进行布局估算的所有方法不同,我们利用对齐的全景图像的属性来预测地板-天花板和墙-墙的边界。我们的模型只为图像的每一列产生三个值,因此模型的输出大小从O(HW)减小为O(W)。提出的输出表示与[6]相似,但是它们仅使用动态贝叶斯网络预测透视图图像各列的地板-墙边界。相比之下,我们的工作可以使用深度神经网络处理全景图并识别地板-墙,天花板-墙和墙-墙的边界。LayoutNet 学会对整个图像进行每个像素的预测,而我们的模型仅预测每个图像列的三个值。LayoutNet通过采样从深度模型的输出中生成最终布局。我们的后处理方法简单有效,时间复杂度= O(W)。 RoomNet 模仿RNN的重复结构,其“时间步长”等于细化步长。 我们使用RNN,其中每个“时间步长”负责估计几个图像列上的结果。
3. Approach
我们方法的目标是根据覆盖360° FOV的全景图像估算曼哈顿的房间布局。与使用深度学习进行布局估计的传统稠密预测(目标输出大小= O(HW))不同,我们将问题表述为对边界进行回归,并对每一列图像的角进行分类(目标输出尺寸= O(W))。在3.1节介绍了HorizonNet的训练和预测。 在3.2节,我们引入了一个简单而又快速有效的后处理程序,直接从HorizonNet的输出中得出布局。 最后,在3.3中,我们引入了Pano Stretch Data Augmentation,它通过沿x或z轴拉伸图像和ground truth布局来有效地实时扩展训练数据(图5)。所有的训练图像和测试图像都由[33]中提到的全景图像对齐算法进行了预处理。我们的方法利用了对齐的全景图的属性,即墙-墙边界是等距柱状投影下的垂直线。 因此,我们只能使用一个值来表示墙-墙边界的列位置,而不能使用两个值(每个代表一个边界端点)。
3.1. HorizonNet
图2显示了我们的网络结构,该网络包括特征提取器和递归神经网络。网络将输入一个全景图片,其尺寸为3x512x1024(通道,高度,宽度)。
1D布局表示:网络输出的大小为3x1x1024。如图3所示,三个输出通道中的两个表示每个图像列的天花板-墙()和地板-墙()边界位置, 另一个()表示墙-墙边界(即角)。 和的值归一化为。 由于将定义为带有0/1标签的二值向量会使其过于稀疏而无法检测(对于简单的长方体布局,在1024列只有4个非零值),我们设置,其中表示第列,为第列到墙-墙边界的那列最近的距离,是常数。 我们为所有实验设置c = 0.96。 使用一维表示的一个好处是,它不受零主导背景的影响。 即使经过平滑处理,边界和角的2D全图表示也会导致95%的零值。 我们的1D边界表示法不会引入零背景,因为或的每个分量的预测只是对ground truth的实值回归。 1D墙-墙(角)的表示也将ground truth的峰值-背景比率从改成了,其中N是墙角的数量。 因此,一维墙-墙表示也较少受到零控制背景的影响。 此外,与2D全图像输出相比,1D紧凑输出的计算效率更高。 如第3.2节所述,从我们的三个1D表示中恢复布局是简单、快速和有效的。
特征提取器:我们采用ResNet-50 作为特征提取器。 与前一个模块相比,ResNet-50每个模块的输出减少了一半的空间分辨率。 为了捕获低级和高级特征,ResNet-50的每个模块都包含一系列卷积层,其中通道数和高度分别减少了8倍(= 2x2x2),和16倍(= 4x2x2)。 更具体地说,每个模块包含三个卷积层,每个卷积层具有4x 1,2x1,2x1内核和步长,每个Conv之后的通道数减少2倍。从每层提取的所有特征均被上采样到相同的宽度256(输入图像宽度的四分之一),并重新reshape为相同的高度。 最后concatenate后,特征图的大小为1024x1x256。每个Conv之后的激活函数是ReLU,除了最后一层,其中我们将Sigmoid作用于,并将identity函数作用于,。 我们已经尝试了特征提取器的各种设置,包括更深的ResNet-101,每个ResNet块之后卷积层的不同设计以及向上采样到图像宽度1024,发现结果是相似的。 因此,我们坚持使用更简单,计算效率更高的设置。
用于捕获全局信息的递归神经网络:递归神经网络(RNN)能够从顺序数据中学习模式和长期依赖性。 从几何角度来讲,可以从其他角落的位置大致推断出房间的任何角落。 因此,我们使用RNN的功能来捕获全局信息和长期依赖关系。 直观地讲,由于LSTM是RNN体系结构的一种,它存储有关单元状态下其他区域预测的信息,因此它具有根据整个房间的几何图案准确预测被遮挡区域的能力。 在我们的模型中,RNN用于逐列预测。 也就是说,RNN的序列长度与图像宽度成正比。 在我们的实验中,RNN预测每个时间步长为四列而不是一列,这需要更少的计算时间而不会损失准确性。 一列中的 与它的左右近邻都相关,我们采用双向RNN来从双方捕获信息。 图7和表1展示了带有或不带有RNN的模型之间的差异。
3.2. Postprocessing
虽然通过将深度模型的输出投影到三维空间来重建的布局与ground truth布局非常接近,但仍然可以通过施加几何约束或先验进行改进。LayoutNet 解决了几何约束条件下的优化问题,其中评分功能仅取决于网络输出。文献[8]的方法将其深层模型的输出与方向图和几何上下文相结合,以生成其非立方体布局。
我们在以下四个假设下恢复了不局限于长方体的一般房间布局:i)相交的墙壁相互垂直(曼哈顿世界假设);ii)所有房间均为一层一顶式布局,楼层与天花板相互平行;iii)相机高度1.6米;iv)预处理步骤正确对齐与y轴垂直的地板。
恢复地板和天花板平面:地板和天花板之间的距离是根据模型输出估算的。我们投影到参考天花板平面,投影到具有相同x,z坐标的地板平面。投影地板的y坐标的均值决定了地板的平面。我们重新调整了3D空间的比例,使得相机中心到地板的距离为1.6米。
恢复墙面:我们首先找到模型预测的墙面概率上的显著峰值。我们对显著的峰值设定了两个标准:1)信号应大于5°H-FOV内的任何其他信号;2)信号应大于0.05。
图4a显示了在天花板平面上的投影结果。绿线是被探测到的突出的山峰,它将投射的天花板边界(红点)分割成多个部分。 为了处理从预处理步骤引入的可能失败的水平对齐,我们基于每个部分投影点的第一个主成分来旋转场景(图4a中的右上角)。我们从第一主成分取建议旋转的平均值来修正水平旋转。 到主轴的距离的方差还提供有关该零件的一致性的信息,并且我们以从低方差到高方差的顺序生成墙。 我们使用一个简单的投票策略:每个投影的红点为0.16米内的所有平面投票(右下角的图4a)。选择投票最多的平面。 在图4b中描绘了两种特殊情况,它们是在已经产生两个邻接墙并且它们彼此正交的情况下发生的。 生成所有墙平面后,如果距离小于0.16米,则将两个方向相同的相邻墙平面合并;否则在它们的中点插入一堵正交的墙。 根据三个相邻的曼哈顿交界平面的交点确定拐角。
3.3. Pano Stretch Data Augmentation
对于360 H-FOV全景图像,我们建议在3D空间中沿轴拉伸以增强训练数据。为了实现此目标,我们首先将UV空间下的每个像素表示为(u,v),其中。 坐标(u,v)可以容易地计算为全景图像的列和行,取决于相机的旋转角度。 在这里,我们引入一个附加变量d,它表示像素的深度。 我们将证明d可以在以后消除,因此我们的最终方程式不依赖于此。
我们将像素投射到三维空间中,并将它们的x,y,z乘以,拉伸后的如公式1所示。
然后我们可以通过公式2将拉伸后的点投射回球面,进一步得到全景图像。方程中的atan2是2元反正切。深度d被消除了,因为它在atan2的两项中都存在。我们修正了= 1,因为将设置为非1的值就等于乘以相同的值。
在我们的实验中,通过等式3进行逆变换。对于目标图像中的每个像素,我们计算相应的坐标,并通过双线性插值从源图像中采样其值。图5为可视化样本。
请注意,我们的Pano拉伸数据增强过程也可以用于其他直接作用于全景图的任务(例如,语义分割的地面真值图、用于对象检测的边界框)。增强过程有可能提高这些任务的准确性。