← 返回技术文章

Sampson 误差

在在两视图几何(epipolar geometry)里面,经常会提到Sampson 误差,那么什么是 sampson 误差呢?

1. 背景:两视图几何和对极约束

在两视图几何中,如果我们有两幅图像的匹配点 x=(u,v,1)T\mathbf{x} = (u, v, 1)^Tx=(u,v,1)T\mathbf{x}' = (u', v', 1)^T,它们应满足 对极约束 (epipolar constraint)

xTFx=0\mathbf{x}'^T F \mathbf{x} = 0

其中 FF基础矩阵 (fundamental matrix)

但在实际数据中,由于噪声,约束通常不严格成立:

xTFx0\mathbf{x}'^T F \mathbf{x} \neq 0

于是需要一个 误差度量 来描述点与几何模型的偏差。


2. 几种常见的误差


3. Sampson 误差公式

设:

e=xTFxe = \mathbf{x}'^T F \mathbf{x}

对极线方程:

l=Fx=(a,b,c)T,l=FTx=(a,b,c)T\mathbf{l} = F \mathbf{x} = (a, b, c)^T, \quad \mathbf{l}' = F^T \mathbf{x}' = (a', b', c')^T

那么 Sampson 误差定义为:

ESampson(x,x)=(xTFx)2(a2+b2)+(a2+b2)E_{\text{Sampson}}(\mathbf{x}, \mathbf{x}') = \frac{( \mathbf{x}'^T F \mathbf{x} )^2}{(a^2 + b^2) + (a'^2 + b'^2)}

其中:


4. 直观解释


5. 小结

6. 图解sampson误差

这里展示了三种误差的直观区别:
sampson_error_compare

  1. 代数误差 (左图)
    只是代入公式 xTFx\mathbf{x}'^T F \mathbf{x},值不为零说明点不在对应对极线上,但它没有几何意义。
  2. 几何误差 (中图)
    用点到对极线的垂直距离表示,是真正的几何偏差。
  3. Sampson 误差 (右图)
    用代数误差平方除以梯度平方和来近似几何误差,是二阶近似,计算快,效果接近几何误差。