【一文弄懂】张正友标定法-完整学习笔记-从原理到实战

本文全面解析张正友标定法,涵盖原理、步骤及实战应用,深入探讨相机标定的重要性和精度影响因素。

张正友标定法-完整学习笔记-从原理到实战

(零)前言:

算是全网最全了(毕竟直接copy了好几位大佬的教程),几乎可以一文整明白“张正友标定”。
本人的知乎链接:
张正友标定法-完整学习笔记-从原理到实战 - 未入门的炼丹学徒的文章 - 知乎

感觉优快云的编辑更方便,但是破乎看起来更舒服一些,建议点一波知乎关注/斜眼笑

大量文字和图片直接复制的其他博主的文章,有些没有具体的标明
整理之前,需要提出几个问题:

1 为什么需要标定?

我们拿到一个新的相机,用来拍照,将三维世界的信息,投影到二维平面,得到一张RGB图像。
信息流图

一般来说,小孔成像模型就可以解释成像原理,但是真在使用过程中,由于镜片的畸变和装配等原因,单纯的小孔成像模型无法满足要求。

在需要重建三维信息的项目中,我们需要利用图像平面的特征点 + 特征点对应的深度值 + 内参和外参 ,利用“小孔成像”模型的三角关系,计算出该特征点的三维坐标

或者径向畸变比较大的情况下,rgb图片都有比较大的畸变,必须校正。

但是相机内参,一般是不好测量的,出厂的参数也很难直接拿来使用,因为制作和装配会有偏差。比如我之前用的Kinect v2相机,成像效果就畸变的厉害(效果就是,深度图和rgb图不匹配),但我同学的相机就比较好。

因此如果需要高精度的测量,必须要进行“相机标定”。

2 相机标定的已知条件和待求解是什么?

标定前的已知条件:

  • 一个可以拍照的相机,焦距固定(不要在校准和使用的时候变焦)
  • 分辨率一般已知,但是标定好像用不上。

待求信息:

相机内参(M)在这里插入图片描述
相机外参(R, t),标定过程中的外参一般用不上,需要单独标定外参
其实标定过程中的外参,用不上。毕竟标定板换了一个位姿,世界坐标系就变了,求出来的外参也会变化。
一般应用时的外参,也许是单独标定?
这个我自己没试过,感觉坑应该也不少。
在这里插入图片描述
弄清楚了上面两个问题,就需要深入的探究下面一系列的问题:

  1. 张正友标定处于什么水平,为啥提到相机标定,就不得不提他张博士的方法?
  2. 简单介绍一下张博士
  3. 他的方法优缺点,有没有替代方案?
  4. 他的方法输入输出是啥?利用工具包实现流程如何?
  5. 他的方法如何推导优化?
  6. 哪些因素对标定精度有影响?
    1. 有哪些常见的标定板?
    2. 对于角点检测,目前有哪些检测算子?
    3. 对于不同的靶标,目前能达到多高的精度等?
    4. 相机的标定精度影响因素有哪些?
    5. 对于针孔模型与鱼眼模型的标定原理是否相同?

之前准备直接复制别人的教程,但是发现别人的教程逻辑和我的有点不一样,而且有些细节和自己的推导和经验,不好加进去,更重要的是,我需要自己捋一遍标定相关知识的流程。

下面是摘抄的一些关于标定的其他小问题:

参考资料:
1.从零开始学习-张氏相机标定法:算法的基本概念和详细推导
2.【3D视觉工坊】第二期公开课:相机标定的基本原理与经验分享:基本原理和实际标定的一些细节分享
3.平面旋转基本知识:旋转矩阵的原理和性质,推导公式的时候需要用到。

(一)概念介绍和成像几何模型

1.张正友标定处于什么水平,为啥提到相机标定,就不得不提他张博士的方法?

在这里插入图片描述

本节教程链接

  1. Tsai两步法是先线性求得相机参数,之后考虑畸变因素,得到初始的参数值,通过非线性优化得到最终的相机参数。Tsai两步法速度较快,但仅考虑径向畸变,当相机畸变严重时,该方法不适用。
  2. 张氏标定法使用二维方格组成的标定板进行标定,采集标定板不同位姿图片,提取图片中角点像素坐标,通过单应矩阵计算出相机的内外参数初始值,利用非线性最小二乘法估计畸变系数,最后使用极大似然估计法优化参数。该方法操作简单,而且精度较高,可以满足大部分场合。详细原理见《从零开始学习「张氏相机标定法」(一)成像几何模型》。
  3. 基于主动视觉的相机标定法是通过主动系统控制相机做特定运动,利用控制平台控制相机发生特定的移动拍摄多组图像,依据图像信息和已知位移变化来求解相机内外参数。这种标定方法需要配备精准的控制平台,因此成本较高。
  4. 分层逐步标定法是先对图像的序列做射影重建,在重建的基础上进行放射标定和欧式标定,通过非线性优化算法求得相机内外参数。由于初始参数是模糊值,优化算法收敛性不确定。
  5. 基于Kruppa的自标定法是通过二次曲线建立关于相机内参矩阵的约束方程,至少使用3对图像来标定相机。图像序列长度会影响标定算法的稳定性,无法保证射影空间中的无穷远平面。

总结:

张正友标定,精度比较高,硬件条件可以争取.

但是张正友标定只考虑了径向畸变,没有考虑切向畸变.

2 简单介绍张博士----张氏标定法发明人

先来简单介绍一下我们的主角:张正友博士。他是世界著名的计算机视觉和多媒体技术的专家,ACM Fellow,IEEE Fellow。现任微软研究院视觉技术组高级研究员,已经Tencent Robotics X了,他在立体视觉、三维重建、运动分析、图像配准、摄像机标定等方面都有开创性的贡献。
在这里插入图片描述

「张氏标定法」是张正友博士在1999年发表在国际顶级会议ICCV上的论文《Flexible Camera Calibration By Viewing a Plane From Unknown Orientations》中,提出的一种利用平面棋盘格进行相机标定的实用方法。

其后2000的这篇《A flexible new technique for camera calibration》引用数更是达到了恐怖的13885次,江湖地位可见一斑。

该方法介于摄影标定法和自标定法之间,既克服了摄影标定法需要的高精度三维标定物的缺点,又解决了自标定法鲁棒性差的难题。标定过程仅需使用一个打印出来的棋盘格,并从不同方向拍摄几组图片即可,任何人都可以自己制作标定图案,不仅实用灵活方便,而且精度很高,鲁棒性好。因此很快被全世界广泛采用,极大的促进了三维计算机视觉从实验室走向真实世界的进程。

在介绍「张氏标定法」之前,我们先来搞清楚一些基本问题。

3【WHY:为什么要进行相机标定?】

下面是复制别人的描述,前言是我自己的描述,感觉差距还是蛮大的— —

相机标定的目的是:建立相机成像几何模型并矫正透镜畸变。这句话有点拗口,下面分别对其中两个关键部分进行解释。

建立相机成像几何模型: 计算机视觉的首要任务就是要通过拍摄到的图像信息获取到物体在真实三维世界里相对应的信息,于是,建立物体从三维世界映射到相机成像平面这一过程中的几何模型就显得尤为重要,而这一过程最关键的部分就是要得到相机的内参和外参(后续文有具体解释)。

矫正透镜畸变: 我们最开始接触到的成像方面的知识应该是有关小孔成像的,但是由于这种成像方式只有小孔部分能透过光线就会导致物体的成像亮度很低,于是聪明的人类发明了透镜。虽然亮度问题解决了,但是新的问题又来了:由于透镜的制造工艺,会使成像产生多种形式的畸变,于是为了去除畸变(使成像后的图像与真实世界的景象保持一致),人们计算并利用畸变系数来矫正这种像差。虽然理论上可以设计出不产生畸变的透镜,但其制造工艺相对于球面透镜会复杂很多,所以相对于复杂且高成本的制造工艺,人们更喜欢用数学来解决问题。

4【HOW:相机标定的原理】

前面已经说过,相机标定的目的之一是为了建立物体从三维世界到成像平面上各坐标点的对应关系,所以首先我们需要定义这样几个坐标系来为整个过程做好铺垫:

世界坐标系(world coordinate system): 用户定义的三维世界的坐标系,为了描述目标物在真实世界里的位置而被引入。一般坐标描述为 P w = ( X w , Y w , Z w ) P_w = (X_w, Y_w, Z_w) Pw=(Xw,Yw,Zw) . 单位为m。

相机坐标系(camera coordinate system): 在相机上建立的坐标系,为了从相机的角度描述物体位置而定义,作为沟通世界坐标系和图像/像素坐标系的中间一环。 P c = ( X c , Y c , Z c ) P_c = (X_c, Y_c, Z_c) Pc</

评论 55
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hehedadaq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值