目前,我拼命尝试基于2D激光扫描(另一个机器人)检测物体(机器人)。在以下两张图片中,蓝色箭头对应于激光扫描仪的姿势并指向物体,我想要检测。
由于它基本上是2D图片,我的第一种方法是寻找一些OpenCV实现,例如HoughLinesP
或LSDDetector
,以便检测线条。不幸的是,由于OpenCV的重点更多地放在具有“真实”线条的“真实”图像上,因此,就我所理解的情况而言,这种方法并不适用于点云。另一个着名的图书馆是点云库,另一方面,它更多地关注3D点云。
我目前的方法是分割激光扫描,然后使用一些迭代最近点(ICP)C ++实现在激光扫描中找到2D点云模板。由于我不熟悉物体检测和所有那些好东西,我很确定有一些更复杂的解决方案......
你有什么建议吗?
非常感谢提前:)
答案 0 :(得分:0)
要从积分中获取线条,您可以尝试RANSAC。 您将迭代地将线条拟合到点,然后移除与新线对应的点并重复,直到没有足够的点或支撑太低或类似的东西。
希望它有所帮助。