双目相机标定原理——从定义到校正,不懂原理也可以直接进行公式运用

作者 | 曹博
编辑 | 3D视觉开发者社区

01前言

双目相机标定,从广义上讲,其实它包含两个部分内容:

  • 两台相机各自误差的标定(单目标定)
  • 两台相机之间相互位置的标定(狭义,双目标定)

在这里我们所说的双目标定是狭义的,讲解理论的时候仅指两台相机之间相互位置的标定,在代码实践的时候,我们才说完整的双目标定。首先来思考一个问题:为什么要进行双目标定?

这是因为在许多三维重建算法中,我们都要知道两台相机之间的相对位置关系,这样才能进行距离计算。

双目标定前后,双目模型对比如下图所示:
图模型[1]

图1 标定模型[1]

其中:

  • 基线:两个光心的连线称为基线;
  • 极平面:物点(空间点M)与两个光心的连线构成的平面称为极平面;
  • 极线:极平面与成像平面的交线
  • 极点:极线的一端,基线与像平面的交点
  • 像点:极线的一端,光心与物点连线与像平面的交点;

可以看出:
校正前,相机的光心不是相互平行的
校正后,极点在无穷远处,两个相机的光轴平行,像点在左右图像上的高度一致

标定+校正后图片:
在这里插入图片描述

图2 立体校正后左右相机图像发生一定扭曲 [2]


这样的好处是:比如后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。

注:可以看出来,最重要的,我们要知道右相机相对于左相机的位姿关系,那我们才可以做校正

 <br/>

02 单目理论回顾

先来回顾下单目标定理论,理想的单目相机模型可以简化为(图片来自于[1]):
在这里插入图片描述
而四大坐标系,包括世界坐标系、相机坐标系、图像坐标系、像素坐标系,它们之间的转换关系如下:
在这里插入图片描述
最终,从理想的相机模型,从世界坐标系到像素坐标系的转换关系:

在这里插入图片描述
但由于制造原因,使得成像过程(从相机坐标系到图像坐标系转换过程中)存在着畸变,主要有两类,径向畸变和切向畸变,它们可以通过以下公式进行修正:

在这里插入图片描述
需要注意的是,无论是x,y,x’,y’都是在归一化平面坐标系下。在等到了这些系数,包括径向畸变、以及相机内参矩阵,我们就能建立单目相机畸变校正后的模型。

03 双目标定公式推导

在这里插入图片描述

图3 标定模型[2]

记:

在这里插入图片描述
右相机主点相对于左相机主点,还有:

在这里插入图片描述

在这里插入图片描述
代入上式,因为拍摄了多张图片,利用最小二乘法,也可以是奇异值分解(数学的部分比较复杂,在这里忽略),总而言之,最小化误差,即可得到我们最佳估计的矩阵,有了这两个矩阵,我们做个旋转、平移就可以了。
*注:虽然得到了旋转、平移矩阵,也但是极线校正的方法有很多,这个我们之后讲。

04 极线校正理论推导

双目标定后,我们得到了右相机相对于左相机的位姿关系,也就是R、T矩阵,下面一步即做极线校正。校正好处是之后做立体匹配搜索的时候,只需要在同高度附近进行搜索,大幅提升效率。根据前文的推导,在获取了R、T矩阵后,我们就要进行极线校正(立体校正),使两部相机光轴平行,如下所示:
在这里插入图片描述
但是平行的方法有很多,可以:

  • 左相机不动,右相机动。
  • 也可以两部相机旋转到中间等等。

最常见的校正方法就是Bouguet极线校正方法

Bouguet极线校正方法:左右相机成像平面各旋转一半,使得左右图像重投影造成的误差最小,左右视图的共同面积最大。

具体步骤(这块理论推导可以去看论文,这里只给出结论,看不懂没关系,不妨碍我们使用它):

在这里插入图片描述在这里插入图片描述

得到这两个变换矩阵,左、右相机分别乘以这两个矩阵即可完成变换,其中已经包含了平移信息!

再计算重投影矩阵,其实现了像素坐标系(左相机)到世界坐标系之间的转换:

在这里插入图片描述
校正后,可以根据需要对图像进行裁剪,需重新选择一个图像中心,和图像边缘从而让左、右叠加部分最大。

剪裁效果如下:
在这里插入图片描述

05参考文献

[1]opencv双目视觉标定,激光结构光提取,指定特征点获取世界坐标: https://blog.csdn.net/slzx5511/article/details/1038447192.
[2][立体视觉] 双目立体标定与立体校正:https://blog.csdn.net/u011574296/article/details/738264203.
[3]工业相机双目标定:https://zhuanlan.zhihu.com/p/636189864.
[4]本质矩阵和基础矩阵区别是么?:https://www.zhihu.com/question/27581884

版权声明:本文为奥比中光3D视觉开发者社区特约作者授权原创发布,未经授权不得转载,本文仅做学术分享,版权归原作者所有,若涉及侵权内容请联系删文。

3D视觉开发者社区是由奥比中光给所有开发者打造的分享与交流平台,旨在将3D视觉技术开放给开发者。平台为开发者提供3D视觉领域免费课程、奥比中光独家资源与专业技术支持。点击加入[3D视觉开发者社区],和开发者们一起讨论分享吧~

或可微信关注官方公众号 3D视觉开发者社区,获取更多干货知识哦。

猜你喜欢

转载自blog.csdn.net/limingmin2020/article/details/127261912