【问题标题】:Corner detection in an array of points点数组中的角点检测
【发布时间】:2016-06-26 13:02:58
【问题描述】:

我从我的激光雷达中得到一个点云,它基本上是二维笛卡尔坐标中的一个 numpy 点数组。是否有任何有效的方法来检测由此类 2D 点形成的角点?

到目前为止,我尝试的是检测集群,然后在每个集群上应用 RANSAC 以检测两条线,然后估计这两条线的交点。当我知道我有多少个集群(在这种情况下,我在我的机器人前面放了 3 个盒子)并且机器人周围是空闲的并且没有检测到其他物体时,这种方法很有效。

我想做的是进行一般的角点检测,然后获取每个角点周围的点并检查线是否正交。如果是这样,那么我可以将这个角落视为特征。当涉及到周围环境时,这将使我的算法更加灵活。

这是我得到的数据的可视化:

【问题讨论】:

    标签: python numpy computer-vision point-clouds corner-detection


    【解决方案1】:

    有很多方法可以做到这一点。在您的情况下,我尝试的第一件事是使用点的自然激光雷达扫描排序,以合理的距离阈值链接不连续性。然后它变成了一个估计局部曲线的问题,或者像你所做的那样,增长和合并线性段。

    【讨论】:

    • 其实我忘记了激光雷达扫描点的自然顺序。我现在尝试的是平滑以减少噪声,检测所有小于至少 n 个相邻点的最小值,然后合并彼此太接近的最小值,最后提取每个最小值周围的点簇并执行线检测并验证检测到的线是否正交。
    • 嗯,有点道理。平滑步骤对我来说似乎很可疑 - 为什么在您确定它是“噪音”之前丢弃信息?你有噪声过程的模型吗?此外,如果“线检测”是指将直线拟合到相邻点,请记住,您将需要一个鲁棒器(例如 LMedS,使用全口径 RANSAC/MLESAC 可能是多余的)。健壮器适合引入噪声模型,因为您在该步骤使模型明确(即直线)。最后,如果您觉得答案有用,请点赞/采纳。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多