数学建模A题论文_第1页
数学建模A题论文_第2页
数学建模A题论文_第3页
数学建模A题论文_第4页
数学建模A题论文_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、靶标圆心像坐标确定与数码相机定位摘要数码相机实现定位功能,需确定靶标圆心的像坐标。本文就如何确定靶标圆心像坐标展开了讨论,并给出了计算两部相机相对位置的模型。在问题一中,我们采用坐标变换的方法建立确定靶标圆心像坐标的模型。根据坐标系之间的关系,分别通过物坐标系的旋转、平移以及相机坐标系的缩放,引入绕物坐标系三坐标轴旋转的角度以及物坐标系平移的量度等参数确定出物坐标系到像坐标系变换的方程,由此即可得到求解靶标圆心像坐标的模型。求解方程里面的参数时,考虑到计算的方便,我们选择两圆内公切线的交点作为标定点。计算它们的物坐标与像坐标,代入上述方程即可求得参数的值。对于问题二,根据圆的有关性质,两条内公

2、切线的斜率(或斜率倒数)分别为连接对应两圆上任意两点连线斜率(或斜率倒数)的最大值和最小值。基于此,容易求得像坐标系里面对应的内公切线的方程,它们的交点即为标定点的像坐标,对应的物坐标容易得到。然后将这些标定点的坐标分别代入问题一建立的物坐标系到像坐标系变换的方程,求解得到相应的参数,的值。最后再将各园圆心的物坐标代入上述方程,求得各圆圆心像坐标结果为:A(-49.8577,50.6559),B(-24.5423,49.1824),C(32.5168,48.5784),D(18.3139,-30.6194),E(-60.3038,-30.3856)。在问题三中,我们选取物坐标系里面一条直线上的

3、9个点,对它们对应的像坐标进行一元线性回归分析,对模型的精度进行检验;最终得到这9个点拟合优度为0.9096非常接近1,说明模型精度较高。对于模型稳定性的分析,我们将各圆圆心的物坐标向左偏移1mm,考查对应的像坐标的变化;得到各圆心像坐标的偏移量的平均值与圆心物坐标的偏移量的相对误差是2.62%,说明模型稳定性较好。最后我们对问题一、二中模型进行了检验,在A,C,D,E四个圆上分别选取一些特定的点,利用它们的像坐标分别求出其对应的物坐标,找到这些物坐标与对应圆心物坐标之间的距离,比较这些距离同圆半径的实际值(即12mm)的差值,最终得到它们相对误差的平均值是1.66%,说明模型的可行性是较高的

4、。在问题四中,我们将两部相机对应的相机坐标系与同一个物坐标系进行转换,得到它们相机坐标系之间的转换关系即得到了它们的相对位置。关键词:坐标转换 内公切线交点 一元线性回归分析 1 问题的重述数码相机定位采用的是双目定位,即用两部相机来确定物体表面某些特征点的位置。当确定了两部相机精确的相对位置后,即确定了特征点的位置。所以精确地确定两部相机的相对位置是关键,这一过程称为系统标定。标定的一种做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。而它们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。为此,题目给出图1和图2两张图片: 图1 靶标原像 图

5、2 靶标像基于此求解下列问题:问题一,建立数学模型和算法以确定靶标上圆的圆心的像坐标;问题二,计算靶标上圆的圆心的像坐标;问题三,设计一种方法对模型的精度和稳定性进行讨论;问题四,建立两部固定相机相对位置的数学模型。2 问题的假设(1) 假设数码相机没有任何质量问题,即不考虑其给问题带来的误差;(2) 假设用于定位的两部相机规格相同。3 符号说明 光学中心到像平面的距离,即像距 物坐标系到相机坐标系旋转矩阵 物坐标系到相机坐标系平移矩阵,其中 物坐标系分别绕x,y,z轴的旋转角度 物体的物坐标 物体的相机坐标 物体的像坐标 标定的五个内功切线的交点() 对应于的像4 问题的分析和基本思路对于问

6、题一,为了将靶标上圆的圆心的像坐标精确的找到,考虑坐标变换。分别引入物坐标、相机坐标与像坐标的概念,基于各坐标系的关系,通过坐标系的旋转、平移以及缩放(此过程中待定的参数有物坐标系围绕各坐标轴旋转的角度、物坐标系平移的量度(),建立物坐标与像坐标转换的方程,则确定了靶标上圆的圆心的像坐标的模型就建立起来了。对于问题二,基于问题一的模型,各圆的圆心的物坐标代入问题一建立的物坐标与图像坐标转化的方程,为了求出它们的像坐标,必须算出各待定参数的具体数值。为此,必须找到物坐标与像坐标都明确的一些点,利用它们求得待定参数的数值。考虑任意两圆内公切线的交点坐标容易求得,所以选取它们来求解参数的数值。问题三

7、,对模型的精度进行检验时,我们考查在物坐标里面在一条直线上的若干个点,根据成像原理,它们对应的像应该也在一条直线上。故可求得这些点的像坐标,对它们进行一元线性回归分析,检验相应的精度。对于模型稳定性的分析,我们将各圆心的物坐标都向左平移1mm,考察它们对应的像坐标与未平移前圆心的像坐标之间的差值。对于问题四,我们可以分别求出两个相机对应的相机坐标系和同一个物坐标系之间的转化关系。然后通过物坐标系,把两个相机坐标系联系起来。求出两个相机坐标系之间的转化关系,由此就可以确定两个相机的相对位置了。5 问题一的解决基于问题的分析,要建立靶标上圆的圆心的像坐标的模型,就是建立物坐标与像坐标之间的转化关系

8、。为此,分下面几步建立模型。5.1 坐标系的定义(1)物坐标系物坐标系是就是描述物体实际位置的坐标系。在本题中为方便求解,设定物坐标系的原点为图1的中心,其z轴垂直于靶标平面,x轴、y轴同正方形相邻边分别平行,对应的坐标分别用来表示。(2)相机坐标系相机坐标系是以相机的光学中心为原点,以光轴为z轴的坐标系,坐标表示为。(3)像坐标系 图像坐标系是定义在像平面上的直角坐标系,原点位于给定的图2的中心,其xoy面与光轴垂直,x轴与轴同向,y轴与轴同向,其坐标具体表示为。5.2 模型建立5.2.1 物坐标系到相机坐标系的转换由于物坐标系和相机坐标系的位置和角度不同,所以考虑经过旋转和位移两个变化将两

9、个坐标系重合,这里引入旋转矩阵R和平移矩阵T,具体变换过程如下:如果将物坐标系绕其z轴旋转角时(方向是逆着对应轴向原点看去逆时针旋转,下同),旋转矩阵为;接着, 坐标系绕着x轴旋转,旋转矩阵为;最后,绕着y轴旋转角, 旋转矩阵为。平移物坐标系原点到相机坐标系原点(即光心),可用变换矩阵T完成,设:T=经过上述两个过程,就实现了物坐标系和相机坐标系的重合,得到物坐标里的点在相机坐标系中的坐标,它们之间的转换式为:,也可以写成=(1)其中,R为一个3行3列的旋转矩阵,是对三个坐标轴进行旋转变换后的综合旋转矩阵。5.2.2 旋转矩阵R的确定旋转矩阵R的确定,必须分别求得对应的。下面以绕z轴旋转角度,

10、求解为例,探究求解旋转矩阵的办法,得到图3:xz()y()投影M(x,y,0)图3 物坐标系绕z轴旋转角度立体图因为物坐标系围绕着z轴旋转,所以点其z坐标是不变的,只需确定横、纵坐标的变化。为了表示的更直观一些,取xoy坐标面,得到图4:xyoyxM图4 物坐标系绕z轴旋转角度平面图由图4,易得到下列公式:因为,所以上式可化为: 又因为,故可得到,其中A=这样=,得到旋转矩阵=;同理可得绕x轴旋转角得到旋转矩阵;绕y轴旋转角得到旋转矩阵为.综上,绕这三个坐标轴进行旋转变换后的综合旋转矩阵R=,所以最终得到旋转矩阵:R= 相机坐标系到像坐标系的转换根据照相机的构造原理可知,从相机坐标系到图像坐标

11、系是一个缩放的过程,缩放比例是,这个关系用矩阵表示为:(2) 物坐标系到像坐标系的转换综合(1)(2)式可知从物坐标系经过相机坐标系转化到图像坐标系的关系,用矩阵可以表示为:其中的虽然是未知量,但可以由(2)式得到其用,来表示,表示公式为:,其中表示旋转矩阵的第i行j列元素,由此得到从物坐标系到图像坐标系的表达式为:(3)其中为的表达式:所以对于(3)式只要求出参数和,这个转化关系就明确,由此求解靶标上圆的圆心的像坐标的模型也就建立出来了。6 问题二的解决6.1 标定点选择结合方程(3), 找到5个内公切线的交点的物坐标及对应的像坐标即可求得方程(3)的各参数。为了便于说明,选取图5所示5个内

12、公切线的交点(标定点),图中自左上角顺时针旋转分别是圆A,C,D,E的像,各标定点分别用字母来表示:图5 标定点的选取结合圆的有关性质,对于如图6中所示的两圆中,在两圆上分别选取两点连线的斜率必将介于两条内公切线的斜率之间(两内公切线的斜率分别为两圆上任意两点连线斜率的最大值和最小值),即有关系式(为斜率):图6 圆与内公切线(平放)而对于如图7所示的两圆中,在两圆上分别选取两点连线的斜率的倒数必将介于两条内公切线的斜率的倒数之间,即有关系式:图7 圆与内公切线(竖放)在图1经过相机照相得到图2过程中,虽然圆的像不是规则的圆形,根据成像原理,像的变化具有整体性,可得上面的原理在像中依旧成立。这

13、样就可先求得相应两圆的像任意两点的斜率(或斜率倒数),在其中找到最大者和最小者,即分别为两条内公切线的斜率(或斜率倒数)。由此求得对应的内公切线的方程,它们的交点即为所求标定点。6.2 标定点像坐标的计算利用matalb编程1将图2中各圆像轮廓所有点的像坐标找出来,然后再利用matlab2计算给定两圆边缘上两点连线的最大斜率与最小斜率,然后找出对应的切点,利用点斜式算得两条内公切线方程,进而求得对应的标定点的像坐标。下面以计算点为例具体阐述计算像坐标的方法。为方便说明,在图5提取图8:AC图8 A、C的像内公切线与焦点基于上述分析,得到A,C像上任意两点斜率的最大值与最小值分别为,所以直线,的

14、斜率分别为:,同时,得到点的像坐标分别为:,利用求解直线方程的点斜式: ,整理得到:(4)由方程(4)得到的像坐标为.用同样的办法可以求得的像坐标(注意,像坐标求解时,寻找内公切线的斜率时,是所有任意两个点连线斜率倒数的最大值与最小值),比照内功切线交点的物坐标,最终得到表1:表1 标定点物坐标与像坐标标定点原像物坐标()标定点像像坐标()(0,50,0)(-6.9767,48.1604)(0,0,0)(-12.6984,7.6720)(0,-50,0)(-20.6349,-30.6878)(-50,0,0)(-54.7619,8.9941)(50,0,0)(25.6614,5.8201)6.

15、3求解方程(3)待定参数将表1的相关数据代入方程(3),利用lingo求解得到参数的计算结果见表2:表2 参数计算结果参数求解结果-12.17855.4722497.6689再将计算的各参数的结果代入方程(3),并且注意到,最终得到物坐标系到像坐标系的转换表达式为:(5)6.4 靶标圆心像坐标的确定容易得到各圆心的物坐标,见表3:表3 各圆心物坐标圆心物坐标A(-50,50)B(-20,50)C(50,50)D(50,-50)E(-50,-50)将各圆心的物坐标分别代入方程(5),得到它们的像坐标见表4,问题二得以解决:表4 各圆心像坐标圆心像坐标A(-49.8577,50.6559)B(-2

16、4.5423,49.1824)C(32.5168,48.5784)D(18.3139,-30.6194)E(-60.3038,-30.3856)7 问题三的解决7.1 问题一、二模型的精度分析对于问题三,根据成像原理,原像中的直线在它对应的像中,仍然保持一条直线。所以我们选取物坐标系中在一条直线上的几个点,由问题一、二求得的物坐标与图像坐标之间的转换,算出它们在图像坐标系里面对应的坐标,然后利用一元线性回归分析的方法判断它们是否成直线分布,根据结果对模型进行检验。在物坐标系里面,可以确定下面9个点(图9)在一条直线上:ABCA左A右B左B右C左C右图9 进行检验的9个点容易求得它们的物坐标,见

17、表5:表5 进行检验的9个点物坐标点物横坐标物纵坐标A左-6250A-5050A右-3850B左-3250B-2050B右-850C左3850C5050C右6250将它们的坐标分别代入方程(5),求得它们对应的像坐标,计算结果见表6:表6 进行检验的9个点图像坐标对应的像像横坐标x像纵坐标yA左-61.471650.7148A-49.857750.6559A右-39.072350.1347B左-31.831750.0626B-24.542349.1824B右-9.472349.0723C左20.192748.9012C32.516848.5784C右43.734548.1258利用matlab

18、对表6涉及的点进行一元线性回归分析,得到它们在显著性水平为0.05下的回归方程为:(6)并且p值为0.0001远小于0.05,拟合优度为0.9096,说明直线方程(6)能很好的反应这9个点图像坐标的关系,认为它们的分布符合一条直线是合理的,模型精度较高。7.2 问题一、二模型的稳定性分析对模型的稳定性进行检验,我们具体的做法是:令靶标上的五个圆圆心分别向左偏移1mm,来计算各圆心的像的像坐标。比较偏移前后圆心像坐标的变化,对模型的稳定性进行分析。将各圆心分别向左偏移1mm得到各圆心的坐标如表7:表7 圆心向左偏移1mm后的物坐标圆心(偏移)物横坐标物纵坐标A-5150B-2150C4950D4

19、9-50E-51-50由问题二的计算结果可知,移动前的各圆心的像坐标如表8:表8 圆心偏移前像坐标圆心像横坐标像纵坐标A-49.857750.6559B-24.542349.1824C32.516848.5784D18.3139-30.6194E-60.3038-30.3856将表7的数据代入方程(5),得到各圆心分别向左平移1mm后得到各圆圆心的像坐标,见表9表9 圆心偏移后的像坐标圆心(偏移)像横坐标像纵坐标A-50.265550.4574B-25.232248.836C31.650747.9526D17.8788-29.9348E-61.975-29.8224 进一步计算得到移动前后圆心

20、像的总偏移量是:=4.8688mm其中分别代表A,B,C,D,E,进一步求得平均偏移量=0.9738mm平均偏移量非常接近1mm;偏移量的相对误差是,这样模型的稳定性就得到了检验。7.3 问题一、二模型的检验进行模型检验时,可在各圆像的轮廓上选取若干个点(这儿每个圆选取4个点)的像坐标,利用方程(5)推出它们对应的物坐标。在模型没有误差的情况下,这些点的物坐标应该在对应圆的圆周上,它们与对应圆的圆心的距离应该为12mm。为此,我们计算这些点的物坐标与对应圆心的距离同12的相对误差,根据相对误差的大小,对模型进行检验。为此检验过程中,在圆(选A、C、D、E)像的轮廓上选取点的像坐标、求得对应的物

21、坐标、物坐标与相应圆心的距离、距离的均值见表10:表10 模型检验表格(单位:mm)点像横坐标像纵坐标物横坐标物纵坐标离心距离距离均值园A的像轮廓上选取的4个点-46.682458.3216-49.073461.332511.370312.5003-58.597749.8499-62.117349.651812.1223-39.561540.9986-38.708641.001914.4382-49.498339.3504-50.239537.931912.0705园C的像轮廓上选取的4个点34.635950.887250.637261.689511.706912.016424.130142.

22、793438.249850.321311.754642.912440.992861.835950.229511.838133.636631.453251.030137.275412.7662园D的像轮廓上选取的4个点28.8282-29.824450.2163-37.778412.223511.810318.8822-39.566338.9842-50.122311.016537.7018-41.184161.9538-50.606111.969227.5855-50.205950.3844-62.025912.032园E的像轮廓上选取的4个点-55.6822-24.4521-50.2736-

23、38.193911.809311.9074-67.0758-33.2058-62.3171-49.168512.3451-46.0506-34.6771-38.0687-49.299211.9519-57.4385-44.5837-50.0616-61.523311.5235由此可以计算每个距离均值与12mm的相对误差:4.17% 0.14%1.58% 0.77%平均相对误差rel=1.66%,由此可见,计算结果是比较准确的,模型具有很高的可信度。8 问题四的解决在问题一的基础上,我们考虑有两台照相机给同一靶标照相的情形。对于第一台照相机,其相机坐标为,我们有:其中分别是从物坐标系到第一个相机

24、坐标系的旋转矩阵和位移矩阵。同样地,对于第二台照相机,其相机坐标为我们有:其中是从物坐标系到第二个相机坐标系的旋转矩阵和位移矩阵。将上述两个等式变形得到:= 和=因为两个照相机是对同一物体(特征点)进行拍照,这样我们有:=将其变形就可得到:(6)等式(6)即反映了两个相机的相对位置,并且可以得到从第一个相机坐标系到第二个相机坐标系的旋转矩阵为=,位移矩阵为=.9 模型的优缺点及改进方向(1)模型的优点对于问题一,采用坐标变换的思想建立求解靶标圆心像坐标的模型,方法上通俗易懂,易于操作。问题二中,把两圆的内公切线的交点作为标定点,基于对斜率的分析,容易求得它们的像坐标,与找其它标定点,方法简单很

25、多。(2)模型的缺点对于问题一建立的物坐标系到像坐标系的转换方程,里面的参数比较多,利用lingo求解时花费的时间比较长。问题三中,对模型的精度以及稳定性进行讨论时使用的数据较少,误差较大。(3)模型的改进对问题三进行模型精度与稳定性讨论时,多选取几个数据,增加可信度。在模型检验中我们分别在四个圆的像中上选取了四个点,结果不具有一般性。因此可以取出圆的像中轮廓的所有坐标点(这些坐标都是像坐标),将这些坐标代入(5)式中求得它们所对应的物坐标,然后将这些物坐标与给定图1的圆的坐标进行比对,重合的点数越多则说明我们所建立的模型越好。参考文献1 张德丰等,MATLAB数字图像处理,北京:机械工业出版

26、社,20092 国外计算机科学教材系列,数值方法(MATLAB版).第四版,北京:电子工业出版社,2010附录1.matlab程序代码1%输出提取的边缘点的的坐标(像素坐标)bound=;h=0;a=B;while h=0 m=; for i=1:length(a(:,1) for j=1:length(a(1,:) if a(i,j)=1 break; end end if a(i,j)=1 break; end end if i=768&j=1024 h=1; break; else hh=0; while hh=0 a(i,j)=0; m=m;i,j; if a(i+1,j)=1

27、 i=i+1; elseif a(i-1,j)=1 i=i-1; elseif a(i,j+1)=1 j=j+1; elseif a(i,j-1)=1 j=j-1; elseif a(i-1,j-1)=1 i=i-1;j=j-1; elseif a(i-1,j+1)=1 i=i-1;j=j+1; elseif a(i+1,j-1)=1 i=i+1;j=j-1; elseif a(i+1,j+1)=1 i=i+1;j=j+1; else hh=1; end end end for i=1:length(a(:,1) for j=1:length(a(1,:) if a(i,j)=1 if a(i

28、-1,j)=0&a(i+1,j)+0&a(i,j-1)=0&a(i,j+1)=0&a(i-1,j+1)=0&a(i-1,j-1)=0&a(i+1,j+1)=0&a(i+1,j-1)=0 a(i,j)=0; end end end end bound=bound,m;endbound(2)=;2.matlab程序代码2%求内公切线的斜率function Kmax,Kmin=zx(Ax,Bx,Ay,By)xl=zeros(235*212,1);l=1;for i=1:235 for j=1:212 if (Bx(j)-Ax(i)0 xl(l)

29、=(By(j)-Ay(i)/(Bx(j)-Ax(i); l=l+1; end endendKmax,cc=max(xl);m=ccKmin,dd=min(xl);n=dd3.matlab程序代码3%像素坐标与像坐标转换A1=(A-512)./3.78;%A为图像横坐标像素矩阵B1=(384-B)./3.78;%B为图像纵坐标像素矩阵A1B14.matlab程序代码4%当圆心坐标偏移1mm时圆心像的坐标偏移量算法(稳定性分析)Ox=-49.8577 -24.5423 32.5168 18.3139 -60.3038;Oy=50.6559 49.1824 48.5784 -30.6194 -30.3856;Ox1=-50.2655 -25.2322 31.6507 17.8788 -61.975;Oy1=50.4574 48.836 47.9526 -29.9348 -29.8224;dd=(Ox-Ox1).2+(Oy-Oy1).2).(1/2)m=sum(dd)n=m/55.matlab程序代码5(模型检验)Ax=-49.0734 -62.1173 -38.7086 -50.2395;%由给定像A边缘上四个点坐标解出的对应的物A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论