matlab相机标定

matlab相机标定
matlab相机标定

精密测量与测试技术

实验报告

机研142 10011314142 李婷婷

一、实验目的

在理论学习的基础上,通过本实验熟悉matlab 编程,了解二阶系统的频率特性,加深对二阶系统的幅频和相频特性的理解。

二、实验原理

按二阶系统的微分方程作拉普拉斯变换,得到的幅频和相频特性的表达式:

222

(s)2s+n n n

H s ωξωω=+ (1)

2

21

()4n A ωωξω=

??

+ ???

(2)

22()a r c t a n 1n

n ωξω

φωωω??

?

??=-??-

???

(3) 三、实验内容

实验选取ξ为0.05,0.10.0.15,0.25,0.50,1.00时对应的ω/ωn 取值范围在0-3之间的幅频和相频特性曲线。

1.matlab绘制二阶系统幅频特性曲线图

程序:

W=0:0.01:3;

s1=0.05;

s2=0.10;

s3=0.15;

s4=0.25;

s5=0.50;

s6=1.00;

A1=1./sqrt((1-W.^2).^2+4*s1^2*W.^2);

A2=1./sqrt((1-W.^2).^2+4*s2^2*W.^2);

A3=1./sqrt((1-W.^2).^2+4*s3^2*W.^2);

A4=1./sqrt((1-W.^2).^2+4*s4^2*W.^2);

A5=1./sqrt((1-W.^2).^2+4*s5^2*W.^2);

A6=1./sqrt((1-W.^2).^2+4*s6^2*W.^2);

hold on

plot(W,A1,W,A2,W,A3,W,A4,W,A5,W,A6);

title('二阶系统幅频特性曲线')

xlabel('ω/ωn');ylabel('A(ω)');

legend('ξ=0.05','ξ=0.10','ξ=0.15','ξ=0.25','ξ=0.50','ξ=1.00') 2.matlab绘制二阶系统相频特性曲线图

程序:

W1=0:0.01:1;

s1=0.05;

s2=0.10;

s3=0.15;

s4=0.25;

s5=0.50;

s6=1.00;

fai1=-atan(2*s1.*W1./(1-W1.^2));

fai2=-atan(2*s2.*W1./(1-W1.^2));

fai3=-atan(2*s3.*W1./(1-W1.^2));

fai4=-atan(2*s4.*W1./(1-W1.^2));

fai5=-atan(2*s5.*W1./(1-W1.^2));

fai6=-atan(2*s6.*W1./(1-W1.^2));

hold on;

plot(W1,fai1,W1,fai2,W1,fai3,W1,fai4,W1,fai5,W1,fai6);

W2=1+0.00001:0.01:3;

fai01=-atan(2*s1.*W2./(1-W2.^2))-pi;

fai02=-atan(2*s2.*W2./(1-W2.^2))-pi;

fai03=-atan(2*s3.*W2./(1-W2.^2))-pi;

fai04=-atan(2*s4.*W2./(1-W2.^2))-pi;

fai05=-atan(2*s5.*W2./(1-W2.^2))-pi;

fai06=-atan(2*s6.*W2./(1-W2.^2))-pi;

plot(W2,fai01,W2,fai02,W2,fai03,W2,fai04,W2,fai05,W2,fai06);

title('二阶系统相频特性曲线')

xlabel('ω/ωn ');ylabel('φ(ω)');

set(gca, 'YDir','reverse'); %反转纵坐标%

legend('ξ=0.05','ξ=0.10','ξ=0.15','ξ=0.25','ξ=0.50','ξ=1.00',4)

三、分析:

从幅频和相频特性曲线可以看出,当ξ<1,ω<<ωn时,A(ω)≈1,幅频特性平直,输出与输入为线性关系;φ(ω)很小,φ(ω)与ω为线性关系。此时,系统的输出真实准确地再现输入的波形。因此,在测量系统设计时,必须使阻尼比ξ<1,固有圆频率ωn至少应大于被测信号频率的3-5倍。

在编程过程中,了解了matlab中数值和矩阵进行运算的不同之处,矩阵运算按需要进行点乘或点除。

第一次绘制二阶系统相频特性曲线时,忽略了ω/ωn=1这一特殊点,导致曲线绘制错误。通过分段作图和区间端点加一极小值的方法,避开了ω/ωn=1这一点。

摄像机标定方法综述

摄像机标定方法综述 摘要:首先根据不同的分类方法对对摄像机标定方法进行分类,并对传统摄像机标定方法、摄像机自标定方法等各种方法进行了优缺点对比,最后就如何提高摄像机标定精度提出几种可行性方法。 关键字:摄像机标定,传统标定法,自标定法,主动视觉 引言 计算机视觉的研究目标是使计算机能通过二维图像认知三维环境,并从中获取需要的信息用于重建和识别物体。摄像机便是3D 空间和2D 图像之间的一种映射,其中两空间之间的相互关系是由摄像机的几何模型决定的,即通常所称的摄像机参数,是表征摄像机映射的具体性质的矩阵。求解这些参数的过程被称为摄像机标定[1]。近20 多年,摄像机标定已成为计算机视觉领域的研究热点之一,目前已广泛应用于三维测量、三维物体重建、机器导航、视觉监控、物体识别、工业检测、生物医学等诸多领域。 从定义上看,摄像机标定实质上是确定摄像机内外参数的一个过程,其中内部参数的标定是指确定摄像机固有的、与位置参数无关的内部几何与光学参数,包括图像中心坐标、焦距、比例因子和镜头畸变等;而外部参数的标定是指确定摄像机坐标系相对于某一世界坐标系的三维位置和方向关系,可用3 ×3 的旋转矩阵R 和一个平移向量t 来表示。 摄像机标定起源于早前摄影测量中的镜头校正,对镜头校正的研究在十九世纪就已出现,二战后镜头校正成为研究的热点问题,一是因为二战中使用大量飞机,在作战考察中要进行大量的地图测绘和航空摄影,二是为满足三维测量需要立体测绘仪器开始出现,为了保证测量结果的精度足够高,就必须首先对校正相机镜头。在这期间,一些镜头像差的表达式陆续提出并被普遍认同和采用,建立起了较多的镜头像差模型,D.C.Brown等对此作出了较大贡献,包括推导了近焦距情况下给定位置处径向畸变的表达式及证明了近焦距情况下测得镜头两个位置处的径向畸变情况就可求得任意位置的径向畸变等[2]。这些径向与切向像差表达式正是后来各种摄像机标定非线性模型的基础。随着CCD器件的发展,现有的数码摄像机逐渐代替原有的照相机,同时随着像素等数字化概念的出现,在实际应用中,在参数表达式上采用这样的相对量单位会显得更加方便,摄像机标定一词也就代替了最初的镜头校正。

基于靶标平面相机参数动态标定Matlab程序

基于靶标平面相机参数动态标定Matlab程序 ★注意:直接运行bd.m文件即可进行动态标定,附录Ⅲ中的其它函数文件均会被bd.m文件调用;坐标数据由实验获取。 bd .m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % M为靶标角点的世界坐标数据,m1—m5为5组图像像素坐标数据;本函数为主函数,它将数据赋值给函数Dtbd(M,m)实现相机动态标定。 clc; clear; M=load('Model.txt'); %Model.txt中为靶标角点的世界坐标,由实验测得 m1=load('data1.txt'); m2=load('data2.txt'); m3=load('data3.txt'); m4=load('data4.txt'); %data1.txt—data5.txt中为不同视角所对应的角点图像坐 %标,可用附录Ⅱ中的程序测得 m5=load('data5.txt');%Model.txt为靶标的世界坐标 M=[M(:,1:2) ; M(:,3:4) ; M(:,5:6) ; M(:,7:8)]; m1=[m1(:,1:2) ; m1(:,3:4) ; m1(:,5:6) ; m1(:,7:8)]; m2=[m2(:,1:2) ; m2(:,3:4) ; m2(:,5:6) ; m2(:,7:8)]; m3=[m3(:,1:2) ; m3(:,3:4) ; m3(:,5:6) ; m3(:,7:8)]; m4=[m4(:,1:2) ; m4(:,3:4) ; m4(:,5:6) ; m4(:,7:8)]; m5=[m5(:,1:2) ; m5(:,3:4) ; m5(:,5:6) ; m5(:,7:8)]; M=M'; % 将靶标平面上角点的世界坐标写入矩阵M中,M为2维矩阵m(:,:,1)=m1'; m(:,:,2)=m2'; m(:,:,3)=m3'; m(:,:,4)=m4'; m(:,:,5)=m5'; % 将5个视角对应的图像像素坐标写入矩阵m中,m为3维矩阵Dtbd(M,m) % 调用Dtbd .m文件进行动态标定%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Dtbd .m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Dtbd(M,m)函数实现的功能正是本论文中第4章所讲述的动态标定技术,它引入了径向畸变和切向畸变,具体标定过程可参照本论文。 function Dtbd(M,m) [rows,npts]=size(M); matrixone=ones(1,npts); M=[M;matrixone]; num=size(m,3); for i=1:num

摄像机参数标定步骤

1、系统需求 该工具箱可以在 Windows、Linux和Unix系统下的Matlab 5.x, Matlab 6.x and Matlab 7.x 版本下使用,而且不需要任何特定的 Matlab 工具箱(例如:不需要最优化工具箱)。 注意:我最近收到了在 Matlab 2007b 平台下关于 GUI 相关的 bug 报告。当修复工作完成时我会将其上传。请将你在使用过程中遇到的问题通知给我以帮助维护这个工具箱。请在邮件里写清楚 bug 的类型,并复制完整的错误信息。谢谢!! 2、开始 ◆转到下载页面,获取最新版本的完整的摄像机标定 Matlab 工具箱。 ◆将解压出的所有文件(.m 文件)放入一个文件夹中(默认的文件夹名称是 TOOLBOX_calib)。 ◆运行 Matlab,并将 TOOLBOX_calib 文件夹添加到 matlab path 环境中。该步骤可以让你在任何地方调用 matlab 工具箱里的任何函数。在 Windows 系统下,该操作可以方便的通过 path 编辑菜单进行。在 Linux 和 Unix 系统下,你可以使用 path 或者 addpath 命令(使用 help 命令查看相关的帮助说明)。 ◆运行matlab标定主函数 calib_gui(或calib)。 屏幕上将出现如下的模式界面 该选择窗口提示你在工具箱的两种操作模式中选择其一:标准模式和内存节省模式。在标准模式下,所有标定时需要的图像一次性装入内存,之后不再进行磁盘的读取。这大大减小了磁盘访问的开销,加速了图像处理和图形显示函数执行的速度。然而,如果图片过大,或图片过多,将会出现 OUT OF MEMORY 错误。因此,可以使用新的内存节省模式。在内存节省模式下,每次只读取一幅图片,并且不在内存中存储。 如果选择运行标准模式,当遇到 OUT OF MEMORY 错误时,可以该选用内存节省模式。两种模式的操作是完全兼容的(输入与输出),内部进行转换。 因为两种模式的用户界面完全一样,在本文中我们选择了标准界面。点击屏幕上方的标准界面按钮,将出现工具箱的标定主窗口(取代模式选择窗口)如下: 模式选择的步骤可以通过执行 calib_gui(0) (使用标准模式)或执行 calib_gui(1) (使用内存节省模式)跳过(键入 help calib_gui 查看更多信息)。 ◆现在你可以使用工具箱进行标定了。 3、标定实例

摄像机标定程序使用方法

一、材料准备 1 准备靶标: 根据摄像头的工作距离,设计靶标大小。使靶标在规定距离范围里,尽量全屏显示在摄像头图像内。 注意:靶标设计、打印要清晰。 2图像采集: 将靶标摆放成各种不同姿态,使用左摄像头采集N幅图像。尽量保存到程序的debug->data文件夹内,便于集中处理。 二、角点处理(Process菜单) 1 准备工作: 在程序debug文件夹下,建立data,left,right文件夹,将角探测器模板文件target.txt 复制到data文件夹下,便于后续处理。 2 调入图像: File->Open 打开靶标图像 3 选取角点,保存角点: 点击Process->Prepare Extrcor ,点击鼠标左键进行四个角点的选取,要求四个角点在最外侧,且能围成一个正方形区域。每点击一个角点,跳出一个显示角点坐标的提示框。当点击完第四个角点时,跳出显示四个定位点坐标的提示框。 点击Process->Extract Corners ,对该幅图的角点数据进行保存,最好保存到debug->data-> left文件夹下。命名时,最好命名为cornerdata*.txt,*代表编号。 对其余N-1幅图像进行角点处理,保存在相同文件夹下。这样在left文件夹会出现N 个角点txt文件。 三、计算内部参数(Calibration菜单) 1 准备工作: 在left文件夹中挑出5个靶标姿态差异较大的角点数据txt,将其归为一组。将该组数据复制到data文件夹下,重新顺序编号,此时,文件名必须为cornerdata*,因为计算参数时,只识别该类文件名。 2 参数计算: 点击Calibration->Cameral Calibrating,跳出该组图像算得的摄像机内部参数alpha、beta、gama、u0、v0、k1、k2七个内部参数和两组靶标姿态矩阵,且程序默认保存为文件CameraCalibrateResult.txt。 3 处理其余角点数据文件 在原来N个角点数据文件中重新取出靶标姿态较大的5个数据文档,重复步骤1和2;反复取上M组数据,保存各组数据。 注意:在对下一组图像进行计算时,需要将上一组在data文件夹下的5个数据删除。 四、数据精选 1 将各组内部参数计算结果进行列表统计,要求|gama|<2,且gama为负,删掉不符合条件的数据。 2 挑出出现次数最高的一组数据。

【CN110033491A】一种相机标定方法【专利】

(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910299209.5 (22)申请日 2019.04.15 (71)申请人 南京工程学院 地址 211167 江苏省南京市江宁科学园弘 景大道1号 (72)发明人 郝飞 王宗荣 史晶晶 王帆  陈德林 胡运涛 汪海洋 张汝祥  (74)专利代理机构 南京纵横知识产权代理有限 公司 32224 代理人 董建林 范青青 (51)Int.Cl. G06T 7/80(2017.01) (54)发明名称一种相机标定方法(57)摘要本发明公开了相机标定技术领域的一种相机标定方法。旨在解决现有技术中基于一维标定杆标定精度较低,基于三维标定模板标定存在自遮挡问题,基于棋盘格形二维标定模板标定需进行角点检测而无法获取更高的标定精度,基于单个圆形图案作为特征的二维标定模板标定存在“原理性误差”。所述方法包括如下步骤:根据预制的标定模板采集标定模板图像;提取标定模板图像中的特征点,求解相机内参数及镜头畸变参数;根据相机内参数和镜头畸变参数构建多维向量;利用镜头畸变参数对所述标定模板图像进行去畸变处理并构建新的多维变量,直至相邻两次多维变量的欧式距离小于设定值,输出最后一次 相机内参数及畸变参数。权利要求书1页 说明书6页 附图5页CN 110033491 A 2019.07.19 C N 110033491 A

权 利 要 求 书1/1页CN 110033491 A 1.一种相机标定方法,其特征在于,所述方法包括如下步骤: 将预制的标定模板置于待标定相机的视场内,采集标定模板图像;所述标定模板为二维标定模板,标定模板上分布有多个圆形,多个圆形以标定模板的中心点为环心围成多个直径不同的环形阵列; 提取标定模板图像中圆形的特征点,求解相机内参数及镜头畸变参数;所述特征点为圆形的圆心; 根据相机内参数和镜头畸变参数构建多维向量; 利用镜头畸变参数对所述标定模板图像进行去畸变处理,重复相机内参数及畸变参数的求解过程,并构建新的多维变量,直至相邻两次多维变量的欧式距离小于设定值,输出最后一次相机内参数及畸变参数。 2.根据权利要求1所述的相机标定方法,其特征在于,所述特征点的提取方法包括: 对标定模板图像中的圆形进行边缘检测,利用最小二乘法拟合圆环透视投影后产生的两个椭圆; 连接两个椭圆圆心的直线与每个椭圆形成两个交点,采用交比不变原理求解特征点像点的像素坐标。 3.根据权利要求2所述的相机标定方法,其特征在于,所述特征点的提取方法还包括:对标定模板图像进行预处理,所述预处理包括灰度化处理和或滤波处理。 4.根据权利要求1所述的相机标定方法,其特征在于,所述相机内参数包括:主点坐标的两个分量、横向和纵向缩放因子; 所述相机内参数的求解方法包括: 在标定模板图像上标定四个圆形的特征点,利用四个特征点之间的几何约束和定量关系建立关于相机内参数的四元方程组,所述方程组为无约束非线性方程组; 求解无约束非线性方程组,得到相机内参数。 5.根据权利要求1所述的相机标定方法,其特征在于,所述求解镜头两个畸变参数包括如下步骤: 标定一组特征,所述特征包括标定模板图像中满足调和共轭的三个特征点和一个无穷远点; 根据调和比建立关于两个畸变参数的超定方程组; 运用最小二乘法求解超定方程组,得到镜头两个畸变参数。 6.根据权利要求1至中5任一项所述的相机标定方法,其特征在于,所述设定值≤10-5。 2

实验三 MATLAB图像处理基本操作及摄像机标定(DLT)

实验三 MATLAB图像处理基本操作及摄像机标定(DLT) 实验三 Matlab图像处理基本操作及摄像机标定(DLT) (DLT)1、实验目的 通过应用Matlab的图像处理基本函数,学习图像处理中的一些基础操作和处理。 理解摄像机标定(DLT)方法的原理,并利用程序实现摄像机内参数和外参数的估计。。 2、实验内容: 1) 读取一幅图像并显示。 2) 检查内存(数组)中的图像。 3) 实现图像直方图均衡化。 4) 读取图像中像素点的坐标值。 5) 保存图像。 6) 检查新生成文件的信息。 7) 使用阈值操作将图像转换为二值图像。 8) 根据RGB图像创建一幅灰度图像。 9) 调节图像的对比度。 10) 在同一个窗口内显示两幅图像。 11) 掌握matlab命令及函数,获取标定块图像的特征点坐标。 12) 根据摄像机标定(DLT)方法原理,编写Matlab程序,估计摄像机内参数和12) 外参数。 3、实验要求: 1) 选取一幅图像,根据实验内容1)—10)给出结果。

2) 根据给定的标定块图像及实验内容11),12)进行编程实验。 3) 书写实验报告 4、实验设备 1) 微机。 2) Matlab软件。 5、实验原理 DLT变换: Abdal-Aziz和Karara于70年代初提出了直接线性变换像机定标的方法,他们从摄影测量学的角度深入的研究了像机图像和环境物体之间的关系,建立了像机成像几何的线性模型,这种线性模型参数的估计完全可以由线性方程的求解来实现。 直接线性变换是将像点和物点的成像几何关系在齐次坐标下写成透视投影矩阵的形式: X,,wu,,,, Y,,w,,,svP 3,4,,,,Zw ,,1,,,,1,, 为图像坐标系下的点的齐次坐标,为世界坐标系下的空其中,,,, u,v,1X,Y,Zwww 间点的欧氏坐标, P为3*4的透视投影矩阵,为未知尺度因子。 消去S,可以得到方程组: pX,pY,pZ,p,puX,puY,puZ,pu,011w12w13w1431w32w33w34 pX,pY,pZ,p,puX,puY,puZ,pu,021w22w23w1431w32w33w34 当已知N个空间点和对应的图像上的点时,可以得到一个含有2*N个方程的方程组: AL,0 其中A为(2N*12)的矩阵, L为透视投影矩阵元素组成的向量: T ,,p,p,p,p,p,p,p,p,p,p,p,p111213142122232431323334 ||AL||像机定标的任务就是寻找合适的L,使得为最小,即 min || AL || L

基于MATLAB对相机标定的研究

基于MATLAB对相机标定的研究 相机标定是对相机成像的逆过程求解,是建立二维图像坐标和三维世界坐标之间的对应关系,是机器视觉的重要组成部分。文章对针孔相机成像原理进行分析,考虑相机成像过程的径向畸变和偏心畸变。利用棋盘格标定原理,基于MATLAB对相机进行标定。 标签:相机标定;MATLAB;二值化 随着科技的迅猛发展,机器视觉越来越多的被运用到工业生产。相机的标定是机器视觉的重要组成部分,是对由三维世界坐标到二维图像坐标的映射求解。并廣泛运用于逆向工程、空间测距、图像识别、3D电影、游戏等工程。 相机的标定方法分为两大类,分别为传统标定方法和自标定方法。传统标定方法利用标定块的角点坐标和对应的图像坐标,计算出相机的内外参数,这种标定方法可以标定任意相机模型,标定过程复杂但是结果精确。包括利用最优化算法的标定、考虑畸变补偿的两步法、张正友标定法。自标定法是利用Krupp方程为相机建立绝对二次曲线曲面方程进行求解。这种方法灵活性强,但是鲁棒性和标定结果相对较差。 1 相机的标定原理 对相机进行标定首先需要建立相机的成像模型,首先利用针孔模型对相机的成像原理进行分析,然后考虑实际相机的畸变模型,利用张正友标定方法求解。 1.1 线性模型分析 相机标定的针孔模型是利用小孔成像的原理来描述相机的成像模型。针孔相机模型如下图1。 要描述针孔相机模型,需要介绍四种坐标以及这四种的坐标的相互关系。如图1所示,世界坐标系(OW-XWYWZW)表示世界的绝对坐标,能描述相机及其物理的空间位置。相机坐标(OC-XCYCZC)以相机的光心为坐标的原点,光轴为ZC轴,而XC、YC轴分别平行于图像坐标系的X,Y轴。图像坐标(o-xy)是以光轴与图像平面的交点为原点,描述的成像的平面坐标。图像像素坐标(o-uv)是图像的存储坐标,以图像左上端点为原点,以像素为单位描述图像其u、v轴分别平行于图像坐标的x、y轴。 其中fx=f/dx,dx表示像素在x轴方向的物理尺寸,f为相机的焦距。A是相机的内部参数矩阵,表示针孔模型下相机坐标到像素坐标的转换关系。点(u0,v0)为图像的主点。R是旋转矩阵,t是平移量,M为外部参数矩阵,表示由世界坐标系经过旋转和平移到相机坐标系的转换。

一种多相机视觉测量系统的全局标定方法

一一第39卷一第5期一吉首大学学报(自然科学版)V o l.39一N o.5一一一一2018年9月J o u r n a l o f J i s h o uU n i v e r s i t y(N a t u r a l S c i e n c eE d i t i o n)S e p t.2018一一 文章编号:10072985(2018)05003808 一种多相机视觉测量系统的全局标定方法? 黄东兆,赵前程 (湖南科技大学机械设备健康维护湖南省重点实验室,湖南湘潭411201) 一一摘一要:提出了一种基于双平面靶标的多相机全局标定方法,要求两靶标之间为刚性联接,绕同一根轴旋转,但它们之间的相对位姿关系可以是未知的.该方法不仅适用于立体视觉测量系统,也适用于基于单目视觉的多相机测量系统,应用于四轮定位仪中多相机相对位姿关系的出厂标定,标定精度满足出厂要求. 关键词:多相机测量系统;全局标定;视觉测量;单目视觉 中图分类号:T P391.7一一一一一一一文献标志码:A D O I:10.13438/j.c n k i.j d z k.2018.05.009 单个相机都受一定的视野范围限制,为了满足高精度二宽视野的工业测量任务,通常需要用多个相机组建一个具有更大视觉空间范围的测量系统.对每个相机进行内参标定,只能在单个相机坐标系下建立视觉测量模型.由于各相机坐标系彼此独立,因此所有相机的测量结果需要统一到其中一个相机坐标系或一个全局坐标系中来表达.统一的过程被称为多相机测量系统位姿关系的全局标定.通常使用 金规校准 (需1个制作精确的标准件作为参考基准)与 银规校准 (需1个经过坐标测量机标定后的标准件作为参考基准)对多相机系统进行全局标定,但在日常搬运中要防止标准件不受损害是相当困难的.因此,张广军[1]提出了使用双电子经纬仪或单电子经纬仪加靶标进行全局标定的方法.该方法精度高,但电子经纬仪价格昂贵,普适性受限.其他一些方法[23]无需贵重仪器,但仅适用于立体视觉测量系统,不能应用于单目视觉系统.多相机测量系统全局标定的本质是确定系统中相机两两之间的相对位姿关系[4],只要任意两相机间的相对位姿关系确定了,就完成了多相机系统的全局标定.笔者提出了一种基于双平面靶标的两相机相对位姿关系的标定方法,在阐述其原理的基础上通过仿真标定与实际标定实验来验证其可行性. 1一基于双平面靶标的两相机间相对位姿关系的标定方法 1.1原理 多相机全局标定装置如图1所示,两靶标之间为刚性联接.两相机的位姿关系的标定如图2所示. 图1一多相机全局标定装置 F i g.1一 G l o b a lM u l t i-C a m e r aC a l i b r a t i o nD e v i c e 图2一两相机间相对位姿关系的标定 F i g.2一T w o-C a m e r aC a l i b r a t i o n f o rR e l a t i v eP o s eR e l a t i o n ?收稿日期:20180322 基金项目:国家自然科学基金资助项目(51345009);湖南省自然科学基金资助项目(13J J4082) 作者简介:黄东兆(1978 ),男,安徽桐城人,湖南科技大学讲师,博士,主要从事机器视觉测量二数控技术等研究.

相机标定方法

摄像机标定的方法和具体的步骤 1.理想的摄像机成像模型 在不考虑畸变的情况下,建立如图所示的摄像机模型。 物体到图像之间的转化,经历了下面四个坐标系的转换: 1.三维世界坐标系 O X Y Z w w w w 这是基于不存在误差的基础上建立的坐标系,是一个理想的模型。这是后两个模型 的参考,可以作为对比的基础。 2.摄像机坐标系Oxyz 该坐标系的原点是摄像机的光心,CCD像平面到原点的距离为f,即理想成像系统 的有效焦距,坐标系的轴与光轴重合。 3.摄像机图像坐标系'O XY O,X轴、该二维坐标系定义在CCD像平面上,其中光轴与像平面的交点定义为原点' Y轴分别平行于x、y轴。 4.计算机像平面坐标系Ouv 在这一坐标系中,原点在图像的左上角。这是一个建立在CCD像平面中的二维坐标 系,u轴和v轴组成坐标系,前者为水平轴,后者为垂直轴,方向向右、向下。 上面我们讨论的四个坐标系中,只有最后一个坐标系的单位是像素。前三者的单位 都是毫米。 一被测点P,其三维坐标为(x,y,z) ,摄像机坐标系为(x,y,z),其经过拍摄后, w w w

在摄像机图像坐标系中的坐标为(X,Y),最后得到计算机像面坐标系的坐标(u,v),这四步的变换过程如下图所示: 一、刚体变换(从世界坐标系到摄像机坐标系) 在刚体变换过程中世界坐标系中的一点到摄像机坐标系中的点,可以由一个旋转矩阵R以及一个平移矩阵t来描述,则存在如下刚体变换公式: 其中R为3X3的旋转矩阵(),t是一个三维平移向量,化为其次坐标形式有:

二、透视投影(相机坐标系到理想图像物理坐标系) 根据针孔模型下透镜成像焦距f,物距u和相距v的关系,以及下图可得:(注意此时的点M是摄像机坐标系的点) y是理想图像物理坐标系坐标)将上面的关系式化成其次坐标式为:(注意:x, u u 三、畸变校正 在上面所有的坐标系公式推导的过程中,我们遵循的是线性摄像机模型,但是实际的摄像机由于镜头制作工艺等原因,使摄像机获取的原始图像是含有畸变的,畸变的图像的像点、投影中心、空间点不存在共线关系,所以如果要想直接运用线性模型来描述三维世界空间的点与像点之间的关系,必须先对畸变的图像进行校正。 畸变模型矫正公式为: y为针孔线性模型计算出来的图像点坐标的理想值,(x,y)是实际的图像点的坐(x,) u u

halcon单相机标定详细说明

相机标定 1 相机标定基本原理 1.1 相机成像模型 目前大多数相机模型都是基于针孔成像原理建立的,因为针孔成像原理简单,并且能满足建模的要求。除此之外还有基于应用歪斜光线追踪法和近轴光线追踪法的成像模型[1]。针孔成像虽然已经展示出了相机的成像原理,但是由于针孔成像是理想的物理模型,没有考虑相机本身的尺寸、镜头与相机轴心的偏斜等因素的影响,因此精度很低,不能满足工业机器视觉的要求。为了使相机模型能高精度的反应相机的实际成像过程,需要再针孔成像模型的基础上考虑镜头畸变等的因素。 图1 针孔成像 基于针孔成像原理建立的相机的成像模型,如下图所示。在相机的成像模型中,包含有几个坐标系分别是世界坐标系、相机坐标系、图像坐标系,相机的成像过程的数学模型就是目标点在这几个坐标系中的转化过程。 图2 针孔成像模型 (1)世界坐标系(X w,Y w,Z w),就是现实坐标系,是实际物体在现实世界中的数学描述,是一个三维的坐标空间。 (2)摄像机坐标系(X c, Y c),以针孔相机模型的聚焦中心为原点,以摄像机光学轴线为Z c轴 (3)图像坐标系:分为图像像素坐标系和图像物理坐标系 为了便于数学描述将图像平面移动到针孔与世界坐标系之间。如下图所示。

图3 将相机平面移至针孔与目标物体之间后的模型 1.2 坐标系间转换 从世界坐标系到相机坐标系: P(X c ,Y c ,Z c )=R(α,β,γ)?P(X w ,Y w ,Z w )+T 每一个世界坐标的对象都可以通过旋转和平移转移到相机坐标系上。将目标点旋转θ角度,等价于将坐标系方向旋转θ。如下图所示,是二维坐标的旋转变换,对于三维坐标而言,旋转中绕某一个轴旋转,原理实际与二维坐标旋转相同。如果,世界坐标分别绕X ,Y 和Z 轴旋转α,β,γ,那么旋转矩阵分别为R (α),R (β),R (γ) 图4 坐标旋转原理 R (α)=[10 00cosα ?sinα0sinαcosα] (1-1) R (β)=[cosβ 0sinβ0 10?sinβ 0cosβ ] (1-2)

Matlab摄像机标定工具箱的使用说明

摄像机标定工具箱 1.1 Matlab 摄像机标定工具箱 工具箱下载:https://www.360docs.net/doc/fe2177897.html,/bouguetj/calib_doc/download/index.html 说明文档:https://www.360docs.net/doc/fe2177897.html,/bouguetj/calib_doc/ 安装:将下载的工具箱文件toolbox_calib.zip 解压缩,将目录toolbox_calib 拷贝到Matlab 的目录下。 采集图像:采集的图像统一命名后,拷贝到toolbox_calib 目录中。命名规则为基本名和编号,基本名在前,后面直接跟着数字编号。编号最多为3位十进制数字。 1.1.1 标定模型 内参数标定采用的模型如式(1-1)所示,Brown 畸变模型式(1-2)所示。 ???? ??????=????????????????????=??????????11//100011100c c in c c c c y s x y x M z y z x v k u k k v u (1-1) 式中:(u , v )是特征点的图像坐标,(x c , y c , z c )是特征点在摄像机坐标系的坐标,k x 、k y 是焦距归一化成像平面上的成像点坐标到图像坐标的放大系数,k s 是对应于图像坐标u 、v 的摄像机的x 、y 轴之间不垂直带来的耦合放大系数,(u 0, v 0)是光轴中心点的图像坐标即主点坐标,(x c 1, y c 1)是焦距归一化成像平面上的成像点坐标。k s =αc k x ,αc 是摄像机的实际y 轴与理想y 轴之间的夹角,单位为弧度。 ?????++++++=++++++=1 142123654221112124113654221112)2()1()2(2)1(c c c c c c c c c d c c c c c c c c c c d c y x k y r k r k r k r k y y x r k y x k r k r k r k x x (1-2) 式中:(x c 1d , y c 1d )是焦距归一化成像平面上的成像点畸变后的坐标,k c 1是2阶径向畸变系数,k c 2是4阶径向畸变系数,k c 5是6阶径向畸变系数,k c 3、k c 4是切向畸变系数,r 为成像点到摄像机坐标系原点的距离,r 2= x c 12 + y c 12。 1.1.2 操作界面 将Matlab 的当前目录设定为含有标定工具箱的目录,即toolbox_calib 目录。在Matlab 命令窗口运行calib_gui 指令,弹出图1所示选择窗口。 图1 内存使用方式窗口 图1窗口中,具有两个选项,分别是“Standard ”和“Memory efficient ”。如果点击选择“Standard ”,则将目录中的所有图像读入内存中,所需内存较大。如果点击选择“Memory efficient ”,则将目录中的图像按照需要每次一幅图像读入内存中,所需内存较小。在选择了

工业相机标定深度解析

工业相机标定深度解析 机器视觉的基本任务之一是从摄像机获取图像信息并计算三维空间中物体的几何信息,以由此重建和识别物体。而空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由摄像机成像的几何模型决定的,这些几何模型参数就是摄像机参数。在大多数条件下,这些参数必须通过实验与计算才能得到,这个过程被称为摄像机定标(或称为标定)。标定过程就是确定摄像机的几何和光学参数,以及摄像机相对于世界坐标系的方位。由于标定精度的大小,直接影响着计算机视觉(机器视觉)的精度。因此,只有做好了摄像机标定工作,后续工作才能正常展开,可以说,提高标定精度也是当前科研工作的重要方面。 摄像机通过成像透镜将三维场景投影到摄像机二维像平面上,这个投影可用成像变换(即摄像机成像模型)来描述。摄像机成像模型分为线形模型和非线性模型。针孔成像模型就属于线形摄像机模型,本文就讨论在这种模型下,某空间点与其图像投影点在各种坐标系下的变换关系。 总的来说,摄像机标定可以分为传统的摄像机标定方法和摄像机自标定方法两大类。传统摄像机标定的基本方法是在一定的摄像机模型下,通过对特定标定参照物进行图像处理,并利用一系列数学变换公式计算及优化,来求取摄像机模型内部参数和外部参数。然而,该方法在场景未知和摄像机任意运动的一般情况下,其标定很难实现。20世纪90年代初,Faugeras,Luong,Maybank等人首次提出了摄像机自标定方法。这种自标定法利用摄像机本身参数之间的约束关系来标定,而与场景和摄像机的运动无关,所以更为灵活。 一、传统标定方法 传统的摄像机标定方法按照标定参照物与算法思路可以分成若干类,如基于3D立体靶标的摄像机标定、基于2D平面靶标的摄像机标定、以及基于径向约束的摄像机标定等。维视图像公司的CCAS双目标定系统运用的就是传统标定方法。

Matlab摄像机标定工具箱的使用说明

摄像机标定工具箱 Matlab 摄像机标定工具箱 工具箱下载:说明文档:安装:将下载的工具箱文件解压缩,将目录toolbox_calib 拷贝到Matlab 的目录下。 采集图像:采集的图像统一命名后,拷贝到toolbox_calib 目录中。命名规则为基本名和编号,基本名在前,后面直接跟着数字编号。编号最多为3位十进制数字。 1.1.1 标定模型 内参数标定采用的模型如式(1-1)所示,Brown 畸变模型式(1-2)所示。 ???? ??????=????????????????????=??????????11//100011100c c in c c c c y s x y x M z y z x v k u k k v u (1-1) 式中:(u , v )是特征点的图像坐标,(x c , y c , z c )是特征点在摄像机坐标系的坐标,k x 、k y 是焦距归一化成像平面上的成像点坐标到图像坐标的放大系数,k s 是对应于图像坐标u 、v 的摄像机的x 、y 轴之间不垂直带来的耦合放大系数,(u 0, v 0)是光轴中心点的图像坐标即主点坐标,(x c 1, y c 1)是焦距归一化成像平面上的成像点坐标。k s = c k x ,c 是摄像机的实际y 轴与理想y 轴之间的夹角,单位为弧度。 ?????++++++=++++++=1142123654221112124113654221112)2()1()2(2)1(c c c c c c c c c d c c c c c c c c c c d c y x k y r k r k r k r k y y x r k y x k r k r k r k x x (1-2) 式中:(x c 1d , y c 1d )是焦距归一化成像平面上的成像点畸变后的坐标,k c 1是2阶径向畸变系数,k c 2是4阶径向畸变系数,k c 5是6阶径向畸变系数,k c 3、k c 4是切向畸变系数,r 为成像点到摄像机坐标系原点的距离,r 2= x c 12 + y c 12 。 1.1.2 操作界面 将Matlab 的当前目录设定为含有标定工具箱的目录,即toolbox_calib 目录。在Matlab

基于OpenCV的摄像机标定

万方数据

K,乙)变换为摄像机坐标系中的坐标值只(疋,K,乙)如下 ㈧…=㈠M㈤(2)将坐标值只(冠,K,zc)在针孔模型中进行规范化投影,得 只=[妻甜引∽(3)引入透镜的畸变,畸变后的规范化坐标值可以用雎如砌 阱Xdc,峨‰叫州黝;篙]㈤ 将Pd(xa,ya)转换为图像上像素坐标系上的坐标值B(“,访 f吲:时‰(4) 够可=f/.劬sx/咖(5)像素之间的有效距离(mm/pixel);dpy为计算机图像在垂直方向 换)方法计算出摄像机的内部参数和外部参数的初值Ⅲ。该步虑透镜畸变的影响,得到的参数值并不准确。不过作为下一 数据拟合目标函数““如式6所示。既要将图像上Ⅳ个角点的坐标值(U,K)(f=1,…朋拾取出来,还要利用上述畸变模型计算出这Ⅳ个标志点的坐标值(‰vJ)(f=1,…朋,然后利用式6进行数 转化为求解非线性最小二乘的问题,通过非线性优化算法“”多次迭代,最后得到使目标函数的值最小的参数值,降低了求解难度。迭代的初值由第①步的DLT方法算出,DLT方法不 2基于OpenCV的摄像机标定 基于OpenCV的摄像机标定采用平面棋盘格标定模板,一198一 为了提高角点提取的成功率,在标定方块的外围,还要求保留一个方块宽的白色空白区域,如图1所示。摄像机只需在不同的角度抓取几张平面标定模板的图片,就可以实现对摄像机的标定。显然,由于采用最小二乘法,抓得图越多,标定的结果就越精确。 图1平面棋盘格标定模板 虽然OpenCV中自动寻找角点函数提取角点的成功率很高,但是若碰到光线被遮挡等情况,使得标定模板上的标定块在图像上不清晰或提取的角点数目与设定的数目不相符的状况,就会导致角点提取失败,如图2所示:因此OpenCV并不保证能够提取所有图像上的角点。所以在设计标定算法时必须要考虑角点不能被提取的情况:一方面,如果角点提取成功的图过少,则标定出来的结果就不一定能满足精度的要求,需要重新采图;另一方面,由于摄像机外部参数的个数与标定图像的个数相关联,所以在最后计算标定结果时,应将提取角点失败的图像舍弃,再根据剩下图像的数目,动态地分配参数在内存中的储存空间,如果没有这么一个筛选的过程,盲目得在内存中分配参数的储存空间,则在提取角点失败的图像上,不能找到与角点在世界坐标系中的坐标值相对应的像素坐标系上的坐标值,在这种情况下强行计算的话,很容易出现程序报错,得不到标定结果的情况。因此,本文提出以下摄像机标定算法: (1)读取一组标定用图像数据; (2)用cvFindChessboardComers()筛选图像;将读入的一组图像数据分别代入cvFindChessboardComers0函数,如果返回值是1,则表示在该幅图像上提取的角点数目和设定的相同,提取角点成功;若为0,则表示角点提取失败,该幅图要抛弃; (3)如果可用的标定图的数目满足设定的最少标定用图的数目,继续步骤(4);否则,则应重新采图,返回步骤(1); (4)根据筛选剩下图像的数目用cvCreateMat0为摄像机的内外部参数、角点在世界坐标系的坐标值以及在图像坐标系中的坐标值分配内存存储空间; (5)将筛选剩下的图像代入cvFindChessboardComers0,得到角点在图像像素坐标系中坐标值;再将图像和得到的图像像素坐标系中坐标值代入FindComerSubPix()函数,进一步精 (a)角点提取失败(b)角点提取成功 图2角点提取图像  万方数据

北航机器视觉摄像机标定实验报告

摄像机标定实验 一、实验目的 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,根据提示进行操作。 此时程序会弹出图像请用户标出角点,通过选取,得到了下图。

matlab摄像机标定实验报告

摄像机标定实验报告 一、实验任务 使用工业摄像机拍摄9张标定图片,利用matlab中Camera Calibration Toolbox对摄像机进行标定。 二、实验原理 针孔摄像机模型 图1 摄像机针孔模型成像 摄像机采集图像原理如图1。物体上发出的光线投射到图像平面,仿佛所有的光线都经过针孔平面上的针孔点,垂直于针孔平面过针孔点的直线为光轴,从针孔到图像平面的距离就是焦距,在图中,摄像机焦距f,物体到摄像机的距离为Z,物体长S,物体在图像上的长度为s。物体光线、光轴与物体之间组成相似三角形,得到这样的关系?s/f=S/Z。 图2 针孔模型图像平面一针孔点为中心旋转180°把图像平面以针孔点为中心旋转180°。物体和图像在针孔平面的一边,仿佛所有光线

从物体走到图像平面成像的对应点,最后汇集到一点,这个点定义为投影中心[33]。图3-22中点O为投影中心。 在抽象的针孔模型中点P(X w,Y w,Z w)由通过投影中心O的光线投影到图像平面上,相应的图像点为p(x,y,f)。成像芯片的中心通常不在光轴上,定义图像平面与光轴交点为主点o c坐标(c x,c y)。f为透镜的物理焦距,定义f x为焦距长度与像素x轴方向长度的比,定义f y 为焦距长度与像素y轴方向长度的比。可以得到 x=f x(X w Z w )+c x(1) y=f y(Y w Z w )+c y(2) 将坐标为(X,Y,Z)的物理点映射到投影平面上坐标为(x,y)的过程叫投影变换。齐次坐标可以建立这种变换。齐次坐标把维数为n投影空间的点表示成(n+1)维向量。图像平面为二维投影空间,可用三维向量表示该平面上的点。将摄像机参数f x、f y、c x、c y重新排列为一个3×3的矩阵,如M,该矩阵就是摄像机内部参数矩阵。将物理世界中的点投射到摄像机上,用下式表示: p=MP,其中p=[x y w ],M=[ f x0c x 0f y c y 001 ],P=[ X w Y w Z w ](3) 标定过程 摄像机参数f x、f y、c x、c y、倾斜系数需要通过计算得到,这一过程为摄像机标定。标定过程就是确定摄像机的几何和光学参数、摄像机相对于世界坐标系的。 三、实验步骤与结果 本实验使用Matlab中Camera Calibration Toolbox对摄像机进行标定。 首先,于2014年3月1日下午在科研一楼503实验室拍摄一组9张平面棋盘图片,如图。

相关文档
最新文档