首页 > 解决方案 > 二维点云中的线检测

问题描述

我正在开发一个更大的自动导航车辆导航和定位系统,但偶然发现了一个问题。开发地图时,重要的部分是找到墙壁。导航是使用 LiDAR 单元完成的。

传感器看到的示例“图像”如下: 在此处输入图像描述

想要的输出是这样的: 在此处输入图像描述

我已经看了很多霍夫变换和 RANSAC 算法,但据我所知,霍夫变换用于图像,这对我的情况不是最佳的,而且 RANSAC 不适合在稀疏数据中查找多个墙。

此特定示例中使用的数据可在此链接中找到:https ://drive.google.com/file/d/1EnSOr2FYjIdqG1RdFgTkgsoEhVcG7Tl_/view?usp=sharing 其中文件中的两个数组表示 x 和 y 坐标,其中元素按索引对应。

我在 python 中开发,但如果有人知道一个合适的算法,但我自己编写算法是没有问题的,而该算法在包中没有。

提前感谢,雅各布

标签: pythonnavigationcomputer-visionlinepoint-clouds

解决方案


最初的问题可能有点晚了,但我相信更多的人会想要解决同样的问题。

霍夫变换可以很好地在点云上完成,但是我不知道有现成的库实现。

这是一个带有完整解释和源代码的优秀示例:Processing LIDAR data using a Hough Transform

如果您了解Hough 变换的工作原理并查看代码,您将看到它如何遍历点并在特征空间中创建二维直方图。实现这样的东西非常简单。


推荐阅读