单相机校准程序中文资料.docx
《单相机校准程序中文资料.docx》由会员分享,可在线阅读,更多相关《单相机校准程序中文资料.docx(16页珍藏版)》请在冰豆网上搜索。
单相机校准程序中文资料
单相机标定程序
相机标定概述
您可以使用相机标定程序估计相机内参数,外参数,镜头畸变参数。
您可以使用这些相机参数到多种计算机视觉应用。
这些应用范围包括消除镜头畸变的影响,测量平面物体,或者从多个摄像头重建三维场景。
单摄像机标定工作流程
遵循这个工作流使用这个APP来标定你的相机的内外参数:
1.准备好图片,相机,和标定板。
2.加载图片。
3.校准相机。
4.评估校准精度。
5.调整参数来提高精确度(如果需要)。
6.输出参数对象。
在某些情况下默认值工作刚刚好,你不需要在输出参数之前做进行任何改进。
如果你需要做出改进,您可以使用MATLAB相机标定函数。
这一系列函数,请参阅MATLABGeometricCameraCalibration模块。
打开相机标定APP
MATLABToolstrip:
打开应用程序选项卡,下拉到图像处理和计算机视觉,点击应用程序图示。
MATLAB命令提示:
输入cameraCalibrator。
准备标定板,相机,和图片
为达到最佳效果,使用10至20幅含有标定板的图像。
标定APP至少需要三个图像。
使用未压缩的或无损压缩格式如PNG图像。
标定板和相机的设置必须满足一系列需求。
为了提高精度遵循以下提示对于准备标定板,设置摄像头和捕捉图像。
准备棋盘标定板
相机标定应用程序推荐使用一个棋盘标定板,一个棋盘标定板是一个方便的校准目标。
如果你想使用一个不同的标定板中提取关键点,可以直接使用相机标定MATLAB函数。
请看几何相机校正函数列表。
你可以打印(MATLAB中生成)和使用提供的棋盘状图案标定板。
你使用的棋盘标定板不能是方形的。
一边必须含有偶数的方块另一边必须包含奇数的方块。
因此,该标定板包含两个黑色的角落一边和两个白人角落另外一侧。
这个标准使应用程序以确定标定板的方向,标定程序认为长边是x轴。
准备棋盘标定板:
1)棋盘打印输出粘贴到一个光滑的平面上。
表面缺陷会影响标定的准确性。
2)测量一个方格的大小。
这对标定是必需的。
方格的大小可以不同根据打印机设置。
3)提高检测速度,设置标定板尽可能少的背景杂波。
相机的设置
适当调整你的相机,遵循以下规则:
保持焦点中的模式,但是不要使用自动对焦。
不改变图像之间的缩放设置。
否则焦距变化。
捕获图像
为达到最佳效果,使用至少10到20的包含标定板的图像。
标定APP至少需要三个图像。
使用未压缩的图像或图像无损压缩格式如PNG。
为了提高标定精度:
1.捕获的图像模式大约距离等于距离你的相机感兴趣的对象。
例如,如果您计划从2米测量对象,保持你的从相机模式大约2米。
2.把棋盘角度小于45度相对于相机平面。
3.不要修改图片。
例如,没有裁剪他们。
4.不使用自动对焦或缩放图像。
5.在相对于相机不同位置捕获的图像棋盘状图案。
6.捕获足够的不同模式的图像,你已经覆盖尽可能多的图像帧。
在图像边缘镜头畸变会快速增加增加。
为了捕捉这些透镜畸变,该标定板必须出现接近边缘的位置。
作为一般规则,棋盘标定板应该填补至少20%的捕获的图像。
例如,前面的图片拍摄的棋盘方块的大小为108毫米。
添加图片
开始校准,必须添加图片。
您可以添加保存好的图像从一个文件夹或直接从相机添加图片。
程序自动分析了图像,以确保它们满足标定的要求然后检测角点。
从文件夹添加图片
点击添加图片按钮,并选择从文件夹。
你可以从多个档夹添加图片,点击添加图片为每个文件夹。
获得在线图片
为了标定必须添加图片。
你可以从一个网络摄像头使用MATLAB摄像头的支持在线获得图像。
你必须获得MATLAB支持USB摄像头安装驱动。
参看InstalltheWebcamSupportPackage的信息。
1.获得在线图片,单击添加图片箭头并选择从相机。
2.图像捕捉选项卡打开。
如果你只有一个摄像头连接到系统,它被默认选中,在线预览窗口打开。
如果你有多个摄像头连接,想使用一个特定的,选择的相机相机列表。
3.你可以设置相机控制的属性。
单击相机属性打开你的相机的属性的列表。
这个列表显示你的设备。
可以使用滑块或下拉框改变任何可用的属性设置。
当你改变设置时预览窗口动态更新。
当你完成设定属性,单击弹出对话框将属性列表清除。
4.输入一个获得图像档的位置保存位置字段输入档夹的路径或者使用的浏览按钮。
你必须拥有写入位置的读写权限。
5.设置您的捕获参数。
在捕捉间隔字段中,使用文本框或滑块设置图像捕获之间的秒数。
默认值是5秒,最小是1秒,最大是60秒。
在图像捕捉的数量领域,使用文本框或滑块设置图像捕捉的数量,默认设置是20图片,最低是2图片,最大100张图像。
在默认配置中,共有20个图像捕获,每5秒。
6.把预览窗口锁定在程序的中心是很有益的。
7.预览窗口显示的在线图片是RGB图像流数据。
当你调整完所有设备属性和捕捉设置后,使用预览窗口捕捉图像。
8.单击捕获按钮。
捕获的数字图像的缩略图和快照出现在数据浏览器面板。
他们自动捕获命名为.png文件。
您可以随意停止捕获,点击停止捕获。
当你捕获图像数量到达指定值后,会让你输入单个方格的大小,输入后点击OK。
然后计算并显示检测结果。
9.点击OK显示检测结果对话框。
10.当你已经完成了捕获在线图片,你可以单击关闭图像捕获关闭图像捕获选项卡并返回到校准选项卡。
分析图像
你选择图片后,在棋盘方格大小对话框中,输入的长度。
程序试图检测添加的图片中的每一个棋盘。
分析图像窗口出现时出现一个进度条,表明检测进度。
如果有任何图像不合适,检测结果窗口就会显示出来,其中包含检测信息。
结果显示有多少总图像得到处理,有多少被接受,拒绝或跳过了。
想查看了被拒绝的图片,点击查看图片。
它还拒绝整个棋盘不能被检测到的图像。
被拒绝的可能的原因可能是是一个模糊的图像或标定板放在了一个极端的角度。
图像越大,方格越多,检测需要更长的时间。
查看图像和探测点
数据浏览器窗格中显示一个图像id列表。
这些图像包含一个检测标定板。
要查看图像,在数据浏览器窗格选中它。
图像窗格显示棋盘图像,用绿色圆圈表示检测到角点。
你可以通过缩放验证的检测到的角点在视图选项卡中。
黄色的正方形表示(0,0)的原点。
棋盘的X和Y箭头表示坐标轴方向。
标定
一旦你满意拍摄的图片,点击标定。
默认的校准设置假设使用一组相机参数数量最少的模型。
首先使用默认设置运行标定。
在评估结果后,你可以尝试通过调整设置和添加或删除图片提高标定精度,然后再标定一次。
标定算法
校准算法假定针孔相机模型:
(X,Y,Z):
世界坐标的点
(x,y):
形象对应的像点坐标的像素
w:
任意齐次坐标比例因子
K:
相机内在矩阵,定义为:
坐标(cxcy)代表了光学中心(主点),以像素为单位。
当像平面的x和y轴是完全垂直时,斜参数等于0。
R:
代表三维矩阵相机的旋转
t:
翻译的相机相对的世界坐标系统
摄像机标定算法就是估计内参数,外参数和失真系数。
相机校正包括以下步骤:
1)假定透镜畸变为零,在封闭的形式上解出内参数和外参数[1]
2)所有参数同时估计,包括畸变系数,利用非线性最小二乘最小化(Levenberg-Marquardt算法)。
设置初始变形系数的估计为零,使用前面的步骤得到的封闭的解作为初始估计的内参数和外参数。
[1][2]
评估校准结果
你可以通过重投影误差,相机的外参数和矫正畸变图像来评估校准精度。
最佳校准方法是使用这三种方法的评价。
检查重投影误差
重投影误差是距离在检测点和重投影点之间的像素距离。
程序通过计算从世界坐标系到图像坐标系重投影误差,重投影误差小于一个像素认为标定是成功的。
重投影误差表现为一个条形图和散点图。
你可以之间使用按钮切换他们。
您可以找到一个偏离较远的图片即重投影误差较大的图片。
然后,您可以在数据浏览器窗格从列表中选择和删除这些图像,以提高标定精度。
条形图
条形图显示每个图像,均重投影误差和总体平均误差。
直方图的标签id对应于图像。
突出显示的栏对应于所选择的图像。
选择一个映像这些方法:
Ø点击图中相应的酒吧。
Ø从列表中选择图像的数据浏览器窗格。
散点图
散点图显示每个点重投影误差。
+号表示的是被选中的图片。
一个精确的标定通常导致一个紧凑的点云。
离群值较大指出潜在的问题与相应的图片。
为了改善精度,可以考虑删除这些图像。
可视化相机外部参数
程序提供了一种可视化的3D视图。
基于摄像机参考系和标定板参考系两种模式,点击按钮显示之间切换这两个视觉效果。
单击并拖动图形可以旋转它。
点击一个棋盘或一个摄像头以选中它。
突出显示的数据可视化对应于所选择的图像列表中。
检查相对标定板和相机的位置,以查看它们是否匹配你的期望。
例如,一个标定板出现在相机后面表明标定误差。
观察矫正后图像
查看消除镜头畸变的影响,图像窗格中,单击显示矫正后图像。
如果校准是准确的,图像的扭曲的线条变得笔直。
畸变检查是很重要的无畸变的图像,即使重映射误差很小。
如果标定板涵盖了图像,只有一小部分失真估计可能是不正确的,尽管重投影误差很小。
改善标定
为了改善校准,您可以删除重投影误差较大的图像,添加更多的图片或修改校准器设置。
添加或删除图片
考虑添加更多的图片如果:
1.你有不到10图像。
2.标定板没有足够覆盖的图像帧。
3.标定板没有足够的变化方向。
考虑删除图片,如果图片:
1)重投影误差太大
2)被污染
3)包含一个棋盘角度相对于相机平面大于45度的标定板
4)包含错误检测到棋盘点
改变径向畸变系数的数量
您可以指定2或3径向畸变系数通过选择相应的的单选按钮选项部分。
径向失真在边缘附近的弯曲畸变比光学中心更严重。
镜头越小,失真就越大。
径向畸变系数描述了这种类型的畸变模型。
xdistorted=x(1+k1*r2+k2*r4+k3*r6)
ydistorted=y(1+k1*r2+k2*r4+k3*r6)
x,y:
不失真像素位置
k1,k2,和k3:
径向畸变系数的镜头
r2:
x2+y2
通常,两个系数就已经满足校准的精度要求。
严重失真,比如在广角镜头,选择使用3个系数即包括k3。
无畸变的像素位置归一化图像坐标,光学中心的起源。
表达的坐标在国际单位。
计算偏斜系数
当您选择计算偏斜系数检查框时,程序估计图像轴倾斜。
一些相机传感器包含缺陷导致的xy轴不垂直。
你可以使用一个斜参数建立缺陷模型。
如果你不选择复选框,图像的轴认为是垂直的,大多数现代的相机都不需要设置此参数。
计算切向畸变
切向畸变发生在镜头和图像平面不平行的情况下。
切向畸变系数模型描述这种类型的失真。
扭曲的点被指示为(xdistorted,ydistorted):
xdistorted=x+[2*p1*y+p2*(r2+2*x2)]
ydistorted=y+[p1*(r2+2*y2)+2*p2*x]
x,y:
不失真像素位置
p1和p2:
镜头切向畸变系数
r2=x2+y2
当您选择计算切向畸变检查框,校准器估计切向畸变系数。
否则