【相机定标】基于张正友标定法的相机标定理论及Matlab实现

计算机视觉:基于张正友法的相机标定理论及Matlab实现

      • 一、背景
      • 二、相机标定原理
      • 三、张正友标定法
      • 四、Matlab实现

更新日期:2020.12.22
环境:Win10+Matlab2020b

一、背景

计算机视觉的基本任务之一是从相机获取的图像信息出发计算三维空间中物体的几何信息,并由此重建和识别物体,而空间物体表面某点的三维几何位置与其在图像中对应点之间的映射关系是由相机成像的几何模型决定的,这些几何模型参数就是相机参数

在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数(内参、外参、畸变参数)的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第1张图片
比如,当我们拿到一张图片,进行识别之后,得到的两部分之间的距离为多少多少像素,但是这多少多少像素究竟对应实际世界中的多少米呢?这就需要利用相机标定的结果来将像素坐标转换到物理坐标来计算距离(当然这里值得说明,仅仅利用单目相机标定的结果,是无法直接从像素坐标转化到物理坐标的,因为透视投影丢失了一个维度的坐标,所以测距其实需要双目相机)。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。

然而在实际中,镜头并非理想的透视成像,带有不同程度的畸变。理论上镜头的畸变包括径向畸变和切向畸变,切向畸变影响较小,通常只考虑径向畸变。
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第2张图片

径向畸变主要由镜头径向曲率产生(光线在远离透镜中心的地方比靠近中心的地方更加弯曲)。导致真实成像点向内或向外偏离理想成像点。其中畸变像点相对于理想像点沿径向向外偏移,远离中心的,称为枕形畸变;径向畸点相对于理想点沿径向向中心靠拢,称为桶状畸变。

二、相机标定原理

【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第3张图片
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第4张图片
其中,(U,V,W)为在世界坐标系下一点的物理坐标,*(u,v)*为该点对应的在像素坐标系下的像素坐标, Z为尺度因子。

内参矩阵取决于相机的内部参数(一般生产后固定不变)。其中, f为像距,dx、dy分别表示x、y方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米),u0、v0分别表示相机感光板中心在像素坐标系下的坐标,θ表示感光板的横边和纵边之间的角度。

外参矩阵取决于相机坐标系和世界坐标系的相对位置,R表示旋转矩阵,T表示平移矢量。

相机标定的目的就是获得相机的内参矩阵和外参矩阵。

三、张正友标定法

张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法。传统标定法的标定板是需要三维的,需要非常精确,这很难制作,而张正友教授提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第5张图片
张正友标定法标定相机的内外参数的思路如下:

1)、求解内参矩阵与外参矩阵的积;

2)、求解内参矩阵;

3)、求解外参矩阵。

四、Matlab实现

1、打开Camera Calibration工具箱【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第6张图片
2、点击Add Images,加载棋盘格图片
3、填写棋盘格单格方块的实际宽度,注意单位
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第7张图片
4、预览标定效果(我们会发现,真正有效作用于标定的坐标点是黑白交界点,而不含棋盘格最外围的点。
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第8张图片
5、点击Calibrate,开始标定
6、获得可视化结果【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第9张图片
点击“导出相机参数”即可得到数据。
【相机定标】基于张正友标定法的相机标定理论及Matlab实现_第10张图片

你可能感兴趣的:(线性代数,计算机视觉,经验分享,矩阵,matlab)