首页 > 解决方案 > 使用 RGB 图像和点云,如何从点云生成深度图?(Python)

问题描述

我正在融合激光雷达和相机图像,以便使用 CNN 执行分类对象算法。

我想使用提供同步激光雷达和 rgb 图像数据的 KITTI 数据集。激光雷达是 3D 扫描仪,因此输出是 3D 点云。

我想使用来自点云的深度信息作为 CNN 的通道。但我从未使用过点云,所以我寻求帮助。将点云投影到相机图像平面(使用 Kitti 提供的投影矩阵)会给我想要的深度图吗?Python libray pcl 有用还是我应该转向 c++ 库?

如果您有任何建议,请提前感谢您

标签: imagecamerapoint-cloudsdepth-bufferkitti

解决方案


我不确定 Kitti 提供的投影矩阵包括什么,所以答案取决于它。如果这个投影矩阵只包含一个变换矩阵,则不能从中生成深度图。2D 图像具有来自 2D 相机的失真,而点云通常没有失真,因此您无法在没有内在和外在参数的情况下将点云“精确”映射到 rgb 图像。

PCL 不需要这样做。

深度图本质上是将深度值映射到 rgb 图像。您可以将点云中的每个点(lider 的每个激光)视为 rgb 图像的一个像素。因此,我认为您需要做的就是找到点云中对应于 rgb 图像的第一个像素(左上角)的点。然后根据 rgb 图像分辨率从点云中读取深度值。


推荐阅读