Branch and Bound(BnB)算法及其在点云配准上的应用

1. 前言

点云配准在点云数据处理应用领域,一直是一个热点问题,包括TPAMI,CVPR,ICCV等顶刊顶会,每年都会有相应的工作被提出。众所周知,ICP算法在对于解决点云配准问题上,应用最广。当然ICP算法本身也有显著的问题,如局部最优,尺度敏感,对局部到全局的对应缺少鲁棒性等。很多方法尝试基于ICP算法,提出改进,以解决上述问题,如NDT,PFH等等。近年来,一些工作利用BnB与ICP的结合构建配准算法框架,变成一个流行趋势。BnB可以被理解为一个基于上下定界的优化搜索问题,通过BnB,能够迭代的寻找到更加准确的点云变换矩阵。本文就来展开介绍下BnB算法及其在点云配准方面的应用。

2. BnB(分支定界)算法介绍

部分内容来自:

https://www.cnblogs.com/dengfaheng/p/11225612.html

https://www.jianshu.com/p/c738c8262087

BnB算法用最简单的方法来理解,就是通过将一个复杂的问题,通过划定小的问题域来求解,进而降低求解难度的方法。这些小的问题域被整合在一个搜索树结构中,通过求解问题的上下界,实现对最优解的搜索,直到全局收敛。整个过程可以被看作是有约束的枚举过程。

BnB算法只关心目标函数的极值。

BnB算法如果在一个分支上,所获得理论最有解差于其他分支,则算法将舍弃该分支,实现枚举约束。

一个实例:整数规划

可以设置当前解为负无穷,部分文章会建议设置一个随机值。

通过线性松弛求得两个子问题的upper bound为Z_LP1 = 12.75,Z_LP2 = 12.2,优于当前解,继续搜索。

问题3得不到解,被放弃。问题4满足约束,更新最优解为10。问题5的upper bound为11.87, 大于当前最优,可继续搜索。问题6的upper bound为9,小于当前最有,丢弃。之后我们搜索问题5。

最后我们基于问题五,得到一个新的解,但是比当前最有解差,所有得到全局最优解为10。

我们可以看到,根据upper bound的估计,我们删除了很多不必要的计算。因此BnB最重要的问题就是如何估计upper bound(有些问题可能会有 lower bound)以及如何基于当前节点建立子节点进行搜索。

3. BnB算法在点云配准中的应用

较早的提出将BnB用在配准问题的是Olsson在2008年的工作 [Olsson2008]。该方法能够使用点对点,点对线和点对面的对应,来解决不同姿态下的配准问题。

另外一个非常成功的应用就是Go-ICP算法 [Yang 2015]。Go-ICP算法从全局优化的角度来合理规划不同阶段的ICP更新任务,其最大优点就是尽可能减少了局部最优的情况,算法伪代码如下:

Go-ICP:全局优化ICP配准方法:

Result of GoICP:

作者同时给出了算法实现:https://github.com/yangjiaolong/Go-ICP.

我在更多的实验数据上做了测试,发现收敛速度还是有一点慢。主要原因是BnB毕竟还是要做很多的分支判断,仅仅是对穷举的一种变相优化。

未来我还会探索更多有效率的配准方法。

参考文献:

[Kahl 2008]C. Olsson, F. Kahl, M. Oskarsson. Branch-and-bound methods for euclidean registration problems[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 31(5): 783-794.

[Yang 2016] J. Yang, H. Li, D. Campbell, et al. Go-ICP: A globally optimal solution to 3D ICP point-set registration[J]. IEEE transactions on pattern analysis and machine intelligence, 2016, 38(11): 2241-2254.

猜你喜欢

转载自blog.csdn.net/aliexken/article/details/113439583