2014-10-28 111 views
2

我已经能够在通用模型(即球体,线条,平面)的3D点云上成功实现RANSAC。然而,我很难把我的头包裹在一个长方体中,特别是一个3d盒子。我不确定如何使用点参数化框。用于长方体的RANSAC

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

例如,我最终想估计立方体的6个面。我可以估计出三个,并用他们的平行反射镜来获得全部6.每个人脸可能会被表示为一个平面,需要一个点和一个法线来定义(或者3点)。但是,每个平面的法线都有限制,因为它们都需要彼此正交。我不确定如何在模型估计中包含约束条件,或者如果这是解决这个问题的正确方法。

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

回答

0

如果我要设计一个算法来解决这个问题(安装一个立方体立方体的点云)我把它分为两个步骤:

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

如果已知立方体的预期大小,可以将每个点插入到KD树中,并查询刚好在一个面的大小下面的半径的邻域,检查平面性(主要组件在脑海中)。那么你最终会找到六个面孔中心的大概候选人。