提出计算焦距的方法.
通过数学推导, 我们体现说在每个方向上的焦距可以用一点匹配(一个图和一个退化的旋转的图)来估计.
通过建立两张图(有一点点的panning和tilting), 我们的SAC可以计算相机的焦距.
传统的标定需要, 例如格子/棒子/LEDs等标定物体. 带来的问题是相机**只能离线标定, 而且在可控的环境. **
[9, 7]提出了自标定, 使用了多帧图像的匹配信息, 他们先估计了epipolar transform (从三对views), 然后用Kruppa公式[9]link.
然后Basu提出了Active Calibration[1, 2], 它涵盖了active相机移动的概念和消除了点对点的匹配.
前两代Active Calibration策略的问题是, 它用退化的旋转来引入成员的投影共视来计算相机内参.
比如, 在panning相机之后, 从新图像平面观测到的纵向变化推导的公式是不稳定的. 进一步说, 小的旋转估计( \(\sin (\theta) = \theta\), $ \cos(\theta) = 1$) 降低了策略的精度, 当旋转没那么小的时候.
而且, rolling 相机[4]也不太现实(如果没有精准的仪器的话), 因为它创造了相机中心的平移offset.
我们提出了Simplified Active Calibration. 公式是闭式而且线性的. 为了解决AC中使用退化旋转导致的不稳定性, 我们在每个方向计算了focal length. 而且我们也不适用小角度近似. 我们的方法更实用, 他不需要相机的roll旋转, 只需要pan和tilt旋转.
SAC是被使用小旋转来近似相机内参的想法inspired的. 在相机上引入3个约束生成一个纯旋转的移动. 另外, 使用小旋转可以让我们忽略一些非线性的term(为了计算剩下的线性参数). 估计的内参可以作为一个初始猜测作为非线性refinement.
一般来说, SAC是被用于相机移动是硬件控制的, 比如机器人应用.
有了相机旋转以后, 我们用两步法可以估计相机的焦距.
我们假设相机被定位在笛卡尔坐标系的原点, 看着距离\(z= f\). 每个世界的3D点\(X\)是可见的, 可以投影到一个特定的点 \(\mathbf{u}=\left[\begin{array}{lll} v & u & 1 \end{array}\right]^{T}\) (图像平面, 主点是叫做 \(\left[v_{0} u_{0}\right]^{T}\)). 对于现在相机, 我们可以假设图像像素是正方形的, 所以camera skew的值是零.
每个点 \(\mathbf{u}=\left[\begin{array}{ll} v & u \end{array}\right]^{T}\) 图像中的, 可以被认为是一个静止的相机看到的(可以自由旋转但是待在一个静止的位置), 会被转换到一个点 $ \mathbf{u‘} =[ \begin{array}{} v‘ & u‘ \end{array}] $, 在旋转之后. 两者之间的数学关系是: \(w \mathbf{u}^{\prime}=\mathbf{K} \mathbf{R}_{y}^{T} \mathbf{K}^{-1} \mathbf{u}\)
这里\(r_{ij}\)是旋转举证的元素.
也可以简化为:
注意在一个纯旋转的时候, 新图的u坐标是不会被transform影响的. 换句话说, 图像像素只会水平移动. 也就是说 \(\frac{u_{0}-u}{u_{0}-u^{\prime}} \approx 1\). 这样得到:
知道主点接近图像中心, 这里用\(h\) 和 \(w\) 表示图像的中心. 最终得到x方向的焦距.
这个是重复的. 就是用了纯度tilt旋转.
根据图发现.
当旋转很少的时候, 估计的焦距很接近真值.
我们用pan和tile角度来计算focal length.
当相机旋转小的时候, focal length对与旋转噪声更敏感.
当旋转不是很小的时候, SAC会获得焦距的比较小的误差.
我们只用了接近图像中心的点. 我们较低了使用接近图像中心匹配点来降低焦距估计的不准确.
没啥.
LR A Simplified Active Calibration Algorithm for Focal Length Estimation
原文:https://www.cnblogs.com/tweed/p/12875564.html