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

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


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

一、背景

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

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

然而在实际中,镜头并非理想的透视成像,带有不同程度的畸变。理论上镜头的畸变包括径向畸变和切向畸变,切向畸变影响较小,通常只考虑径向畸变。
在这里插入图片描述

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

二、相机标定原理

在这里插入图片描述
在这里插入图片描述
其中,(U,V,W)为在世界坐标系下一点的物理坐标,*(u,v)*为该点对应的在像素坐标系下的像素坐标, Z为尺度因子。

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

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

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

三、张正友标定法

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

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

2)、求解内参矩阵;

3)、求解外参矩阵。

四、Matlab实现

1、打开Camera Calibration工具箱在这里插入图片描述
2、点击Add Images,加载棋盘格图片
3、填写棋盘格单格方块的实际宽度,注意单位
在这里插入图片描述
4、预览标定效果(我们会发现,真正有效作用于标定的坐标点是黑白交界点,而不含棋盘格最外围的点。
在这里插入图片描述
5、点击Calibrate,开始标定
6、获得可视化结果在这里插入图片描述
点击“导出相机参数”即可得到数据。
在这里插入图片描述

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值