利用matlab工具箱进行双目标定

一、准备工作

  • 1 下载工具包TOOLBOX_calib Download Page
  • 2 解压TOOLBOX_calib 文件夹至 D:\MATLAB\R2014b\toolbox 路径,并在matlab中添加路径。
    利用matlab工具箱进行双目标定_第1张图片
  • 3 准备标定板 Download Page,采集数据。
    一般的,标定板越大越好。将标定板摆在相机可视的范围内,每拍一张照片,标定板换一个位置和朝向。采集棋盘图的时候要注意,尽量让棋盘占据尽可能多的画面,这样可以得到更多有关摄像头畸变方面的信息。棋盘图不能动,此时从左右摄像头各采集一副图片保存。
    利用matlab工具箱进行双目标定_第2张图片

二、相机标定

  • 1 启动相机标定工具箱
    matlab进入图像目录,输入命令calib_gui 15 到 20 张照片可以选择 Standard 模式,当图像量大且多时需要用 Memory efficient 模式
  • 2 载入图片
    点击 Image names 按钮,依次输入标定图像序列的名称前缀(不包含数字序号),图片格式。
    在这里插入图片描述
    3 提取角点
    点击 Extract grid cornder 按钮
    利用matlab工具箱进行双目标定_第3张图片
    1)输入需要处理的图片数目,默认回车为刚才导入的全部图片
    2)选择默认的 corner finder 窗口大小(就是十字光标),wintx=winy=5, 比较合适。光标的大小恰好是 11X11 个像素。
    3)角落提取引擎含有自动计算方块个数的系统。这个引擎特别适合多图像的情况。避免了在 X 方向和 Y 方向手动输入方块个数的麻烦,默认使用自动方块检测机制。
    然后会弹出第一幅图片让你用鼠标选定四个角点,第一个点会作为原点,一般位于左上角,其他三个点选择顺序不重要,不过还是建议按顺时针选取(为标定方便,我们未将最外层的方格包括在内)
    利用matlab工具箱进行双目标定_第4张图片
    第一幅图片读完后,输入每个小方格在现实世界中的宽高,以便随后角点的自动选择,实验过程中设定为 30mm×30mm,只需第一次设定。程序会自动计算方块的数量和角点(X 方向和 Y 方向),并且显示出来。
    利用matlab工具箱进行双目标定_第5张图片
    接下来看 Matlab 命令行的提示,如果预测的角点接近真实图片上的角点,那么接下来的步骤可以省略(如果没有太大的图像变形的话)。现在预测的跟实际很接近,不需要通过键入径向畸变系数(radial distortion coefficient)来 “帮助” 软件。按下 “回车键”,角点自动被提取出来。
    利用matlab工具箱进行双目标定_第6张图片
    对剩下的每一幅图像都进行上述角点提取操作,(第一次标定必须很麻烦的一幅一幅的操作,若已经做过一次,可点击 load 选项,会自动载入 Calib_Results.mat 中的角点信息,这个信息在第一次标定时会生成,后面会讲到)
  • 4 实施标定
    完成角点提取后,点击校正工具箱上的 Calibration 按钮来运行主要校正步骤。
    初始化步骤计算校正参数的封闭解,不包括任何镜头失真(程序名称:init_calib_param.m)。非线性最优化步骤使所有参数的二次投影误差最小(9 个内部自由度(DOF):焦点,投影中心,失真系数,和 6X20 个外部自由度,一共 129 个参数)
    利用matlab工具箱进行双目标定_第7张图片
    说明
    A. 通过 Recomp. corners 按钮提高标定精确度;
    B. Analyse error 展示角点误差分布,用鼠标左键点击后,在命令窗口可直接显示该点信息;
    利用matlab工具箱进行双目标定_第8张图片
    C. 点击 Reproject on images 按钮用计算出来的参数投影到图像。这些投影是基于当前的内部参数和外部参数。二次投影误差同样显示如下:
    利用matlab工具箱进行双目标定_第9张图片
    D: 点击工具箱上的 Show Extrinsic。外部参数(网格对于摄像机的相对坐标,即摄像机坐标系)将显示出来:
    利用matlab工具箱进行双目标定_第10张图片
    回头看一下误差图表,发现有一些二次误差很大。原因是我们没有在一些失真较大的图像上仔细提取角点(一个较好的工作是用预测失真选项)。无论如何,我们可以自动重新计算所有图像角点。方法是:点击 Recomp.corners 按钮,选择新的角点检测大小,wintx=winty=5, 再点击 Calibration 按钮运行一次。查看重投影误差,明显减小。
    利用matlab工具箱进行双目标定_第11张图片
  • 5 保存标定结果
    最优化完成后,点击 Save 按钮来保存校正的结果, 得到的相机参数存储在 Calib_results.mat 文件中,为了后续方便将文件名字改写为 Calib_Result_left.mat.
  • 6 同样方式标定右摄像机
    分别生成 Calib_Results_left.mat 和 Calib_Results_right.mat 两个文件

三、双目标定

  • 1 启动相机标定工具箱
    输入命令stereo_gui
  • 2 导入左右相机标定结果
    选择 Load left and right calibration files 按钮,如果是按照上面两个文件命名的,敲两次回车(Enter)
    利用matlab工具箱进行双目标定_第12张图片
  • 3 双目标定
    点击 Run stereo calibration 按钮。
    利用matlab工具箱进行双目标定_第13张图片
    点击 Show Extrinsics of stereo rig 显示照片与摄像头的关系图,如图所示两个摄像头前向平行并在一条直线上,两个摄像头之间的距离为 60mm 与实际情况相符。
    利用matlab工具箱进行双目标定_第14张图片

你可能感兴趣的:(基础知识,matlab,计算机视觉)