数学建模数码相机定位6.docx
- 文档编号:9195393
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:105.86KB
数学建模数码相机定位6.docx
《数学建模数码相机定位6.docx》由会员分享,可在线阅读,更多相关《数学建模数码相机定位6.docx(19页珍藏版)》请在冰点文库上搜索。
数学建模数码相机定位6
数码相机定位
摘要
针对问题一,我们运用空间解析几何的知识,建立了物平面上一点与其在光心坐标系下坐标之间的变换函数(见式一)。
又建立了光心坐标系上一点与其在像坐标系下坐标之间的变换函数(见式二)。
将函数中的参数解出,再根据变换函数和圆心再物坐标系下的坐标,就可以确定其在像坐标系下的坐标。
针对问题二,我们使用公切线模型,联系题目中所给标靶,得出像平面中圆心的坐标(-49.92,51.36,-417.20),(-23.47,49.36,-417.20),(33.88,45.05,-417.20),(-60.04,-31.29,-417.20),(18.58,-31.56,-417.20)。
针对问题三,我们引入了全站仪法,对实际情况进行测量。
将测量结果与模型算得得结果进行对比,对模型的正确性进行检验。
针对问题四,我们用旋转与平移变换矩阵,对两个照相机的光心坐标系进行转换,从而得到了两照相机之间的相对位置。
关键词:
变换函数公切线模型全站仪法矩阵变换
一问题重述
数码相机定位在交通监管(电子警察)等方面有广泛的应用。
所谓数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征点的位置。
最常用的定位方法是双目定位,即用两部相机来定位。
对物体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标。
只要知道两部相机精确的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特征点的位置。
于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称为系统标定。
标定的一种做法是:
在一块平板上画若干个点,同时用这两部相机照相,分别得到这些点在它们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的相对位置。
然而,无论在物平面或像平面上我们都无法直接得到没有几何尺寸的“点”。
实际的做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。
而它们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就可实现。
有人设计靶标如下,取1个边长为100mm的正方形,分别以四个顶点(对应为A、C、D、E)为圆心,12mm为半径作圆。
以AC边上距离A点30mm处的B为圆心,12mm为半径作圆。
并用一架照相机对标靶进行拍摄,得到了像。
要求:
1.建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的像坐标,这里坐标系原点取在该相机的光学中心,x-y平面平行于像平面;
2.对由图2、图3分别给出的靶标及其像,计算靶标上圆的圆心在像平面上的像坐标,该相机的像距(即光学中心到像平面的距离)是1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为1024×768;
3.设计一种方法检验你们的模型,并对方法的精度和稳定性进行讨论;
4.建立用此靶标给出两部固定相机相对位置的数学模型和方法。
二问题分析
针对问题一,我们先对题目中介绍的标靶法系统测定进行分析。
找出运用该方法时的已知量和要求量。
我们运用空间解析几何的知识,找出平面坐标与空间坐标转换时的不变量:
两相交直线间的夹角和点到点之间的距离,从而列出有关物平面上一点与其在光心坐标系下坐标之间含有参数的方程。
又列出心坐标系上一点与其在像坐标系下坐标之间的方程。
只要代入6组点,就可以将方程中的参数解出,从而找到能将物坐标系上一点坐标转换成,其在像坐标系上对应点的坐标的具体变换函数。
根据所得函数,代入标靶上圆心在物坐标系下的坐标,就可以求得其像坐标。
针对问题二,为了对已给的像进行分析,我们使用了Matlab。
为了找出圆心,我们使用公切线模型。
联系题目中所给标靶,得出像平面中圆心的坐标。
针对问题三,为了检验模型,就需要准确的实验数据。
将实验数据与模型计算结果进行对比,就可以检验出模型是否正确。
我们引入了全站仪法,对实际情况进行测量,这样就可以得到精确的实验数据。
将测量结果与模型算得的结果进行对比,对模型的正确性进行检验。
问题四中,两照相机分别处于各自的光心坐标系中。
为了测定两照相机的相对位置,必须求得其中一台照相机在另一台照相机的光心坐标系中的坐标。
通过旋转与平移变换矩阵,可以将一个光心坐标系中的点坐标转换成该点在另一个光心坐标系中的坐标。
通过代入一系列对应点的坐标,就可以将旋转与平移变换矩阵解出。
进而可以将一台照相机的坐标转换为另一台照相机的光心坐标系中的坐标。
从而得到了两照相机之间的相对位置。
三符号说明
1.(x,y):
物坐标系上一点的坐标
2.(u,v):
像坐标系上一点的坐标
3.(X,Y,Z):
光心坐标系上一点的坐标
4.β:
物平面上一点(x,y)与(0,0)所在直线与物坐标系上Y轴的夹角
5.f:
相机的像距
6.
:
物坐标系的Y轴在光心坐标系下的一个方向向
7.
:
物坐标系原点在光心坐标系下的坐标(0,0,h)到(X,Y,Z)的一个方向向量
8.A、B、C、D、E、F、T、h、k:
为变换函数中的参数
9.P:
旋转变换矩阵
10.Q:
平移变换矩阵
四模型假设
1.将照相机看做一个点,其坐标与光心所在坐标一致。
2.本题中数码相机成像系统看成是小孔成像。
3.照相机内部自动将小孔所成倒像进行反转处理,使其显示出正像。
五模型建立和求解
问题一
先对题目进行分析:
题目中,为了实现系统标定,而采用了标靶标定法。
使用这种方法,就是要根据标靶和标靶的像,找出相机的相对位置。
也就是说,本题的要求是:
已知:
物坐标系上点(x,y)和其在像坐标系上的对应点(u,v)。
求:
物坐标系上点(x,y)和其在像坐标系上的对应点(u,v)之间的变换函数。
按题目要求建立坐标系。
本题中一共要用到3个坐标系:
以照相机光学中心为原点建立的空间直角坐标系—光心坐标系,标靶所在平面上的平面直角坐标系—物坐标系,像平面上的平面直角坐标系—像坐标系。
光心坐标系:
以照相机光学中心为原点,以照相机光轴为Z轴。
像坐标系:
以光轴与像平面的交点为原点,光心坐标系X轴在像平面上的投影为X轴、正方向一致,光心坐标系Y轴在像平面上的投影为Y轴、正方向一致。
物坐标系:
以光轴与物平面的交点为原点,以物平面与过原点的水平面的交线为X轴,以物平面与过原点且垂直于X轴的平面的交线为Y轴。
按照以上方式建系后,物坐标系与像坐标系就被固定到了光心坐标系中。
这样就可以找出点在这3个坐标系之间的换算关系。
可以做到:
变换函数、物坐标系上点(x,y)、像坐标系上的对应点(u,v),这3个量之间知二求一。
建立变换函数、物坐标系上点(x,y)、像坐标系上的对应点(u,v)之间的函数关系。
设:
在光心坐标系中原点到物平面原点的距离为h
物平面在光心坐标系中的平面方程为:
物坐标系上点(x,y),其在像坐标系上的对应点为(u,v),在光心坐标系上的对应点为(X,Y,Z)。
点(x,y)与(0,0)所在直线与物坐标系上Y轴的夹角为β。
解:
物平面X轴在光心坐标系中的方程:
物平面Y轴在光心坐标系中的方程:
Y轴的一个方向向量:
物坐标系原点(0,0,h)到(X,Y,Z)的一个方向向量为:
物坐标系下:
光心坐标系下:
联立方程组:
解方程组,可以得到X,Y,Z关于x,y的函数表达式:
(式一)
其中:
得到物平面上点(x,y)在光心坐标系下的坐标(X,Y,Z)后,就可以得到(X,Y,Z)在像平面的坐标(u,v)。
(式二)
至此,已经成功的建立了物平面上点(x,y)与像平面的坐标(u,v)之间的变换函数。
现在,只要有标靶和标靶的像,就可以解出换算关系中的所有参数:
A、B、C、h。
将参数解出来就表示找出了特定的变换函数。
运用此函数关系,可以求出物平面上任意一点(x,y)在像平面上的坐标(u,v)。
只要知道圆心在物坐标系下的坐标,运用上述方法就可以解出像平面上的坐标。
问题二
要解决这个问题,首先需要解决的问题:
将两张图用数学的方式表述出来,需由图像到数字的转化,数学软件matlab可以实现。
首先将彩图转化为2值灰值图(程序见附录一),将图片经过简单的黑白处理后转化为单色的照片,如下图(图一)所示(圆A、B、C、D、E依次编号为圆1、2、3、4、5):
图一经过黑白处理后的照片
接着,我们用matlab实现边缘检测算法(见附录二),可以得到每个圆的像的边缘点集,并用多元线性回归求出椭圆的方程,然后按照程序中提供的方法,求出每个圆心的像的位置。
本题使用公切线模型,通过简单的几何证明,可以知道,在小孔成像时公切线交点的像就是公切线像的交点,联系题目中所给标靶的特殊性(所有圆全等),得出像平面中公切线交点连线的交点就是标靶中对应圆心的像。
公切线模型:
图二图三
如图所示,为标靶平面的示意图(图二)与像平面的示意图(图三)。
图中直线为公切线,物平面内,圆O1与O2、O3的公切点分别为B、D和A、C,对应像平面中椭圆O1’与椭圆O2’、O3’的公切点分别为D’、B’和C’、A’,由小孔成像的性质可以很容易得出A’、B’、C’、D’分别为A、B、C、D的像点。
图四图五
如上图所示为标靶上一个圆的示意图(图四)与像平面上该圆的示意图(图五)。
标靶平面内,显然四边形PQRS为正方形,则PR与QS连接交于圆心O1,由小孔成像的性质可知P’、Q’、R’、S’分别为PQRS的像,则P’R’与Q’S’也分别为PR与QS的像,则圆心O1所对应的像为P’R’与Q’S’的交点O1’。
我们编写了程序(见附录三),利用matlab对椭圆公切线进行了求解,所得的公切线图(图六),如下:
图六
在我们的程序中,还计算了切线之间的交点及其交点连线的交点,即圆心的像,结果如下表(表一):
光心坐标系下圆心像的坐标表
圆
X(mm)
Y(mm)
Z(mm)
1
-49.92
51.36
-417.20
2
-23.47
49.36
-417.20
3
33.88
45.05
-417.20
4
-60.04
-31.29
-417.20
5
18.58
-31.56
-417.20
表一
问题三
想要检验模型,最直接的方法是将真实情况与根据模型算出的结果进行比较。
为了检验我们的模型,我们引入了系统标定的另一种方法:
全站仪法【1】。
在同一地点,分别采用标靶法和全站仪法,对照相机的位置进行的测定。
将根据我们的模型算出的结果,与全站仪测出的结果进行比较,如果结果接近则说明我们的模型具有可行性。
如果,相差较大,则我们的模型不具有可行性。
用全站仪法测定照相机的相对位置,只要是雇佣专业的测绘人员进行操作,其结果的精度与稳定性都十分可靠。
其结果可以看做是真实情况。
因此,用这种方法进行检验,检验结果可信度高。
问题四
将照相机1的光心坐标系称为系1,照相机2的光心坐标系称为系2。
设物平面上一点在系1的坐标为(x,y,z),在系2的坐标为(x’,y’,z’)。
必然存在一个旋转变换矩阵P和一个平移变换矩阵Q。
使得:
设:
带入12组点的坐标,就可以解出矩阵P和Q
将系1坐标原点(0,0,0)带入上式,可求的其在系2的坐标(b1,b2,b3),这样就可以知道照相机1相对于照相机2的位置。
参考文献
【1】胡伍生,《土木工程测量学》,东南大学出版社,2011年6月第一版
附录
附录一
temp1=imread('orign.bmp','bmp');
data_orign=rgb2gray(temp1);
figure
(1);subplot(1,2,1);imshow(temp1);subplot(1,2,2);imshow(data_orign);
temp=imread('imaging.bmp','bmp');
附录二
formatlong
P=imread('picture.bmp');
lefttop=[100240
142244
170258
450545
471543];
rightbutton=[200368
375466
591685
200330
537624];
forcircle=1:
5
circle
if(circle~=1)
clearu;
clearv;
end
k=1;
fori=lefttop(circle,1):
lefttop(circle,2)
flag=0;
forj=rightbutton(circle,1):
rightbutton(circle,2)
ifflag==0&P(i,j)<10
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
elseifflag==1&P(i,j)<10&P(i,j+1)>200
u(k)=i;
v(k)=j;
k=k+1;
end
end
end
forj=rightbutton(circle,1):
rightbutton(circle,2)
flag=0;
fori=lefttop(circle,1):
lefttop(circle,2)
ifflag==0&P(i,j)<10
f1=0;
fortemp=1:
k-1
ifu(temp)==i&v(temp)==j
f1=1;
end
end
iff1==0
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
end
elseifflag==1&P(i,j)<10&P(i+1,j)>200
f1=0;
fortemp=1:
k-1
ifu(temp)==i&v(temp)==j
f1=1;
end
end
iff1==0
u(k)=i;
v(k)=j;
k=k+1;
flag=1;
end
end
end
end
axisequal;
axis([176811024]);
plot(u,v,'.');gridon;holdon;
x=ones(k-1,5);
y=ones(k-1,1);
fori=1:
k-1
x(i,:
)=[1v(i)u(i)u(i)*v(i)v(i)*v(i)];
y(i)=-u(i)*u(i);
end
[b,bint,r,rint,stats]=regress(y,x);
b
bint
stats
A=[2b(4);
b(4)2*b(5)];
B=[-b(3);-b
(2)];
X=A\B
xo=(X
(2)-512)/3.78
yo=(384-X
(1))/3.78
xlswrite(strcat('d:
/',num2str(circle),'.xls'),[u;v]');
end
附录三
jiaodian:
用于计算分别由两个点确定的两条直线的交点
functiony=jiaodian(m1,n1,m2,n2,m3,n3,m4,n4)
A=[n1-n2m2-m1;
n3-n4m4-m3];
B=[(n1-n2)*m1-(m1-m2)*n1;
(n3-n4)*m3-(m3-m4)*n3];
y=A\B;
jiaodian2:
用于计算由8个点确定的4条直线的交点连线的交点坐标
functiony=jiaodian2(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8)
d1=jiaodian(x1,y1,x2,y2,x3,y3,x4,y4);
d2=jiaodian(x5,y5,x6,y6,x7,y7,x8,y8);
d3=jiaodian(x1,y1,x2,y2,x7,y7,x8,y8);
d4=jiaodian(x5,y5,x6,y6,x3,y3,x4,y4);
y=jiaodian(d1
(1),d1
(2),d2
(1),d2
(2),d3
(1),d3
(2),d4
(1),d4
(2));
gongqiexian:
计算圆的像的的公切线并根据这个算出圆心的像的坐标
formatlong;
[p1,txt1,raw1]=xlsread('d:
/1.xls');
[p2,txt2,raw2]=xlsread('d:
/2.xls');
[p3,txt3,raw3]=xlsread('d:
/3.xls');
[p4,txt4,raw4]=xlsread('d:
/4.xls');
[p5,txt5,raw5]=xlsread('d:
/5.xls');
qd=ones(6,4);
P=imread('picture.bmp');
imshow(P);
holdon;
%求圆1的圆心
circle=1
X=jiaodian2(p1(qd(1,1),1),p1(qd(1,1),2),p3(qd(1,2),1),p3(qd(1,2),2),p1(qd(3,1),1),p1(qd(3,1),2),p4(qd(3,2),1),p4(qd(3,2),2),p1(qd(1,3),1),p1(qd(1,3),2),p3(qd(1,4),1),p3(qd(1,4),2),p1(qd(3,3),1),p1(qd(3,3),2),p4(qd(3,4),1),p4(qd(3,4),2))
x=(X
(2)-512)/3.78
y=(384-X
(1))/3.78
%求圆2的圆心
circle=2
X=jiaodian2(p2(qd(4,1),1),p2(qd(4,1),2),p4(qd(4,2),1),p4(qd(4,2),2),p2(qd(5,1),1),p2(qd(5,1),2),p5(qd(5,2),1),p5(qd(5,2),2),p2(qd(4,3),1),p2(qd(4,3),2),p4(qd(4,4),1),p4(qd(4,4),2),p2(qd(5,3),1),p2(qd(5,3),2),p5(qd(5,4),1),p5(qd(5,4),2))
x=(X
(2)-512)/3.78
y=(384-X
(1))/3.78
%求圆3的圆心
circle=3
X=jiaodian2(p1(qd(1,1),1),p1(qd(1,1),2),p3(qd(1,2),1),p3(qd(1,2),2),p3(qd(6,1),1),p3(qd(6,1),2),p5(qd(6,2),1),p5(qd(6,2),2),p1(qd(1,3),1),p1(qd(1,3),2),p3(qd(1,4),1),p3(qd(1,4),2),p3(qd(6,3),1),p3(qd(6,3),2),p5(qd(6,4),1),p5(qd(6,4),2))
x=(X
(2)-512)/3.78
y=(384-X
(1))/3.78
%求圆4的圆心
circle=4
X=jiaodian2(p4(qd(2,1),1),p4(qd(2,1),2),p5(qd(2,1),1),p5(qd(2,1),2),p1(qd(3,1),1),p1(qd(3,1),2),p4(qd(3,2),1),p4(qd(3,2),2),p4(qd(2,3),1),p4(qd(2,3),2),p5(qd(2,4),1),p5(qd(2,4),2),p1(qd(3,3),1),p1(qd(3,3),2),p4(qd(3,4),1),p4(qd(3,4),2))
x=(X
(2)-512)/3.78
y=(384-X
(1))/3.78
%求圆5的圆心
circle=4
X=jiaodian2(p4(qd(2,1),1),p4(qd(2,1),2),p5(qd(2,1),1),p5(qd(2,1),2),p3(qd(6,1),1),p3(qd(6,1),2),p5(qd(6,2),1),p5(qd(6,2),2),p4(qd(2,3),1),p4(qd(2,3),2),p5(qd(2,4),1),p5(qd(2,4),2),p3(qd(6,3),1),p3(qd(6,3),2),p5(qd(6,4),1),p5(qd(6,4),2))
x=(X
(2)-512)/3.78
y=(384-X
(1))/3.78
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 数码相机 定位
![提示](https://static.bingdoc.com/images/bang_tan.gif)