3D 点云中的 2D 形状检测

问题描述 投票:0回答:1

我正在开发一个检测纸飞机位置和方向的项目。 为了收集数据,我使用了英特尔实感 D435,它为我提供了准确、干净的深度数据。

现在我遇到了从 3D 点云数据中检测 2D 纸飞机轮廓的问题。

这是一个数据示例(我将飞机放在棍子上进行测试,这不会在最终实现中):

1

基本上,我有:

  • 平面上有点的 3D 点云
  • 平面的 2D 形状

我想计算需要哪些旋转/平移才能将 2D 形状尽可能准确地与 3D 点云对齐。

我在网上搜索过,但找不到好的方法。一种方法是使用迭代最近点 (ICP) 首先获取已知方向的平面校准点云,并将其与当前方向对齐。但据我所知,如果点云一开始就没有紧密对齐,ICP 的性能就不会很好。

如有任何帮助,我们将不胜感激!编码语言并不重要。

computer-vision object-detection point-cloud-library point-clouds
1个回答
0
投票

您的 3D 点云有异常值吗?以什么方式有多少?

您到底是如何使用ICP的? 一种方法是使用 ICP,并使用

手工制作初始猜测
pcl::transformPointCloud (*cloud_in, *cloud_icp, transformation_matrix);

(缓解ICP需要靠近工作的问题。)

您真正想要的是描述点云位置和方向的平面模型,对吧?

可以通过以下方式找到底层函数的良好估计器:pcl::ransac pcl::ransace模型共识

然后您可以获得计算模型系数。

现在找到正确的变换就是:如何计算从一个平面到另一个平面的变换矩阵?

© www.soinside.com 2019 - 2024. All rights reserved.