
# DeepFusion：基于单视图深度与梯度预测的实时密集三维重建单目SLAM系统

Tristan Laidlow、Jan Czarnowski和Stefan Leutenegger

摘要—虽然基于关键点的地图由稀疏单目同步定位与建图（SLAM）系统生成，可用于相机跟踪，但许多机器人任务往往需要密集的三维重建结果。依赖深度相机的解决方案受探测范围和室内环境的限制；而基于最小化帧间光度误差的密集重建系统通常约束性较差，且存在尺度模糊问题。为解决这些问题，我们提出了一种三维重建系统，该系统利用卷积神经网络（CNN）的输出为关键帧生成包含度量尺度的全密度深度图。

我们的系统DeepFusion能够在GPU上实现实时密集重建。它以概率方式将半密度多视图立体算法输出结果与CNN的深度及梯度预测结果进行融合，同时利用网络生成的学习到的不确定性参数。尽管该网络只需在每个关键帧运行一次，但我们仍能针对每一新帧优化深度图，从而持续利用新的几何约束。通过在合成数据集和真实世界数据集上的测试，我们证明DeepFusion的性能至少与其他同类系统相当。

## 一、引言

运动恢复结构（SfM）和视觉同步定位与建图（SLAM）系统的目标之一，是从移动相机中逐步创建三维场景重建结果。MonoSLAM [^1]、PTAM [^2]和ORB-SLAM [^3]等稀疏SLAM系统会生成关键点的稀疏三维地图。虽然这些特征对相机跟踪很有用，但出于安全的机器人导航、增强现实和操作任务的需要，人们往往更青睐密集重建结果。DTAM [^4]和REMODE [^5]等密集重建系统通常通过优化深度值来最小化多帧间的光度误差，进而生成密集的场景表示。遗憾的是，由于遮挡、同质或重复纹理的存在，通过最小化光度误差来进行深度估计的约束性较差。为解决这一问题，密集重建系统通常会采用基于平面([^6] [^7] [^8] [^9] [^10])或平滑性假设([^4]、[^5])的正则化方法。LSD-SLAM [^11]通过仅重建具有强图像梯度的点来解决这一问题，但因此只能生成半密度重建结果。单目重建系统还存在固有的尺度模糊问题，因为仅凭借图像对应关系无法确定相机的平移量。

![Image](images/0c7d833a21eb170daf1dbbc663feacaa7a4ba7ad16e00ca1a9743c98b67365b0.jpg)

<div style="text-align: center;">Fig. 1: Fusing the depth predictions of a semi-dense multi-view stereo system with the depth and gradient predictions of a CNN allows for the creation of fully dense depth maps at scale. The above projected keyframe depth map was created by DeepFusion from only pose estimates and RGB images.</div>

仅依靠图像对应关系无法确定相机的平移量。通过将基于视觉的测量数据与惯性测量单元（IMU）的读数融合，可以解决这种尺度模糊问题；但在加速度较低的情况下（例如相机静止时），使用低等级IMU时尺度实际上无法被观测到。在单目密集重建中解决这些问题的一种方法是使用深度相机（[^12]和[^13]采用的便是这种方法），但深度相机的探测范围有限，功耗更高，且通常无法在户外或强光环境下工作。

近年来，随着深度学习在计算机视觉领域的快速发展，人们提出了多种基于数据的密集重建方法。可以推测，这些系统中使用的网络能够利用从观测到的物体及其空间关系中习得的知识，来预测场景的结构。虽然许多方法主张采用完全端到端的框架（例如，[^14] [^15] [^16] [^17] [^18] [^19]），但也有一些研究证明了结合几何约束与学习先验的优势。如[^20]所示，基于几何的系统在图像梯度较大的区域（通常是物体边缘）表现最佳，但在纹理较少的内部区域则表现不佳；而基于学习的系统虽然在内部点上的表现尚可，却会使物体边缘变得模糊。尽管有证据表明它们具有互补性，

---

但这种将学习与几何相结合的最佳方法仍是一个未解决的问题。例如，在[^21]中，作者基于DTAM构建了一个单目密集SLAM系统，但他们利用CNN输出的表面法线预测作为深度图的强先验，而非使用平滑正则化项。其他方法则将几何重建结果作为输入给网络，随后要么“填补”缺失的深度数据[^22]，要么对它们进行细化[^23]。

在重建流程中将网络用作最终阶段存在一个问题：每次底层几何信息更新时，都必须计算一次耗时的网络运算，这对于实时增量式系统而言可能慢得无法接受。因此，人们提出了许多利用网络深度预测结果并结合几何约束进行细化的方法。在[^20]中，作者为每个关键帧计算网络深度预测值，并随新帧的到来更新半密集的多视图立体深度图。随后根据与图像结构相关的一组可调权重对两种深度估计结果进行插值。另一种方法[^24]会为每个关键帧图像预测表面法线和遮挡边界，进而尝试填补深度相机输出中的缺失值。遗憾的是，其求解时间太长，无法应用于增量式SLAM系统。在[^25]中，人们利用CRF来细化回归结果。在[^26]中——该研究对我们的工作启发极大——作者利用全连接CRF以及由单目SLAM系统生成的稀疏3D点集所对应的网络预测不确定性，成功实现了精确的密集重建。不过，由于他们利用单目系统的输出来约束密集重建，生成的深度图在尺度上存在歧义。在我们的工作中，我们采用了通过深度梯度预测来关联重建中相邻像素以维持全局一致性的思路，并将其扩展至绝对尺度的估计。或许与我们最相似的工作是CNN-SLAM [^27]，它利用网络为每个关键帧预测具有真实尺度的深度图，再通过小基线立体约束实时对其进行细化。不过，CNN-SLAM中的细化是逐像素进行的，因此无法保持全局一致性。

在本文中，我们提出了DeepFusion——一种3D重建系统。该系统能够利用RGB图像以及单目SLAM系统提供的尺度模糊姿态信息，实时生成大规模的密集深度图。我们利用网络预测的深度梯度作为相邻像素的约束条件，以确保重建结果的全局一致性；同时借助学习到的不确定性信息，以概率方式融合不同模态的数据。请参见图1以获取关键帧重建的示例。

### 二、方法

在本节中，我们将介绍用于实时生成大规模密集重建结果的系统。请参见图2以了解DeepFusion框架的整体结构。

DeepFusion通过一系列关键帧深度图来表示所观测到的几何结构。每接收到一张新的RGB图像时，系统会从单目SLAM系统（在我们的实现中为ORB-SLAM2 [^3]）中获取相机姿态，随后采用[^28]中描述的方法，更新当前活动关键帧的半密集深度估计值。如果相机移动距离超过$\lambda_{trans}$，或者半密集估计中的内点数量少于$\lambda_{inliers}$，则会创建一个新的关键帧。

为了保持较高的帧率，我们的网络输出仅每个关键帧生成一次。利用卷积神经网络，我们从新关键帧图像中预测对数深度、对数深度梯度以及相关的不确定性。与[^26]和[^29]的做法类似，我们预测对数深度而非深度或逆深度，因为这样在数值上更利于网络预测（负值具有实际意义），而且两个对数深度之差（即对数深度图像的梯度）恰好等于两个深度的比值，这一特性具有尺度不变性。我们还选择预测图像平面上x方向和y方向的对数深度梯度，而非表面法线，以维持优化问题的线性特征，从而避免进行点积和归一化运算。单视图深度预测是一个高度欠约束的问题，实践中网络似乎更容易对精细的局部几何结构做出准确预测，而非精确的像素级深度值。基于这一原因，我们分别预测绝对对数深度值和对数深度梯度，目的是区分不确定性，以反映网络在这两项任务上的能力差异。

如果没有创建新的关键帧，则将当前的半密集深度图与网络输出结果进行融合，从而更新现有的深度图。

### A. 网络架构

在我们的网络中，采用了U-Net [^30]风格的架构，其维度与[^31]中使用的架构相同；不过我们额外增加了三个相同的解码器，以便除了预测对数深度外，还能预测对数深度不确定性、对数深度梯度以及对数深度梯度不确定性。所有输入和输出的分辨率均为$256 \times 192$。

为了将网络输出结果与半密集多视图立体视觉系统给出的估计值进行融合，我们需要为对数深度图像和梯度图像中的每个像素确定对应的不确定性。为此，我们采用[^32]中描述的方法，让网络通过最大似然代价函数同时学习预测均值和方差：

 $$ \mathcal{L}_{\mathrm{N N}}(\boldsymbol{\theta})=\sum_{i}\frac{\left(y_{i}-f_{\boldsymbol{\theta},i}(\mathbf{x})\right)^{2}}{\sigma_{\boldsymbol{\theta},i}(\mathbf{x})^{2}}+\log(\sigma_{\boldsymbol{\theta},i}(\mathbf{x})^{2}), $$

其中 $\theta$ 表示网络权重集合，$\mathbf{x}$ 表示输入像素集合，$y_i$ 表示像素 i 的真实值，而 $f_{\theta,i}(\mathbf{x})$ 和 $\sigma_{\theta,i}(\mathbf{x})^2$ 则分别是网络对均值和方差的预测值。总损失即为每个输出图像的该损失函数之和。

与 [^31] 类似，我们基于SceneNet RGB-D数据集 [^33] 来训练网络，该数据集包含500万个渲染的室内场景。

---

![Image](images/c7b68bdc25c5bb2dd1aa39cafecd843ca5f4ebd6716233a9b2218d53518e6cd3.jpg)

<div style="text-align: center;">Fig. 2: The DeepFusion framework.</div>

我们训练网络以预测经过SceneNet相机焦距归一化处理后的对数深度值。与CNN-SLAM [^27] 的做法一致，我们会根据测试时所用相机的焦距对网络输出的对数深度预测值进行缩放，从而能够恢复具有不同内参的相机所拍摄图像的绝对尺度。由于所有预测均在对数空间中进行，因此代表深度比的梯度和不确定性无需额外缩放。

### B. 半稠密估计

对于我们的半稠密多视图立体组件，我们采用了源自 [^28] 的深度估计方法。在纹理充足的关键帧中，针对每个像素 $\mathbf{x}_i$，我们会在极线上搜索能使五个等间距点的平方差之和最小的深度值 $\mathbf{d}_{\text{semi},i}$。若该像素已有当前的深度估计值，则搜索范围限定为 $\mathbf{d}_{\text{semi},i} \pm 2\sigma_{\text{semi},i}$；否则，搜索范围将覆盖整条极线。给定关键帧中的某个像素 $\mathbf{x}_i$，以及关键帧（$T_{WC_0}$）和参考帧（$T_{WC_1}$）的估计位姿，其光度误差可表示为：

 $$ \begin{array}{r}{e_{i}=I_{1}\left(\mathbf{\pi}\left(\mathbf{K}\mathbf{T}_{W C_{1}}^{-1}\mathbf{T}_{W C_{0}}\rho(\mathbf{x}_{i},\mathbf{d}_{\mathrm{s e m i},i})\right)\right)-I_{0}(\mathbf{x}_{i}),}\end{array} $$

其中 $I_{*}(\cdot)$ 是一个返回指定像素强度值的标量函数，$\pi(\cdot)$ 是投影与去齐次化函数，$\rho(\mathbf{x}_{i}, \mathbf{d}_{\text{semi},i})$ 是反向投影函数，用于为像素 $\mathbf{x}_{i}$ 及深度 $\mathbf{d}_{\text{semi},i}$ 返回一个齐次三维点，K则是相机内参矩阵。

我们通过有限差分法来近似误差函数 J 的雅可比矩阵：

 $$ \mathbf{J}\approx\frac{1}{\Delta\mathbf{d}_{\mathrm{s e m i},i}}\Delta\mathbf{e}, $$

其中 $\mathbf{e}$ 是包含五个点对应光度误差的 $5 \times 1$ 向量。在极线上搜索最小值时，我们采用长度为1像素的等步长进行搜索。一旦找到最小值，便会在两个步长之间进行插值，以得到亚像素级别的最优深度。插值两端的光度误差之差为 $\Delta \mathbf{e}$，这两点处的深度差则为 $\Delta \mathbf{d}_{\text{semi},i}$。

随后，我们通过以下方式近似每个半稠密测量值的不确定性：

 $$ \sigma_{i}^{2}=(\mathbf{J}^{T}\mathbf{J})^{-1}. $$

半稠密深度估计值及其不确定性随后会被转换到对数空间，以便与网络输出保持一致。

### C. 优化

为了更新当前的深度预测结果，我们会针对每一帧最小化由三项组成的下述代价函数：

 $$ c(\mathbf{d},s)=c_{\mathrm{s e m i}}(\mathbf{d},s)+c_{\mathrm{n e t}}(\mathbf{d})+c_{\mathrm{g r a d}}(\mathbf{d}), $$

其中 d 表示待估计的对数深度值集合，s 则表示尺度校正因子。

半稠密代价项会对已估算出有效半稠密对数深度值的像素集施加一元约束：

 $$ \begin{aligned}\boldsymbol{c}_{\mathrm{semi}}(\mathbf{d},s)&=\mathbf{r}_{\mathrm{semi}}^{T}(\mathbf{d},s)\mathbf{R}_{\mathrm{semi}}^{-1}\mathbf{r}_{\mathrm{semi}}(\mathbf{d},s),\\\mathbf{r}_{\mathrm{semi},i}(\mathbf{d}_{i},s)&=\ln\mathbf{d}_{i}-\ln s-\ln\mathbf{d}_{\mathrm{semi},i},\end{aligned} $$

其中 $\mathbf{R}_{\text{semi},i} = \sigma_i^2$ 是由公式(2)给出的近似估计所得到的不确定性，而 $\ln d_{\text{semi},i}$ 则是半稠密系统对像素i预测的尺度模糊对数深度。由于半稠密对数深度估计是基于单目SLAM系统提供的位姿计算得出的，因此它们具有任意的尺度。由于我们希望估计的深度图 $\mathbf{d}$ 需要确定尺度，因此我们还需要求解一个尺度校正因子s。借助全稠密的逐像素代价项 $c_{\text{net}}$，这个尺度校正因子便变得可观测。

网络深度代价项会对融合深度图中的所有像素施加额外的单目约束：

 $$ \begin{aligned}\boldsymbol{c}_{\mathrm{net}}(\mathbf{d})&=\mathbf{r}^{T}_{\mathrm{net}}(\mathbf{d})\mathbf{R}^{-1}_{\mathrm{net}}\mathbf{r}_{\mathrm{net}}(\mathbf{d}),\\\mathbf{r}_{\mathrm{net},i}(\mathbf{d}_{i})&=\ln\mathbf{d}_{i}-\ln\mathbf{d}_{\mathrm{net},i},\end{aligned} $$

其中 $\mathbf{R}_{\mathrm{net},i} = \sigma_{\theta,\mathrm{depth},i}^2(\mathbf{x})$ 是网络预测的不确定性（见公式(1)），$\ln \mathbf{d}_{\mathrm{net},i}$ 则是网络对像素i的对数深度预测值。尽管网络对任何像素的绝对深度可能存在较高的不确定性（由于不确定性依赖于输入图像，因此会随图像与训练数据的相似程度而变化），但该代价项为场景的绝对尺度提供了弱先验信息，从而帮助我们估计尺度校正因子s。

为了在融合半稠密深度值与网络预测深度值时保持全局一致性，我们引入了一个额外的代价项，该代价项会对给定像素及其四个相邻像素之间施加成对约束：

 $$ \begin{aligned}c_{\mathrm{grad}}(\mathbf{d})&=\mathbf{r}^{T}_{\mathrm{grad},\mathrm{x}}(\mathbf{d})\mathbf{R}^{-1}_{\mathrm{grad},\mathrm{x}}\mathbf{r}_{\mathrm{grad},\mathrm{x}}(\mathbf{d})\\&+\mathbf{r}^{T}_{\mathrm{grad},\mathrm{y}}(\mathbf{d})\mathbf{R}^{-1}_{\mathrm{grad},\mathrm{y}}\mathbf{r}_{\mathrm{grad},\mathrm{y}}(\mathbf{d})\end{aligned} $$

 $$ \mathbf{r}_{\mathrm{grad},\mathrm{x},i}(\mathbf{d}_{i+1},\mathbf{d}_{i})=\ln\mathbf{d}_{i+1}-\ln\mathbf{d}_{i}-\mathbf{g}_{\mathrm{x},i} $$

 $$ \mathbf{r}_{\mathrm{grad},\mathrm{y},i}(\mathbf{d}_{i+\mathrm{W}},\mathbf{d}_{i})=\ln\mathbf{d}_{i+\mathrm{W}}-\ln\mathbf{d}_{i}-\mathbf{g}_{\mathrm{y},i} $$

---

其中W为图像宽度，$\mathbf{g}_{\mathbf{x},i}$ 和 $\mathbf{g}_{\mathbf{y},i}$ 分别是网络预测的x方向和y方向的对数深度梯度，而 $\mathbf{R}_{\mathrm{grad},\mathbf{x},i} = \sigma_{\theta,\mathrm{grad},\mathbf{x},i}^{2}(\mathbf{x})$ 和 $\mathbf{R}_{\mathrm{grad},\mathbf{y},i} = \sigma_{\theta,\mathrm{grad},\mathbf{y},i}^{2}(\mathbf{x})$ 则是相应的预测不确定性（见公式(1)）。

半稠密深度估计结果可能包含大量噪声，网络预测也可能会出现极端异常值，这些因素都会对最终重建结果产生显著影响。因此，我们对每个代价项都采用了Huber损失函数。

我们使用Opt [^34] 优化框架来求解该系统。在Opt中，我们为代价函数中的每一项定义能量函数，这些函数随后会被自动编译为GPU优化内核。我们执行10次高斯-牛顿迭代，交替求解深度值和尺度参数。借助这种设置，我们能够实时为每一帧图像求解该系统。

### III. 实验结果

### A. 定性结果

图3展示了ICL-NUIM [^35] 和TUM RGB-D [^36] 数据集上选定关键帧的一些定性结果。将网络深度预测结果与最终融合深度图进行对比可以发现，纳入来自半稠密深度估计的几何约束以及来自梯度预测的像素间成对约束后，得到的深度图具有更好的全局一致性，且模糊伪影更少。

图4展示了SceneNet RGB-D数据集 [^33] 中样本图像的网络输出结果。梯度图像相关的不确定性在图像梯度较大的区域明显更大，这表明网络已经学会识别这些区域往往对应深度不连续处或深度梯度的快速变化。

### B. 重建评估

我们通过将重建流程与CNN-SLAM [^27] 的结果进行比较来评估该流程，CNN-SLAM是一种最先进的系统，它能够融合网络预测结果与几何约束，从而生成完全稠密的深度图。遵循CNN-SLAM的评估流程，我们还将我们的结果与基于稀疏特征的单目系统（ORB-SLAM2 [^3]）、半稠密几何系统（LSD-SLAM [^11]）、完全稠密重建方法（REMODE [^5]）以及纯深度学习方法（Laina等人 [^16]）生成的深度图进行对比。

由于撰写本文时尚未有开源版本的CNN-SLAM可供使用，我们便在[^27]所使用的相同序列上评估DeepFusion，并与他们报告的结果进行对比。用于对比的序列来自两个不同的数据集：合成的ICL-NUIM RGB-D数据集 [^35] 和真实的TUM RGB-D SLAM数据集 [^36]。ICL-NUIM数据集提供了渲染的深度图作为基准对比，而TUM RGB-D数据集则通过Kinect深度相机图像来近似这一基准。

按照[^27]提出的方案，我们统计估计深度值与对应真实深度值相差在10%以内的比例，以此评估重建的精度与密度。

结果如表I所示。虽然DeepFusion与CNN-SLAM的整体性能大致相当，但这种性能在两个数据集上的分布并不均匀。在六个ICL-NUIM序列中，DeepFusion在四个序列上的表现最佳；而在三个TUM RGB-D序列中，CNN-SLAM在两个序列上的表现最优。出现这种情况的原因很可能与两个系统所用的训练数据有关。我们的网络是在合成的SceneNet数据集 [^33] 上训练的，而CNN-SLAM使用的则是[^16]中描述的、在Kinect采集的NYUv2数据集 [^37] 上训练的网络。此外，用于对比的两个TUM RGB-D序列中，摄像机是在贴有海报的平面上来回移动，这些场景对网络而言似乎缺乏可利用的语义信息。这些结果凸显了让网络训练数据与系统部署领域尽可能匹配的重要性。尽管DeepFusion和CNN-SLAM的性能明显优于仅依赖几何信息的系统，但Laina等人 [^16] 提出的基于学习的方法也表现出色，在九个序列中有两个序列上表现最佳。这体现了基于学习的方法的强大能力，但归根结底，能够同时利用两种模态信息的系统整体表现最佳。

### C. 尺度优化评估

虽然我们在优化问题中纳入了网络预测的对数深度值，以求解重建的绝对尺度，但还有其他替代方法。例如，在[^21]中，作者们首先预测出尺度不确定的重建结果，然后通过寻找与网络预测深度图的最小二乘拟合来确定重建结果的尺度。我们方法的优势在于，在进行融合时，能够利用半稠密估计值与网络预测值之间的相对不确定性。

为了证明我们的方法能产出更好的结果，我们实现了一个DeepFusion版本：该版本仅利用代价函数中的半密集项和梯度项来优化尺度模糊的深度图，随后将网络预测的深度与之进行最小二乘拟合，并在用于重建评估的序列上测试其性能。相关结果如表II所示。在九个序列中，有七个序列里我们的方法优于最小二乘后处理方法。

### D. 全局一致性评估

DeepFusion与CNN-SLAM [^27] 之间的主要区别之一在于：DeepFusion会对相邻像素施加成对约束，以确保优化后的深度图具备全局一致性。

为证明加入这些约束确实有助于生成更精确的重建结果，我们实现了另一个DeepFusion版本：该版本仅利用网络预测的对数深度、半密集对数深度估计值及其相关不确定性，来优化具有绝对尺度的深度图。我们在重建评估所用的序列上测试了该版本的性能。相关结果如表III所示。在九个序列中，有七个……

---

![Image](images/6be0968f460b2a3d16475c4c3a6fbe9182d42a180cdb5224c51b7ee940bd8216.jpg)

<div style="text-align: center;">Fig. 3: Qualitative results for selected keyframes on the ICL-NUIM Office2 (top), ICL-NUIM LivingRoom1 (middle) and TUM RGB-D fr2\_desk (bottom) sequences. From left to right: input image, ground truth depth, semi-dense depth estimate, network depth prediction, network depth gradient prediction in the x-direction, network depth gradient prediction in the y-direction, and the optimised depth map.</div>

![Image](images/c2066bb947f602d6fafca83a8859bde8167ef3ee1477fe36439218a7bd1ad362.jpg)

<div style="text-align: center;">Fig. 4: Example network predictions on sample images from the SceneNet RGB-D dataset. From left to right: input image, log-depth prediction, log-depth uncertainty prediction, log-depth gradient prediction in the x-direction, log-depth gradient in the y-direction uncertainty prediction, log-depth gradient prediction in the y-direction uncertainty prediction.</div>

<div style="text-align: center;">TABLE I: Comparison of reconstruction accuracy in terms of percentage of correct depth values (within 10% of ground truth) on ICL-NUIM and TUM RGB-D datasets (TUM/seq1: fr3/long_office_household, TUM/seq2: fr3_nostructure_texture_near_withloop, TUM/seq3: fr3/structure_texture_far). LSD-SLAM (BS) is LSD-SLAM bootstrapped with a ground truth depth map, and REMODE uses LSD-SLAM (BS) poses and keyframes.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Sequence</td><td style='text-align: center; word-wrap: break-word;'>DeepFusion</td><td style='text-align: center; word-wrap: break-word;'>CNN-SLAM [^27]</td><td style='text-align: center; word-wrap: break-word;'>LSD-SLAM (BS) [^11]</td><td style='text-align: center; word-wrap: break-word;'>LSD-SLAM [^11]</td><td style='text-align: center; word-wrap: break-word;'>ORB-SLAM [^3]</td><td style='text-align: center; word-wrap: break-word;'>Laina [^16]</td><td style='text-align: center; word-wrap: break-word;'>REMODE [^5]</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office0</td><td style='text-align: center; word-wrap: break-word;'>21.090</td><td style='text-align: center; word-wrap: break-word;'>19.410</td><td style='text-align: center; word-wrap: break-word;'>0.603</td><td style='text-align: center; word-wrap: break-word;'>0.335</td><td style='text-align: center; word-wrap: break-word;'>0.018</td><td style='text-align: center; word-wrap: break-word;'>17.194</td><td style='text-align: center; word-wrap: break-word;'>4.479</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office1</td><td style='text-align: center; word-wrap: break-word;'>37.420</td><td style='text-align: center; word-wrap: break-word;'>29.150</td><td style='text-align: center; word-wrap: break-word;'>4.759</td><td style='text-align: center; word-wrap: break-word;'>0.038</td><td style='text-align: center; word-wrap: break-word;'>0.023</td><td style='text-align: center; word-wrap: break-word;'>20.838</td><td style='text-align: center; word-wrap: break-word;'>3.132</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office2</td><td style='text-align: center; word-wrap: break-word;'>30.180</td><td style='text-align: center; word-wrap: break-word;'>37.226</td><td style='text-align: center; word-wrap: break-word;'>1.435</td><td style='text-align: center; word-wrap: break-word;'>0.078</td><td style='text-align: center; word-wrap: break-word;'>0.040</td><td style='text-align: center; word-wrap: break-word;'>30.639</td><td style='text-align: center; word-wrap: break-word;'>16.708</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living0</td><td style='text-align: center; word-wrap: break-word;'>24.223</td><td style='text-align: center; word-wrap: break-word;'>12.840</td><td style='text-align: center; word-wrap: break-word;'>1.443</td><td style='text-align: center; word-wrap: break-word;'>0.360</td><td style='text-align: center; word-wrap: break-word;'>0.027</td><td style='text-align: center; word-wrap: break-word;'>15.008</td><td style='text-align: center; word-wrap: break-word;'>4.479</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living1</td><td style='text-align: center; word-wrap: break-word;'>14.001</td><td style='text-align: center; word-wrap: break-word;'>13.038</td><td style='text-align: center; word-wrap: break-word;'>3.030</td><td style='text-align: center; word-wrap: break-word;'>0.057</td><td style='text-align: center; word-wrap: break-word;'>0.021</td><td style='text-align: center; word-wrap: break-word;'>11.449</td><td style='text-align: center; word-wrap: break-word;'>2.427</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living2</td><td style='text-align: center; word-wrap: break-word;'>25.235</td><td style='text-align: center; word-wrap: break-word;'>26.560</td><td style='text-align: center; word-wrap: break-word;'>1.807</td><td style='text-align: center; word-wrap: break-word;'>0.167</td><td style='text-align: center; word-wrap: break-word;'>0.014</td><td style='text-align: center; word-wrap: break-word;'>33.010</td><td style='text-align: center; word-wrap: break-word;'>8.681</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq1</td><td style='text-align: center; word-wrap: break-word;'>8.069</td><td style='text-align: center; word-wrap: break-word;'>12.477</td><td style='text-align: center; word-wrap: break-word;'>3.797</td><td style='text-align: center; word-wrap: break-word;'>0.086</td><td style='text-align: center; word-wrap: break-word;'>0.031</td><td style='text-align: center; word-wrap: break-word;'>12.982</td><td style='text-align: center; word-wrap: break-word;'>9.548</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq2</td><td style='text-align: center; word-wrap: break-word;'>14.774</td><td style='text-align: center; word-wrap: break-word;'>24.077</td><td style='text-align: center; word-wrap: break-word;'>3.966</td><td style='text-align: center; word-wrap: break-word;'>0.882</td><td style='text-align: center; word-wrap: break-word;'>0.059</td><td style='text-align: center; word-wrap: break-word;'>15.412</td><td style='text-align: center; word-wrap: break-word;'>12.651</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq3</td><td style='text-align: center; word-wrap: break-word;'>27.200</td><td style='text-align: center; word-wrap: break-word;'>27.396</td><td style='text-align: center; word-wrap: break-word;'>6.449</td><td style='text-align: center; word-wrap: break-word;'>0.035</td><td style='text-align: center; word-wrap: break-word;'>0.027</td><td style='text-align: center; word-wrap: break-word;'>9.450</td><td style='text-align: center; word-wrap: break-word;'>6.739</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Avg.</td><td style='text-align: center; word-wrap: break-word;'>22.466</td><td style='text-align: center; word-wrap: break-word;'>22.464</td><td style='text-align: center; word-wrap: break-word;'>3.032</td><td style='text-align: center; word-wrap: break-word;'>0.226</td><td style='text-align: center; word-wrap: break-word;'>0.029</td><td style='text-align: center; word-wrap: break-word;'>18.452</td><td style='text-align: center; word-wrap: break-word;'>7.649</td></tr></table>

---

<div style="text-align: center;">TABLE II: Comparison of scale estimation methods in DeepFusion in terms of percentage of correct depth values (within 10% of ground truth) on ICL-NUIM and TUM RGB-D datasets (TUM/seq1: fr3/long_office_household, TUM/seq2: fr3_nostructure_texture_near_withloop, TUM/seq3: fr3/structure_texture_far). "Least Squares for Scale Estimation" shows the results when using least squares to align a scale-ambiguous estimation with the network depth prediction to estimate a scaled depth map for each keyframe.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Sequence</td><td style='text-align: center; word-wrap: break-word;'>DeepFusion</td><td style='text-align: center; word-wrap: break-word;'>Least Squares for Scale Estimation</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office0</td><td style='text-align: center; word-wrap: break-word;'>21.090</td><td style='text-align: center; word-wrap: break-word;'>18.135</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office1</td><td style='text-align: center; word-wrap: break-word;'>37.420</td><td style='text-align: center; word-wrap: break-word;'>26.415</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office2</td><td style='text-align: center; word-wrap: break-word;'>30.180</td><td style='text-align: center; word-wrap: break-word;'>31.359</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living0</td><td style='text-align: center; word-wrap: break-word;'>24.223</td><td style='text-align: center; word-wrap: break-word;'>23.861</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living1</td><td style='text-align: center; word-wrap: break-word;'>14.001</td><td style='text-align: center; word-wrap: break-word;'>10.372</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living2</td><td style='text-align: center; word-wrap: break-word;'>25.235</td><td style='text-align: center; word-wrap: break-word;'>22.082</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq1</td><td style='text-align: center; word-wrap: break-word;'>8.069</td><td style='text-align: center; word-wrap: break-word;'>9.690</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq2</td><td style='text-align: center; word-wrap: break-word;'>14.774</td><td style='text-align: center; word-wrap: break-word;'>14.490</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq3</td><td style='text-align: center; word-wrap: break-word;'>27.200</td><td style='text-align: center; word-wrap: break-word;'>24.047</td></tr></table>

<div style="text-align: center;">TABLE III: Analysis on the importance of pairwise constraints on reconstruction accuracy in terms of percentage of correct depth values (within 10% of ground truth) on ICL-NUIM and TUM RGB-D datasets (TUM/seq1: fr3/long_office_household, TUM/seq2: fr3_nostructure_texture_near_withloop, TUM/seq3: fr3/structure_texture_far). "No Pairwise Constraints" shows the results when fusing together only the semi-dense and network log-depth values.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'>Sequence</td><td style='text-align: center; word-wrap: break-word;'>DeepFusion</td><td style='text-align: center; word-wrap: break-word;'>No Pairwise Constraints</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office0</td><td style='text-align: center; word-wrap: break-word;'>21.090</td><td style='text-align: center; word-wrap: break-word;'>16.641</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office1</td><td style='text-align: center; word-wrap: break-word;'>37.420</td><td style='text-align: center; word-wrap: break-word;'>24.633</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/office2</td><td style='text-align: center; word-wrap: break-word;'>30.180</td><td style='text-align: center; word-wrap: break-word;'>30.899</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living0</td><td style='text-align: center; word-wrap: break-word;'>24.223</td><td style='text-align: center; word-wrap: break-word;'>21.643</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living1</td><td style='text-align: center; word-wrap: break-word;'>14.001</td><td style='text-align: center; word-wrap: break-word;'>12.774</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>ICL/living2</td><td style='text-align: center; word-wrap: break-word;'>25.235</td><td style='text-align: center; word-wrap: break-word;'>21.772</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq1</td><td style='text-align: center; word-wrap: break-word;'>8.069</td><td style='text-align: center; word-wrap: break-word;'>9.469</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq2</td><td style='text-align: center; word-wrap: break-word;'>14.774</td><td style='text-align: center; word-wrap: break-word;'>14.187</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>TUM/seq3</td><td style='text-align: center; word-wrap: break-word;'>27.200</td><td style='text-align: center; word-wrap: break-word;'>23.584</td></tr></table>

序列里，我们的方法都优于未强制要求全局一致性的方法。

### E. 时间性能评估

为展示我们系统的实时处理能力，我们在表IV中列出了各组件的大致运行时间。这些运行时间是基于我们使用Intel Core i7-5820K CPU和GeForce GTX 980 GPU的实现结果得出的。

### IV. 结论

我们提出了DeepFusion系统，该系统能够实时生成尺度一致的密集3D重建结果。通过构建包含基于网络深度预测的逐像素损失项的代价函数，

<div style="text-align: center;">TABLE IV: Approximate timing information for key components in the DeepFusion system.</div>

<table border=1 style='margin: auto; word-wrap: break-word;'><tr><td style='text-align: center; word-wrap: break-word;'></td><td style='text-align: center; word-wrap: break-word;'>Semi-Dense</td><td style='text-align: center; word-wrap: break-word;'>Optimisation</td><td style='text-align: center; word-wrap: break-word;'>Network Prediction</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Mean</td><td style='text-align: center; word-wrap: break-word;'>16ms</td><td style='text-align: center; word-wrap: break-word;'>33ms</td><td style='text-align: center; word-wrap: break-word;'>45ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Min</td><td style='text-align: center; word-wrap: break-word;'>1ms</td><td style='text-align: center; word-wrap: break-word;'>26ms</td><td style='text-align: center; word-wrap: break-word;'>44ms</td></tr><tr><td style='text-align: center; word-wrap: break-word;'>Max</td><td style='text-align: center; word-wrap: break-word;'>43ms</td><td style='text-align: center; word-wrap: break-word;'>47ms</td><td style='text-align: center; word-wrap: break-word;'>47ms</td></tr></table>

结合稀疏的半密集深度估计值，以及来自网络深度梯度预测的成对约束，我们便能同时估算出观测场景的形状及其绝对尺度。通过预测逐像素的均值和方差，我们能获取所有网络输出的不确定性信息，并以概率方式将其与几何约束融合在一起。由于DeepFusion每个关键帧仅需运行一次网络，因此能够保持实时处理能力。

通过在合成数据集和真实数据集上进行的一系列实验，我们证明DeepFusion的性能至少与其他同类系统相当。此外，通过一系列消融研究，我们证实了将网络深度输出作为优化过程中的逐像素约束、并利用成对约束来强制实现全局一致性，对于估算深度图的尺度具有重要价值。

在未来的工作中，我们将更深入地探究某些设计选择对算法性能的影响，以此改进DeepFusion。例如，正如我们与CNN-SLAM对比时所发现的那样，训练数据的选择及其与测试环境的相似度，很可能会对最终重建质量产生重大影响。究竟应选用哪种训练数据集，以及如何确保预测的不确定性能反映训练环境与测试环境之间的差异，仍是尚未解决的问题。

与网络预测及其相关不确定性相关的一个问题是：如何处理网络可能产生的极端异常值。在DeepFusion中，优化过程采用了一种鲁棒的成本函数（具体来说就是Huber损失函数）来处理这一问题。至于其他对极端异常值惩罚力度较小的成本函数（如Tukey函数）是否能带来更好的性能，仍有待验证。

最后，与所有其他基于关键帧的SLAM系统一样，在选择关键帧筛选标准时需要考虑诸多权衡因素。当基于几何的深度估计与基于学习的预测相结合时，这些权衡会受到怎样的影响，还有待进一步研究。

## 参考文献

[^1]: A. J. Davison, N. D. Molton, I. Reid, and O. Stasse, “MonoSLAM: Real-Time Single Camera SLAM,” IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), vol. 29, no. 6, pp. 1052–1067, 2007.

## [^2]: G. Klein and D. W. Murray, “Parallel Tracking and Mapping on a Camera Phone,” in Proceedings of the International Symposium on Mixed and Augmented Reality (ISMAR), 2009

---

[^3]: R. Mur-Artal and J. D. Tardós, "ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras," IEEE Transactions on Robotics (T-RO), vol. 33, no. 5, pp. 1255–1262, 2017.

[^4]: R. A. Newcombe, S. Lovegrove, and A. J. Davison, “DTAM: Dense Tracking and Mapping in Real-Time,” in Proceedings of the International Conference on Computer Vision (ICCV), 2011.

[^5]: M. Pizzoli, C. Forster, and D. Scaramuzza, “REMODE: Probabilistic, monocular dense reconstruction in real time,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2014.

[^6]: A. Flint, D. W. Murray, and I. Reid, “Manhattan Scene Understanding Using Monocular, Stereo, and 3D Features,” in Proceedings of the International Conference on Computer Vision (ICCV), 2011.

[^7]: V. Pradeep, C. Rhemann, S. Izadi, C. Zach, M. Bleyer, and S. Bathiche, “MonoFusion: Real-time 3D reconstruction of small scenes with a single web camera,” in Proceedings of the International Symposium on Mixed and Augmented Reality (ISMAR), 2013, pp. 83–88.

[^8]: A. Concha, W. Hussain, L. Montano, and J. Civera, “Manhattan and piecewise-planar constraints for dense monocular mapping,” in Proceedings of Robotics: Science and Systems (RSS), 2014.

[^9]: A. Concha and J. Civera, “Using superpixels in monocular SLAM,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2014, pp. 365–372.

[^10]: —, “DPPTAM: Dense Piecewise Planar Tracking and Mapping from a monocular sequence,” in Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (IROS). IEEE, 2015.

[^11]: J. Engel, T. Schoeps, and D. Cremers, "LSD-SLAM: Large-scale direct monocular SLAM," in Proceedings of the European Conference on Computer Vision (ECCV), 2014.

[^12]: R. A. Newcombe, S. Izadi, O. Hilliges, D. Molyneaux, D. Kim, A. J. Davison, P. Kohli, J. Shotton, S. Hodges, and A. Fitzgibbon, "KinectFusion: Real-Time Dense Surface Mapping and Tracking," in Proceedings of the International Symposium on Mixed and Augmented Reality (ISMAR), 2011.

[^13]: C. Kerl, J. Sturm, and D. Cremers, “Dense visual SLAM for RGB-D cameras,” in Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (IROS), 2013.

[^14]: D. Eigen and R. Fergus, “Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture,” in Proceedings of the International Conference on Computer Vision (ICCV), 2015.

[^15]: B. Ummenhofer, H. Zhou, J. Uhrig, N. Mayer, E. Ilg, A. Dosovitskiy, and T. Brox, "DeMoN: Depth and motion network for learning monocular stereo," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.

[^16]: I. Laina, C. Rupprecht, V. Belagiannis, F. Tombari, and N. Navab, “Deeper depth prediction with fully convolutional residual networks,” in Proceedings of the International Conference on 3D Vision (3DV), 2016.

[^17]: F. Liu, C. Shen, and G. Lin, “Deep Convolutional Neural Fields for Depth Estimation from a Single Image,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

[^18]: B. Li, C. Shen, Y. Dai, A. van den Hengel, and M. He, “Depth and surface normal estimation from monocular images using regression on deep features and hierarchical CRFs,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.

[^19]: T. Dharmasiri, A. Spek, and T. Drummond, “Joint prediction of depths, normals and surface curvature from RGB images using cnns,” in Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (IROS), 2017.

[^20]: J. M. Fácil, A. Concha, L. Montesano, and J. Civera, “Single-view and multi-view depth fusion,” IEEE Robotics and Automation Letters, vol. 2, no. 4, pp. 1994–2001, 2017.

[^21]: C. S. Weerasekera, Y. Latif, R. Garg, and I. Reid, “Dense monocular reconstruction using surface normals,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2017.

[^22]: N. Yang, R. Wang, J. Stückler, and D. Cremers, “Deep virtual stereo odometry: Leveraging deep depth prediction for monocular direct sparse odometry,” in Proceedings of the European Conference on Computer Vision (ECCV), 2018.

[^23]: H. Zhou, B. Ummenhofer, and T. Brox, “DeepTAM: Deep tracking and mapping,” in Proceedings of the European Conference on Computer Vision (ECCV), 2018.

[^24]: Y. Zhang and T. Funkhouser, “Deep depth completion of a single rgb-d image,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.

[^25]: X. Yin, X. Wang, X. Du, and Q. Chen, “Scale recovery for monocular visual odometry using depth estimated with deep convolutional neural fields,” in Proceedings of the International Conference on Computer Vision (ICCV), 2017.

[^26]: C. S. Weerasekera, T. Dharmasiri, R. Garg, T. Drummond, and I. Reid, "Just-in-time reconstruction: Inpainting sparse maps using single view depth predictors as priors," in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2018.

[^27]: K. Tateno, F. Tombari, I. Laina, and N. Navab, “CNN-SLAM: Real-time dense monocular slam with learned depth prediction,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017.

[^28]: J. Engel, J. Sturm, and D. Cremers, “Semi-dense visual odometry for a monocular camera,” in Proceedings of the International Conference on Computer Vision (ICCV), 2013.

[^29]: D. Eigen, C. Puhrsch, and R. Fergus, “Depth Map Prediction from a Single Image using a Multi-Scale Deep Network,” in Neural Information Processing Systems (NIPS), 2014.

[^30]: O. Ronneberger, P. Fischer, and T. Brox, "U-Net: Convolutional networks for biomedical image segmentation," in Proceedings of the International Conference on Medical Image Computing and Computer Assisted Intervention (MICCAI), 2015.

[^31]: M. Bloesch, J. Czarnowski, R. Clark, S. Leutenegger, and A. J. Davison, "CodeSLAM — learning a compact, optimisable representation for dense visual SLAM," in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.

[^32]: A. Kendall and Y. Gal, “What uncertainties do we need in bayesian deep learning for computer vision?” in Neural Information Processing Systems (NIPS), 2017.

[^33]: J. McCormac, A. Handa, S. Leutenegger, and A. J. Davison, “SceneNet RGB-D: Can 5M synthetic images beat generic ImageNet pre-training on indoor segmentation?” in Proceedings of the International Conference on Computer Vision (ICCV), 2017.

[^34]: Z. DeVito, M. Mara, M. Zollöfer, G. Bernstein, C. Theobalt, P. Hanrahan, M. Fisher, and M. Nießner, “Opt: A domain specific language for non-linear least squares optimization in graphics and imaging,” in ACM Transactions on Graphics, 2017.

[^35]: A. Handa, T. Whelan, J. B. McDonald, and A. J. Davison, “A Benchmark for RGB-D Visual Odometry, 3D Reconstruction and SLAM,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 2014. [Online]. Available: <http://www.doc.ic.ac.uk/ahanda/VaFRIC/iclnuim.html>

[^36]: J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers, "A Benchmark for the Evaluation of RGB-D SLAM Systems," in Proceedings of the IEEE/RSJ Conference on Intelligent Robots and Systems (IROS), 2012.

[^37]: N. Silberman, D. Hoiem, P. Kohli, and R. Fergus, “Indoor segmentation and support inference from RGBD images,” in Proceedings of the European Conference on Computer Vision (ECCV), 2012.
