我一直在寻找方法来用法线信息配准(对齐)有组织的点云。
我只能找到通用的点云配准方法(例如在 PCL 中)。
我正在使用 Microsoft Kinect 来获取我的点云,但问题是它们非常大。
我想知道的:
- 是否有快速方法来配准有组织的点云?
- 是否有非常快的下采样方法(也可能 使用点云是有组织的这一事实)?
- 我也在考虑使用 OpenCV 过滤器,因为一个有组织的 点云可以看作是具有灰度值的图像(具有深度值的二维矩阵)。例如在矩阵上使用 openCV resize 方法,以及一些衍生类型的过滤器(因为边缘对我来说在场景中很重要)。这是个好主意吗?
- 此外,下采样看起来像是一个数据并行问题,这可能是 GPU 实现的一个很好的候选者。您知道任何此类实现吗?
到目前为止我所做的如下。
- 几种下采样方法(随机、基于体素、均匀),但所有这些方法的问题是它们都花了很多时间(在 PCL 中)。最好的是基于体素的。
- 然后是 ICP,它在下采样点云上对我来说运行得非常快和准确。
所以对我来说,目前一个好的解决方案是对我的点云进行下采样的快速方法。例如基于 GPU 的实现。
最佳答案
- 事实证明,将有组织的点云视为具有灰度值(简单的二维矩阵)的图像是个好主意。
- 在 GPU 上实现的二维矩阵的下采样方法可用于 OpenCV cuda 等。
- 此外,根据准确性的重要性,您可以轻松地在二维矩阵上实现您自己的快速下采样方法。例如,只需取每一个 k 元素。如果需要,您可以对这些元素进行平均以使其模糊,或对派生类型的滤波器进行锐化(边缘增强)。您可以根据有关帧的信息提出特殊的拾取方法(例如,如果您知道您的对象往往位于中心,那么您可以在该区域周围拾取更多点)。
以上所有这三个都会给出更快的结果,并且可能“更适合”您的问题(尤其是#3)。 “更多调整”意味着更不稳健。
关于c++ - 快速组织点云配准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33682082/