目录
基本情况
摘要
背景与贡献
算法流程
主要结果
参考
基本情况- 出处:Zhang J, Ramanagopal M S, Vasudevan R, et al. LiStereo: Generate Dense Depth Maps from LIDAR and Stereo Imagery[C]//2020 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2020: 7829-7836.
- 作者:Junming Zhang, Manikandasriram Srinivasan Ramanagopal, Ram Vasudevan and Matthew Johnson-Roberson
- 密歇根大学(The University of Michigan,简称UMich)
- 来源:ICRA 2020
大家好,今天为大家带来的文章是:通过雷达和立体图像生成密集深度图的LiStereo。(LiStereo: Generate Dense Depth Maps from LIDAR and Stereo Imagery.)
众所周知,在我们机器人领域,比较重要的就是对环境深度图的高精度求解。目前,我们一般用光学雷达(LiDAR)和立体匹配算法来获取深度信息。光学雷达的检测精度一般是比较准确的,并且可以在大范围内产生高精度的深度图。但是,高分辨率的光学雷达一般比较昂贵,而且即便是高分辨率的光学雷达也只能在远距离产生稀疏的深度图。立体匹配算法可以产生较为密集的深度图,但基于图像的深度图生成往往在精度上不尽人意。今天要介绍的这篇文章将这两种方法结合起来,取长补短,生成了高质量的密集深度图。与之前使用基准真实(Ground Truth)标签训练的方法不同,这篇文章提出的模型采用了自我监督的训练过程。实验结果表明,利用本文的方法,即使低分辨率的输入也同样能稳健地生成高质量的密集深度图。
背景与贡献1. 本文提出了一个模型,以光学雷达的稀疏深度图和立体图像作为输入,输出高精度的密集深度图。
2. 可以以自我监督的方式训练模型,从而减少了传统方法中必须收集大量基准真实标签的代价。
3. 实验结果显示,立体图像(双目)的输入会优于单目图像,通过使用分辨率较低的光学雷达可以降低代价。
算法流程
图1. 网络架构。
整体的模型体系有两个分支,彩色图像分支和LIDAR分支。为了从立体图像中提取特征,我们
- 采用了[22]中借用了Siamese structure(暹罗结构)。该结构包含ResNet50结构[8],并为左右图像生成高层次特征。这些特征图是原始输入图像大小的1/8,
- 然后通过使用相关层进行处理以生成损失量(to form a cost volume),类似于[7]。相关层将左右视图中的要素水平相关。在实验中,我们考虑了特征图中24个像素的最大位移,这对应于输入图像中192个像素的最大视差。
- PSP模块[41]用于提取更多上下文信息。用于处理稀疏深度图的分支具有与暹罗网络相同的结构,但是不共享参数。我们没有将它们汇总在一起,而是通过组合成本量,上下文层,转换层和LIDAR功能来融合信息,并将它们传递给六个残差块。
- 其输出之后是四个上采样块,以便以与输入图像相同的分辨率输出深度图。将暹罗结构的左侧图像分支中的跳过层注入到后续层中,有助于维护彩色图像中的高分辨率信息。
- 输出层具有对应于192个像素的最大视差的193个通道,其中一个通道用于零视差。
- Soft argmax [17]用于生成最终的视差图,然后在给定立体相机的外部参数的情况下计算绝对深度。
整体的模型体系结构如图1所示,整个模型的流程包括以下几个部分:
- 1. 输入:校正后的立体图像和从雷达获取的相应的左稀疏深度图。
- 2. 特征提取:从立体图像和稀疏深度图中提取特征并匹配相关性。左边的彩色图像的特征由转换层处理,为以后的传感器融合做准备。PSP 模块用于提取更多的上下文信息。
- 3. 融合部分(Fusion):通过级联的方式融合深度图中的相关信息和特征。
- 4. 输出:生成密集的深度图和视差图,并对深度图着色以实现可视化。
本文将损失函数定义为三个部分:稀疏深度损失(Ldepth),光度损失(Lphotometric),平滑度损失(Lsmooth)。损失函数如公式(1):
稀疏深度损失函数设置的目的是为了在稀疏深度图上填充有效的深度像素。在该过程中,输入稀疏深度图中的有效深度像素是保持不变的。稀疏深度损失函数惩罚稠密深度图完成之前和之后具有已知深度像素的差异。其中pred是预测的密集深度图,sparse是输入的稀疏深度图。在稀疏深度图中,大于零的像素为有效像素。在实验中,使用平均绝对误差来估算。如果有基准真值深度图,则将sparse替换为基准真值。
光度损失函数:IL和IR是立体图像中的左右图像,给定密集的左视差DL,左图像中的任何像素都可以对应到相应的右图像上。因此,我们能够创建变形函数F(I,D),通过可微分的双线性采样来合成另一台摄像机的视图。IL’=F(IR,DL)。然后,我们对输入图像和变形图像之间的视觉差异进行惩罚。对于左图像,光度损失的定义如下,其中S是结构相似度指数,本文选取λ1=0.85,λ2=0.2。
平滑度损失函数用来最小化光度损失带来的高频噪声。该平滑度损失计算视差图和深度图的加权二阶导数之和,并且权重是输入图像的二阶导数的指数。对于左图像,深度图上的平滑度损失定义如下,其中N是像素数,∇2x和∇2y是沿X和Y轴的二阶导数。
本文在视差图和深度图上都计算了平滑度损失。由于视差与深度成反比,因此这两个平滑度损失项对近距离和远距离的物体的计算都非常重要。
实验在KITTI数据集上运行,主要结果如下。
表一:比较了和其他监督学习方法在KITTI深度图上的结果。
表二:比较了自我监督学习方法在KITTI数据集上的表现。
表三:损失权重的消融实验结果。
表四:正则卷积和稀疏不变卷积的消融实验结果。
图2. 对于不同级别的稀疏输入的结果。从左到右(对应左图像的彩色图像)表示:从原始稀疏深度图预测的稠密深度图,从稀疏度水平0.1输入预测的稠密深度图,从稀疏度水平0.01输入预测的稠密深度图。
表5和图3:在训练过程中不同级别稀疏度的误差结果。
如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号。
点击阅读原文, 即可获取本文下载链接。
欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/bbs/
参考- 【泡泡图灵智库】LiStereo:基于雷达和双目立体图像生成密集深度图