实时3D感知系统中几何的表示仍然是一个关键的研究问题。 密集地图捕获完整的表面形状,并且可以使用语义标签进行扩充,但是它们的高维度使得它们在存储和处理时计算成本高,并且不适合于严格的概率推理。 稀疏的基于特征的表示避免了这些问题,但仅捕获部分场景信息,并且主要仅用于定位。 我们提出了一种新的简洁但密集的场景几何表示,它以单个图像的强度数据为条件,并由包含少量参数的代码生成。 我们的灵感来自于图像学习深度和自动编码器的工作。 我们的方法适用于基于关键帧的单眼密集SLAM系统:虽然每个带编码的关键帧都可以生成深度图,但代码可以与姿势变量一起有效地优化,并与重叠关键帧的编码一起优化,以实现全局一致性。 调整图像上的深度图允许编码仅表示不能从图像直接预测的局部几何的方面。 我们将解释如何学习编码表示,并展示其在单眼SLAM中的有利特性。
在这项工作中,我们通过在深度图像上训练自动编码器来实现密集场景几何的更通用的紧凑表示。 虽然简单的自动编码器可能会过度简化自然场景的重建,但我们的关键新颖之处在于调整强度图像的训练。 我们的方法计划适合基于通用且高度可扩展的基于关键帧的SLAM范例[16,9],其中场景地图由一组选定和估计的历史相机姿势以及相应的捕获图像和补充本地信息组成,例如 深度估计。 强度图像通常需要用于附加任务,例如用于位置识别或可视化的描述符匹配,因此可用于支持深度编码。 因此,关键帧的深度图估计变为相应强度图像和未知紧凑表示(此后称为“代码”)的函数。 这允许紧凑的深度表示而不牺牲重建细节。 在推理算法中,代码可以用作几何的密集表示,并且由于其有限的大小,这允许对多个重叠关键帧的相机姿势和密集深度图的完全联合估计。 我们可能会想到提供局部细节的图像和提供更多全局形状参数的代码,这些参数通常不能通过“单个图像的深度”学习来很好地预测。 但重要的是,这些全局形状参数不是设计的几何扭曲,而是具有倾向于与场景中的语义实体相关的学习空间,并且可以被视为在一般语义空间中实现优化的一个步骤。 我们的工作正值许多作者将深度学习技术与基于估算的SLAM框架相结合的时代,而且这种可能性非常丰富。在过去一年中,一些特别引人注目的工作重点是对具有惊人能力的网络的监督和自我监督培训,这些网络能够估计视频中的视觉测距,深度和其他数量[10,29,30,4,32, 31。这些方法在运行时以纯前馈网络运行方式运行,但依赖于几何和光度计算以及在训练时的理解,以正确地连接不同网络组件的损失函数。其他系统正在寻求通过不断改进几何估计来制作一致的长期地图,这是我们在这里更感兴趣的领域。在CNN-SLAM [28]中,单个图像深度预测和密集对齐用于生成密集的3D地图,这给出了有希望的结果,但是当多个关键帧重叠时,不可能进一步优化预测的深度图以保持一致性。在我们的方法。 贡献点:
通过在强度图像上调节深度自动编码器,推导出致密几何的紧凑且可优化的表示。实现第一个实时目标单眼系统,实现运动和密集几何的紧密联合优化。几何表示的两个重要特性是准确性和实用性。 虽然表示的准确性仅仅与其再现几何的能力有关,但实用性描述了表示在整个系统中的使用程度。 对于基于推理的SLAM系统,后者通常要求表示导致可优化的损失函数。 对于几何的表示G,损失函数L(G)应该是可微分的并且具有明确的最小值。 另外,应当限制表示G的大小,以便允许估计二阶统计矩(协方差矩阵)作为更强大的推断方法的一部分。 为了提出场景几何的紧凑表示,我们探索了类似自动编码器的网络架构。 自动编码器是一种网络,它试图学习身份映射,同时受到信息瓶颈的影响,这迫使网络找到数据的简洁的表示[24]。 在自动编码深度的天真尝试中,这将导致非常模糊的深度重建,因为只有深度图像的主要特征才能使其通过瓶颈(参见图2)。 然而,在单眼视觉设置中,我们可以访问强度图像,我们很可能将这些图像存储在每个关键帧旁边。 这可以用来使编码更有效:我们不需要编码完整的深度信息,而只需要保留无法从强度中检索的信息部分。 深度D因此成为图像I和(未知)代码c的函数: 上面的等式还突出了depth-form-mono架构[7,17,10,32]的关系,它解决了问题的无代码版本,D = D(I)。 从本质上讲,所采用的架构是Zhou等人的单体结构深度的组合。 [32]和深度的变分自动编码器。 我们选择了一个变分自动编码器网络[15],以增加代码和深度之间映射的平滑性:代码中的微小变化应该导致深度的微小变化。 虽然我们的表示的实用性因此通过平滑性和有限的代码大小来解决,但通过训练重建误差来最大化准确性。
图3中提供了网络架构的概述。顶部示出了应用于强度图像的U-Net [23],其首先计算输入图像的越来越粗糙但高维的特征表示。 接下来是带有跳过层的上采样部分。 然后使用计算的强度特征来对图的下部中的深度进行编码和解码。 这部分是一个相当标准的变分自动编码器架构,还有一个下采样部分和一个上采样部分。 嵌入在中间的是两个完全连接的层以及变分部分,它从高斯分布中对代码进行采样并且受到正则化成本的影响(KL-发散,见[15])。 通过简单地连接相应分辨率的强度特征来实现自动编码器的调节。 (图像说明)基于图像强度的变分深度自动编码器的网络结构。 我们使用U-Net将强度图像分解为卷积特征(图的上半部分)。 然后通过在相应的卷积(由箭头表示)之后将它们连接,将这些特征馈送到深度自动编码器中。 通过改变卷积的步幅来实现下采样,而上采样使用双线性插值(除了使用去卷积的最后一层之外)。 深度自动编码器瓶颈中的变分分量(var)由两个完全连接的层(每个512个输出通道)组成,然后计算均值和方差,然后从中对潜在空间进行采样。 网络在四个金字塔等级上输出深度的预测平均μ和不确定性b。 我们不是仅仅预测原始深度值,而是预测每个深度像素的平均μ和不确定性b。 不确定性仅从强度预测,因此不受代码的直接影响。 随后,我们通过评估观察到的深度 d ^ \hat d d^的负对数似然来推导出成本项。 这允许网络减少困难区域的成本并且集中于可以很好地解释的重建部分。 在测试时,学到的不确定性也可用于衡量重建的可靠性。 在目前的工作中,我们使用拉普拉斯分布,其尾部比传统的高斯分布更重: 抛弃常数偏移,负对数似然因此变为: 直观地,网络将调整像素方面的不确定性b,使得它在受到正则化项log(b)的同时最佳地衰减重建误差jd~-μj。 将可能性作为代价项是一种成熟的方法,并且之前已经应用于计算机视觉中的深度学习问题[12,3]。 与以前的工作类似,我们在多个分辨率下评估误差[32]。 为此,我们创建了一个具有四个级别的深度图像金字塔,并导出每个级别的每个像素的负对数似然。 我们将每个级别的权重增加4倍,以便考虑较低的像素数。 除了计算潜在分布和输出通道外,激活都设置为ReLu。 此外,为了允许预先计算雅可比行列式(参见4.1节),我们探索了深度解码器的身份激活。 但是,为了保持从图像到代码雅可比的影响,我们将每个连接的逐元素乘法加到连接本身。 即,我们增加每个连接[L1; 层L1和L2的L2]到[L1;L2; L1 L2]。