双目标定(一)单目标定与矫正的基本介绍

1.单目相机标定

首先,任何标定都是用基于小孔模型的数学模型去近似相机模型,我们需要用fx = f/dx, fy = f/dy,图像坐标系中的光心原点坐标(和可能的缩放因子ks)这5个相机内参数,切向畸变参数和径向畸变参数,共5+N个参数来“近似”整个相机投影模型。这是我们需要求解的量。

1.1求解标准的内参数矩阵

想想我们平时用opencv(matlab等)进行单目标定时,我们需要提前测量出:棋盘格格点之间的物理距离。
在像平面和棋盘格平面一个单应性映射。假设棋盘格平面就在世界坐标xoy上,即z坐标为0:
设A为内参数矩阵:
这里写图片描述
其中 γ γ 称为skew参数,如果成像的横轴和纵轴不平行则skew参数不为0。且 γ=fxcotα γ = f x ∗ c o t α ,其中 α α 为横轴纵轴的夹角。
由重投影可以得到:
双目标定(一)单目标定与矫正的基本介绍_第1张图片

即:
这里写图片描述
由于r1,r2正交(一个绕x旋转,一个绕y旋转),而且r1,r2的模为1,所以得到两个约束方程:
这里写图片描述
每一张标定图像可以得到一个世界坐标系到当前相机坐标系的单应性矩阵,一个单应性矩阵可以得到两个约束方程,那么只要三张图像就可以求解处内参数矩阵的所有参数(如果不考虑skew参数 γ γ ,即两张含标定板的图像就可以标定处所有内参数

1.2求解畸变参数(待更新)

由于畸变计算公式为:
径向畸变:
双目标定(一)单目标定与矫正的基本介绍_第2张图片
切向畸变:
双目标定(一)单目标定与矫正的基本介绍_第3张图片
我们将标定板中n个格点通过内外参数投影到像面上,再进行畸变计算公式矫正;如果畸变参数正好,点会与像平面上的吻合。所以这个步骤可以用优化的方式(如高斯牛顿、LM算法)来做,最小化投影误差之和,来优化得到畸变参数。
当然,上述1.1,1.2两部分都是在拍20张含有标定板(标定板占整张图像一定比例,最好是约一半,不能达到的话,至少应让标定板涵盖图像的各个角落),然后用最小二乘的优化方法来估计最好的内参数和畸变参数。

2.双目相机标定

2.1 双目之间位姿关系(旋转和基线长度)

双目标定包含两部分:求解每个相机的内参数矩阵(单目标定);求解两个相机之间的旋转和平移参数(严格意义上是6个参数)
我们一般在标定好单目(如上述1)后,再进行双目标定。
标定单目时,我们可以到外参数,即标定板所代表的世界坐标系到当前像面坐标系的位姿变换 Pi P i (旋转和平移):
双目标定(一)单目标定与矫正的基本介绍_第4张图片
同时得到左相机和右相机相对于同一位置的标定板的位姿变换 Pl,Pr P l , P r ,那么左右相机的相对位姿即为:
P=P1lPr P = P l − 1 P r
从中即可得到两相机的平移和旋转关系,也即旋转和基线长度关系。
当然,这个过程也常常是在拍多张含有标定板的图像后进行最小二成优化的方法来求解最佳的P。

2.2 双目矫正

由于双目的主要作用常常是三角测量测距,这要求两个相机光心所在直线完全平行且等高。但现实的双目立体视觉系统中,不存在完全的共面行对准的两个相机图像平面的(理想情况:两相机图像平面平行,光轴和图像平面垂直,且光心连线与相机坐标系横轴平行)。
所以我们要对左右相机出来的图片进行立体校正,使得图片看起来就和理想共面行对准的相机拍摄出来的一样:
校正前:
双目标定(一)单目标定与矫正的基本介绍_第5张图片
矫正后:
双目标定(一)单目标定与矫正的基本介绍_第6张图片
(待续)

参考

1.https://blog.csdn.net/u011574296/article/details/73826420
2.https://blog.csdn.net/pinbodexiaozhu/article/details/43373247

你可能感兴趣的:(计算机视觉)