【问题标题】:RANSAC for cuboid长方体的 RANSAC
【发布时间】:2014-12-24 02:59:23
【问题描述】:

我已经能够成功地在 3D 点云上为常用模型(即球体、线、平面)实施 RANSAC。但是,我很难弄清楚如何为长方体做这件事,特别是只是一个 3d 盒子。我不确定如何使用点参数化框。

理想情况下,我想获得长度、宽度、高度和中心作为我的参数(Theta)。我对如何使用立方体表面的 3D 点云中的最少点数来拟合这些参数感到困惑。 (我也可以访问点法线)。

例如,我最终想估计立方体的 6 个面。我可以只估计三个并使用它们的平行镜来得到所有 6 个。每个面大概都表示为一个平面,它需要一个点和一个法线来定义(或者 3 个点)。但是,每个平面的法线都存在限制,因为它们都需要相互正交。我不确定如何在模型估计中包含约束,或者这是否是正确的方法。

任何想法将不胜感激。我目前正在使用 Marco Zuliani 的“RANSAC for Dummies”工具箱实现,如果这完全相关的话。

【问题讨论】:

    标签: algorithm 3d geometry point-clouds ransac


    【解决方案1】:

    如果我要设计一种算法来解决这个问题(将立方体拟合到立方体的点云),我会将其分为两个步骤:

    1. 使用一些聚类算法找到六个聚类,每个人脸一个。在算法执行期间,我需要六个“候选”区域,并且每个点都将被认为与其中一个人脸集群有关,或者是一个异常值。 DBSCAN 的一些修改形式似乎是一个合适的选择;
    2. 为每张脸应用一些拟合,很可能是 RANSAC,因为它是您已经在使用的。

    如果已知立方体的预期大小,您可以将每个点插入到 KDTree 中,并查询半径略低于一个面大小的球体附近,检查平面度(想到主要组件)。然后你最终会找到六个人脸中心的良好近似候选者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 2015-03-30
      • 1970-01-01
      相关资源
      最近更新 更多