到目前为止,我们已经知道怎么由一系列图像得到它们之间的相对姿态了,在这里暂停一下,插入这篇讨论一下RANSAC、最小二乘、DLT。
一、RANSAC随机抽样一致算法
在vslam中通过对图像进行特征点匹配,然后根据匹配点坐标计算恢复出图像相对姿态。但是匹配会存在误匹配,数据也存在噪声,那么怎么在包含错误点的数据内获得我们想要的最优解呢?我们用到了RANSAC随机抽样一致算法。
RANSAC是“RANdom SAmple Consensus(随机抽样一致)”的缩写。它可以从一组包含“局外点”的观测数据集中,通过迭代方式估计数学模型的参数。它是一种不确定的算法——它有一定的概率得出一个合理的结果;为了提高概率必须提高迭代次数。该算法最早由Fischler和Bolles于1981年提出。核心思想就是随机性和假设性,随机性用于减少计算,循环次数是利用正确数据出现的概率。所谓的假设性,就是说随机抽出来的数据都认为是正确的,并以此去计算其他点,获得其他满足变换关系的点,然后利用投票机制,选出获票最多的那一个变换。
RANSAC的基本假设是:
(1)数据由“局内点”组成,例如:数据的分布可以用一些模型参数来解释;
(2)“局外点”是不能适应该模型的数据;
(3)除此之外的数据属于噪声。
局外点产生的原因有:噪声的