数码相机定位优秀论文.docx
《数码相机定位优秀论文.docx》由会员分享,可在线阅读,更多相关《数码相机定位优秀论文.docx(21页珍藏版)》请在冰豆网上搜索。
数码相机定位优秀论文
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的,如果引用别人其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。
如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
A
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名):
参赛队员(打印并签名):
1.
2.
3.
指导教师或指导教师组负责人(打印并签名):
日期:
年月日
赛区评阅编号(由赛区组委会评阅前进行编号):
2008高教社杯全国大学生数学建模竞赛
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用):
评
阅
人
评
分
备
注
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
数码相机定位
摘要
本文对双目定位的具体模型和方法进行了研究,分别给出了针孔成像模型、椭圆拟合模型等并对其进行研究。
这种方法可以较好的解决由于像坐标存在误差,而引起靶标坐标能否精确计算的问题。
我们用此模型,比较准确的还原出靶标上的点。
给定靶标上的点,我们可以对应的求出像面上的点,即得到了一个像面上的点与靶标上的点的一一对应的较准确的关系。
我们首先要确定出像面上椭圆的中心坐标,因此我们采用了几何方法,建立合理的坐标,根据椭圆最高点和最低点的连线、最左与最右点的连线必交与椭圆中心的原理,创造性的利用了Photoshop软件直接将所给的图形以像素为单位进行坐标化处理,再读出各个点的坐标,这样椭圆中心即可确定下来,靶标上圆的圆心在该相机像平面的像坐标也就确定了。
由于本文采用的是一个优化模型,求出的是其近似解,与实际的原坐标位置有一定的偏移,所以我们需检验其精度,采用两种方法检验:
1、通过靶标面和像平面中存在的几何关系建立一定的方程,从而去验证上述模型的精度;2、
如果直接用图像中图形边界做切线,精度将会变得非常低,会造成很大的误差,所以在本模型中,先要利用所给图像中图形的边界(在1中提取)拟合出椭圆的方程。
通过MATLAB、最小二乘法等计算出像平面椭圆圆心的坐标,结果与实际进行比较,进而检验模型的精度和稳定性。
对于由两部相机摄的像确定两部相机的相对位置及方向,我们通过建立方程并求解,从而得到两部相机之间的位置关系。
该方法可以较好的处理误差所引起的方程不相容问题。
关键词:
针孔成像模型几何模型椭圆拟合Photoshop
一、问题重述
数码相机定位在交通监管等方面有广泛的应用。
最常用的定位方法是双目定位,即用两部相机来定位。
对双目定位,精确地确定两部相机的相对位置(系统标定)是关键。
标定的一种做法是:
在一块平板上画若干个点,同时用这两部相机照相,分别得到这些点在他们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的相对位置。
然而,没有几何尺寸的“点”没有办法直接得到。
实际的做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。
而它们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。
设计靶标如下(图1),取1个边长为100mm的正方形,分别以四个顶点(对应为A、C、D、E)为圆心,12mm为半径作圆。
以AC边上距离A点30mm处的B为圆心,12m为半径作圆。
用一位置固定的数码相机摄得其像(图2)。
图1靶标示意图
图2靶标的像
本文将解决以下问题:
(1)建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标,这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面;
(2)对由图2、图3分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标,该相机的像距(即光学中心到像平面的距离)是1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为1024×768;
(3)设计一种方法检验你们的模型,并对方法的精度和稳定性进行讨论;
(4)建立用此靶标给出两部固定相机相对位置的数学模型和方法。
二、问题的分析
该问题实际上是求解不同坐标系中的点的对应关系的问题。
对于前两个问题,我们可以综合来考虑。
在解决第一个问题中,我们给出合理的算法步骤。
并在第二个问题中,通过实例来具体说明前面所给出的算法的操作流程。
首先需要解决的是空间圆成像的映射问题。
相机照相的过程,可以看成是一个映射:
将靶平面上的点映到像平面。
这个映射是一个射影,保持同素性(直线对应直线)和结合性(点和直线的结合),所以要建立靶标上圆心在该相机像平面的像坐标,只要找两条交于圆心的直线,求得它们像线的交点即为圆心的像。
又由于相机对平面图形照相保持上下、左右的位置关系。
于是只要找到圆的像上的最高、最底、最左、最右的点的坐标,它们连线的交点坐标,即为圆心在该相机像平面的像坐标。
对于第三个问题,我们通过建立另外两种模型并求解,通过比较便可得到所建模型的精度与可靠性。
对于第四个问题,我们根据小孔成像的原理,运用几何学中相似三角形的比例关系,三点共线以及四条边相互垂直等,建立方程,通过方程的求解,从而得到两部相机之间的关系。
三、模型的假设
模型的假设与说明
1、相机照相的过程,保持同素性(直线对应直线)和结合性(点和直线的结合)。
2、相机对平面图形照相保持上下、左右的位置关系。
3、假设假设成像过程严格遵守针孔成像模型无几何畸变。
4、坐标系原点取在该相机的光学中心,x-y平面平行于像平面。
四、模型的建立与求解
问题一、
根据前面的分析,我们建立如下算法步骤:
步骤1像图处理。
这里我们利用photoshop的坐标对图形进行坐标化处理,首先将图形导入到photoshop中,并限定好图形的像素,再利用photoshop中的标尺,对图形进行坐标化处理。
步骤2求像上的最点(最上、最下、最左和最右点)的坐标。
步骤3通过坐标转换,取中间点的坐标,即为圆心的像在像平面上的坐标。
步骤4设相机的焦距为M,则圆心的像的坐标为(x,y,M)。
问题二、
我们利用上面建立的模型,对由图1、图2分别给出的靶标及其像,具体计算靶标上圆的圆心在像平面上的像坐标。
具体步骤如下:
步骤1像图处理。
首先将图形导入到photoshop中,并限定其分辨率为1024x768,然后建立标尺,对其进行坐标化处理(图3)。
图3单位:
像素
步骤2运用标尺直接得出每一个圆的像上的最上、最下、最左和最右点的坐标(表1)。
表1单位:
像素
A
B
C
D
E
最上
147
155
174
469
465
最下
231
237
251
536
537
最左
280
382
604
548
246
最右
365
464
677
618
325
步骤3建立空间坐标系(图4):
以该相机的焦点为坐标原点o,xoy平面平行于像平面,x轴水平向右,y轴垂直向下,z轴垂直像平面,以一个像素为单位长度。
图4相机坐标系图
经过计算,得出圆心像点坐标如下(表2)。
表2圆心像点坐标单位:
像素
点
空间坐标系坐标
像平面坐标
A’
(-189.5,-195,1577)
(-189.5,-195)
B’
(-89,-188,1577)
(-89,-188)
C’
(128.5,-171.5,1577)
(128.5,-171.5)
D’
(71,118.5,1577)
(71,118.5)
E’
(-226.5,117,1577)
(-226.5,117)
步骤4相机的像距(即光学中心到像平面的距离)M为1577个像素单位,得到圆心像点在空间坐标系中的坐标如表2所示。
问题三、
空间的投射投影具有切点位置不变的性质,投射投影变换属于仿射变换,点在线上的位置关系不会改变。
我们采用两种模型检验上面的模型的精度和稳定性。
模型一:
(1)根据几何学中三点共线的比例关系以及靶标和像平面中A、B、C三点共线的特点,我们很容易的建立下列几个等式关系:
图5针孔成像的原理图形
图6
由
得到:
=
=0.4408
=
=0.4286
可以看出:
两个数据吻合的较好,前两问所采用的模型是比较准确合理的。
模型二:
椭圆方程的拟合
本模型要求作椭圆的曲线,由于所给图像分辨率不高,仅为1024*768像素,所以如果直接用图像中图形边界做切线,精度将会变得非常低,会造成很大的误差,所以在本模型中,先要利用所给图像中图形的边界(在1中提取)拟合出椭圆的方程。
平面中,二次曲线的一般方程是:
设用N个点拟合一个椭圆,
可以把椭圆拟合的问题转换为最小二乘问题,如下:
图10经过图形处理软件处理过的像平面的边界
由图可看出,图上既有误差较大的,又有误差较小的点,选取多个像图边缘上误差较小的点作为数据,利用MATLAB进行最小二乘法拟合出曲线方程。
程序见附录。
图10为实际过程中椭圆拟合的效果图,从图中可以看出,方程对于椭圆做了很好的拟合。
图7椭圆拟合效果图
图中五个椭圆方程拟合的结果如表3所示。
表3椭圆方程参数
圆
a
b
c
d
e
f
A
0.037363
0
1
-5.6590
-208.1902
7145.98
B
0.019962
0
1
-537.2256
0
3891.741
C
0.079431
0
1
-204.4724
-291.0644
2544.3
D
0.247840
0
1
-268.9240
-647.1483
3512.2
E
0.4521153
0
1
-309.6662
-590.5596
1915.0
已知椭圆方程再利用下面的公式变换出椭圆在像平面上的圆心坐标
(单位:
像素)
按上述模型求得的圆心坐标如表5所示,
表4像点坐标
圆
X
Y
X
X’
Y
Y’
A
-189.5
-194
-195
-214.5
B
-89
-73.7
-188
-163.2
C
128.5
97.5
-171.5
-137
D
71
90.4
118.5
95.7
E
-226.5
-246.9
117
146.9
由上表可知,用这两种模型验证可知原模型具有较高的准确度,各数据的误差都在可控的范围内,模型精度较高,稳定性良好。
问题四、
两部相机的位置示意图,如下:
由上面知,五个像坐标点的坐标,根据小孔成像的原理,即相似三角形知道
设光学中心与像平面的中心的连线为X轴,建立XYZ直角坐标系,五个标靶圆的圆心坐标设为
A(
),B(
C(
D(
E(
)
(1)根据几何学中相似三角形的比例关系,我们很容易的建立下列几个等式关系:
(2)根据边的长度,也可以列出下列几个方程:
(3)
三点共线,方向向量比例关系
(4)四条边互相垂直,可列出下列等式方程:
其中,像坐标点已经求出,
点
空间坐标系坐标
像平面坐标
A’
(-189.5,-195,1577)
(-189.5,-195)
B’
(-89,-188,1577)
(-89,-188)
C’
(128.5,-171.5,1577)
(128.5,-171.5)
D’
(71,118.5,1577)
(71,118.5)
E’
(-226.5,117,1577)
(-226.5,117)
所以可以算出A,B,C,D,E各点的坐标
还是以第一个相机的位置为坐标原点建立空间坐标系,设第二个相机的位置为O’’(X2,Y2,Z2),在第二个相机里,各个像坐标点为A''(XA”,YA”,ZA”),B''(XB”,YB”,ZB”),C''(XC”,YC”,ZC”),D''(XD”,YD”,ZD”),E’’(XE”,YE”,ZE”),则
如上图,根据相似三角形得:
即
又有三点共线(A,O’’,A’’;B,O’’,B’’;C,O’’,C’’;D,O’’,D’’;E,O’’,E’’)知
由上述等式,可以解出O点的坐标
而该坐标系是以第一个照相机的位置为原点建立的,所以可以得到两个相机的相对位置。
五、模型的评价与改进方向
本文我们利用小孔成像原理,通过简单的几何关系组成了优化模型,使原本复杂的物理模型更易于理解,推广。
文中为了分析结果的精确性,我们又建立了两个较为简单的模型,通过不同的方法,求解出的结果对我们已建立的模型进行检验,这样模型的优劣就有了一个好的评判标准。
文中三次求得的结果都符合的很好,说明此模型较好。
模型为了简化,没有考虑数码相机自身参数的影响,如镜头畸变,这样结果的准确性欠佳,在物体识别应用系统中和视觉精密测量中(物体特征的相对位置必须要精确计算),此模型的结果就不十分适用。
在此模型中,我们没有得到靶标上圆的中心与其像的中心的对应关系的确定式子,如果题目给出一些数码相机的自身参数,我们可以通过建立非线性模型来求解,这样可以使数码相机的定位精度更高,增大它的适用范围。
另外,在问题一和问题三所建立的模型中,由于需要读取点的坐标以及图形比较模糊等因素,会产生较大的读数误差。
一方面,可以通过多读取几组坐标值来减小误差,另一方面,可以在保持两相机相对位置不变的前提下,通过改变两相机的拍摄位置和角度,以获取不同的像平面和椭圆形状,从而减小误差。
六、参考文献
[1]游淑军、宁效琦数码相机定位怀化学院学报第29卷第11期2010年11月
[2]刘红宁,基于双目立体视觉拟人机器人定位关键技术的研究,河北工业大学硕士学位论文,p7-28,2006.12
[3]方超,双目CCO成像目标器识别算法研究,南京理工大学硕士学位论文,p4-28,2007.6
[4]Zhang,Z,AFlexibleNewTechniqueforCameraCalibration,PatternAnalysisandMachineIntelligence,Volume22,Issue11,p2-8,Nov.2000
[5]韩庆瑶万书亭,机器视觉中空间圆透视投影特性研究,华北电力大学学报,第25卷第1期,p79-83,1998.1
附录:
附录1.LINGO拟合椭圆方程的代码
MODEL:
SETS:
POINT/R1..R184/:
X,Y;
ENDSETS
DATA:
X=@OLE('a5','X');
Y=@OLE('a5','Y');
ENDDATA
MIN=@SUM(POINT:
(A*X*X+B*X*Y+C*Y*Y+D*X+E*Y+F)^2);
B^2-4*A*C=-1;
@FREE(A);
@FREE(B);
@FREE(C);
@FREE(D);
@FREE(E);
@FREE(F);
END
附录2:
利用最小二乘法进行椭圆方程拟合:
x=[425,443,461,400,455,383];
y=[156,161,182,231,217,206];
p=polyfit(x,y,2);
poly2str(p,'x');