LayoutNet: Reconstructing the 3D Room Layout from a Single RGB Image
本文为原文翻译,原文地址:https://arxiv.org/abs/1803.08999
Abstract
我们提出了一种算法,可以从一张图像中预测房间的布局,该图像可以将全景图和透视图图像,长方体布局以及更一般的布局(例如“ L”形房间)进行概括。 我们的方法直接在全景图像上运行,而不是像最近的作品一样分解为透视图像。 我们的网络架构类似于RoomNet,但是我们展示了一些改进,这些改进包括基于消失点对图像进行对齐,预测多个布局元素(角、边界、大小和平移),以及将一个受约束的曼哈顿布局与结果预测进行拟合。我们的方法在速度和精度上与现有的其他工作在全景图上进行了比较,在透视图像上实现了最佳的精度,并可以处理长方体和更一般的曼哈顿的布局。
1. Introduction
通过一个应用程序(例如机器人技术和虚拟/增强现实),从一个图像估计房间的3D布局是一个重要的目标。房间布局指定了相对于摄像机中心的墙壁的位置,方向和高度。布局可以表示为一组投影的角位置或边界,也可以表示为3D网格。现有工作适用于该问题的特殊情况,例如根据透视图或全景图预测长方体形的布局。
我们展示了LayoutNet,这是一种深度卷积神经网络(CNN),可从单个视角或全景图像估计室内场景的3D布局(图1)。我们的方法在全景图的速度和准确性上具有很好的对比,并且在透视图图像中是最好的。我们的方法还可以推广到非立方体的曼哈顿布局,例如“ L”形的房间。 可以从以下网址获得代码:https://github.com/zouchuhang/LayoutNet。
我们的LayoutNet方法分三个步骤运行(图2)。 首先,我们的系统分析消失点并将图像与地板对齐(第3.1节)。根据我们的实验,这种对齐方式可以确保墙壁边界为垂直线,并大大减少了误差。第二步,使用带有编码器-解码器结构和跳过连接的CNN,直接在图像上预测拐角(布局交界处)和边界概率图(第3.2节)。角和边界分别提供了房间布局的完整表示。我们发现,在单个网络中共同预测它们会带来更好的估计。最后,优化3D布局参数以适合预测的角和边界(第3.4节)。我们优化过程中最终的3D布局损失很难通过网络反向传播,但是在训练过程中3D参数的直接回归可以作为有效的替代方法,从而鼓励进行预测以最大程度地提高最终结果的准确性。
我们的贡献是:
· 我们提出了一种更通用的RGB图像到布局算法,该算法适合于具有曼哈顿布局的透视图和全景图。 我们的系统在全景图像的速度和准确性方面具有很好的对比,并且在透视图像方面达到了第二好的水平,同时也是最快的。
· 我们展示了使用预先计算的消失点提示,几何约束和后处理优化所获得的收益,表明深层网络方法仍然受益于显式的几何提示和约束。 我们还表明,将目标添加到直接回归3D布局参数可以更好地预测用于求解最终预测布局的边界和角。
· 我们扩展了斯坦福2D-3D数据集的注释,提供了可用于将来工作的房间布局注释。
2. Related Work
在过去十年中,单视图房间布局估计一直是研究的一个活跃主题。 Delage等在“曼哈顿世界”假设下,将水平相机拍摄的透视图图像中的地板/墙壁边界拟合以创建3D模型。曼哈顿世界的假设是所有墙壁彼此成直角并垂直于地板。 cuboid模型是一种特殊情况,其中四面墙壁,天花板和地板将房间围起来。 Lee等产生方向图,基于检测到的线段生成布局假设,并从其中选择最适合的布局。 Hedau等通过求解三个消失点,采样与那些消失点一致的布局,并基于边缘和几何上下文的一致性选择最佳布局,来恢复长方体布局。随后的工作遵循类似的方法,改进了布局生成,对布局进行评分的功能以及合并了对象假设或其他上下文。最新的方法训练深度网络特征以将像素分类为布局表面(墙壁,地板,天花板),边界,角或是它们的组合。
几乎所有这些作品都旨在从透视RGB图像生成长方体形的布局。一些作品还可以处理全景图像。 张等提出了一种PanoContext数据集和方法,可以从360°全景图像中估算房间的布局(稍后会详细介绍)。杨等根据边缘提示,Geometrical Context和其他先验从全景图中恢复布局。徐等根据表面方向估计和对象假设估计布局。其他工作从多张图像或RGBD图像恢复室内布局,其中估计严重依赖于从传感器或多视图约束获得的3D点。Rent3D利用了已知的平面图。我们的方法通过直接在单个RGB等矩形全景图上估算布局来简化重建。我们的最终输出是稀疏而紧凑的曼哈顿平面布局,该布局由每面墙到相机的距离,高度和布局旋转参数化。
我们的工作与PanoContext和RoomNet的目标最为相似。PanoContext将设计用于透视图图像的框架扩展到全景图,估计消失点,生成假设并根据方向图,几何上下文和对象假设对假设进行评分。为了计算这些特征,PanoContext首先将全景图像投影到多个重叠的透视图像中,然后将特征图组合回全景图像中。我们的方法更直接:在根据消失点对齐全景图像后,我们的系统使用深度网络直接在全景图像上预测边界和拐角。在这方面,我们类似于Room-Net,它使用深度网络直接预测透视图图像中的布局角,并使用标签指示哪些角是可见的。我们的方法在某些方面与RoomNet不同。我们的方法适用于全景图像。我们的方法在对齐步骤(RoomNet不执行任何操作)以及边界,角和3D长方体参数的多任务预测方面也有所不同。我们的最终推理仅限于产生曼哈顿3D布局。 RoomNet使用RNN来完善2D角位置预测,但这些预测可能与任何3D长方体布局不一致。我们的实验表明,所有这些差异都可以改善结果。
更笼统地说,据我们所知,我们第一次提出了适用于透视图和全景图的方法。我们还表明,我们的方法可以轻松地扩展到非立方体的曼哈顿布局。因此,我们的方法可以说是迄今为止从单个RGB图像进行室内布局估计的最通用,最有效的方法。
3. Approach
我们首先描述从全景图预测长方体布局的方法:对齐(第3.1节),使用CNN预测角和边界(第3.2和3.3节)以及优化3D长方体参数(第3.4节)。然后,我们描述修改以预测更一般的(非立方体)曼哈顿布局和透视图图像(第3.5节)。
3.1 全景图像对齐
给定输入为覆盖360°水平视野的全景图,我们首先通过估计球形投影下的地板平面方向来对齐图像,旋转场景,然后将其重新投影为2D等矩投影。 与Zhang等人的方法相似,我们在每个重叠的透视图中使用线段检测器(LSD)选择长线段,然后使用霍夫变换对三个相互正交的消失方向进行投票。此预处理步骤可简化我们的网络训练。检测到的候选曼哈顿线段还提供了改善性能的额外的输入特征。
3.2 网络结构
LayoutNet网络如图2所示。该网络遵循编码器-解码器策略。
深度全景编码器:输入是6通道特征图:使用3.1节的对齐方法将分辨率为512×1024(透视图像为512×512)的单个RGB全景图与位于三个正交消失方向上的曼哈顿线段特征图拼接在一起。编码器包含7个卷积层,内核大小为3×3。 每个卷积后跟一个ReLU操作和一个下采样因子为2的最大池化层。第一个卷积包含32个特征,在每次卷积后我们将尺寸加倍。 这种深层结构可确保从高分辨率图像中更好地学习特征,并有助于简化解码步骤。我们在每个卷积层之后尝试了BN,但是观察到了较低的准确性。 我们还探索了一种替代结构,该结构为输入图像和曼哈顿线应用了单独的编码器,但是与我们当前较简单的设计相比,性能没有增加。
2D布局解码器:解码器由两个分支组成,如图2所示。顶部分支是布局边界图(mE)预测器,以与输入相同的分辨率将瓶颈特征解码为2D特征图。mE是全景图上的墙-墙、天花板-墙、墙-地板边界的三通道概率预测,包括可见边界和遮挡边界。 边界预测器包含7层最近邻上采样操作,每层后面都有一个内核大小为3×3的卷积层,特征大小从2048减少了一半。最后一层是Sigmoid操作。我们受U-Net结构的启发向每个卷积层添加跳过连接,以防止上采样步骤的预测结果发生偏移。底部的分支,即2D布局拐角图(mC)预测器,遵循与边界图预测器相同的结构,另外,还接收来自每个卷积层的顶层分支的跳过连接。这源于直觉,即布局边界暗示了拐角位置,特别是对于遮挡拐角的情况。我们在实验中(第4节)表明,联合预测有助于提高两个图的准确性,从而获得更好的3D重建结果。我们用全卷积层进行了实验,而不是采用上采样加卷积结构,但是观察到棋盘伪影,性能较差。
3D布局回归器:从2D角和边界到3D布局参数的映射函数在数学上很简单,但很难学习。 因此,我们为3D布局参数训练回归器,目的是产生更好的拐角和边界,而不是为了回归器本身。 如图2所示,3D回归器将两个预测的2D映射的级联作为输入,并预测3D布局的参数。假设接地平面在x-z轴上对齐,我们使用6个参数对布局进行参数化:宽度Sw,长度Sl,高度Sh,平移T =(tx,tz)和旋转角r在x-z平面上。 回归器遵循一个编码器结构,具有7个卷积层,内核大小为3x3,每个卷积后跟一个ReLU操作和一个下采样因子为2的最大池化层。通过输入4个特征通道的层,卷积特征的大小增加了一倍。接下来的四个全连接层的大小分别为1024、256、64和6,介于ReLU之间。 输出1x6特征向量d = {Sw,Sl,Sh,tx,tz,r}是我们预测的3D长方体参数。 请注意,回归器输出三维布局的参数,这些参数可以被投影回二维图像,这是一种端到端的预测方法。我们观察到3D回归器不准确(与表1中的其他结果相比,PanoContext数据集中的拐角误差为3.36%),但将其包含在损耗目标中往往会稍微改善网络的预测。 直连3D回归器失败的原因是,2D中的微小位置偏移会在3D形状中产生很大差异,从而使网络难以训练。
损失函数: 网络的总损失函数在等式1中:
损失是mE和mC中预测像素概率与ground truth的二元交叉熵误差之和,加上3D长方体参数d到ground truth d'的欧式距离。p是mE中一个像素的概率,ˆp是mE中p的ground truth。q是mC中的像素概率,ˆq是ground truth。 n是mE和mC中的像素数,即图像分辨率。请注意,RoomNet方法使用L2损失进行拐角预测。我们在第四小节讨论了两个不同的损失的性能。α,β和τ是每个损失项的权重。 在我们的实验中,我们将α=β=1并将τ= 0.01。
3.3 训练细节
我们的LayoutNet预测拐角和边界的像素概率,并对3D布局参数进行回归。我们发现,随机初始化网络的联合训练有时无法收敛。因此,我们分别训练每个子网络,然后一起共同训练它们。 对于2D布局预测网络,我们首先训练布局边界预测任务以初始化网络的参数。对于3D布局回归器,我们首先使用ground truth布局边界和角作为输入来训练网络,然后将其与2D布局解码器连接,然后端到端训练整个网络。
输入的曼哈顿线图是3通道0-1张量。我们将每个3D长方体参数标准化为训练样本之间的零均值和标准差。我们使用ADAM来更新网络参数,其学习速率为e-4,α= 0.95和ǫ= e-6。 用于训练2D布局预测网络的批处理大小为5,而对于用于训练3D回归器的批处理大小更改为20。 整个端到端培训使用的批处理大小为20。
平滑ground truth:我们的目标2D边界和拐角图是在图像上具有细曲线或点的二进制图。 这使训练更加困难。例如,如果网络预测拐角位置稍微偏离ground truth,则将产生巨大的损失。因此,我们放大ground truth边界和拐角图4倍,然后使用20×20的高斯核对图像进行平滑处理。请注意,即使经过平滑处理,目标图像仍包含约95%的零值,因此我们将背景像素的反向传播梯度通过乘以0.2重新加权。
数据增强:我们使用水平旋转,左右翻转和亮度变化来增强训练样本。水平旋转范围是0°-360°。亮度随γ值在0.5-2之间变化。对于透视图像,我们在图像平面上应用±10°旋转。
3.4 3D布局优化
初始2D拐角预测是从我们的网络输出的拐角概率图获得的。首先,将响应汇总到各行中,以获得每一列的汇总响应。然后,在列响应中找到局部最大值,局部最大值之间的距离至少为20个像素。最后,沿着选定的列找到两个最大的峰。这些2D角可能无法满足Manhattan的限制,因此我们执行优化以细化估计值。
给定预测的拐角位置,我们可以直接恢复相机的位置和3D布局,在一个缩放和平移的范围内,通过假设底部的角在同一个地面平面上,而顶部的角直接在底部的角上。我们可以进一步将布局形状限制为曼哈顿,以便相交的墙是垂直的,例如,在俯视图中像长方体或“ L”形。 对于全景图像,通过利用全景图的列对应于相机的旋转角度的特性,可以轻松地合并曼哈顿约束。 我们将自顶向下视图中的布局坐标参数化为2D点Lv = {v1 =(0,0),v2 =(x1,y1),... ,vN =(xN,yN)}。v1解决了翻译歧义,| v1− v2 | = 1设置刻度。 因为假定布局为曼哈顿,所以相邻的顶点将共享一个坐标值,这进一步减少了自由参数的数量。 我们根据Farin等人的启发,根据以下广义能量最小化来恢复摄像机位置vc = {xc,yc}和Lv:
其中vi,vj是成对的相邻顶点,并且βij =
是摄像机vc在vi和vj之间的旋转角度。 我们将αij表示为vi和vj之间图像上像素方向的水平距离除以全景图的长度。 请注意,此L2最小化也适用于曼哈顿的一般布局。 我们使用LBFGS 来求解方程解决等式2。
我们将天花板初始化为3D较高角落高度的平均值(均值),然后根据拐角和边界信息使用以下得分来评估3D布局候选者L:
其中C表示L的2D投影角位置。L的基数为#walls×2。我们将图像上的附近角连接起来,以获得Le为投影墙-天花板边界的集合,Lf为投影墙-地板边界的集合(每个都有#walls基数) )。 Pcorner(·)表示预测的mC上的像素方向概率值。 Pceil(·)和Pfloor(·)表示mE的概率。 第二和第三项在每个边界le∈Le和lf∈Lf中取对数似然响应的最大值。Wjunc,Wceil和Wfloor是术语权重,我们使用网格搜索分别将其设置为1.0、0.5和1.0。这一权重与墙-地板拐角经常被遮挡的观察结果一致,预测的边界可以帮助改善布局重建。我们发现在评分函数中增加墙-墙边界的帮助较小,因为预测的垂直角对已经揭示了墙体边界信息。
直接优化式 3在计算上是昂贵的,因为我们会对2D投影进行惩罚,但不能直接对3D属性进行惩罚。在这种情况下,我们将对候选布局形状进行采样,并根据公式3选择最佳的评分结果。我们使用行搜索来删除候选编号,以加快优化速度。 算法1演示了该过程。在每个步骤中,我们通过将一个墙的位置移动到相机中心距离的±%10以内来采样候选布局。然后根据相同的抽样策略对每个候选人的上限和下限进行优化,并根据公式3进行评分。一旦我们通过移动其中一个墙找到了得分最高的布局,我们就固定这个墙的位置,移动到下一个墙并再次执行抽样。根据我们的边界预测,我们从最不可靠的那堵墙开始。总共采样了∼1000个布局候选对象。优化步骤花费不到30秒为每个图像,并产生更好的3D布局,如第4节所示。
3.5 扩展
经过小的修改,我们的网络,最初设计用于从全景图预测长方体布局,也可以从全景图预测更一般的曼哈顿布局,从透视图像预测长方体布局。
一般曼哈顿布局: 为了实现更一般的布局,我们包括了超过四面墙可见的训练示例(例如“L”形房间),这适用于大约10%的示例。然后,我们通过对第六大的墙-墙边界进行阈值化来决定是生成四面墙还是六面墙。具体来说,沿着拐角图第六大列的平均概率至少为0.05。换句话说,如果有证据表明有超过四道墙,我们的系统就会产生更多的墙;否则生成4。由于可用的测试集没有很多超过四面墙的例子,我们在4.2节和补充材料中展示了我们额外捕获的样本的定性结果。
我们尝试过预测凹/凸标签作为拐角图预测的一部分以获得单个解,但是观察到了退化的2D预测。 因此,我们列举了所有可能的形状(例如 对于具有六面墙的房间,将有六种变化),然后选择得分最高的一种。 我们发现这种启发式搜索非常有效,因为它在一个小的离散集中进行搜索。 对于非立方体布局,我们不使用3D参数回归器进行训练。
透视图图像:在透视图图像上进行预测时,我们跳过对齐和优化步骤,而是直接在图像上预测角和边界。 我们也不使用3D回归器分支。 网络会预测一个3通道边界布局图,其中包括天花板-墙,墙-墙,和墙-地板的边界,并且拐角图中每个可能的拐角都有8个通道。 由于透视图图像的视野较小,可见角的数量也有所变化,因此我们添加了一个小的解码分支来预测房间的布局类型,类似于RoomNet。 预测器具有4个全连接(fc)层,其中包含1024、256、64和11个节点,中间之间有ReLU操作。 然后,预测的布局类型将确定检测到哪些角,并将这些角定位为拐角图中最可能的位置。 我们使用交叉熵损失来共同训练布局边界和拐角预测器。 为了简化训练,类似于3.3节中的过程。我们首先训练边界/拐角预测器,然后添加类型预测器分支并将所有组件一起训练。
4. 实验
实验部分不作详细介绍,只放图。
5 结论
我们提出了LayoutNet,这是一种从单个全景图或透视图图像预测房间布局的算法。 我们的方法放宽了通常假定的长方体布局限制,并适用于非长方体布局(例如“ L”形空间)。 我们演示了基于消失点和Manhattan约束的预对齐如何大大改善定量结果。 我们的方法直接在全景图像上运行(而不是分解为透视图图像),并且是透视图任务的最新技术。 未来的工作包括扩展以处理任意房间布局,合并对象检测以更好地估计房间形状以及恢复从单个图像恢复的完整3D室内模型。