3、Matlab双目标定流程

  • Post author:
  • Post category:其他





1、单目标定过程



1.1 采集棋盘图

  • 尽量让棋盘占据照片中最多的画面(不小于1\3);
  • 尽量让棋盘格出现在图像中的各个位置(尤其图像的四个角);
  • 拍摄的棋盘图是具有多个角度的(前倾,后倾,左倾,右倾,斜倾等);
  • 拍摄的棋盘图要清晰可辩,最好是在最清晰的范围内拍摄;
  • 拍摄照片数量要多一点,推荐20张以上。



1.2 matlab标定

打开matlab,选择APP->图像处理和计算机视觉->单目相机标定模块。如图1所示,进入图2所示界面。

在这里插入图片描述

图1 单目相机标定工具箱

在这里插入图片描述

图2 单目相机标定界面



1.3 导入图片

选择图2中的Add Images导入之前拍摄的单目相机(双面时,为左侧相机或者右侧相机)下拍摄的所有图片,按住shift键进行图片多选,此时会弹出设置棋盘格宽度的对话框,如图3所示,输入棋盘单元格的宽度,按确定键。本文此处采用的是25mm的单元格。图片导入完成后界面如图4所示。

在这里插入图片描述

图3 输入棋盘单元格宽度

在这里插入图片描述

图4 导入图片后的界面



1.4 设置校正参数。

如图5所示,主要在这4个部分设置校正参数,此处分别记为M1/M2/M3/M4。分别对这4个模块进行介绍。

M1:Radial Distortion.畸变参数(需理解畸变参数含义)。2 Coefficients 表示计算2个畸变参数:k1/k2;3 Coefficients 表示计算3个畸变参数:k1/k2/k3。一般来说选择计算2个畸变参数即可。计算3个畸变参数时,k3值比较小,大概量级为1e-5,可以忽略(实际计算过程中,如果考虑太多高阶的畸变参数,会导致标定求解的不稳定。如果选择了计算3个畸变参数,需要注意畸变矩阵的排列顺序:[k1,k2,p1,p2,k3])。

M2:该模块指偏斜系数以及切向畸变,现在相机质量比较高,可以不予勾选。

M3:可选参数设置。点开如图6所示,可以在其中输入一些初始参数,matlab将进行迭代计算,理论上可以减少迭代计算量。可以不输入,由matlab进行自主迭代。

M4:计算模块。点击之后,matlab将进行计算。

在这里插入图片描述

图5

在这里插入图片描述

图6 可选参数设置



1.5 计算结果再分析

点击图5中Calibrate开始进行计算。Matlab会自动剔除一些不合格的图像,然后进行计算,界面如图7所示。

在图7中,右侧上方是照片的重投影误差(重投影概念:认为标定板上的物理点是理论值,它经过投影变换后会得到理论的像素点a,而测量的点经过畸变矫正后的像素点为a′,它们的欧氏距离||a−a′||即表示重投影误差。)。若下图标注的地方误差较大,可删除该张图像,matlab再次进行计算。从图7中可以看到照片6的重投影误差比较大,因此删除图像6进行重新计算(在图6上点击右键,然后点击删除即可,如图8所示)。计算完成之后,再次观察重投影误差是否比较小。直至重投影误差比较小,该过程即可结束,然后导出校正结果。

在这里插入图片描述

图7 计算结果界面

在这里插入图片描述

图8 删除重投影误差比较大的照片



1.6 导出计算结果

如图9所示,点击Export Camera Parameters导出校正结果。在弹出的对话框中点击确定即可,如图10所示。然后关闭相机校正模块,回到matlab主界面,如图11所示。在图11左侧工作区中点击刚才导出的变量名称,即可在右侧看到相应的矩阵,我们主要关心内参矩阵和畸变矩阵。

在这里插入图片描述

图9 导出计算结果

在这里插入图片描述

图10 将计算结果导出到工作空间

在这里插入图片描述

图11 matlab主界面

在这里插入图片描述

图12 计算结果



2、双目标定

单目标定完成之后得到了相机的参数,对左右摄像头分别进行标定,得到两个摄像头各自的内参矩阵和畸变参数向量,接下来进行双目相机的标定。双目相机标定时的照片必须是左右相机同时拍摄的,因为只有同时拍摄才能得到同一物理点在左右相机图像平面上的投影。

双目标定的过程和单目标定过程基本一致,过程如下:



2.1 选择matlab中的双目标定模块

在这里插入图片描述

图13 双目标定模块



2.2 导入图片并设置棋盘格尺寸

导入左,右相机拍摄的图片文件夹,同时设置棋盘格宽度,如图14所示。点击确定之后,matlab会自动剔除一些质量不高的图片。因此拍摄时图片尽量多一些,图片要求和单目标定时要求一致,数量建议20张以上。

在这里插入图片描述

图14 导入图片



2.3 设置参数

各参数设置和含义与单目标定时保持一致。此时可以输入单目标定时得到的内参矩阵(也可不输)。然后进行计算,计算过程和单目标定一致。

在这里插入图片描述

图15 设置参数



2.4 导出结果

计算完成之后,参考单目标定过程,导出计算结果。如图16所示。

在这里插入图片描述

图16 双目标定结果

说明:左右两个相机的焦距应该保持一致,因为在后续的视差图转换为三维图时的Q矩阵(重投影矩阵)只有一个f值。所以必须要求至少焦距相近。而且立体成像的三角测量(Learning OpenCV书中提到)的前提假设就是fl=fr。(调整两个摄像头的焦距相同的方法:离两个相机相同远处放置标定板,分别调节两个相机的焦距,使得两个画面的清晰度相似。)

至此,双目标定完成。

参考:https://blog.csdn.net/leonardohaig/article/details/81254179



版权声明:本文为baidu_39231810原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。