4 基于3D标定物的标定方法
使用基于3D标定物进行相机标定,是一种传统且常见的相机标定法。3D标定物在不同应用场景下不尽相同,摄影测量学中,使用的3D标定物种类最为繁杂,如图-1的室内控制场,由多条悬垂的杆组成,杆与墙壁不同位置上贴着标志点,并通过精密测量的方法,获得标志点的三维坐标,精度较高,但成本极其昂贵,而且需要定期维护,一般个人或实验室请慎入!计算机视觉中,经典的两种3D标定物,如图-2所示,图-2(a)是INRIA(1993)所使用的,由两个正交的平面组成,棋盘方形格图案被绘制在每个面上,并且提供其中角点的精确坐标;类似的还有用立方体(Cube),每个面同样也绘制上相同图案,相机可以对其三个面进行成像;另外还有非常流行的 Tsai(1987)所提出的标定设备和方法,如图-2(b),只使用与图-2(a)中相同的一个平面,但是在使用时,需要至少将标定平面移动一次位置,且移动信息是明确已知的。
图-1 摄影测量室内控制场
图-2 两种3D标定物
图-3 法国INRIA
4.1 主要流程
这一类标定法,主要包括四个步骤:
检测每张图片中的棋盘图案的角点(Detect the corners of the checker pattern in each image);
通过使用线性最小二乘法估算相机投影矩阵 P (Estimate the camera projection matrix P using linear least squares);
根据 P 矩阵求解内参矩阵和外参 A,R 和 t (Recover intrinsic and extrinsic parameters A,R and t from P );
通过非线性优化,提高 A,R 和 t 矩阵的精度(Refine A,R and t through a nonlinear optimization)。
除了上述的流程,还有另外一种做法是先通过非线性优化改善相机投影矩阵 P ,然后获得相机内参和外参。
4.2 角点检测
一般来说,为了提高角点检测的准确度和精度,标定板图案中会使控制点处的梯度或对比反差最大化。即便如此,使用普通的角点检测方法,例如Harris,提取图像中的角点,往往难以获得较好的精度(超过一个像素)。
较好的解决手段是,事先知道图案结构的情形下,提取出各个矩形框的边,然后通过边所在直线相交的方法获得角点。例如常见的两种方法:第一种,首先进行边缘检测,将各个矩形框边缘拟合成直线;第二种,直接根据梯度最大原则,从矩形框的每一边拟合出直线。如果不考虑镜头畸变( lens distortion)更好的做法是,将共线的矩形框边缘,拟合成为一条直线,然后再求得交点。
图-4 一种基于最大梯度的角点检测结果
4.3 线性估算相机投影矩阵
一旦我们提取出图像中的角点,根据先验知识(图案的结构特点)就可以比较轻易的将这些角点与其对应的物方点相对应。根据原理简介(二)中的投影方程,我们就可以估算相机参数。但是问题是,直接求解 A,R 和 t 由于属于非线性问题,因而并不能实现。而通过线性估算投影矩阵 P 是可以实现的。
给定一组2D-3D对应点对: mi=(ui,vi)↔Mi=(Xi,Yi,Zi) ,则有:
其中, p=[p11,p12,…,p34]T,0=[0,0]T ,令 p 矩阵的系数矩阵简记为 Gi 。对于