【问题标题】:Why minimize squares of re-projection error during camera calibration?为什么在相机校准期间最小化重投影误差的平方?
【发布时间】:2021-03-09 05:28:13
【问题描述】:

我正在使用 openCV 的 cameraCalibration 功能,效果很好。但是,我无法理解为什么它使用它的特定成本函数

sqrt( 1/n *  sum( d(xi', xi)**2 ,i , 1, n))

其中xi' 是重新投影(或模型)坐标,xi 是原始图像坐标(例如参见this Question)。直观地说,我会将成本函数写为

1/n sum( d(xi', xi) , i, 1, n)

换句话说,作为点的欧几里得距离的平均值。

我了解这些表达方式在数量上是不同的。我感兴趣的是两个成本函数的首选解决方案之间的定性差异是什么?为什么将前者用于相机校准?

【问题讨论】:

    标签: opencv computer-vision camera-calibration


    【解决方案1】:

    将 n 次重投影和数据集解释为 2n 维空间中的向量,平方重投影误差(您的第一个公式)是向量之间差异长度平方的 1/n 倍。因为向量长度的平方随长度本身单调增长,所以优化平方与优化长度相同。因此,您要最小化的误差实际上是高维空间中向量的长度(也称为 L2 范数)。

    因为向量的长度相对于坐标的变化是不变的,所以你找到的最优值也是不变的。对于其他成本函数而言,情况并非如此,这可能会导致根据问题的特定规范产生有偏差的结果。

    请参阅Gauss-Markov Theorem,以更深入地讨论我们为何使用Least Squares 估计器进行相机校准(以及许多其他问题)。

    【讨论】:

    • 我不明白为什么找到的最优值是不变的。特别是,我不明白您所说的“坐标变化”是什么意思?
    猜你喜欢
    • 2017-10-08
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2018-09-09
    • 2014-04-12
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    相关资源
    最近更新 更多