目录
不完整的输入数据(Incomplete Input Data)
基本情况
- 题目:DFuseNet: Deep Fusion of RGB and Sparse Depth Information for Image Guided Dense Depth Completion
- 作者:Shreyas S. Shivakumar, Ty Nguyen, Ian D. Miller, Steven W. Chen, Vijay Kumar and Camillo J. Taylor
- 出处:Shivakumar, S. S., Nguyen, T., Miller, I. D., Chen, S. W., Kumar, V., & Taylor, C. J. (2019, October). Dfusenet: Deep fusion of rgb and sparse depth information for image guided dense depth completion. In 2019 IEEE Intelligent Transportation Systems Conference (ITSC) (pp. 13-20). IEEE.
- 开源代码: https://github.com/ShreyasSkandanS/DFuseNet
摘要
在本文中,我们提出了一种卷积神经网络,该卷积神经网络旨在根据从高分辨率强度图像中收集的上下文提示中,对一系列稀疏范围测量进行上采样。 我们的方法从有关超分辨率和绘画(super-resolution and in-painting)的相关工作中汲取了灵感。 我们提出了一种新颖的体系结构,该体系结构试图从强度图像和深度特征中分离出上下文线索(contextual cues),然后在网络中将其融合。 我们认为这种方法有效地利用了两种模态之间的关系,并在考虑显著图像结构的同时,产生了准确的结果。 我们目前的实验结果表明,我们的方法可与最新方法相媲美,并且可以在多个数据集之间很好地泛化。
I. 介绍
密集深度估计是自动驾驶,机器人导航和增强现实中的关键组成部分。在这些领域中,流行的传感方案包括高分辨率相机和低分辨率深度传感器,例如LiDAR或飞行时间传感器。从常用深度传感器返回的点的密度,通常比摄像机图像的分辨率低一个数量级。此外,这些传感器的高分辨率变体价格昂贵,因此对于大多数应用来说不切实际。但是,诸如规划和避障之类的许多应用都可以受益于更高分辨率的范围数据,这促使我们考虑可以将稀疏的可用深度测量值上采样,到可用图像分辨率的方法。
传统上,基于插值和扩散的方案通常将相应的彩色图像用作指导[1],将稀疏点上采样为平滑的密集深度图像。卷积神经网络(CNN)在深度估算任务中,使用
- 单目图像数据[2],[3],[4],[5],[6],[7],
- 立体图像数据[8],[ 9],[10],[11]?和
- 稀疏深度数据本身[12],[13],[14],[15] ?
已经取得了巨大的成功。
看待单目深度预测问题和深度补全问题的一种方法是,将其当作在给定输入强度图像 I 时,给定 深度图像 D 的概率的后验分布P(D| I)。这些方法隐式地假设所得的后验分布沿低维流形高度集中?(is highly concentrated along a low dimensional manifold),这使得可以从相对较少的深度样本中推断出完整的深度图
我们希望设计一种CNN体系结构,该体系结构可以从彩色图像中学习足够的全局和上下文信息,并将此信息与稀疏深度输入一起使用,以准确预测整个图像的深度估计,同时执行边缘保留和平滑度约束。一旦设计完成,就可以使用这种网络对来自各种深度传感器的信息进行上采样,包括LiDAR系统,立体算法或运动算法的结构。总而言之,我们提出以下贡献:
- 1)使用双分支架构(a dual branch architecture),空间金字塔池层和一系列多尺度反卷积的CNN架构,可有效利用来自输入彩色图像和可用深度测量的上下文线索。
- 2)可以利用诸如立体图像之类的不同信息源的训练方法(A training regime),以学习如何在没有深度测量可用的区域中有效地推断深度。
- 3)对我们在KITTI Depth Completion Benchmark,virtual KITTI,NYUDepth和我们自己的小型数据集上的方法的评估。我们证明了我们的方法能够很好地概括这四个不同的数据集。
- 4)我们还将小型数据集公开提供,因为它可以作为向社区提供的其他验证数据来源。有关详细信息,请参见
- https://github.com/ShreyasSkandanS/DFuseNet
II. 相关工作
深度估计(Depth Estimation)
单眼深度估计是一个活跃的研究领域,其中基于CNN的方法目前是最新技术。已经提出了
- 使用监督的[16],[17],[18],[19],[4],[3],
- 非监督的[2]和
- 自监督的[6]深度估计策略的不同方法。
- 在撰写本文时,性能最佳的单眼深度估计算法来自Fu等。 在KITTI深度预测数据集[7]上获得了12.98的RMSE逆分数。
CNN已成功用于密集立体声深度估计任务。
- Zbontar等提出了一种 siamese 网络架构来学习两个输入patch之间的相似性度量。然后,将这种相似性度量用作传统立体管道的匹配代价输入[10]。
- 最近,许多端到端方法已经提出,这些方法能够在保留边缘[11],[8],[20],[21]的同时生成准确的视差图像。
- 张等人的工作,与我们提出的网络相似,作者提出了一种使用金字塔池的端到端方法,以更好地学习依赖于全局图像的特征[9]。
不完整的输入数据(Incomplete Input Data)
从稀疏输入中学习密集表示类似于超分辨率和绘画中的领域。
- 超分辨率假定输入是所需输出高分辨率的一致的下采样表示,并且学习问题可以作为边缘保留插值策略。 Yang等人对这些方法进行了全面综述 [22]。
- 我们注意到,具有多个跳连接(multiple skip connections)的多尺度体系结构已成功用于图像和深度上采样任务[23],[24]。
- 内容感知补全(Content-aware completion)是由“从不完整的输入数据中学习完整表示"的类似问题所激发的。图像修补需要在语义上感知缺失输入区域的完成。生成网络已成功用于上下文感知图像补全(image completion)任务[25],[26]?,但不在本文讨论范围之内。
深度补全(Depth Completion)
输入数据不完整的深度估计(depth estimation)的一个特殊子问题是深度补全(depth completion)。随着KITTI深度补全基准( KITTI depth completion benchmark ) 的发布,提出了解决该问题的新方法。
- Uhrig等基准的作者[12]提出了一种稀疏不变的CNN体系结构,它在输入的稀疏深度图像上使用了部分归一化卷积。他们提出了仅容纳RGB信息和稀疏深度输入的多种体系结构。
- 黄等提出了HMSNet,它对部分卷积使用屏蔽操作,例如部分求和,上采样和级联[27]。
- Ku等提出了一种基于非学习的方法来解决这个问题,以突出精心制作的经典方法的有效性,仅使用通常可用的形态学运算来产生密集的深度信息[14]。他们提出的方法目前在KITTI深度完成基准上胜过基于多种深度学习的方法。
- Dimitrievski等提出使用Ku等人的工作的CNN架构。作为稀疏深度输入[28]的预处理步骤。我们遵循类似的策略,选择填写稀疏的输入深度图像,而不是使用稀疏的卷积。他们的网络被设计为使用传统的形态学运算符,以及随后使用U-Net样式架构学习的形态学过滤器[29]。他们能够获得更好的定量结果,但是他们的模型无法保持语义和深度的不连续性?,因为其最终输出严重依赖于填充的深度图像。
- Eldesokey等提出了一种方法,该方法也使用归一化的掩码卷积?,但是通过使用连续的置信度掩码而不是二进制掩码来生成每个预测深度的置信度值[15]。
- Gansbeke等人提出了一种类似的基于置信掩码的方法 [30]。
- 程等提出了一种深度传播网络,以明确学习相似性函数(an affinity function)并将其应用于深度补全问题[31]。
- Wang等提出了一种使用稀疏LIDAR数据进行深度完成的多尺度特征融合方法[32]。
- Ma等提出了两种方法,
- 一种是使用基于ResNet的体系结构进行深度完成的监督方法[13],
- 另一种是使用稀疏的LiDAR输入以及姿态估计来基于深度和光度损失添加其他训练信息的自我监督方法[33]。
III 方法(APPROACH)
A. 设计概述
我们提出了图1所示的CNN体系结构。它的结构是从彩色图像和稀疏深度数据中学习到从局部到全局的上下文信息,并将它们融合在一起以生成准确一致的稠密深度图。我们提出了一种与以前的图像比较网络相似的双分支编码器设计[10]。考虑到提供给两个分支的输入模态的差异,我们选择不使用具有权重耦合的Siamese网络[34],而是使用独立的分支,对每个分支做出不同的设计决策。在我们的编码器中,我们使用空间金字塔池(SPP)块来学习特征的由粗到精表示。空间金字塔池块在学习局部到全局上下文信息方面是有效的,并已成功用于深度感知任务[9]。我们将从各个分支学到的特征连接起来,并通过反卷积层传播这些特征。最终层对从不同反卷积层组合的特征执行卷积操作,上采样到最终输出分辨率,以利用来自不同比例和上下文的信息来生成最终深度图像。
B. 特征提取
我们的颜色和深度分支从初始深度填充(fill)步骤开始,类似于Ku等人的方法 [14]。
- 我们使用简单的形态学运算和高斯模糊运算序列,用来自附近有效点的深度值填充稀疏深度图像中的孔,从而不留孔。
- 然后将其传递到特征提取分支。
- 然后,将填充的深度图像通过数据集中的最大深度值进行归一化,从而得到介于0和1之间的深度值。
- 对于深度图像,我们选择使用更大的核尺寸和更少的卷积操作,从而减少了层数。
- 对于彩色图像,除了两个初始卷积层之外,我们使用较小的内核尺寸并使用四个残差块[35]。这
- 些初始特征提取层的输出然后传递到空间金字塔池(SPP)块。我们使用与Chang等人提出的结构相似的结构 [9],但对我们的深度分支使用max pooling,对我们的颜色分支使用average pooling。我们的合并窗口在两个分支之间是一致的,每个比例分别为64、32、16和8。该层的输出是特征层的上采样堆栈,其中包含来自不同比例的信息。
C. 两种模态结合
然后将先前提取模块中的特征合并为一个整体(volume)。第一层是来自彩色分支的残差块的中间输出,我们假设它可以携带从彩色图像中学到的高级特征。随后的层是从两个分支的SPP块中提取的颜色和深度特征。我们相信这些层可以帮助学习以下层中两个输入模态之间的联合特征表示。我们在此volume上执行三个连续的卷积操作,减少了通道数量,并将空间分辨率提高到volume的两倍。通过强迫减少通道,我们试图迫使网络学习深度特征和颜色分支中重要信息的联合特征空间的低维表示。
D.深度预测
接下来的几层使用一系列归一化(batch normalization)的卷积,并执行增量解卷积(incremental de-convolutions)以恢复原始图像分辨率。最后一步涉及将来自反卷积的pipeline的不同层输出进行级联,通过插值进行上采样以获得原始输入分辨率,然后在多尺度堆栈上执行最终卷积以产生单通道输出。然后将此输出传递到sigmoid激活函数,并重新缩放到原始深度值范围。 Odena等建议在将转置卷积(transposed convolutions)用于空间上采样时要谨慎[36],因此我们限制了转置卷积的使用,并且最终输出是特征量上1x1卷积的结果,该卷积主要由内插的低分辨率特征组成,因此最小化最终深度图像中的棋盘影响。
E.训练
我们的训练信号Ltrain是多个损失项的加权平均值,其中一些是在整个图像分辨率上计算的,而有些则仅在存在准确地面真实深度的点上计算。权重α,β和γ是基于与每个信号相关的置信度来选择的,并且在训练方案中的不同时间点有所变化。
1)Primary Loss 主要损失:我们将L1和L2范数作为主要损失函数Lprimary进行了实验。对于此术语,我们仅在存在地面真实深度的像素处计算损耗,并在地面真实点总数上求平均值。为了在评估基准上获得更好的RMSE值,我们发现L2作为主要损失项是更好的选择。
2)Optional Stereo Supervision 可选的立体声监督:由于Uhrig等人,为大型数据集提供来自多个摄像机的数据,我们提出了一种在训练过程中更好地利用这些数据的方法。 KITTI深度完成数据集提供了大约42k立体图像对,我们使用这些图像在缺少地面真实LiDAR数据的点处提供深度信息。我们提出了一个辅助损失项Lstereo:该损耗项使用立体输入图像对,生成密集的深度估计值,该估计值可以指导没有地面真实LiDAR测量值的区域中的学习过程。由于已知立体图像的内在和外在性(stereo intrinsics and extrinsics)?,我们以自我监督?的方式计算此损耗项。我们使用半全局匹配来生成该密集深度估计[37]。该损失项是预测深度和立体估计深度之间的差的L2范数。可以在输入图像中的几乎每个像素处计算该项。由于我们使用左右一致性(left-right consistency) 检查来丢弃噪音且部分被遮挡的深度估计,因此某些像素缺乏深度估计。
3)Smoothness 平滑度:我们添加了平滑度损失项Lsmooth,它是预测密集图像的二阶导数上的L1范数,类似于用于structure from motion (SFM) 网络的无监督单眼深度估计和结构的策略[2],[38] ,[39]。
IV. 实验
V. 讨论与总结
A. Architecture
Jaritz等简要讨论一下后期融合体系结构比早期融合体系结构的好处[43]。我们同意他们的说法,并重申相信,鉴于RGB和深度模态的不同表示形式,正确组合此信息的正确方法是通过学习首先将其转换为公共特征空间。虽然先前的工作提出了单路径架构,其中RGB和稀疏深度通道被连接到单个4D输入中并传递到网络[13],但我们建议采用双重分支方式,在单个模态上,使用大量单独和独立的卷积和金字塔池运算符。我们尝试了将两种模态在SPP块之前融合的实现方式,并注意到性能下降,这表明所学习的其他独立信息对于最终的融合和预测很有用。图2显示了在我们的网络中拥有两个分支机构所获得的信息。
在输入稀疏性方面,我们尝试用稀疏卷积替换深度分支中的所有卷积[12],但注意到性能显着下降。黄等提出除了卷积以外,使用其他稀疏运算,例如稀疏不变的上采样,加法和级联,并且能够获得更好的结果[27]。但是,我们更倾向于认为,通过使用常规卷积和多模态输入操作以及简单的预处理孔填充操作(例如形态过滤器,填充图和最近邻插值),可以实现理想的性能[28], [14],[44]。这在为网络提供良好的初始化方面既简单又有效。
但是,我们确实注意到,在进行孔填充的预处理步骤时,必须注意使用从深度通道到倒数第二层的残差连接(residual connections
)。我们发现,使用从深度通道的第二层和第三层到解卷积层的倒数第二层的残差连接可以达到与IPBasic [14]相似的精度,但是网络无法学习使用RGB分支的信息。也许必须使用精心选择的超参数对这种网络进行更仔细的训练。然而,在单通道或早期融合网络中,从深度输入到最终层添加残差连接已被证明是非常有效的[33],[31]。
B. Generalization
我们还将在Virtual KITTI,Penn Driving数据集和NYUDepthV2上测试针对KITTI深度完成基准测试的模型。图9显示了使用我们在Virtual Kitti和NYUDepthV2上的KITTI深度完成模型进行的预测的一些示例。定性地,我们注意到该网络能够使用足够的RGB线索来生成语义上有效的深度预测,但从数量上我们注意到预测的深度值中的错误。
这是由于三个数据集的深度范围不同(KITTI最大深度为85 m,虚拟kitti为655.3 m,NYUDepth大约为10 m),并且在使用KITTI模型作为初始化的最小训练后可以迅速进行校正。我们认为,单独的RGB图像分支以及在该分支中独立学习的特征的密度将对该网络的泛化做出很大贡献。我们的模型在KITTI上进行了训练,使用10%的地面真实作为输入深度样本,在我们的NYUDepthV2测试集中,其RMSE值达到0.607 m,MAE达到0.216 m。在Penn驾驶数据集上,我们实现了6.690 m的RMSE和3.157 m的MAE。较高的误差主要发生在较远的区域,如图10的误差图像所示。
C. Conclusion
我们已经提出了一种CNN体系结构,可使用可用的高分辨率强度图像对稀疏范围数据进行上采样。 我们的体系结构旨在从图像中提取上下文线索,以指导上采样过程,从而导致网络具有独立的图像和深度数据分支。 我们已经证明了其在相关数据集上的性能,并表明该方法似乎是从图像数据中捕获显著线索,并产生关于相关图像边界、并与可用ground truth很相关的上采样深度结果。 我们还提出了自己的数据集以进行其他验证。
参考
-
立体图像数据深度预测:
- [8] X. Song, X. Zhao, H. Hu, and L. Fang, “Edgestereo: A context integrated residual pyramid network for stereo matching,” arXiv preprint arXiv:1803.05196, 2018.
- [9] J.-R. Chang and Y.-S. Chen, “Pyramid stereo matching network,” in IEEE Conference on Computer Vision and Pattern Recognition, 2018.
- [10] J. Zbontar and Y. LeCun, “Stereo matching by training a convolutional neural network to compare image patches,” Journal of Machine Learning Research, vol. 17, no. 1-32, p. 2, 2016.
- [11] A. Kendall, H. Martirosyan, S. Dasgupta, and P. Henry, “End-toend learning of geometry and context for deep stereo regression,” in Computer Vision (ICCV), 2017 IEEE International Conference on. IEEE, 2017, pp. 66–75.
- 稀疏深度数据深度预测:
- [12] J. Uhrig, N. Schneider, L. Schneider, U. Franke, T. Brox, and A. Geiger, “Sparsity invariant cnns,” in 2017 International Conference on 3D Vision (3DV). IEEE, 2017, pp. 11–20.
- [13] F. Ma and S. Karaman, “Sparse-to-dense: Depth prediction from sparse depth samples and a single image,” in 2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2018, pp. 1–8.
- [14] J. Ku, A. Harakeh, and S. L. Waslander, “In defense of classical image processing: Fast depth completion on the cpu,” arXiv preprint arXiv:1802.00036, 2018.
- [15] A. Eldesokey, M. Felsberg, and F. S. Khan, “Propagating confidences through cnns for sparse data regression,” arXiv preprint arXiv:1805.11913, 2018.
- 语义感知补全
- [25] R. A. Yeh, C. Chen, T.-Y. Lim, A. G. Schwing, M. Hasegawa-Johnson, and M. N. Do, “Semantic image inpainting with deep generative models.” in CVPR, vol. 2, no. 3, 2017, p. 4.
- [26] J. Yu, Z. Lin, J. Yang, X. Shen, X. Lu, and T. S. Huang, “Generative image inpainting with contextual attention,” arXiv preprint, 2018.