五点基本矩阵估计的Sampson误差

时间:2014-10-27 07:42:27

标签: matrix computer-vision ransac pose-estimation reprojection-error

我使用Nister的5点方法来计算基本矩阵。使用RANSAC和Sampson误差阈值进一步改进了异常值抑制。我随机选择5个点集,估计基本矩阵并评估匹配向量的Sampson误差。 Sampson误差低于阈值t(在我所拥有的示例中设置为0.01)的点坐标被设置为内点。对所有基本矩阵重复该过程,并保留具有最佳内点的分数。

我注意到d的大多数值,即sampson误差的向量太大了:例如,如果d的大小是(1x1437),如果我做的话 G =查找(ABS(d)> 0.01); 长度(G)

然后长度(g)= 1425这意味着只有7个值是这个阈值的内部值,这是不正确的!

如何设置阈值?如何解释Sampson错误值?

请帮帮我。谢谢

3 个答案:

答案 0 :(得分:11)

Sampson距离是几何距离的一阶近似。可以理解如下:

给定一个基本矩阵F和一对对应关系(x,x')使得x' Fx = e,这对应的距离/误差是多少?几何距离是针对所有对应关系(y,y')定义的,使得y' Fy = 0,|| xy || ^ 2 + || x' -y' |的最小值。 | ^ 2(换句话说,最接近的对应关系到(x,x'),它完全满足F矩阵)。并且可以证明Sampson误差是该最小距离的第一近似值。

直观地,Sampson误差可以粗略地认为是点x与相应的极线x&f; F之间的平方距离。在这种情况下,0.01的阈值太小(您很少找到基本矩阵,使得所有对应都在0.1像素精度内)。根据图像对的大小/分辨率/质量,建议的阈值将在1到10之间(1~3像素误差)。

答案 1 :(得分:2)

0.01是一个太小的阈值。 作为最后一个答案,1到10更好。

x和x'使用sampson误差意味着它们都不在每个极线上,我们需要为这两个点计算这个误差。

如果你修复x,使用F和x计算第二张图像中的线条(x'在此图像上),然后你可以计算点到线的距离(x'到极线) 。这意味着你认为x点是正确的,就在它的行中。

这两种方式不同。

答案 2 :(得分:0)

如果你处理标准化的摄像机,那么

0.01就不会太小,也就是说你将像素坐标与逆内在参数矩阵相乘。