本文主要用来记录我在学习过程中接触到的一些或新或旧的点云配准的方法,有些方法我可能还不怎么理解,如果有错误欢迎大家指出。
2018/04/15 添加LORAX
2018/04/08 添加DO法和结合法
2018/04/01 初版
我们都知道点云配准分为粗配准(Coarse Registration)和精配准(Fine Registration)两个阶段,本文同样也分为粗配准和精配准两个部分来说明。
粗配准方案
LORAX
这是一篇采用机器学习的点云配准的论文,简单来说就是通过将点云用一个个球体分成很多个小快,对每一块投影成深度图,然后采用深度神经网络对深度图进行特征压缩,最后压缩成一个5×2的矩阵做为一个特征,也就是我们所说的描述子(descriptor)。通过这些描述子的位置关系可以进行粗配准,最后文章也还是采用了ICP进行精配准。原文链接:3D Point Cloud Registration for Localization Using a Deep Neural Network Auto-Encoder。具体的内容我单独写了一篇博客:阅读笔记
4点法(4-Points Congruent Sets,4PCS)
4点法由D Aiger,NJ Mitra,D Cohen-Or [1] [ 1 ] 于2008年提出的一种快速地,鲁棒地的3D点云粗配准方法,原文链接见 4-points Congruent Sets for Robust Surface Registration
占个位,这部分内容可见我的阅读笔记 4-Points Congruent Sets for Robust Pairwise Surface Registration——4PCS阅读笔记
Super 4PCS(Super 4-Points Congruent Sets)
Super 4PCS是由Nicolas Mellado,Dror Aiger,Niloy J. Mitra [2] [ 2 ] 等人与2014年提出的一种对4PCS的加速方案。原文连接见Super4PCS: Fast Global Pointcloud Registration via Smart Indexing。
网上很少能找到关于这篇文章的原理,我个人的理解是首先它通过记录点集 P P 中
, cd c d 两条直线相交的角度 θ θ ,在点集 Q Q 中寻找匹配对时,额外计算两条直线相交的角度是否在
的一定范围 ξ ξ 里,从而排除一些无效的匹配对来加速配准。
那么如何快速的找到角度在一定范围内的匹配对呢,Super4PCS采用的是类似与在球面上画圆的方法,如下图:
球面上在圆 c c 上的点,与点
连接产生的向量 v⃗ v → ,与向量 n⃗ n → 之间的夹角,均为 θ θ 。若圆 c c 具有一定的宽度,则圆上所有点与
组成的向量与向量 n⃗ n → 的夹角分布在 [θ−ξ,θ+ξ] [ θ − ξ , θ + ξ ] 。这样就可以快速找到交叉角度在一定范围内的两条直线。那么如何快速找到圆面上的这些点,Super4PCS则是通过光栅化,智能索引来完成,如下图:
这里原文中是通过二维来展示算法,不停的细分网格(cell),将点云归一化塞入其中创建快速索引。这一部分不是很理解,欢迎大家来交流。
SK-4PCS(Semantic Keypoint 4-Points Congruent Sets)
在提取了上表面后,使用一系列高度间隔为 ht h t 的平行面去分割点云,分割示意图如下图所示,其中绿色部分为其中一平行面:
对与分割面内的点,首先对其高度统一化,然后把他们看作2D图像,进行2D的特征提取和分割,如下图。其中红色点为线段顶点,绿色点为两条线的交点。
在提取了每个横截面中的特征点后,我们需要对它们进行区分和连接,根据他们自身的位置,以及潜在位置赋予不通的标签。最终建立 target t a r g e t 和 source s o u r c e 中语义点的意义对应关系。连接后的语义点如下图,其中蓝色线条连接特征点,红色点代表线段的顶点,绿色点代表线段的相交点,紫色三角形则是我们所定义的语义点,是连接线段与参考面的交点,存储着整条线段的语义信息(特征点的个数,每个特征点的标签)。
在搜寻到所有的SK-Point后,将这些SK-Points做为输入进行配对对的搜寻,不仅要满足原始的配准要求,同时其语义也要相同才能标记为匹配。
G-4PCS(Generalized 4-points congruent sets)
G-4PCS是由M Mohamad , D Rappaport , M Greenspan 提出的对4PCS的一种拓展,使4点法不在局限于共面的4点对。原文连接见:Super Generalized 4PCS for 3D Registration。
此方法不在限制4点须在一个平面内,下图显示了非共面的4点对, S={
p,q,i,j} S = { p , q , i , j } ,我们认为 pq p q , ij i j 空间相交,在 pq p q 上相交于 m m ,在
上相交于 n n ,
是 pq p q 到 ij i j 的最短距离。
则此方法不仅需要满足类似4点法的比例关系:
还需要满足下面这个附加条件:
满足以上三个条件才可认为是匹配对。
由于在4PCS中,强制选取共面的4点,所以由于点云对称导致的配准错的问题并不明显,但是在3D中,这种对称则会导致较为严重的错。如下图,假如一个基础对 Γ={ i,j,p,q} Γ = { i , j , p , q } 以及3D交叉点 { n,m} { n , m } 。
我们可以找到很多满足上式的匹配对,例如: Γ1={ i,j,p1,q1} Γ 1 = { i , j , p 1 , q 1 } , Γ2={ i,j,p2,q2} Γ 2 = { i , j , p 2 , q 2 } , Γ1={ i,j,p3,q3} Γ 1 = { i , j , p 3 , q 3 } ,分别相交于 n,m1 n , m 1 , n,m2 n , m 2 , n,m3 n , m 3 。因此,有必要在寻找匹配对时删去这些模糊的匹配对。在SK-4PCS中,作者对这种问题进行了分类,将其分为垂直类型和平面类型的两种模糊。
对于垂直类型的模糊,例如 Γ Γ 和 Γ1 Γ 1 ,我们可以计算向量 nm−→− n m → 和向量 nm1−→− n m 1 → ,并和参考点云的向量做比较从而区分他们。
对于平面类型的模糊,如下图,我们定义一个通过向量 ij→ i j → 来定义一个参考方向,并计算方位角 α2 α 2 , α3 α 3 从而进行区分。
精配准方案
精配准中,最经典最常用的方法就是迭代最近点法(Iterative Closest Point,ICP),而后的大多数方法都是ICP的变种。下文会简单介绍ICP算法的原理以及我在查阅论文中遇到的一些引用数较多的文章中所提到的算法。如果大家有什么经典或者新颖的算法也可以留言大家共同讨论交流,学习进步。
04/08/2018
DO(Discriminative Optimization)
与传统的构建损失函数,求解损失函数不同, 这篇文章提出了DO(Discriminative Optimization)的方法,通过学习更新序列来解决一系列计算机视觉上的问题。原文见2017年CVPR:Discriminative Optimization: Theory and Applications to Point Cloud Registration [11] [ 11 ] 。
1. 更新法则
DO采用如下的更新法则:
其中, h:Rp