点云:镭射激光或立体相机扫描物体表面获得的三维坐标、颜色、吸收率等数据
不同角度获得点云在不同坐标系下的坐标,点云配准就是要找到一个统一的坐标把不同角度下的点云拼接起来
Q:可能不同角度获得的是不同面上的点,如果是同一点的集合在不同角度的坐标可以通过配准获得旋转矩阵和平移向量,就是根据相同点在不同角度时的坐标获得旋转矩阵和平移向量,进而求得其他新点在新的坐标系下的坐标达到拼接的目的(其实只要知道点与点的对应关系w就可以求旋转矩阵和平移角度,如何将点与点进行匹配就是难点。配准的前提是我知道有两块点云一定是同一物体的是吗?也就是我配准的两块点云我已经确定来自于同一物体?那如何判断两块点云是否来自于同一物体?如果测试器知道自己两个坐标系的旋转角和平移向量不就可以直接拼接了吗?这样问题就变为了判断两块点云是同一物体)
有序点云:从按照左上到右下一行一行排列,可以很容易找到相邻点的信息
无序点云:点的集合,点排列之间没有任何顺序,比较普遍的点云形式,有序点云也可看做无序点云来处理
ICP(不考率颜色与吸收率等信息)
参考点云S 目标点云D
计算D到S之间的旋转矩阵R和平移向量T
迭代进行step1、step2直到满足停止迭代的条件
step1 粗配准 得到Ri和Ti:
计算Di中的每个点在S中最近的对应点Si,
step2 计算Ri+1、Ti+1
根据D和Si求旋转前后的质心u,si,,对D、Si去中心化后利用svd(奇异值分解,USV‘ = D*Si R = U*V’ T = si - R*u)得到R、
Di+1 = R*D + T
以上算法成为ICP的point-to-point算法,为了加快运算,ICP还有point-to-plane、plane-to-plane的变种,其中的plane指的是点云的切平面,与原始ICP的区别在于目标函数变为Σ(Msi-di)*ni
其中M=T*R表示旋转平移是一个4x4的矩阵,ni是法向量
T = R=
1 | 0 | 0 | tx |
0 | 1 | 0 | ty |
0 | 0 | 1 | tz |
0 | 0 | 0 | 1 |
r11 | r12 | r13 | 0 |
r21 | r22 | r23 | 0 |
r31 | r32 | r33 | 0 |
0 | 0 | 0 | 1 |
GICP