本文主要用来记录我在学习过程中接触到的一些或新或旧的点云配准的方法,有些方法我可能还不怎么理解,如果有错误欢迎大家指出。
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采用的是类似与在球面上画圆的方法,如下图:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/fa644c5bd6775ee9f295cfe005264717.jpeg)
球面上在圆
c
c
上的点,与点连接产生的向量
v⃗
v
→
,与向量
n⃗
n
→
之间的夹角,均为
θ
θ
。若圆
c
c
具有一定的宽度,则圆上所有点与组成的向量与向量
n⃗
n
→
的夹角分布在
[θ−ξ,θ+ξ]
[
θ
−
ξ
,
θ
+
ξ
]
。这样就可以快速找到交叉角度在一定范围内的两条直线。那么如何快速找到圆面上的这些点,Super4PCS则是通过光栅化,智能索引来完成,如下图:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/6fc78b3d0fa2e8a959ccf24333ed3179.jpeg)
这里原文中是通过二维来展示算法,不停的细分网格(cell),将点云归一化塞入其中创建快速索引。这一部分不是很理解,欢迎大家来交流。
SK-4PCS(Semantic Keypoint 4-Points Congruent Sets)
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/81e47f1b7a0d34db83973b2ea70b2eaf.jpeg)
在提取了上表面后,使用一系列高度间隔为
ht
h
t
的平行面去分割点云,分割示意图如下图所示,其中绿色部分为其中一平行面:
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/c69b92f46319cc178c998de1a80f7ff9.jpeg)
对与分割面内的点,首先对其高度统一化,然后把他们看作2D图像,进行2D的特征提取和分割,如下图。其中红色点为线段顶点,绿色点为两条线的交点。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/75b0a7adbc5025d94127b4ffc3ff7b8a.jpeg)
在提取了每个横截面中的特征点后,我们需要对它们进行区分和连接,根据他们自身的位置,以及潜在位置赋予不通的标签。最终建立
target
t
a
r
g
e
t
和
source
s
o
u
r
c
e
中语义点的意义对应关系。连接后的语义点如下图,其中蓝色线条连接特征点,红色点代表线段的顶点,绿色点代表线段的相交点,紫色三角形则是我们所定义的语义点,是连接线段与参考面的交点,存储着整条线段的语义信息(特征点的个数,每个特征点的标签)。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/6b9153b2b97092e6870a72d2ce3aef6e.jpeg)
在搜寻到所有的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
的最短距离。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/b1884fe5bc30db863f787ccabb58fff0.jpeg)
则此方法不仅需要满足类似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→Rf h : R p → R f 为特征提取函数,矩阵 Dk+1∈Rp×f D k + 1 ∈ R p × f 将特征 h(Xk) h ( X k ) 转换为更新向量,矩阵 Dk+1 D k + 1 由训练数据得来。
2. 训练方法
给定一个训练集
(X(i)0,X(i)∗,h(i))Ni=1
(
X
0
(
i
)
,
X
∗
(
i
)
,
h
(
i
)
)
i
=
1
N
,其中
X(i)0∈Rp
X
0
(
i
)
∈
R
p
是第
i
i
个问题的实例,为真实值(groundt ruth),而
h(i):Rp→Rf
h
(
i
)
:
R
p
→
R
f
为第
i
i
个实例的特征,DO的目标就是学习更新序列,使得
Xi0
X
0
i
更新为
Xi∗
X
∗
i
,学习规则采用如下最小二乘回归函数:
在学习了 Dk+1以后 D k + 1 以 后 ,可以用(1)来更新 X(i)k X k ( i ) ,然后继续学习下一层,不断重复这个过程,直到满足终止条件。当 X(i)k≈X(i)∗ X k ( i ) ≈ X ∗ ( i ) ,式(3)会强制 D~h(i)(X(i)k) D ~ h ( i ) ( X k ( i ) ) 接近于0,也就是在 X(i)∗ X ∗ ( i ) 附近引入驻点。在实际中,为了防止过拟合,加入了ridge regression:
3. 配准应用
设
M∈R3×NM
M
∈
R
3
×
N
M
为模型点云矩阵,
S∈R3×NS
S
∈
R
3
×
N
S
为场景模型矩阵。我们的目标是找到
S→M
S
→
M
的最佳变化矩阵。
由于大部分感兴趣的点云都是由物体表面组成的,文中提出了一种基于统计场景中的点在模型点的前方还是后方的特征函数用于矩阵学习,如下图:
我们定义
n⃗ a∈R3
n
→
a
∈
R
3
为模型点
ma
m
a
由其领域计算得来的法向量。
Γ(y;x)
Γ
(
y
;
x
)
使用参数
x
x
对做刚性变换。
ma
m
a
的前方点定义为:
S+a={sb:n⃗ ⊤a(Γ(sb;x)−ma)>0}
S
a
+
=
{
s
b
:
n
→
a
⊤
(
Γ
(
s
b
;
x
)
−
m
a
)
>
0
}
,
S−a
S
a
−
则包含其他的场景点,对于
h:R6×R3→R2NM
h
:
R
6
×
R
3
→
R
2
N
M
定义如下:
为了加速算法,输入数据会被归一化到 [−1,1] [ − 1 , 1 ] ,训练数据来自对模型的随机采样,并进行随机变换做为ground truth进行训练。
结合法
结合法是将点云的颜色信息与几何信息相结合经行配准,原文见2017年ICCV:Colored Point Cloud Registration Revisited [10] [ 10 ] 。文中回顾了RGB-D深度图像基于颜色的配准方案和基于几何位置的配准的方案,并将两者的相结合,并推广至无序点云。
1. RGB-D
一副RGB-D图像由颜色信息
I
I
和深度信息组成,这里我们采用灰度信息来简化问题。给定一对RGB-D图像
(Ii,Di)
(
I
i
,
D
i
)
,
(Ij,Dj)
(
I
j
,
D
j
)
以及一个粗略的初始矩阵
T0
T
0
,我们的目标是找到一个使两幅图像紧密配准的最佳变换矩阵。
基于颜色信息的目标函数
EI
E
I
为:
其中,
x=(u,v)T
x
=
(
u
,
v
)
T
是RGB-D图像
(Ij,Dj)
(
I
j
,
D
j
)
中的一个像素,而
x′=(u′,v′)T
x
′
=
(
u
′
,
v
′
)
T
是点
x
x
在图像中的对应点。这种对应关系是通过将深度像素
(x,Dj(x))
(
x
,
D
j
(
x
)
)
在
(Ij,Dj)
(
I
j
,
D
j
)
的空间中转换为3D点,并将其变换
T
T
后投影到图像中建立的,具体如下:
其中, h h 是将深度像素转换为3D点,为刚性变换, g g 为的逆函数,将3D点转换为深度像素。
同样的,我们根据深度信息也可以如此定义目标函数 ED E D ,由两幅点云是在不同的相机空间中测量得到的,直接比较深度值会导致一个错误的结果, 所以这里我们采用弯曲深度。
如此我们可以通过下式 E E ,将两者进行结合,其中为一常数,用于平衡两者间的关系。
2. Color Point Cloud
接着,文章将上述方法拓展至普通点云。
P
P
为一有色点云,为颜色检索函数,我们需要将颜色建设函数转变为一个连续函数
Cp(u)
C
p
(
u
)
以便使用其梯度。
因此,文中为每一个点
p∈P
p
∈
P
引入了虚拟正交相机这一概念,其沿着
n⃗ p
n
→
p
,观察点
p
p
,虚拟相机的观察面为点的切平面,设
u⃗
u
→
是从点
p
p
开始的位于切平面上的一个向量,,则函数
Cp(u)
C
p
(
u
)
可一阶近似为:
其中 dp d p 是函数 (Cp(u)) ( C p ( u ) ) 的梯度,由对其临近点进行最小二乘拟合得来。我们定义 f(s) f ( s ) 为投影3D点到切平面的函数:
同样地我们假设虚拟相机有着深度信息因此定义连续深度函数 Gp(u) G p ( u ) ,他的原点的梯度为0, 0p 0 p 为相机原点,则起一阶近似为:
这样,对于两个点云 P,Q P , Q 我们可以定义联合最优函数 E(T) E ( T ) :
令 p,q p , q 为每次迭代后 P P 和的对应点集 K={(p,q)} K = { ( p , q ) } 。 q′ q ′ 为点 q q 在点的切平面上的投影
则 EC,EG E C , E G 分别如下定义:
如何求解,可以参考原文。同时为了避免陷入局部最优,文中采用不同大小的体素滤波器对原始点云进行滤波产生了不同精度的点云金字塔,通过不断提高输入的点云密度使得配准精度由粗略转为精细。
04/01/2018
ICP(Iterative Closest Point)
ICP算法是由PJ Besl , ND Mckay [6] [ 6 ] 在1992年提出的一种高层次的基于自由形态曲面的配准方法。原文连接见:A method for registration of 3-D shapes。简单来说就是不停的循环,在两个点云间找到最近的对应点,由这些对应点计算出一个使按照此旋转平移矩阵变换后对应点距离最小的RT矩阵,并进行变换,重复以上步骤,直到某些值达到设定的阈值则停止迭代。对于点集 P,Q P , Q ,算法步骤如下:
- 计算点集 Qi Q i 中的若干点在点集 P P 中的最近点
- 求上述对应最近点对平均距离最小的旋转变化矩阵
- 对点集 Qi Q i 使用上述求的 RTi R T i 进行变换得到点集 Qi+1 Q i + 1
- 若点集 P P 与点集的某些目标函数小于一定阈值(例如最近点的平均距离),则可以停止迭代
模型对应法
好吧,这个名字是我起的。文章并没有给这个方法起一个名字。这篇文章是我在查阅资料时遇到的一篇100+引用的文章,原文是由T Rabbani , S Dijkman , FVD Heuvel , G Vosselman 发表在ISPRS上的
[7]
[
7
]
。原文连接见:An integrated approach for modelling and global registration of point clouds。这篇文章有趣之处在于提出了一种对点云进行建模与配准同时进行的方法。原文中有大量的公式推导,这里不会进行赘述。文章中针对工业环境存在大量的简单几何体例如平面,圆柱,圆环等实际提出两种方法,一种间接法,一种直接法。其中间接法是将物体拟合和场景匹配分开来做,而直接法则是同时决定物体的形状和位置参数以及配准参数。
1. 间接法
- 在不通的场景中为每个点赋予一个标记,将其标记在一个具体的物体上,文中采用Hoover, A., Jean-Baptiste, G. et al.在1996年提出的方案 [8] [ 8 ] ,An experimental comparison of range image segmentation algorithms。
- 在每个场景中,对每一个物体进行基于最小均方差的参数拟合
- 将物体参数做为输入,使用最小均方差法去计算最后的变换矩阵的参数,这一步将物体参数的均方差做为场景的变换参数的目标函数使其最小
数学公式可表示如下:
其中:
在等式中, C C 是指存在的对应关系的个数,每一个对应关系都包含有两个物体。第 i i 个对应关系的模型由个拟合参数。 ΨRaitai Ψ R i a t i a 表示对场景使用变换对 Raitai R i a t i a 进行变换。物体 a a 由它的参数建模而成。我们的目标是使得存在对应关系的物体对的参数的均方差 Δ2uij Δ u i j 2 最小。因此,我们可以调整参数 {R} { R } , {t} { t } 。那么如何求解这个最值问题,具体可以参考原文的推导。
2. 直接法
- 配准参数预估,结果仅仅是对配准参数的预估
- 综合调整,配准参数和模型参数同时被估算
数学公式可表示如下:
其中, O O 是物体的总数,是被用于第 i i 个物体配准的点云 中所有未配准的点云中的点的个数。函数计算一个给定点到第 i i 个物体表面的正交距离(orthogonal distance)。我们的目标是通过调整使 Ω2i Ω i 2 最小 。其中第二步来自Bundle Adjustmengt方法的拓展 [9] [ 9 ] 。
参考文献:
[1] Homepage B T. 4-points Congruent Sets for Robust Surface Registration[J].
[2] Mellado N, Aiger D, Mitra N J. Super 4PCS Fast Global Pointcloud Registration via Smart Indexing[J]. Computer Graphics Forum, 2015, 33(5):205-215.
[3] Ge X. Automatic markerless registration of point clouds with semantic-keypoint-based 4-points congruent sets[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2017, 130:344-357.
[4] Theiler P W, Wegner J D, Schindler K. Keypoint-based 4-Points Congruent Sets – Automated marker-less registration of laser scans[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2014, 96(11):149-163.
[5] Mohamad M, Ahmed M T, Rappaport D, et al. Super Generalized 4PCS for 3D Registration[C]// International Conference on 3d Vision. IEEE Computer Society, 2015:598-606.
[6] Besl P J, Mckay N D. A Method for Registration of 3-D Shapes[M]. IEEE Computer Society, 1992.
[7] Rabbani T, Dijkman S, Heuvel F V D, et al. An integrated approach for modelling and global registration of point clouds[J]. Isprs Journal of Photogrammetry & Remote Sensing, 2007, 61(6):355-370.
[8] Hoover A, Jean-Baptiste G, Jiang X, et al. An experimental comparison of range image segmentation algorithms[J]. IEEE Trnasactions on Pattern Analysis & Machine Intelligence, 1996, 18(7):673-689.
[9] Atkinson K B. Close Range Photogrammetry and Machine Vision[J]. Empire Survey Review, 2001, 34(266):276-276.
[10] Park J, Zhou Q Y, Koltun V. Colored Point Cloud Registration Revisited[C]// IEEE International Conference on Computer Vision. IEEE Computer Society, 2017:143-152.
[11] Vongkulbhisal J, Torre F D L, Costeira J P. Discriminative Optimization: Theory and Applications to Point Cloud Registration[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2017:3975-3983.