ICP算法(迭代最近点算法)详细推导

达代最近点算法( Iterative closest point,简称ICP),是一种广泛使用的点云匹配方法,是求解两个点云集合转换关系的常用方法。本文将首先给出问题的数学描述与模型,列出具体的计算方法,并一步步详细进行推导。详细的内容请参考论文[1]。

1. 问题描述

有两组点云,分别用\mathbf{\left \{P _{i} \right \}},\mathbf{\left \{Q _{i} \right \}}表示,其中\mathbf{\left \{Q _{i} \right \}}为参考帧,\mathbf{\left \{P _{i} \right \}}为当前帧的点云,共有N个点。我们需要计算从\mathbf{\left \{P _{i} \right \}}\mathbf{\left \{Q _{i} \right \}}的变化参数,即旋转R和半移T。如果变换参数是准确的,那么点云\mathbf{\left \{P _{i} \right \}}中的每一个点\boldsymbol{p_{i}},经过变换后应该与点云\mathbf{\left \{Q _{i} \right \}}中的点完全重合,即:\boldsymbol{q_{i}=Rp_{i}+T}。但由于有噪声的存在,不可能所有点都完全重合,所以我们定义目标函数:

                                                         \boldsymbol{F=\sum_{i=1}^{N}\left | q_{i}-(Rp_{i}+T) \right |^{2} }

使目标函数最小的R,T即为所求变换参数。

2. 计算方法

首先计算两组点云的质心,分别记为\boldsymbol{\mu _{p}}\boldsymbol{\mu _{q}}

                                                           \boldsymbol{\mu _{p}=\frac{1}{N}\sum_{i=1}^{N}p_{i}}   ,\boldsymbol{\mu _{q}=\frac{1}{N}\sum_{i=1}^{N}q_{i}}

对两组点云进行去质心,得到\boldsymbol{p_{i}^{'}}\boldsymbol{q_{i}^{'}}

                                                         \boldsymbol{p_{i}^{'}=p_{i}-\mu _{p}} , \boldsymbol{q_{i}^{'}=q_{i}-\mu _{q}}

构建矩阵H:

                                                                     \boldsymbol{H=\sum_{i=1}^{N}p_{i}^{'}q_{i}^{'T}}

H矩阵进行SVD分解:

                                                                        

得到RT

                                                       

ICP算法(迭代最近点算法)详细推导_第1张图片

ICP算法(迭代最近点算法)详细推导_第2张图片

ICP算法(迭代最近点算法)详细推导_第3张图片

ICP算法(迭代最近点算法)详细推导_第4张图片

你可能感兴趣的:(三维重建,深度学习,机器学习)