数码相机定位论文_第1页
数码相机定位论文_第2页
数码相机定位论文_第3页
数码相机定位论文_第4页
数码相机定位论文_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、数码相机定位摘要:本文针对如何确定圆的像的中点以及两部固定相机的相对的位置进行了研究分析,并且给出了相应的数学模型和算法。在问题求解之前,首先,运用Matlab将题目中所给的图像识别并用矩阵表示出来,为后面求解问题做好准备。针对问题一:首先,使用Matlab图像处理工具箱将圆的像的边缘曲线上的点抽取出来。然后,再以圆的像上的一个顶点为原点建立合适的坐标系。为了在穷举法中减少计算次数,我们将会把每个圆的像缩小到一个矩形的像区域,然后运用穷举法,列出像内过任意一点的内切圆,求出每个圆的半径,从中找出半径最大的那个圆,将它的圆心作为像的中心。针对问题二:根据问题一的模型,确定出圆心的位置,建立相机坐

2、标系。利用Matlab软件分别求得五个圆的圆心在像平面的像坐标为A (-50.97,-49.48,417.20),B(-49.53,-22.76,417.20),C(-45.19,34.31,417.20),D( 29.28,59.60,417.20),E(31.45,19.14,417.20) 。针对问题三:要求设计一种方法检验模型,由定理知在同一条直线上的点,它们的所成的像也在同一直线上。靶标上的三个圆心A、B、C在同一条直线上,因此,靶标的像上这三点也应该在一条直线上。但是在确定圆心时,可能出现一些偏差,使得我们确定出来的圆心与圆的圆心的像不完全重合,从而导致A、B、C三点可能不在同一条

3、直线上。通过求得B点到直线AC的距离,来确定三点之间的关系。当时,三点共线,模型的精度最高;当时,的值越大,模型的精度就越差。问题三的求解:根据问题二中求出的坐标,计算出像中B点到直线AC的距离即模型的精度毫米,方法的针对问题四:要建立用图中靶标给出两部固定相机相对位置的数学模型和方法。可以用同一坐标系中把两个光心、的坐标分别表示出来,这样就可以求两部相机的相对位置,两相机的相对位置可以用向量坐标来表示,它们的距离为 。关键字:抽取边缘曲线 相机坐标系 穷举法 最小内切圆1.问题重述:数码相机定位在交通监管(电子警察)等方面有广泛的应用。所谓数码相机定位是指用数码相机摄制物体的相片确定物体表面

4、某些特征点的位置。最常用的定位方法是双目定位,即用两部相机来定位。对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。只要知道两部相机精确的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。标定的一种做法是:在一块平板上画若干个点, 同时用这两部相机照相,分别得到这些点在它们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的相对位置。然而,无论在物平面或像平面上我们都无法直接得到没有几何尺寸的“点”。实际的做法是在物平面

5、上画若干个圆(称为靶标),它们的圆心就是几何的点了。而它们的像一般会变形,如图1所示,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。 图 1 靶标上圆的像有人设计靶标如下,取1个边长为100mm的正方形,分别以四个顶点(对应为A、C、D、E)为圆心,12mm为半径作圆。以AC边上距离A点30mm处的B为圆心,12mm为半径作圆,如图2所示。图 2 靶标示意图用一位置固定的数码相机摄得其像,如图3所示。图3 靶标的像请你们:(1) 建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标, 这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面;(2) 对由图2、图3

6、分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标, 该相机的像距(即光学中心到像平面的距离)是1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为1024×768;(3) 设计一种方法检验你们的模型,并对方法的精度和稳定性进行讨论;(4) 建立用此靶标给出两部固定相机相对位置的数学模型和方法。2.问题分析图像处理:要解决数码相机定位问题,首先,要在Matlab中编程将图3的图像识别出来,靶标的像在Matlab中储存为行为375、列为281的矩阵, 行列的矩阵中的每一个元素的数值即为图像点的亮度,数值为1的元素表示颜色为黑色,每个区域上所有的黑颜色的点元素的集合就

7、构成了一个靶标的像;数值为0的地方代表颜色较浅的灰色。问题一分析:要确定靶标上圆的圆心在该相机像平面的像坐标,就需要建立相应的数学模型,找出与圆心的像相关的点。经过分析,我们可以利用靶标上像的边缘曲线上的点来求出圆心的像坐标。首先,在Matlab中读出的图像。再用Matlab工具箱分别提取出靶标的像上边缘曲线的点,由于靶标像上的点的数值是1,提取出来的边缘曲线上的点的数值1保持不变,将边缘内部的所有的像点去掉,即将它们的数值修改为0 ,这样就可以用01矩阵将图像的信息表示出来。然后,以Matlab中图像的点数作为单位,建立图像坐标系,并且以图像的左上角的第一个点定为坐标的原点。在坐标系中尽可能

8、的缩小靶标的像的范围,将它缩小到一个矩形的区域,这样我们就可以得到5个包含靶标像的小矩形区域。运用穷举法,在每个矩形区域内沿着边缘曲线作出每一个点的内切圆,求出每个圆的半径,从中选择出半径最长的那个内切圆,将它的圆心作为像的中心。但是由于这种算法,不好确定圆心的坐标。但是我们可以根据这个想法,从另一角度来寻找像的中心点。先在像内任意取出一点,求出这点到边缘曲线上所有点的距离,从中选出一个最短的距离,我们可以以这点为圆心,以选出一个最短的距离为半径作圆,得到一个像的内切圆。取遍圆的像内所有的点,重复上面的操作,这样就可以得到所有的内切圆,从中找出半径最大的内切圆,取它的圆心作为像的中心。这样,就

9、可以找出圆的像的中心。问题二分析:问题二的求解可以使用问题一的模型,要计算靶标上圆的圆心在像平面上的像坐标,可以根据问题一中建立的相机平面坐标系,在MATLAB中抽取出圆的图像上边缘曲线的点,根据这些点,确定出圆的像的中心点。针对问题三:检验模型的精度:由于靶标上圆A、B、C的圆心在同一条直线上,在数码相机拍摄的像上,这三个点的像也应该在同一条直线上,但由于确定出来的像的中心点与像的真正的中心点之间可能会有些偏差。因此,圆心A、B、C可能不在同一直线上。我们可以根据这三点之间的关系,运用点与直线的关系,确定B点与直线AC的关系。若B点在直线AC上,则表示模型的精度很高;若B点不在直线AC上,求

10、出B点与直线AC的距离,用的大小来衡量点与直线的偏离程度,越小,精度越高。模型的稳定性:我们定义一个相对误差计算公式,当距离为不同的值时,求出对应的值。观察值的变化情况,变化越大模型的稳定性就越差,变化越小模型的稳定性就越好。针对问题四:根据靶标求两部固定相机相对位置,这是一个空间物体的定位问题。要求两个相机(我们假定相机的光学中心点的坐标代表相机坐标)的相对位置,因此应该在同一坐标系中把它们的坐标分别表示出来,然后就可以确定它们的相对位置了。我们考虑如下的思路求解:先只考虑以一部相机(即它的光学中心点),像平面,矩形标靶(即以原题图2中A,C,D,E为顶点的矩形)为研究系统。以光学中心点为原

11、点建立的坐标系(以后简称相机坐标系)中根据已知的相关数据和几何关系可以求出靶标上各点的坐标,再在靶标上建立一个以靶标中心点为原点的坐标系(以后简称靶标坐标系),然后我们在靶标坐标系中求出该相机的坐标,然后按照类似的方法可以求出另一个相机在靶标坐标系中的坐标。这样就把两个相机的位置(即坐标)在统一的坐标系(靶标坐标系)中表示出来了,那么它们的相对位置就可以根据它们的坐标求得了。根据第一、二小问,可以在坐标系中求出各个像的中心点的坐标,从而求出实物靶标上的各圆的圆心坐标,以及靶标所在的平面的方程。再以靶标为参考,建立三维坐标系,分别求出两部相机的光心的坐标,求出两部固定相机的相对位置。3.基本假设

12、(1)假设在Matlab中读出的图像的分辨率与相机拍的像分辨率对应成比例;(2)假设圆的像内的最大的内切圆的圆心可以作为像的中心点;4.符号说明(1),:分别表示以像素、长度为单位的图像坐标系;(2):表示建立的相机的坐标轴;(3):表示B点到直线AC的距离;(4):问题三中求解出的模型的稳定性;(5)、:分别表示问题四中以靶标为参考坐标系中两个相机光心坐标;(6)E、F、G:靶标参考平面的方程的系数;5.模型建立与求解5.1模型一的准备图像坐标系【1】的确定:由于每幅数字图像在计算机内的存储为数组,行列的图像中的每一个元素的数值即为图像点的亮度。如下图一所示,在图像上定义直角坐标系,每一像素

13、的坐标分别是该像素在数组中的列数与行数。所以,是以像素为单位的图像坐标系。由于只表示像素位于数组中的列数与行数,并没有用物理单位表示出该像素中的位置,因而,需要在建立以长度(毫米)单位表示的图像坐标系。该坐标系以图像内某一点为原点,轴和轴分别与轴平行。在、坐标系中,原点定义在摄像机光轴与图像平面的交点,该点一般位于图像中心处,但由于摄像机制作的原因,也会有些偏离,若在坐标系中的坐标为,每一个像素在轴与轴方向上的物理尺寸为,,则图像中任意一个像素在两个坐标系下的坐标有如下关系: 图一:分别以像素、物理长度为单位的图形坐标系为了方便使用,可以用齐次坐标与矩阵形式将上式表示为:逆关系可写成:相机坐标

14、系:过图像的中心点作像平面的垂线,在垂线上取一点作为相机的光心,使点到像平面的距离为,即相机的像距,以相机的光轴为轴,轴和轴分别平行与图像的轴和轴,由点分别与轴形成的直角坐标系称为相机坐标系,如下图所示:5.2模型一的建立:(问题一的求解)要确定靶标上圆的圆心在该相机像平面的像坐标,但由于我们不知道靶标上每个圆所成的像是什么图形,我们认为靶标上圆的圆心在该相机像平面的像为对应圆所成像的最大内切圆的圆心,因此,需要求出最大的内切圆的半径。首先,我们知道题目提供的bmp图由个取样点组成,每个取样点是组成数字图像的基本单位,称为像素。我们利用MATLAB工具箱对图像进行处理,分别抽取出圆所成的像的边

15、缘图形,并且得到一个矩阵(0为黑色,1为白色),图像如下:;然后, 在坐标系中缩小靶标的像的范围,将它缩小到一个矩形的区域,这样我们就可以得到5个包含靶标像的小矩形区域,搜索出每一个圆所成像的像素坐标的大致范围,如下图:最后,运用穷举法,在每个矩形区域内沿着边缘曲线作出每一个点的内切圆,求出每个圆的半径,从中选择出半径最长的那个内切圆,将它的圆心作为像的中心。但是由于这种算法,不好确定圆心的坐标。所以,我们又根据这个想法从另一角度来寻找像的中心点。先在像内任意取出一点,求出这点到边缘曲线上所有点的距离,从中选出一个最短的距离,我们可以以这点为圆心,以选出一个最短的距离为半径作圆,得到一个像的内

16、切圆。取遍圆的像内所有的点,重复上面的操作,这样就可以得到所有的内切圆,从中找出半径最大的内切圆,取它的圆心作为像的中心。具体做法是:在选定的区域搜索圆心所成像的位置,先通过观察确定圆心的大致范围,在用如下算法搜索。得到b即为圆心所成像的像素坐标。NY初始化s=0,ss=0,b=(0,0)输入搜索起始点求出到边缘曲线最短距离ss是否搜索到最后一个点比较s与ss大小,s=max(s,ss)并记录较大值得坐标b输出s和b下一个点求出到边缘曲线最短距离ss确定圆心之后,再利用可以将以像素为单位的图像坐标系转化成以物理长度为单位的图像坐标系。最终就可以求得靶标上圆的圆心在该相机像平面的像坐标。5.3模

17、型一的求解:(针对问题二)运用模型一求解出问题二,首先在图像坐标系中将像的坐标求出。分辨率为1024×768的图像在Matlab中的读出的像点分辨率为375×281,所以,在Matlab中求出的坐标要进行相应的转换得到以像素为单位的坐标。在相机坐标系中,轴、轴、轴的坐标单位都用长度单位来表示。其中轴、轴的坐标(单位为像素)用图像坐标直接除以单位毫米内的像素个数就得到它们在相机坐标系中相应的坐标,轴的坐标由相机的像距来确定,即所以 毫米图像像坐标(单位为像素)相机坐标系(单位为毫米)uvxyzA191.3167324.9493-50.9744-49.4843417.1958B

18、196.7829425.984-49.5283-22.7556417.1958C213.1815641.7067-45.190134.3139417.1958D494.6904286.7229.2832-59.5979417.1958E502.8897584.362731.452319.1436417.19585.4针对问题三的模型与求解模型二的建立:定理【1】 射影变换保持直线,直线与点的接合性以及直线上点列的交比不变仿射变换防具有以上不变性外、还保持直线与直线的平行性、直线上点列的简比不变欧氏变换防具有仿射变换的不变性外,还保持两条相交直线的夹角不变,任意两点的距离不变由定理知在同一条直线

19、上的A、B、C三个圆的圆心所成像也在一条直线上,但是由于模型一确定圆心的坐标有一定的误差,所以圆心所成像可能不在一条直线上,出现下图所示的结果:因此,我们需要利用问题二中所求得的结果求出直线AC的方程,然后,求出B点到直线的距离,将这个距离作为衡量模型精度的标准。然后用公式求出模型的稳定性,我们定义模型二的求解(针对问题三):根据问题二在相机坐标系中求出的结果:A (-50.9744,-49.4843),B(-49.5283,-22.7556),C(-45.1901,34.3139),设直线AC在xoy平面上的方程为:,代入点坐标求出,得到直线AC的方程为,则求出B(-49.5283,-22.

20、7556)到直线AC的距离为所以,该模型的精度为0.39786mm。 ,所以得到模型的稳定性5.5问题四模型的建立的模型与求解【2】:为了叙述和阅读习惯的方便,我们把部分顶点改名,即顶点AEDC对应的分别用 顶点ABCD代替,此更该只对本小问有效。我们设矩形对角线的交点为M,取光学中心为相机三维坐标系的原点O(0,0,0),像平面中心为O(0,0,-m),再设实物矩形的长,宽,高分别为a,b,c=(本题中a=b),四个顶点坐标分别为,矩形中心,其中 设实物矩形的四个顶点和矩形中心在像平面上成像分别为和这里为线段与的交点设实物矩形ABCD 所在平面的方程为z = Ex + Fy + G, (1)

21、或Ex + Fy - z + G = 0 (2),5.5.1讨论及其投影分别将直线AA 、直线CC和直线MM 的方程代入方程 2 , 并考虑到矩形中心平分对角线可得 (3)已知矩形对角线长c=,故解得 为简捷起见,仍记,至此,实物矩形顶点和的坐标可以重新表示为和5.5.2讨论及其投影 类似地,不难求得实物矩形另一组顶点和的坐标和,其中,5.5.3点A,B,M坐标的数值为均衡起见,对上述相关数据按如下各式计算,点A,B,M的坐标分别为,和 . 代入方程(2),得解得 其中5.5.4建立靶标坐标系(即在实物矩形上建立的坐标系)我们建立如图所示的坐标系:zMBACDxy其中M为坐标原点,x轴经过AB

22、和CD的中点,y轴经过BC和DA的中点,z轴垂直于x-y轴构成的平面。5.5.5求相机在靶标坐标系的坐标 设相机在靶标坐标系的坐标为O(),下面根据求解难易程度分别求出5.5.6.1求相机在靶标坐标系的z轴坐标 求的大小其实就是求相机到平面ABCD距离的大小。我们在相机坐标系中求的大小。在相机坐标系中平面ABCD我们已经在前面求得为Ex + Fy - z + G = 0,O(0,0,0)(E,F,G已经在上文中求出,为了简捷起见,我们在此把它们当做已知量) 根据空间点到直线的距离公式可以求得 即 = 5.5.6.2求相机在靶标坐标系的x轴,y轴的坐标为了求我们假设O点在平面ABCD的投影为zM

23、BACDxyOO为了求解方便我们仍然先在相机坐标系中求解的坐标()在平面ABCD上,则Ex + Fy z + G = 0,又由于垂直于平面ABCD,(E,F,-1)为ABCD的法向量,则有 ,根据以上等式可求得 (为简捷起见,以后x,y,z代表已知量)点(由于前面已经求出其结果,在此的坐标表示已知量)在直线AB上,则AB的方向向量,根据空间点到直线的距离公式可以求得点到直线AB的距离即(此后表示已知量)同理可以求出到直线BC的距离(此后表示已知量)到直线CD的距离(此后表示已知量)到直线DA的距离(此后表示已知量)已知边长AB=CD=a,BC=DA=b,(题目中a=b)我们可以根据已知求得的到

24、矩形的四条边的长度关系求出所在x-y平面的象限及其x轴坐标和一轴坐标,具体情形如下: 这样我们就求出了相机的光学中心O点在靶标坐标系的坐标O()的值. 我们设题目第四问中两部相机分别为点.我们可以利用前文叙述的方法分别求出在靶标坐标系的坐标,为了简捷起见,我们并没有用原始数据来表示。则两相机的相对位置可以用坐标表示,它们的距离为 6模型的评价模型的优点:模型一在Matlab中使用抽取边缘曲线的方法,将边缘曲线上的点提取出来,为后面模型的继续准备了条件,使模型变得简单、便于理解、而且非常具有可行性,根据模型一求解出的像的坐标与实际很相符。模型二运用同一直线上三个点的像也在一条直线上,很容易的就检验出了模型的精确度及稳定

温馨提示

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

评论

0/150

提交评论