2008A题数码相机定位
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数码相机定位
一.问题重述
数码相机定位在交通监管等方面有广泛的应用。
所谓数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征点的位置。
最常用的定位方法是双目定位,即用两部相机来定位。
对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。
只要知道两部相机精确的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。
于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。
参照系统标定的方法建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标, 这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面;对由图2、图3分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标;设计一种方法检验建立的模型,并对方法的精度和稳定性进行讨论;建立用此靶标给出两部固定相机相对位置的数学模型和方法。
二.符号说明
1)ij r-------------------------------------------对应两点的距离
(i =1,2,3;j =1,2,3,4)2)u,v------------------------------------------------待定系数
3)i x,i y, i z,'i x,'i y,'i z--------------对应点的x,y,z坐标
(i=1,2,3)
4)
t,2t,3t------------------------------------------关系系数
1
5)R------------------------------------光学中心到像平面的距离
6)r ---------------------------------------两部相机之间的距离
三.模型假设
1.两部相机的型号相同即像距相等。
2.假设像平面在光学中心的正后方,即建立的二维坐标系原点在原三维坐标系的z轴上。
3.靶标可以认为是一个平面,并且是硬性物体,其上任意两点的距离不发生变化。
四.模型的建立及求解
问题一:
给出相机成像的原理参照图如下图(1):
图(1)
对于第一个问题,我们需要建立一个模型来确定靶标上任意圆的圆心在像平面上的像坐标。
系统标定的实际做法是在物平面上画若干个圆,由于物平面和像平面有存在着夹角,所以他们的像一般会变形,所以在像平面中我们难以确定一个不规则的图形的几何中心,并且几何中心所对应的实物并不一定是圆的圆心。
1、靶标和像的关系
我们知道,任意两个圆都存在公切线,当相机成像之后公切线仍然存在,并且这些切线也是相片上那些不规则图形的公切线。
根据这个原理,我们在物平面
上画3个圆
O,2O,3O分别取他们之间的三条外公切线组成一个三角形ABC。
1
(如图2)。
在像平面中我们也能通过软件给3个圆的成像做出3条公切线,这3条线组成的三角形就是ABC的像'''
A B C。
(如图3)
图(2)
图(3)
2、在像平面建立二维坐标
我们采取直接在像平面上建立二维坐标的方式。
首先,我们默认像平面为
一个有限的长方形,其分辨率1024×768可以当作平面的划分,并且用来标记坐标,我们把平面看成1024×768个小方格。
把坐标原点设在长方形的中心,这样x ,y 坐标的范围就分别在(-512,512),(-384,384)。
3、确定像坐标与靶坐标上点的坐标之间的关系
我们知道,三个不共线的点可以确定一个平面。
在图2中我们设'A ,'B ,
'C 在像平面上的坐标为'
'
'
11(,)A x y ,'
'
'
22(,)B x y ,'
'
'
33(,)
C x y 。
由于x-y 平面平行于像平面,建立的二维坐标系原点在原三维坐标系的z 轴上。
故我们可以知道',','A B C 在三维坐标系上的坐标''''111(,,)A x y z ,
'
'
'
'
222(,,)B x y z ,'
'
'
'
333(,,)C x y z 。
其中'''123z z z R ===,R 为像距(即三维坐标中心到二维平面的距离) 另外,在物平面上 设111(,,)A x y z ,222(,,)B x y z ,333(,,)C x y z 根据成像的原理,在三维坐标系中',','AOA BOB COC 则有关系:
'''i i i i i i
i
i i x t x y t y z t z ⎧=⎪=⎨⎪=⎩ (i =1,2,3) (1.1)
所以,,A B C 的坐标表示为'''111111(,,)A t x t y t z ,'''222222(,,)B t x t y t z ,
'
'
'
333333(,,)C t x t y t z 。
4、计算1t ,2t ,3t 的值
对于靶坐标,任何两点之间的距离都可以通过测量得出,设测得值 |A B |=12r |B C |=23r |A C |=13r
则有
)()()2222
121212122222
232323232222
1
3131313()()()()()()x x y y z z r x x y y z z r x x y y z z r ⎧-+-+-=⎪
⎪-+-+-=⎨⎪-+-+-=⎪⎩ (1.2) 此方程只有1t ,2t ,3t 三个未知数,所以能求得解。
5、靶标上任意圆圆心对应在像平面上的像坐标
根据以上得到的数据,给出靶标上任意圆的圆心D ,我们可以测量D 与
,,A B C
之间的距离来确定D 的坐标
设D 的坐标为D (,,)x y z ,D 到,,A B C 之间的距离分别为
||AD =14r ,||BD =24r ,||CD =34r
则有()()()2222
11114
2222
222242222
33334()()()()()()x x y y z z r x x y y z z r x x y y z z r ⎧-+-+-=⎪
⎪-+-+-=⎨⎪-+-+-=⎪⎩
(1.3)
此方程也只有,,x y z 三个未知数,所以能求得D 点坐标D (,,)x y z 。
'D 为D
在像平面上对应的点
根据的'D O D 共线关系可得'D 点的坐标为'D (,,)x y z t t t
而'D 在像平面上,故/z t R =,所以/t z R =
所以'D 的坐标就确定了'D
,,)x y R R R z z (
(其中x ,y ,z 是与i x ,i y ,i z 有关的常数,i =1,2,3)
问题二:
我们来解决实际问题。
我们用AutoCAD 打开题目给出的照片文件,然后我们把相片上的不规则图形按椭圆拟合在通过CAD 上的捕捉切点的功能分别找到3条公切线,并设这3条公切线的交点为'M ,'N ,'Q ,如图(4):
图(4)
通过CAD 上的坐标定位,找到'M ,'N ,'Q 在CAD 上的坐标,再通过一定的转换把他们的坐标转换到像平面上(即以像素为单位)。
'M ,'N ,'Q 在像平面上的坐标为'M (-226.11, 238.802)
'N (223.1317, 201.5533) 'Q (-277.2719, -202.0605)
另外在物平面上,我们找到,,M N Q 间的长度关系,如下图(5):
图 (5)
|MN |= 140.9706 (mm ) =532.8689(像素) |MQ |= 140.9706 (mm ) =532.8689(像素) |NQ |= 199.3625 (mm ) =753.5904(像素)
根据我们上面建立的模型,把以上数据带入方程(1.2)可以算得
123
1.18431.17850.9919t t t =-⎧⎪
=-⎨⎪=-⎩ (其余数据舍去,算法理由在附录1中给出[2]) 算出,,M N Q 在三维坐标系上坐标
M
(267.8 ,-282.8,-1867.6) N (-263.0,-237.5,-1858.5) Q
(275.0, 200.4,-1564.2)
由于距离的测量是存在误差的,这样用距离公式进行计算,很有可能会找不到目标点,所以我们下面采用向量的方法解决此问题。
又根据几何向量知识得到:
对于任意一点H 都有: M H u M N v M Q =+
则 (1)O H u v O M u O N vO Q
=--++
根据上面公式我们可以求得O A ,OB ,O C ,O D ,OE
所对应的u ,v 值如下
表:
,,M N Q 的坐标均已求出,故我们可以得到,,,,A B C D E 在三维坐标系中的坐
标如下表:
(单位:像素)
经过MATLAB 编程可得到其像',',',','A B C D E 的坐标为(程序见附录2)[2]:
所以圆心像点',',',','A B C D E 在像平面上的二维坐标分别为
问题三:
由于空间中一点我们是以点所在的像素小方格得到他的坐标,这样得到点的坐标就会产生误差,且和相机分辨率有关了,假如图像识别精度达到1个像素
级,那么对于空间一物点,设其在像平面上的第i 行,第j 列的像素中。
只要该点在该像素内,则该点坐标即已经确定
这样得到误差有:
1([])
1([])ex x x ey y y =--⎧⎨
=--⎩
(3.1) 其中[],[]x y 分别为对,x y 求整
以'M (-226.11, 238.802),'N (223.1317, 201.5533),'Q (-277.2719, -202.0605)为例,M 在像平面上坐标为(267.8 ,-282.8)则得到坐标与实际
坐标之间的误差由(3.1)式得:
0.110.198
0.8683
0.44670.27190.0605
exm eym exn eyn exq eyq =⎧⎨
=⎩=⎧⎨
=⎩=⎧⎨
=⎩ (3.2)
理想坐标与实际物理坐标关系为:
x x E x y y E y
=+=+
,
从而得到',',
M N Q的理想坐标分别为(-226.22,238.614),(222.2634,201.1066), (-277.5438,-202.1210)在根据问题2提出的模型可得到新的',',',','
A B C D E在像平面上的坐标为
与原来的',',',','
A B C D E的坐标比较得
表示所求坐标与理想坐标之间的相对误差)
(其中d x
x
问题四:
其模型可看成是由两个单照相机成像组合而成,其示意图如图(6)所示:
图(6)
图(6)中1L ,2L 为(,,)P x y z 经过两光学中心的光线。
确定了他们两之间的距离r 也就固定了两部相机的相对位置.两相机的像距都是12,,R C C 分别为左右相机的像平面,1P ,2P 为物平面上坐标点(,,)P x y z 在两个像平面上的像。
空间点P 与像点111222(,),(,)P x y P x y 对应关系是一个三维到二维平面的变换。
又1,,P O P 三个点共线得关系:
1x =
R Z X
(4.1)
1y =
R Z
Y
(4.2)
由小孔成像和三角关系得到: 2x = -X R Z R - (4.3)
2y =-
YR Z R - (4.4)
由(4.1),(4.2),(4.3),(4.4)得:
X =Z R 1x (4.5) Y
=
Z R
1y (4.6) Z
=21
rR R x x -- (4.7)
由像平面可以得到1x ,2x ,1y 的具体值,又由模型1得到Z 的值,即 2x , 1x ,
,R Z
已知,
由式(4.7)得:
r =21()()
R Z x x R -- (4.8)
即可计算出r 的值。
备注:
五.模型的优缺点
优点:本模型通过找到公切线交点不会由于角度问题而在图像中丢失的特性巧妙的解决了图像变形问题;利用MATLAB 处理了大量的公式计算,以及繁琐的坐标运算;第二问中采取向量的方法避免了求坐标时可能产生无解的错误。
缺点:本模型假设中把图像中不规则图形近似为椭圆会使数据产生一定误差,在此问题上如能得到解决数据将会进一步精确。
具体做法可以采用某种图像处理工具直接找到不规则圆滑图形的切线。
摘要
本文对相机定位的系统标定这一步骤进行了分析,利用空间坐标变换、向量计算、曲线拟合和误差分析的数学方法处理问题。
问题一:为了解决物平面与像平面可能存在夹角这个问题,建立三维的空间坐标系。
在物平面中,首先选出三个圆,作出每两个圆的公切线,组成三角形。
使三个圆切于三角形内部。
三角形的三个顶点就是物平面中三个定点。
在像平面中,找到与之对应的圆的像,同样方法得到对应的三个定点的像。
通过相机成像的原理找到定点与像之间的关系,再通过物平面可以确定的距离关系建立方程组,这个方程组可以解决物与像之间的关系系数i t 。
然后利用这
些系数再加上空间距离关系,计算出物平面上任意一点在像平面上的空间坐标。
最后利用坐标转换,得到该点在像平面上对应像的二维坐标。
问题二:给出靶标和其像,利用问题一建立的模型,结合空间向量的知识得到解决的方案,来确定给出的五个圆的圆心在其对应的像平面的像坐标。
问题三:由于图像识别精度,实际得到的坐标是有误差的,我们可以得到靶标上点的像的另外一组坐标值,再按问题二的方法就可得到靶标上圆的圆心的像的另外一组像坐标,与原来的圆心形成的像坐标进行相对误差分析,从而检验问题一中建立的模型的准确性。
问题四:其模型可看成是由两个单个照相机成像组合而成,根据成像原理进行分析,最后可得到两个相机的相对位置r的值。
关键词:坐标变换相对位置双目定位曲线拟合
参考文献:
[1] 贾云得,机器视觉[M].北京:北京科学出版社,2000:1-85.
[2] 郑阿奇,MATLAB实用教程.北京:电子工业出版社,2007.8.
附录:
附录1( MATLAB程序):
>> A1=[-226.11,238.802,1577];
>> B1=[223.1317,201.5533,1577];
>> C1=[-277.2719,-202.0605,1577];
>> t=[0.6854,0.3146,0];
>> h1=[-1.1843, -1.1785,-0.9919];
>> h2=[-1.0348,- 1.1623, -1.1794];
>> a=[-1.1843, -1.0348];
>> b=[-1.1785, - 1.1623];
>> c=[-0.9919, -1.1794];
>> A=a'*A1;
>> B=b'*B1;
>> C=c'*C1;
>> H1=[A(1,:);B(1,:);C(1,:)];
>> H2=[A(2,:);B(2,:);C(2,:)];
>> a1=t*H1;
>> a2=t*H2;
>> g=[-84.9284,228.2597,1577];
>> o1=a1./g;
o1 =
-1.1870 -1.1766 -1.1825
>> o2=a2./g
o2 =
-0.9276 -1.0649 -1.0749
%有两组
t,2t,3t的解可能符合要求,通过这两组的值来找到靶标上的点和其对
1
应的像点的坐标,用坐标对应相比来确定是否与原点共线。
(-1.1870,-1.1766,-1.1825)三个比例几乎相等,即选择(
t,2t,3t)=(-1.1843, -1.1785,-0.9919)
1
附录2( MATLAB程序):
>> a=[0.0851 0.2979 0.7945 0.7945 0.0851
0.0851 0.0851 0.0851 0.7945 0.7945
0.8298 0.6170 0.1204 -0.5890 0.1204];
>> M=[267.8 ,-282.8,-1867.6];
>> N=[-263.0,-237.5,-1858.5];
>> Q=[275.0,200.4,-1564.2];
>> b=[N;Q;M];
>> x=a'*b;
>> t=x';
>> t1=t(3,:);
>> t2=1577./t1;
>> t3=[t2;t2;t2];
>> L=t.*t3
L =
1.0e+003 *
-0.1912 -0.0946 0.1318 0.1443 -0.2215
0.2037 0.1957 0.1768 -0.1335 -0.1018
1.5770 1.5770 1.5770 1.5770 1.5770
%通过靶标上圆的圆心A,B,C,D,E求其对应的像的坐标'A,'B,'C,'
D,'E。