7

我使用 Nister 的 5 点方法来计算基本矩阵。使用 RANSAC 和 Sampson 错误阈值进一步改进了异常值拒绝。我随机选择 5 个点集,估计基本矩阵并评估匹配向量的 Sampson 误差。Sampson 误差低于阈值t0.01在我使用的示例中设置为)的点坐标被设置为内点。对所有基本矩阵重复该过程,我们保留内点得分最高的矩阵。

我注意到dsampson 错误向量的大多数值太大:例如,如果 的大小d为 (1x1437),如果我这样做

g=find(abs(d)>0.01);
length(g)

那么length(g)=1425这意味着只有 7 个值是不正确的阈值的内点!

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

请帮帮我。谢谢

4

3 回答 3

20

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

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

直观地说,桑普森误差可以粗略地认为是点 x 到对应的极线 x'F 之间的平方距离。在这种情况下,0.01 的阈值太小了(您很少找到一个基本矩阵,使得所有对应关系都在 0.1 像素精度内)。建议的阈值介于 1 到 10 之间(1~3 像素误差),具体取决于图像对的大小/分辨率/质量。

于 2014-11-07T15:31:53.993 回答
2

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

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

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

这两种方式是不同的。

于 2016-03-25T08:17:26.957 回答
0

如果您处理归一化相机,0.01 并不算太小,也就是说,您将像素坐标乘以逆固有参数矩阵。

于 2018-05-12T00:45:54.793 回答