今天我们来看看著名相机内参的张氏标定法!我在微软读张正友博士technical report,写得很详细,一定要看原文:
https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr98-71.pdf
该方法也发表在了2000年的TPAMI影响很深远!
目前的方法要么贵(Photogrammetric calibration. Camera calibration is performed by observing a calibration object whose geometry in 3-D space is known with very good precision),要么不准(Self-calibration. Techniques in this category do not use any calibration object. Just by moving a camera in a static scene),因此,迫切需要提出一个准确、便宜的方案:
拍摄至少两张平面图案的照片 -> 闭式求解给初始值 -> 基于最大似然的非线性精化;
不考虑畸变, 相机5个相机内参,其中包括skewness常常置为0:
skewness是CCD/CMOS一般可以认为行列之间的不垂直性为0
2.1. 单应性描述了标定板坐标系到像素坐标系的变换关系;标定板上有足够的点(也就是说,我知道多组 u, v, X, Y), H可以求解
2.2. 利用旋转矩阵的正交性,可以为相机内参和单应性矩阵之间提供2个约束(r1, r2垂直, r1, r2等长), 其中h1, h二是单应性矩阵的第一和第二列, A是相机内参:
这两种约束的几何解释需要绝对二次曲线的概念(absolute conic), 参考:The image of the absolute conic , 以及:Camera Calibration 相机标定:原理简介(3)_yhl_leo的博客-CSDN博客
2.3. 内参有5个, 标定板每次拍摄可提供两个方程;标定板拍摄在三个不同的位置, 所有内参都可以解决;如果你认为skewness是0,拍摄标定板只需要两个不同的位置;实际使用中一般会拍10张以上的照片;
2.4 事实上,由于噪声和镜头畸变,上述闭式解往往不够准确,但它可以作为最大的初始精化值:
k1, k2是径向畸变
2.5 综上所述,整体校准过程为:
不同的标定板必须旋转,否则只等效为一个位置,直接粘贴原文截图:
基于以上实验结果:
1. 标定板要平整,格子间距要准确,尽量让标定板在图片中看起来更大, Corner多一些
2. 从不同角度拍摄10张以上照片, 旋转角度40°到60°, roll, pitch, yaw必须有旋转