双目相机标定理论总结

双目相机标定涉及相机内参、畸变系数和相互位置的标定。目的是获取相机间相对位置关系,用于三维重建等应用。标定过程包括单目标定(内参和畸变系数)和双目标定(相机间相对位置)。张正友标定法通过棋盘格标定板进行内外参和畸变参数的计算,最后通过极大似然估计优化参数。双目标定则基于单目标定结果,通过最小化投影误差求得相机间旋转和平移矩阵。
摘要由CSDN通过智能技术生成

一、双目相机标定简介

双目相机标定包含两个部分内容

1)两台相机各自内参和畸变系数的标定(单目标定)

2)两台相机之间相互位置的标定(双目标定)

提问:为什么要进行双目标定?

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

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

图1 标定模型

一些名词概念:

基线:两个光心的连线称为基线;

极平面:物点(空间点M)与两个光心的连线构成的平面称为极平面;

极线:极平面与成像平面的交线

极点:极线的一端,基线与像平面的交点

像点:极线的一端,光心与物点连线与像平面的交点;

可以看出:

校正前,相机的光心不是相互平行的

校正后,极点在无穷远处,两个相机的光轴平行,像点在左右图像上的高度一致

标定+校正后图片:

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

这样做的好处是:比如后续的立体匹配时,只需在同一行上搜索左右像平面的匹配点即可,能使效率大大提高。所以,我们要知道右相机相对于左相机的位姿关系,那我们才可以做校正。

二、单目相机标定理论

1、相机成像原理

相机成像系统中,共包含四个坐标系:世界坐标系、相机坐标系、图像坐标系、像素坐标系。

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

其中, (U,V,W)为在世界坐标系下一点的物理坐标, (u,v)为该点对应的在像素坐标系下的像素坐标, Z为尺度因子。

我们将矩阵:

称为相机的内参矩阵,内参矩阵取决于相机的内部参数。其中, f为像距, dX, dY分别表示X,Y方向上的一个像素在相机感光板上的物理长度(即一个像素在感光板上是多少毫米), u0,v0 分别表示相机感光板中心在像素坐标系下的坐标, θ 表示感光板的横边和纵边之间的角度( 90°表示无误差)。

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

即单点无畸变的相机成像模型如下:

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

2、畸变与畸变矫正

另外,相机拍摄的图片还存在一定的畸变,畸变包括桶形畸变和枕形畸变。畸变模型包括径向畸变和切向畸变。

畸变公式(3阶)如下:

其中,分别为理想的无畸变的归一化的图像坐标、畸变后的归一化图像坐标, r为图像像素点到图像中心点的距离,即

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

3、张正友标定法

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

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

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

3.1标定相机的内参矩阵和外参矩阵

张正友标定法标定相机的内外参数的思路如下:

1)求解单应矩阵;

2)求解内参矩阵;

3)求解外参矩阵;

4)极大似然估计优化;

3.1.1 求解单应矩阵

棋盘平面和成像平面间的单应

将一个平面映射到另一个平面,将棋盘格所在的平面映射到相机的成像平面,则有

  p = HP       ①

𝐻表示的是成像平面和标定棋盘平面之间的单应矩阵

p为棋盘格所成像的像点坐标(u,v),P为棋盘格角点在世界坐标系的坐标(U,V,W=0)。

根据小孔相机模型,用齐次坐标系表示可以化简为

    ②

其中, R1,R2为旋转矩阵R的前两列,R3由于W=0,直接消去。为了简便,将内参矩阵记为A

对于不同的图片,内参矩阵A为定值;

对于同一张图片,内参矩阵A,外参矩阵 (R1 R2 T) 为定值;

对于同一张图片上的单点,内参矩阵A,外参矩阵(R1 R2 T),尺度因子Z 为定值。

根据公式①②,可得单应矩阵H为内参矩阵和外参矩阵的积H = A(R1 R2 T)

记矩阵 H的三列为(H1 H2 H3) ,则有:

利用上式,消去尺度因子Z,可得:

此时,尺度因子Z已经被消去,因此上式对于同一张图片上所有的角点均成立。(u,v)是像素坐标系下的标定板角点的坐标, (U,V)是世界坐标系下的标定板角点的坐标。通过角点识别算法,我们可以得到标定板角点的像素坐标(u,v),又由于标定板的世界坐标系是人为定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到世界坐标系下的(U,V)。

由这里的 H是齐次矩阵,有8个独立未知元素。每一个标定板角点可以提供两个约束方程(u,U,V的对应关系、v,U,V的对应关系提供了两个约束方程),因此,当一张图片上的标定板角点数量等于4时,即可求得该图片对应的矩阵 H。当一张图片上的标定板角点数量大于4时,利用SVD求解最小二乘法最佳的矩阵H

3.1.2 求解内参矩阵

我们已知了矩阵 H = A(R1 R2 T) ,接下来需要求解相机的内参矩阵 A

利用R1,R2作为旋转矩阵 R 的两列,存在单位正交的关系,即:

则由 HR1,R2 的关系,可知:

代入可得:

另外,我们发现,上述两个约束方程中均存在矩阵A^{-T}A^{-1} 。因此,我们记A^{-T}A^{-1} = B ,则 B为对称阵。我们先求解出矩阵 B ,通过矩阵 B 再求解相机的内参矩阵 A

同时,为了简便,我们记相机内参矩阵 A 为:

则:

则用矩阵 A表示矩阵 B 得:

注意:由于B为对称阵,上式出现了两次 B12,B13,B23 。

这里,我们可以使用 B=A^{-T}A^{-1} 将前面通过 R1,R2 单位正交得到的约束方程化为:

上述方程看起来有点复杂,但是其实不然,我们可以记:

则上述方程化为:

此时,通过 R1,R2单位正交得到的约束方程可化为:

即:

其中,矩阵

由于矩阵 H 已知,矩阵 v 又全部由矩阵 H 的元素构成,因此矩阵v已知。

此时,我们只要求解出向量b ,即可得到矩阵B 。每张标定板图片可以提供一个 vb=0 的约束关系,该约束关系含有两个约束方程。但是,向量 b 有6个未知元素。因此,单张图片提供的两个约束方程是不足以解出来向量 b。因此,我们只要取3张标定板照片,得到3个vb=0 的约束关系,即6个方程,即可求解向量 b

当标定板图片的个数大于3时(事实上一般需要15到20张标定板图片),可采用SVD求解最小二乘拟合最佳的向量 b

根据矩阵 B 的元素和相机内参 α, β, γ,u0,v0 的对应关系(如上式),可得到:

即可求得相机的内参矩阵

               

3.1.3 求解外参矩阵

这里再次强调一下,对于同一个相机,相机的内参矩阵取决于相机的内部参数,无论标定板和相机的位置关系是怎么样的,相机的内参矩阵不变。这也正是在第2部分“求解内参矩阵”中,我们可以利用不同的图片(标定板和相机位置关系不同)获取的矩阵 H,共同求解相机内参矩阵 A的原因。

但是,外参矩阵反映的是标定板和相机的位置关系。对于不同的图片,标定板和相机的位置关系已经改变,此时每一张图片对应的外参矩阵都是不同的。

在关系: H = A(R1 ~R2 ~T)中,我们已经求解得到了矩阵 H(对于同一张图片相同,对于不同的图片不同)、矩阵 A(对于不同的图片都相同)。通过公式:A^{-1}H = (R1 ~R2~ T),即可求得每一张图片对应的外参矩阵 (R1 R2 T)。

注意,这里值得指出,完整的外参矩阵为 。但是,由于张正友标定板将世界坐标系的原点选取在棋盘格上,则棋盘格上任一点的物理坐标 W=0,将旋转矩阵的R的第三列 R3消掉,因此, R3在坐标转化中并没有作用。但是 R3要使得 R满足旋转矩阵的性质,即列与列之间单位正交,因此可以通过向量 R1,R2的叉乘,即 R3 = RR2,计算得到R3。

此时,相机的内参矩阵和外参矩阵均已得到。

3.1.4 极大似然估计优化

以上推导都是假设不存在畸变参数的情况下成立的。但是事实上,相机是存在畸变参数的,因此,张正友标定法还需要通过极大似然估计对参数进行优化。

极大似然估计是一种估计总体未知参数的方法。它主要用于点估计问题。所谓点估计是指用一个估计量的观测值来估计未知参数的真值。说穿了就一句话:就是在参数空间中选取使得样本取得观测值的概率最大的参数。

为什么标定的内外参数可以用极大似然法进行估计:

       因为我们是假定图像上的角点是被噪声干扰的,且我们认为这些噪声是高斯噪声。那么对于噪声的幅度就是给观测值造成的误差。但高斯噪声的概率密度我们是已知的,所以我们可以用前面所述的极大似然估计的思想去“猜”真值。

假设同一相机从𝑛个不同的角度的得到了𝑛幅标定板的图像,每幅图像上有𝑚个像点(角点)。𝑀𝑖𝑗表示第i𝑖幅图像上第j个像点对应的标定板上的三维点,则

             

\hat{m}(A,Ri, ti, M_{ij}) 表示𝑀𝑖𝑗的估计像点。其中,𝑅𝑖,𝑡𝑖表示第𝑖幅图像对应相机的旋转矩阵和平移向量,K(前面计算A矩阵)是相机的内参数。则像点𝑚𝑖𝑗的概率密度函数是

                  

构造似然函数

      

为了能够让𝐿取得最大值,需要最小化下面的值(高斯概率密度特性)

          

这是一个非线性优化问题,可以使用Levenberg-Marquardt的方法,利用前几步求得的内参和外参作为初始值,迭代得到最优解。

3.2 标定相机的畸变参数

张正友标定法仅仅考虑了畸变模型中影响较大的径向畸变。

其中,分别为理想的无畸变的归一化的图像坐标、畸变后的归一化图像坐标, r为图像像素点到图像中心点的距离,即

图像坐标和像素坐标的转化关系为:

其中,为理想的无畸变的像素坐标。由于 θ 接近于 90° ,则上式近似为:

同理可得畸变后的像素坐标的表达式为:

代入径向畸变公式(2阶)则有:

可化简得:

即为:

每一个角点,只要知道畸变后的像素坐标  、理想的无畸变的像素坐标  ,就可以构造两个上述等式。那么,有𝑚幅图像,每幅图像上有𝑛个标定板角点,则将得到的所有等式组合起来,可以得到𝑚𝑛个未知数为  的约束方程,将约束方程系数矩阵记为 D ,等式右端非齐次项记为 d ,可将其记着矩阵形式:

后,利用最小二乘法可得:

此时,相机的畸变矫正参数已经标定好。

那么,如何获得畸变后的像素坐标  和理想的无畸变的像素坐标  呢?

 可以通过识别标定板的角点获得, 可以通过如下方法近似求得:

当然,由于外参矩阵 ( R1 R2 T ) 和内参矩阵 A 是在有畸变的情况下获得的,这里得到的像素坐标并不是完全理想的、无畸变的。我们的总逻辑是,在进行内参矩阵和外参矩阵的求解的时候,我们假设不存在畸变;在进行畸变系数的求解的时候,我们假设求得的内参矩阵和外参矩阵是无误差的。

3.3 参数优化

为了使标定得到的估算实际的、存在径向畸变的摄像机参数。我们需要把刚刚求解得到的畸变参数,连同前面得到的理想无畸变条件下的内外参数一起,再一次进行极大似然估计。

得到畸变参数k1,k2后,可以先将图像进行去畸变处理,然后用去畸变后的图像坐标估计相机的内参数。

和上面类似利用最大似然估计取得最优解,使用Levenberg-Marquardt的方法估计使得下面式子是最小值的参数值

最终就得到了,我们想要在考虑畸变情况下,摄像机的参数。

三、双目标定理论

双目模型如下

其中,

另外,右相机主点相对于左相机主点,显然还有:

公式(6)和(7)是相等的,另外旋转矩阵R是正交矩阵。根据正交矩阵的性质,矩阵的逆等于矩阵的转置,即 R^{-1}=R^{T}

我们可以得到:

因为Rr, Rl, Tr, Tl这些参数在单目标定的时候已经获得,所以代入公式(8),可以求得RT。因为拍摄了多张图片,利用最小二乘法,最小化误差,即可得到我们最佳估计的RT矩阵。有了这两个矩阵,我们做个旋转、平移就可以了。

标定流程:

已知左侧标定板世界坐标系中各个角点位置Pw,通过左侧相机的Ri, ti,将角点坐标转换到相机坐标系:

                                  

再根据RT转换到右侧相机坐标系,并投影到右像上,得到角点估计值p:

                                

已知右像的角点位置p,使得的投影误差最小

                                 

OpenCV的实现中,用高斯牛顿法的最小二乘方法来优化最后的结果。

参考链接:https://zhuanlan.zhihu.com/p/94244568​​​​​​​

  • 13
    点赞
  • 125
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值