点集配准与ICP算法(一)

来源:互联网 发布:java常用设计模式图解 编辑:程序博客网 时间:2024/05/17 04:18

       一图胜千言,古人喜欢从画中寻觅诗意,妙不可言;现代科学则希望从理解世界的视角来分析图像,于是计算机图像学、计算机视觉风生水起。

       我有幸在一所西部高校里做机器人方便的研究,得以接触大量的图像数据,这些图像中既有普通的二维图像(由工业相机采集),也有三维图像(由激光传感器采集)。最近做了的项目里,我要计算出每张图像所对应的位姿数据:所谓的位姿,由两部分组成:位置信息(x, y, z )和角度信息(三个欧拉角),这个问题(Pose Estimation)有趣但很有挑战性,首先我要解决两个点集的配准问题。

       由于理解力有限,我无法从高度抽象的角度来描述什么叫点集配准,所以我从自己碰到的问题出发,尽量把点集配准的概念表述清楚。

       有两个点集,Model-Point-Set和Data-Point-Set,固定Model-Point-Set,对Data-Point-Set进行旋转(Rotation)和平移(Translation)甚至加上尺度(Scale)变换,使得Data-Point-Set上的点尽量和Model-Point-Set上的点尽最大可能的重合,这变换的过程就叫点集配准。

       上面的表述中有两个地方要格外注意:一、模型点集是固定不变的,数据点集要经过旋转平移尽量接近模型点集,而RT变换是一步到位还是慢慢接近?二、“重合”的定义,即如何计算两个点集A和B之间的距离。

       对于第二点,我们通常采用对应点对之间的欧式距离和来表示两个点集的距离;对于第一点,当我们采用欧氏距离时,会发现配准问题可以化最小二乘优化问题,可以使用一般的优化方法如梯度下降、粒子群算法等求解,也可以一步到位,用SVD分解求解。

       在实际应用中,会发现点集配准有好多问题要解决,首当其冲的是两个点集的对应关系是不知道的,1)因为视角不同,点集A和点集B可能只有部分点重合2)即使同一视角,A和B所代表的点是由不同的栅格化方法产生的,而且还有噪声。3)没有噪声的情况下,点对的对应关系也不明确。

       目前最好的点集配准方法是ICP,IterativeClosest Points,该方法利用迭代一步步地算出正确对应关系。ICP是在90年代提出的,已经有20多年的历史,广泛地应用于模型重建、多视角配准、地图创建等领域,个人感觉ICP作为一种算法框架无疑是很成功的,其变种之多类似于进化算法,在应用时要选择具体方法,我会研读分析几篇经典的论文,和大家分享讨论。

0 0
原创粉丝点击