PCL,SACSegmentation检测领域

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

我正在尝试使用RANSAC使用pcl :: sacSegmentation从点云中查找球体。使用一站式精确的陆地扫描仪扫描云。云的密度约为1厘米。下图显示了迄今为止最好的结果。如您所见,云包含2个球体(r = 7.25厘米)和一个附着球的钢梁。.我能够找到三个球体候选者,其内在点是从图像中的云中提取的(您可以看到两个靠近球体的光束上的圆形)。

Input point cloud. Inlier points extracted

所以,看来我接近了。仍然发现球体中心距离真相太远(〜10cm)。有什么建议我该如何改善?我已经调整模型参数相当一段时间了。以下是上述结果的参数:

seg.setOptimizeCoefficients(true);
seg.setModelType(pcl::SACMODEL_SPHERE);
seg.setMethodType(pcl::SAC_RANSAC);
seg.setMaxIterations(500000);       
seg.setDistanceThreshold(0.0020);    
seg.setProbability(0.99900); 
seg.setRadiusLimits(0.06, 0.08);
seg.setInputCloud(cloud);

我还试图通过在模型中包括点法线来改善结果,但没有更好的结果。但是还有几个参数需要调整,因此可能有一些我没有尝试过的组合。

如果需要,我很高兴为您提供更多信息。

Thaksnaikh0u

c++ point-cloud-library point-clouds ransac
1个回答
0
投票
有些人通过首先提取属于平面的所有点,然后搜索球体来解决此问题。其他人则使用目标的颜色(在使用相机的情况下)仅提取需要的点。

删除平面点应该适用于我的示例云,但是我的应用程序也可能具有更复杂的形状,因此可能太简单了。

我一直在搜索,我想我将在这里发表我的发现。随时分享您的想法!

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