PCL点云分割:Min-cut Based Segmentation

背景:

PCL官方教程:http://www.pointclouds.org/documentation/tutorials/min_cut_segmentation.php#min-cut-segmentation

Min-cut Based Segmentation论文:http://gfx.cs.princeton.edu/pubs/Golovinskiy_2009_MBS/paper_small.pdf


1. 使用感受和调参:

算法超参数太多,使用者不友好的算法。除了PCL官方教程里的参数设置,网上没有其他数据集对于的参数设置,即使作者的博客和论文提供了很多看起来很好的效果,我只能说我是不信服的。有也只能是well-tuned result.

那么官方教程里给的效果图是否是真的呢?PCL点云分割:Min-cut Based Segmentation_第1张图片

答案不是。因为我复制他们的代码,跑他们的数据,得到的是:

PCL点云分割:Min-cut Based Segmentation_第2张图片

注意上方那一台车里也有属于中间那台车的白点。

然后呢,我试着控制变量法地调算法里参数,来看看算法对参数变化的敏不敏感。

我调了它的foreground_point的x,y,z值,变化很小。

然后就是NumberOfNeighbours = 14->4, 变化蛮大的,如图:

PCL点云分割:Min-cut Based Segmentation_第3张图片

左右的车都开始有白点了。

然后调Sigma 0.25->0.5 没影响。

然后调SourceWeight 0.8 -> 1.2 的影响就很大了:

PCL点云分割:Min-cut Based Segmentation_第4张图片

然后调Radius 3.0433856->3.0433856*0.75的影响也很大,如图中间的车一部分点变红了:

PCL点云分割:Min-cut Based Segmentation_第5张图片


调参可以参考:

https://github.com/PointCloudLibrary/pcl/blob/master/segmentation/include/pcl/segmentation/min_cut_segmentation.h


3. 总结:

总结一下,这个算法在官方的代码和数据跑出来的点云分割效果有瑕疵,而且有很多参数需要设置,其中Radius,NumberofNeighbours和SourceWeight的数值变化会对结果有很大影响,设置参数时可以从他们开始。那么应该怎么设置这些参数呢,我们就需要看论文了。我目前看懂了一部分论文了,个人还需要去复习Graph Cut的知识。先留一个读论文的坑在这里,以后有时间补上。

我最后没选择这种方法到我的项目上,因为我觉得它的鲁棒性或者普适性低。

你可能感兴趣的:(PCL,点云分割)