北航机器视觉摄像机标定实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摄像机标定实验
一、实验目的
1. 掌握图像坐标系、摄像机坐标系和世界坐标系的定义及相互之间的变换关系,掌握摄像机透视投影原理及模型;
2. 了解摄像机标定的意义,掌握基于自由移动平面靶标的摄像机标定原理;
3. 了解摄像机镜头光学畸变模型,掌握摄像机镜头径向畸变校正原理和实现方法;
4.学习使用MATLAB 工具箱进行摄像机参数标定,精度评价以及畸变校正。
二、实验软件平台
MATLAB (R2014a,64bit),摄像机标定工具箱TOOLBOX_calib。
三、实验内容
1. 先用AutoCAD 或者图像编程制作一个方格棋盘黑白靶标,并用打印机打印在A4 纸上,贴在某个平整的物面上,然后用摄像机从多个角度拍摄靶标图像7至10幅。
2. 利用MATLAB工具箱TOOL_BOX对拍摄得到的图像进行摄像机标定,精度分析。
四、实验步骤及结果
1. 下载MATLAB摄像机标定工具箱TOOLBOX_calib(2015年10月14日更新),解压该工具箱。
2. 使用摄像机从不同角度拍摄9幅方格棋盘黑白靶标的图片,将图片置于解压的工具箱文件夹内
3. 打开MATLAB软件,将MATLAB的path设置为解压后的TOOLBOX_calib文件夹。在命令窗口输入calib,弹出窗口,选择第一项Standard模式。
4. 点击Read images选项读入图片,将事先拍好的9幅靶标图片读入,如下图所示。
5. 在提取图像进入程序后,我们要对图像提取角点,点击Extract grid corners,根据提示进行操作。
此时程序会弹出图像请用户标出角点,通过选取,得到了下图。
之后程序会要求输入每个格子的实际边长,我们打印的是40mm大的格子,输入后得到了程序对每个角点的估计,如下图所示。
我们可以发现这张图上边的角点不太准,程序这时问我们需不需要增加畸变系数以使图像角点与程序计算得出的角点相匹配,我们按照提示输入-0.1后,得到下图,匹配的较好。重复以上程序,将九张图全部提取出角点。
6. 在角点提取完成后,就可以求取标定的摄像机的参数了,点击Calibration按钮,得到标定的参数
可以看出,误差均小于0.3,畸变系数也比较小。
点击Reproject on images按钮,得到像素误差。
点击Show Extrinsic按钮,得到三维空间中摄像机和靶标之间的相对位姿关系,如下图所示。
7. 点击Recomp. corners按钮,选取Use the projection of 3D grid选项重新提取角点,得到新的结果如下图所示。
可以看出结果变化很小,说明如果不使用手工提取角点的话,机器对内参的计算的结果不会更加精确了。
思考题:
在标定过程中会要求设置dX与dY的大小,实际中都为40mm,若在不清楚其大小的时候对标定会有影响么?
实际上并不会有影响,因为dX和dY只用于估计摄像机和靶标之间的距离,不影响其相对姿态关系,内参结果不会变化。
使用标定工具重新设置dX与dY的大小为50mm,得到的内参如下。可以dX与dY的大小证明对摄像机内参无影响。