4

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

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

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

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

4

1 回答 1

1

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

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

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

于 2014-10-28T16:03:12.930 回答