相机标定之张正友标定法原理详解python版

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

双目成像技术是利用机器视觉,通过两个相机同时同步对图片进行采集,获取左右两相机对一幅图像的对应点成像的像素差获取深度信息,进而获取三维信息,来实现对物体的重建。该技术在现有阶段只能对短距离的物体进行测距与三维重建。在我看来,要对双目成像技术有进一步提升的点就在于测距的深度以及三维重建的准确信与稳定性。对于双目成像技术最重要的莫过于对相机拍摄的图片的处理。图像的预处理直接决定了立体匹配与深度预测的效果。想要有所突破,应当在图像处理上进行推敲。下面我将对双目成像技术展开叙述自己的所学所见所悟,对自己进行沉淀也希望能对他人有所帮助。


一、相机标定的目的

我们首先要明白两个问题:1、相机是如何成像的?   2、相机标定的目的是什么?

1、相机是如何成像的呢?

相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。对于这四个坐标系中之间的关系还不太明白成像原理的同学需要先查一查学习一下。

这四个坐标系之间的转化关系为:

2、相机标定的目的是什么?

为什么要进行相机标定呢?比如,当我们拿到一张图片,进行识别之后,得到的两部分之间的距离为多少多少像素,但是这多少多少像素究竟对应实际世界中的多少米呢?这就需要利用相机标定的结果来将像素坐标转换到物理坐标来计算距离(当然这里值得说明,仅仅利用单目相机标定的结果,是无法直接从像素坐标转化到物理坐标的,因为透视投影丢失了一个维度的坐标,所以测距其实需要双目相机)。

相机标定的目的其实很简单,我们要想对一个成像系统建模,进而进行相应的计算,所必须的参数就是相机的内参矩阵: 和相机的外参矩阵 ,因此,

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

3、畸变与畸变矫正

另外,相机拍摄的图片还存在一定的畸变,畸变包括桶形畸变和枕形畸变。对于畸变原理还不太明白的同学需要先查一查学习一下。

畸变模型包括径向畸变和切向畸变。

径向畸变公式(3阶)如下:

切向畸变公式如下:

 相机标定的第二个目的就是获得相机的畸变参数,如上式中的 等,进而对拍摄的图片进行去畸变处理。

二、张正友标定法简介

张正友标定法利用如下图所示的棋盘格标定板,在得到一张标定板的图像之后,可以利用相应的图像检测算法得到每一个角点的像素坐标 (u,v) 。

 张正友标定法将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 W=0,由于标定板的世界坐标系是人为事先定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到每一个角点在世界坐标系下的物理坐标(U,V,W=0)。

 我们将利用这些信息:每一个角点的像素坐标 (u,v) 、每一个角点在世界坐标系下的物理坐标(U,V,W=0),来进行相机的标定,获得相机的内外参矩阵、畸变参数。

相机标定步骤:

1、打印一张棋盘格,棋盘格大小已知,把它贴在一个平面上,作为标定物。
2、通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向的照片。
3、从照片中提取棋盘格角点进行检测,得到标定板角点的像素坐标值,根据已知的棋盘格大小和世界坐标系原点,计算得到标定板角点的物理坐标值;
4、估算理想无畸变的情况下,五个内参和六个外参。
5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
6、极大似然法,优化估计,提升估计精度。
 

畸变

输出后:


总结

以上是用python的标定

源码自提

方法链接:https://pan.baidu.com/s/1JGPBh1VMMoGs-06DmSfQCg 
提取码:s8dh

猜你喜欢

转载自blog.csdn.net/weixin_45303602/article/details/130967119