【问题标题】:Line detection in 2D point cloud二维点云中的线检测
【发布时间】:2020-05-03 07:16:34
【问题描述】:

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

传感器看到的示例“图像”如下:

想要的输出是这样的:

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

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

我正在使用 python 进行开发,但如果有人知道一个合适的算法,但我没有问题自己编写算法,但该算法在包中不可用。

提前致谢,雅各布

【问题讨论】:

  • 从一个无能的家伙那里,也许你应该聚集你的观点然后执行 RANSAC?但为什么 HoughTransform 不起作用?从理论上讲,它应该通过在稀疏点之间找到边缘来工作......并且图像只是平面上具有光强度值的点的集合。
  • @JasonChia 是的,您可能是对的,但是我该如何正确地对测量结果进行聚类?说到霍夫变换,我想我主要得出一个结论,它需要我将精度降低很多,我需要能够在 50 米长的仓库中将墙壁估计到毫米精度。您认为霍夫可以用于此目的吗?谢谢你的回答。
  • 您是否尝试过来自 PCL 的代码?平面分割pointclouds.org/documentation/tutorials/planar_segmentation.php
  • @SuhasC 谢谢你的回答,我的cpp知识几乎不存在,但我会看看。

标签: python navigation computer-vision line point-clouds


【解决方案1】:

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

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

这是一个很好的例子,有完整的解释和源代码:Processing LIDAR data using a Hough Transform

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

【讨论】:

    【解决方案2】:

    您可以尝试数学形态学,例如腐蚀/膨胀https://docs.opencv.org/trunk/d9/d61/tutorial_py_morphological_ops.html

    我试了一下你的图片,它开始寻找房间:

    下面是一个使用opencv在python中实现的例子:

    import numpy as np
    import scipy.stats
    import cv2
    
    inputImage = cv2.imread('input.jpg')
    
    skernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3,3))
    cv2.imshow("test1",inputImage)
    
    openImg =cv2.morphologyEx(inputImage, cv2.MORPH_OPEN, skernel, iterations =15)
    cv2.imshow("test2",openImg)
    img_gray = cv2.cvtColor(openImg, cv2.COLOR_BGR2GRAY)
    ret,th3 = cv2.threshold(img_gray,200,255,cv2.THRESH_BINARY)
    
    cv2.imshow("test3",th3)
    

    另外,我认为您的问题中缺少关键字,因为您正在寻找的是点云重建算法。你也可以看看这里https://hal.inria.fr/hal-01348404v2/document

    【讨论】:

    • 您好,感谢您的回答和您所付出的所有努力。可悲的是,我怀疑这会产生低于最佳精度的结果。而且我相信数据中的大量噪声会严重破坏使用“图像分析”方法的结果。
    • 此方法不提供查找图像中线条的方法。它只会让人类“看起来更好”,这在这种情况下完全无关紧要。
    猜你喜欢
    • 1970-01-01
    • 2011-09-14
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 1970-01-01
    相关资源
    最近更新 更多