数码相机定位讲解.docx
《数码相机定位讲解.docx》由会员分享,可在线阅读,更多相关《数码相机定位讲解.docx(37页珍藏版)》请在冰豆网上搜索。
数码相机定位讲解
数码相机定位
摘要
本文要求对靶标上的点在像平面上的像坐标的确定问题建立数学模型和算法,确定其像的坐标,以及两部相机的相对置。
针对问题一,先采用了针孔成像模型,在具体的求解过程中,为了便于计算又采用了摄相机标定线性模型。
针对问题二,即对模型的求解,根据射影变换的不变性(几何元素点、线、面等变换后仍保持原先的种类),找出实物中圆的公切线与像片中像的公切线上相对应的点,把这些点带入模型中,通过最小二乘法求出的投影矩阵,再求得靶标上圆A、B、
C、D、E的圆心在像平面上的像坐标分别为(322,188)、(424,196)、(643,217)、
(582,502)、50)2,8(,此处像平面以像片左上角顶点为坐标原点,以像素为单位。
针对问题三,以图像平面上的所有圆的像点,通过原模型计算出它在物平面上的坐标,判断这些坐标点落在靶标圆上的点的多少,计算出能落靶标圆上的点与总的像点的比值,即精确率为93.6%,;再选取特殊的特征点,检验模型计算的值是否存在整体的偏移,其计算结果为:
在物平面的水平方向向左偏移0.4个像素,垂直方向向上偏
移1.7个像素,便可以用此偏移位移对像平面上圆心的位置进行较正。
对于问题四,先利用问题一、二的方法得到左摄像机与右摄像机像面上的对应的匹配点(二者是空间同一点在左、右摄像机像面上的点),采用双目立体视觉测量数学模型,求出两部摄像机坐标系之间的旋转矩阵和原点之间的平移矢量,从而找出两部固定相机相对位置。
在模型的推广与改进中,不仅考虑到了摄像机畸变问题,利用畸变系数标定原理建立方程,解得畸变参数。
还设计出了一个比原靶标更好的靶标,使得确定像的坐标更容易、更精确。
从而实现对模型的推广与改进。
关键词:
旋转矩阵切点平移矢量投影矩阵偏移位移精确率
问题的重述
数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征点的位置。
最常用的定位方法是双目定位,即用两部相机来定位。
对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。
通过两部相机精确的相对位置,用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。
于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。
标定的一种做法是:
在一块平板上画若干个点,同时用这两部相机照相,分别得到这些点在它们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的相对位置。
然而,无论在物平面或像平面上都无法直接得到没有几何尺寸的“点”。
实际的做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。
而它们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。
有人设计靶标如下,取1个边长为100mm的正方形,分别以四个顶点(对应为A、C、D、E)为圆心,12mm为半径作圆。
以AC边上距离A点30mm处的B为圆心,12mm为半径作圆,如图1所示。
图1靶标示意图
用一位置固定的数码相机摄得其像,如图2所示
图2靶标的像
要求:
(1)建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标,这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面;
(2)对由图1、图2分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标,该相机的像距(即光学中心到像平面的距离)是1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为1024X768;
(3)设计一种方法检验你们的模型,并对方法的精度和稳定性进行讨论;
(4)建立用此靶标给出两部固定相机相对位置的数学模型和方法。
二、模型的假设及符号说明
问题假设:
1•用于摄像的透镜是理想的透镜成像,因透镜的不规则产生的影响可以忽略的;
2•假设数码相机所成的图像不产生枕形失真与桶形失真;
3•假设图像的轮廓清晰,能找出图像轮廓;
4•相机凸透镜的主光柱垂直通过像平面的中心;符号说明:
R摄像机坐标系与世界坐标系的旋转矩阵
(u,v)表示以像素为单位的图像坐标系的坐标
(Uo,Vo)。
1在U,V坐标系中的坐标
t从世界坐标系的原点到光心的矢量
f为一问中摄像机的焦距,即光学中心到像平面的距离
(x,y,z)物点在摄像机坐标下的坐标
M从世界坐标系到像平面坐标系的投影矩阵
h精确率(能返回到靶标上的像点个数与总体像点个数的比值)
左摄像机的有效焦距
左摄像机的有效焦距
(Xr,Yr)右摄像机拍摄图像在对应图像坐标系中的坐标
(Xl,Yl)左摄像机拍摄图像在对应图像坐标系中的坐标
(xr,yr,zr)点在右摄像机坐标系中的坐标
(X',Y')实际像平面坐标
三、问题的分析
1)、问题一的分析
首先,空间中的一点通过光学透镜在像平面上成一个像点,将像点和物点都置于以光学中心为原点的相机坐标系中,根据已知的像距和成像原理,建立起像点与物点的转换关系。
其次,在像坐标系中,因数码相机的CCD感光材料上的像是由已知个数的像素点构成,那像的大小与像素点也存在一个转换关系。
再次,空间中的任意一点,同时存在于世界坐标系与相机坐标系中,所以此点在两个坐标系中的坐标必然存在一下的转换关系。
最后,已知在世界坐标系中的一点q的坐标,可以通过世界坐标系与相机坐标系的转换关系,可求得它在相机坐标系中的坐标,再通过像点坐标与物点坐标的转换关系,便可求得点q在相机坐标下的像点的坐标,因为相机的主光柱垂直通过像平面的中心,且焦距已知,所以像点在相机平面上的坐标的中的两个坐标量便是q点在像平面的坐
标。
2)问题二的分析将像经数字图像处理后,再求像中不规则圆的边界。
首先,因为已经假设相机成像无枕形失真与桶形失真,所以在靶标中的三点一线,那在像平面中对应的三点也一定一线,可以证明(证明见后)靶标中圆上相切的点一定也是在像中的不规则园上的切点,即图3中点a,b,c与图4中点a',b',c'对应。
然后,将这些点在像坐标系中的坐标代入问题一所得的像坐标与世界坐标的转换关系中,只要找的点足够多(实际上转换关系(1.9)中可以看出只需要六个点,而这样的切点实际上能找到18个以上),就可以通过方程组的最小二乘法可解得像坐标与世界坐标的转换矩阵,如(1.5)式。
最后,再将世界坐标系中的五个圆心的世界坐标带入上已经解得的像坐标与世界坐标的转换关系中,便可求得五个圆心在像坐标系中的位置为(322,188)、(424,196)、(643,217)、(582,502)、50)82,(。
实际上经过问题三的误差分析与稳定性分析,可
知这样求得的精确率为93.6%。
3)问题三分析
对于一、二问中模型的精确度讨论,从两个方面对其进行讨论。
首先对像平面上的每个像点通过原模型计算其在物平面的坐标,并判断它是否落在物平面的靶标上,用能落在物平面上的靶标的个数与总的像平面上像点个数的比值作为精确率;因可能存在系统误差,使像点在同一方向上发生移位,故在相互垂直两个方向,在物平面的
水平和垂直方向上分别取值几个特征点,通过原模型计算出相应的像坐标,再用计算出的坐标与计算机对图像直接读取的坐标进行比较、判断。
4)冋题四分析
因在此问题中的靶标为确定的,用两部固定相机对此靶标摄得其像,又在对问题
一、二的求解过程中可知投影矩阵可以求解出,故靶标上的每个点在每张相片上的相应点的像坐标均能得到。
即左摄像机像面上的点都能在右摄像机中找到对应的匹配点
(二者是空间同一点在左、右摄像机像面上的点),故可以建立匹配点之间的关系,从而找出两部固定相机相对位置。
四、模型的建立与求解
问题一
1、像素坐标系与物理坐标系之间的转换关系
由于本问题中数码相机分辩率为1024768,也就是此数码相机的CCD感光器是由1024768个像素点构成,所以得到的靶的像也是由1024768个点构成。
因此,需要建立像素与以物理单位(mm)表示的坐标的转换关系。
图3图像坐标系
建立图像坐标系如图3。
其中(u,v)表示以像素为单位的图像坐标系上的坐标,
(X,Y)表示以mm为单位的图像坐标系的坐标。
并且在X,Y坐标系中,原点01定义在
数码相机的主光柱与图像的垂直交点处,即u,v坐标系中的点(u0,v0),每一个像素点
在X轴与Y轴方向上的物理尺寸分别为dX、dY,则图像中的任意一个像素在两个坐标系下的坐标有如下关系:
因为式中出现了坐标量加上一个常量,所以如果在二维坐标系中用矩阵表示它们之间的转换关系为
-1
0〕
dX
0
1
]丫一
-
dY一
显然此矩阵表示法因后面加了一常量列,所以并不会对坐标转换带来方便,可能还会使变得更复杂。
因此为了方便后面坐标系之间的转换,需用齐次坐标山表示法表示两
个图像坐标系中的点,分别表示为(u,v,1)和(X,Y,1),再将(1.1)的转换关系用齐次坐标系表示即为
这样去掉了后面的常量列,方便点集从一个坐标系到另外一个坐标系的转换。
2、世界坐标系与相机坐标系的旋转关系
又根据数码相机成像原理图,如图4
D
图4数码相机成像原理图⑴
其中平面ABCD表示物平面,平面abcd表示像平面,矩形abcd表为ABCD所成的倒
立的像,S表示相机的光学中心,01表示镜头的主光柱与像平面的交点。
根据假设,01点为像平面abed的几何中心,且O1S垂直于像平面abed,根据成像原理。
a、b、c、d分别物点A、B、C、D所对应的像,分别将a、b、e、d绕光学中心点S180旋转,成新的平面a'b'c'd',与原像平面abed平行,其中a'、b'、e'、d'分别与像点A、B、C、D对应,这样以新的平面a'b'c'd'代替原像平面abed,便使像平面与物平面成正立的对应的关系,且从物点到光学中心的连线与平面a'b'c'd'的交点便是像点。
图5世界坐标系与相机坐标系
由于相机可放在环境中的任意位置,所以可以在环境中选一个坐标系来描述相机的位置和其它任何点的位置,以此坐标系为世界坐标系,由Xw,Yw乙轴构成,所以相机坐
标系可与世界坐标系之间的关系可以用旋转矩阵与平移向量来描述,令空间中的一点P在齐次世界坐标系下的坐标为P(Xw,Yw,Zw,iT,在齐次相机坐标系下的坐标为
P(x,y,z,1),于是存在如下的关系
其中R为33正交单位矩阵;t为三维平移向量;0=(0,0,0)T;M1为44矩阵。
3、在相机坐标系中像点坐标与物点坐标的对应关系
由透镜成像的坐标关系图如下图6
A
图6:
透镜成像的坐标关系
图中A点为物点,A'为像点,S光学中心,f为焦距,则显然物点A到主光柱的距离与像点A'到主光柱的距离有如下关系
lz二fh
当然此关系在相机坐标系中也成立,即有
J_X^fx
Yz二fy
其中(X,Y)表示A点的图像坐标,(x,y,z)表示空间中的点A在相机下的坐标用齐次线性关系组表示此成像关系为
Xf0zY=0f
"P0
其中P为成像的透视投影矩阵。
(1.4)
4、求以世界坐标系⑴表示的p点与其在像坐标系中的像素位置(u,v)的对应关系
将(1.3)式和(1.2)式代入(1.4)式,便可得到以世界坐标系表示的
p点与其在
像坐标系中的像素位置(u,v)的对应关系
■_!
_
dX
0
0
0
1
dY
0
V0
■f
0
0f
0
0U0
:
yV。
01
XJ
Yw
Zw
-MPw(1.5)
其中Pw=(Xw,Yw,Zw,1),如图6中从物点做到主光柱的垂线,z便表示垂点到在相机的光学中心的距离。
5、求(1.5)式中的M矩阵的算法5.1、建立世界系与图像坐标系
从(1.5)中知M为一34的矩阵,现忽略其中元素间的关系,将M视为含12个未知数的矩阵得(1.5)式如下
因为(XWi,Ywi,ZWi,1)表示世界坐标系中的一个坐标,所以可以将世界坐标系的坐标原点置于靶标上A圆与C圆的上切线与A圆和E圆的左切线的交点上,且以靶标平面为O-XwYv平面,以纵柱往下为Xw的正方向,横柱往右方向为Y.的正方向,如图7。
并得到坐标柱与圆的五个切点a1,b|,g,a2,ei。
图7以靶标平面为世界坐标系的O-XwYw平面建立的世界坐标系
以图像的左上角为坐标原点建立图像坐标系,以像素为单位,以向下为u的正方向,向右为v的正方向,如图8
图8图像坐标系
现将(1.6)式展开,得到以下三个方程
ZiUi=m^Xwi'm^YWi'm^Zwi'mi4
«ZVi=m2iXwi+m22YWi+m23Zwi(1.7)
-亠丄
zi=m31XWi'm32Ywi'm33ZWi'm34
将(1.7)中的第一式除第三式,第二式除第三式分别消去乙后,可得到两个关于mj的
线性方程组
Jmi1XW^+mi2YVV^m13ZW^_uim31XW^Uim32YW^_Uim33ZW^—uim34(〔&)
m21XW^+m22\w^+m23ZW^+m2^_Vim31XW^Vim32YVV^_Vim33ZW^~Vim34
在此式中可知,如果靶标上有n个特征点(Xwi,Ywi,Zwi)(i=1~n),并且知道它们在像中的坐标(Ui,Vi)(i=1〜n),就可以直接代入便得式(1.9)
Xw1
Yw1
Zw1
1
0
0
0
0
—U1Xw1
—U“w1
—U1Zw1
0
0
-
0
-
0
-
Xw1
-
Yw1
a
Zw1
a
1
a
-V1Xw1
a
一V“w1
-
—V1Zw1
Xwn
Ywn
Zwn
1
0
0
0
0
—unXwn
—unYwn
—unZwn
0
0
0
0
X八wn
Ywn
Zwn
1
-vX
vn八wn
—VnYwn
-vZ
“Jwn一
m32
E一
根据靶标平面建立的世界坐标系,所以Zwi=o(i=1~n);实际上从(1.9)式可得
知道只要呛厂0,那它为其它任意实数值并不影响(XwiM,Zwi)与(Ui,Vi)的关系,从而取定m34=1,从而得到关于M矩阵其他元素的2n个线性方程,这些未知元素的个数为11个,记为11维向量m,将上式简写成
Km=U(2.0)
其中,K为式(1.9)左边2n11矩阵;m为未知的11维向量;U为式(1.9)右边的2n维向量;K,U为已知向量。
对于式(2.0),可以利用线性方程组的常规解法求出M矩阵。
当2n.11时,可用最小二乘法求出上述线性方程的解为:
(2.1)
m=(KtK)KtU
m向量与m34=1构成了所求解的M矩阵。
由上可见,由空间6个以上已知点与它们的图像点坐标就可以求出M矩阵。
问题二
1、找世界坐标系与像坐标系中能够确切对应的点
1.1、证明O-XwYw平面上任意两圆的切线的切点与O-UV平面上的相应的不规则圆的切线的切点有一一对应的关系
为了方法说明,此处仅以假设的像的上方的公切线上的切点为例。
将图像进行数字化处理,找出各圆的像的边界,如图9。
实际上,如图10,假设靶标中的两个圆有一条都位于圆心上方的切线,在圆边界
上的任一点G(除切点与切线的距离为零外)都与切线有垂直距离Gg,且都在切线
下方。
而数码相机的成像只会缩小Gg的大小,而极限就是,当Gg的所成像的长度小于一个像素单位的物理的长度时,则显示出来的图像有多个切点,如图10所示,但决不会出现G在切线的上方。
所以在靶标上的圆A和圆C与它们公切线的切点,在所成的图像中还是圆A的像与圆C的像与它们公切线的切点。
但在图像中,同一个圆的图像与切线的切点个数可能不唯一,如图10
图10连续的切点与数字化后切点的结果
1.2、寻找图像中任意两个圆的公切线上的切点的方法
我为了使叙述方便,以下仅以求圆A和圆C的上切线的切点为例。
从圆A和圆C
的像的边界上各取一相坐标点a!
(ua1,va1)和c1(uc1,vc1),如图11
然后连接a1与bi点,如图11,建立直线方程为
人一虫1_yv"al
Ub1_'UaiVbi—Vai
将此直线向上移动一个像素单位,即变成
Xu-Ual_yv-1-Vai
ub1_Ua1Vb1-Va1
(2.2)
(2.3)
将Xu二[123……1024]代入(2.3)的直线方程,解出*,将Y,向小方取整记为Yv,再判定|XUT,YTI中是否还有圆A与C图像的边界点,如果还有,记相应的点为a2,b2,用它来替换(2.3)式中a1,b1点,重复此过程一直到某一个n,使|XUT,YV丨中不再有圆A与C图像的边界点,那an,bn即为所要求的切点。
同理可得切线为圆的下方、左方、右方的迭代方程如下
Xu—Ua1yV*1-Va1(24)
Ub1_Ua1Vb1-Va1
当求左右切线时X=[1,2,3……76&代入(2.3)的直线方程,解出XU,将XU向小方取整记为Xv,再判定XuT,yJ,可得切线为圆的左方的迭代方程如下
XU一1_Ua1yV_Va1
Ub1-Ua1Vb1-Va1
同理可得切线为圆的右方的迭代方程如下
Xu1-Ua1_yv-Va1
%1一山1Vb1一%1
1.3、寻求减少求切点的迭代次数的方法
通过matlab数字图像处理将像变0-1矩阵后,
(2.5)
(2.6)
通过程序(附录见附录)求得每个
圆的像的水平切线的切点的坐标,从其中选取(2.3)式需要的初始点,可很好地减小迭代次数和迭代速度。
A
上
u
317
318
319
320
321
322
v
149
149
149
149
149
149
下
u
316
317
318
319
320
321
322
323
324
325
326
v
231
231
231
231
231
231
231
231
231
231
231
左
u
282
282
282
282
282
282
282
282
282
282
282
282
282
v
182
183
184
185
186
187
188
189
190
1911
192
193
194
C
上
u
637
638
639
640
641
642
643
644
645
646
647
648
649
v
176
176
176
176
176
176
176
176
176
176
176
176
176
下
u
635
v
252
左
u
604
604
604
604
604
604
604
604
604
604
604
604
604
v
210
211
212
213
214
215
216
217
218
219
220
221
222
D
上
u
580
581
582
583
584
585
586
587
588
589
590
591
592
v
471
471
471
471
471
471
471
471
471
471
471
471
471
下
u
570
571
572
573
574
575
576
577
578
579
580
581
582
v
536
536
536
536
536
536
536
536
536
536
536
536
536
左
u
549
549
549
549
549
549
549
549
549
549
549
549
549
v
501
502
503
504
505
506
507
508
509
510
511
512
513
E
上
u
282
283
284
285
286
287
288
289
290
291
292
293
294
v
467
467
467
467
467
467
467
467
467
467
467
467
467
下
u
280
281
v
538
538
左
u
246
246
246
246
246
246
246
246
246
246
246
246
v
500
501
502
503
504
505
506
507
508
509
510
511
1.4、用matlab程序求像坐标系上的圆的像的水平方向、一(程序见附录)
表一部份圆的部分边界点(由于页面限制,只选取部分数据录入)
在以上数据表中选取边界点坐标,根据选取的方向代入(2.3)~(2.6)中相应的表达
式中计算得世界坐标系中与像坐标系中几个水平与竖直切线上的切点之间的对应关系如下表二(程序见附录)
竖直方向的切线上的切点如表
表二几个水平与竖直切线的之间的切点对应关系
坐标
Xw
Yw
v
u
B圆上切点
42
0
157
429
C圆上切点
112
0
176
653
A圆左切点
0
12
182
「282:
E圆左切点
0
112
500
246
C圆左切点
100
12
210
604
D圆左切点
100
112
501
「549「
A圆下切点
12
24
231
316
C圆下切点
112
24
252
635
E圆上切点
12
100
476
296
D圆上切点
112
100
471
598
E圆下切点
12
124
538
281
D圆下切点
112
124
536
583
1.5、利用表二代入(1.9)式得M矩阵如下表三
表三(1.9)式中M矩阵的值
M矩阵
3.7995
-0.1099
0
284.7262
0.4319
3.6597
0
143.2353
0.0008
0.001「
0
1\