
该笔记源于B站视频 点云PCL公众号分享之Pointnetlk解读—前半部分
1.点云配准简介
由于采集的点云的不完整、旋转错位、平移错位等,使得要得到完整的点云就需要对局部点云进行配准,为了得到被测物体的完整数据模型,需要确定一个合适的坐标系,将从各个视角得到的点集合并到统一的坐标系下形成一个完整的点云,然后就可以方便进行可视化操作,这就是点云数据的配准。

点云配准一开始常用的方法是ICP(迭代最近点 Iterative Closest Point )。ICP算法本质上是基于最小二乘法的最优配准方法。该算法重复进行选择对应关系点对,计算最优刚体变换这一过程,直到满足正确配准的收敛精度要求。这是很经典的方法,但它的弊端在于时效很低,是针对每一个点操作的,点的数量极大时该方法耗时较久;其次它对初值很敏感,如果两组点云一开始相差很大的话ICP算法是不能够找到一个全局最优解的,即找到了一个局部最优的情况并陷入了局部最优解。针对这些弊端后面有很多研究人员提出了改进的ICP算法或者是很多它的一些变种。
2.PointnetLK论文解读

对于前面提到的ICP算法的问题,这篇论文貌似并不是为了解决ICP算法的这些问题。它主要是使用深度学习去做点云配准或者说是直接用点而不是说把点云转化成体素等模型。
这篇论文的主要思想:首先是前面的pointnet,把点映射到高维空间,即把pointnet看成一个成像函数,把得到的多维特征向量,或者说在映射了一个高维空间后在特征空间把它看成一个图像。然后再使用经典的图像配准的算法LK光流算法,进行点云配准。
P T P_{T} PT是模板点云的数据,输入到pointnet后得到k维的向量,看成输入到了一个函数 ϕ ( P T ) \phi(P_{T}) ϕ(PT)里。点云配准即要找到一个变化矩阵 G G G, P S P_{S} PS为原点云,可以理解为模板点云是不动的,原点云要不断地变化变化使之匹配到一起,怎么变化由变化矩阵 G G G决定。

该图截取于https://blog.csdn.net/luohuiwu/article/details/80719146
G∈ SE(3)是原始点云到模板点云的刚性变化,是属于一个特殊李群。

ξ i \xi_{i} ξi是一个李代数,可以通过指数映射映射到李群上面,即所谓的变化矩阵 G G G上面。这样操作的原因是我们的这个变化矩阵 G G G是没有加法的,也就是说不能用传统的求导方法去求导 G G G,但是李代数 ξ i \xi_{i} ξi是可以求导的,通过求导李代数 ξ i \xi_{i} ξi便可得到 G G G的倒数(需要求导的原因是深度学习需要反向传播求导来计算梯度)。从而调整 ξ i \xi_{i} ξi便可间接来调整变化矩阵 G G G

接下来对模板图像做一个逆变换得到原图像(这里的变换只考虑点云之间的刚性变化) ϕ ( P S ) = ϕ ( G − 1 ⋅ P T ) \phi(P_{S})=\phi(G^{-1}\cdot P_{T}) ϕ(P

本文解析PointnetLK算法,一种结合深度学习与LK光流算法的点云配准方法,解决ICP算法的局限性,实现高效精准配准。
&spm=1001.2101.3001.5002&articleId=105306568&d=1&t=3&u=bbac92fdef7742f6bbb6c590c9f22bf6)
1万+

被折叠的 条评论
为什么被折叠?



