【问题标题】:Inpainting of sparse 2D LiDAR image to dense depth image将稀疏 2D LiDAR 图像修复为密集深度图像
【发布时间】:2019-10-21 04:23:12
【问题描述】:

我正在研究一个分类问题(自动驾驶汽车的对象分类)。我使用来自 KITTI 的数据集,该数据集提供 LiDAR 和相机数据,并希望使用这两种数据来执行任务。

3D LIDAR 数据被投影到 RGB 图像的坐标系上,从而产生稀疏的 LiDAR 图像:

每个像素都使用深度编码(到点的距离:sqrt(X² + Y²),缩放范围在 0 到 255 之间)。

为了让我的 CNN 获得更好的结果,我需要一张密集的 LiDAR 图像,有人知道如何使用 Python 来实现吗?

我想得到这样的东西

【问题讨论】:

    标签: python image-processing point-clouds depth lidar


    【解决方案1】:

    我以前从未使用过点云数据/激光雷达,但由于还没有人回答,我会尽力而为。我不确定修复方法,尽管我想它们可能效果不佳(除了可能是变分方法,我认为它会很慢)。但是,如果您的目标是将 3D LIDAR 读数(伴随着环形 ID 和激光强度读数)投影到密集的 2D 矩阵(用于 CNN 中),那么以下参考资料可能会很有用。此外,在本文中,他们参考了之前的工作 (Collar Line Segments for Fast Odometry Estimation from Velodyne Point Clouds),其中更详细地介绍了极坐标合并技术,and has C++ code available。查看论文,但我将尝试在此处总结该技术:

    使用 Polar Binning 编码稀疏 3D 数据

    CNN for Very Fast Ground Segmentation in Velodyne LiDAR Data - 在第 III.A 节(将稀疏 3D 数据编码为密集 2D 矩阵)中描述了其预处理技术。

    • 1) 让 P 代表您的原始点云,M 代表您希望输出的多通道密集矩阵。 M 的大小取决于扫描中使用的激光束数量和扫描仪的水平角分辨率。
    • 2) 将点云数据聚合到极坐标 bin b(r, c) 中,其中 r 表示环 id,c = floor((R * atan(x/z) + 180)/360)。
    • 3) 使用以下映射将 bin b(r, c) 映射到矩阵 M 中的相应值 m(r, c),其中 p^i 是激光强度读数:

    • 4) 在空箱的情况下,从其邻域线性内插 m(r,c) 的值。

    提高稀疏映射的性能

    最后,看看下面的论文,他们介绍了一些在 CNN 中使用稀疏 Velodyne 读数的技术。也许看看这些是否能提高你的表现?

    Vehicle Detection from 3D Lidar Using Fully Convolutional Network - 在第 III.A 节(数据准备)中描述了它的预处理技术。

    将范围数据编码为 2 通道图像

    • 1) 初始化一个2通道矩阵I;用零填充
    • 2) 给定坐标 (x, y, z),令 theta = atan2(y, x) 并令 phi = arcsin(z/sqrt(x^2 + y^2 + z^2))
    • 3) 令 delta_theta、delta_phi 分别等于连续光束发射器之间的平均水平和垂直分辨率。
    • 4) 令 r = floor(theta/delta_theta);设 c = floor(phi/delta_phi)
    • 5) 令 d = sqrt(x^2 + y^2)
    • 6) 令 I(r, c) = (d, z);如果两个点投影到同一位置(很少见),则让那个更靠近观察者

    不等(上/下)采样

    • 在第一个卷积层,作者水平下采样4,垂直下采样2;这是因为对于 Velodyne 点图,点在水平层中更密集。他们在最终的反卷积层(同时预测车辆的“对象性”及其边界框)中使用相同的因子进行上采样。

    所有技术都是针对 KITTI 数据集/Velodyne LIDAR 实施的,所以我想它们可以适用于您的特定用例(可能进行一些修改)。

    【讨论】:

    • 非常感谢您的帮助。对于我不知道的第一种技术,因此我将对其进行研究。对于第二种技术,我已经看到并找到了执行此操作的 python 代码:ronny.rest/blog/post_2017_03_25_lidar_to_2d 但它是 360 全景视图,我不想要它。因为 kitti 数据集的标签在图像坐标中,所以最好与 rgb 图像具有相同的图像大小。第二种技术的 2 通道矩阵 I 的大小应该是多少?
    • 另一件要尝试的事情——也许只是在你原来的平面投影上做最近邻插值,看看这是否能改善你的结果
    • 我写了一个基于这个极坐标的代码库。它工作得很好github.com/soulslicer/kitti_depthmap
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    • 2012-09-17
    • 2013-01-20
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多