2008年大学生数学建模竞赛A题优秀论文(1)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们参赛选择的题号是(从 A/B/C/D 中选择一项填写):
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名):
杭州电子科技大学
参赛队员 (打印并签名) :1. 宋飞杰
2. 张佳喜
3. 司继春
指导教师或指导教师组负责人 (打印并签名): 数模组
日期: 2008 年 9 月 21 日
在如何检验模型的问题上,需要分两方面进行检验,一是精度,而是稳定性。 按照以上的方法求圆心在像平面上的坐标,并没有充分利用像平面上所有轮廓点的 信息,因此可以利用这些点来检验模型的精度。 对于稳定性问题,可以采用计算机模拟的方法,随机修改图形的轮廓,并用以上的 方法再次进行求解,通过比较修改前后的结果来分析模型的稳定性。 最后,考虑另外一台相机的定位相对位置问题。根据前面模型,我们应能够对任意 一台相机确定靶标相对它的位置,因此可以以这个靶标作为参照物,建立一个世界坐标 系,将这两台相机的位置在这个坐标系里面表示出来,以此确定两台相机的相对位置。
摘要
本文研究数码相机定位中有关系统标定的相关问题。 首先,本文建立了三个坐标系:像素平面坐标系、像物理平面坐标系和相机坐标系 。 其中像素平面坐标系和像物理平面坐标系是同一个平面针对不同需要而建立的;相机坐 标系是一个世界坐标系,它以相机为参照物。 然后针对第一问确定圆心在像平面上的坐标的问题,本文建立了两个子模型:针孔 相机模型和确定靶标相对相机位置的模型,然后提出了运用以上两个子模型求解坐标的 方法。 在第一个子模型针孔相机模型中,本文对数码相机进行了适当的简化,即把数码相 机看成是一个针孔相机的结构,利用射影几何的有关知识建立了从相机坐标到像物理坐 标的转换关系模型。 在第二个子模型确定靶标相对相机位置的模型中,本文利用像平面上四个图形公切 线的交点建立了与靶标平面的联系,并结合靶标的尺寸、形状,建立起了确定靶标位置 的模型。 在建立了以上两个子模型后,通过第二个子模型可以求出靶标上圆心在相机坐标系 中的坐标,再利用第一个子模型的转换关系,就可以得到圆心在像平面上的坐标。 针对模型的求解,本文使用模拟退火算法计算出了像平面上四条公切线交点的坐 标,并使用基于最小二乘法的 Matlab 优化工具箱的工具求解出靶标的位置,进一步求 出 了 圆 心 在 像 平 面 上 的 坐 标 , 五 个 坐 标 分 别 为 : A0(-190.26,-196.77),B0 (-88.88,189.15),C0 (129.74,-172.72),D0 (72.85,119.30),E0 (-229.13,119.21) 在模型的检验模型中,本文分别讨论了以上模型的精度和稳定性。在精度检验中, 我们将像平面上未被利用的图形的轮廓上的点映射回靶标平面上,并在靶标平面上检验 这个轮廓是否与相应的圆形重合。经过检验,轮廓上的点与相应的圆形之间的平均偏差 在 1 像素以内,说明以上模型的精度很高。 在随后的稳定性检验中,我们通过计算机模拟的方式,随机改变了像平面上图形的 轮廓,并对这些轮廓求解圆心,结果即使在轮廓损失了近 30%的信息量时,圆心的平均 偏移距离也只有 0.2682,不到一个像素,说明模型具有很好的稳定性。 最后,本文通过改变世界坐标系,以靶标作为参照物,给出了计算两台相机光学中 心、像平面中心坐标的方法,得出了两台相机相对位置的模型。
赛区评阅编号(由赛区组委会评阅前进行编号):
2008 高教社杯全国大学生数学建模竞赛
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用): 评 阅 人 评 分 备 注
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
数码相机定位算法研究
3. 相机坐标系
相机坐标即整个物理世界的坐标,现根据假设 1、假设 2 做如下坐标:以相机光学
中心为原点 O,O 与像的中心 Or 连成的直线为 z 轴,以过 Or 平行于像平面 Or-xryr 且平 行于 Orxr 的直线为 x 轴,以过 Or 平行于像平面 Or-xryr 且平行于 Oryr 的直线为 y 轴,建 立直角坐标系,如下图所示:
在提取图像轮廓时,首先要引入计算机图像处理技术中四邻域的概念。 四邻域:某个像素的上、下、左、右四个像素成为该像素的四邻域。如下图所示:
F
BG
C
AD
H
EI
图 1 四邻域示意图 则 A 的四邻域为 B、C、D、E 四个像素。在寻找边界时,对任意一个值为 1 的像 素,只要其四邻域有一个值为 0,则认为这个像素为边界上的像素。 此外,经过这样处理后还要剔除孤立的点。方法是若一个像素的周围(包括像素四 个角上的像素)值都为 0,则此点为孤立点,予以剔除。 提取图像轮廓的程序见附录二。
2008 高教社杯全国大学生数学建模竞赛
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网 上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的 资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参 考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规 则的行为,我们将受到严肃处理。
xr
v0
yr
1
1
(1)
其中 dx 和 dy 为像素点在 x 轴与 y 轴方向上的物理尺寸(在这里使用像素为单位),u0 和 v0 为点 Or 在像素坐标系中的坐标,s 为图像倾斜度,对于数码相机,可以认为图像倾 斜度为一个极小量,一般为 0。[1]
再次,我们选择 dx 和 dy 分别为 1,s=0,由于行、列像素数均为偶数,因此选择 u0=512.5,v0=384.5,此时,要计算 u、v 时,需要代入像素的中心的坐标来计算。
2
尺寸、形状等信息,我们就可以确定靶标在三维空间中与相机的位置关系。 确定了靶标与相机的位置关系后,就可以很容易的将靶标上的点投射到靶标像平面
上,当然也包括五个圆心。在求取出五个圆心的空间坐标之后,将其投射到像平面上, 就得到了第一问需要求的坐标。
在求解时涉及到一个问题,就是像平面上怎样确定切线。因为像平面上的图形是不 规则的,所以很难确定这些形状的切线。因此我们考虑另外的方法,使用搜索的办法, 利用模拟退火算法求解。
关键词: 系统标定 射影几何 针孔成像模型 模拟退火算法
1
一、 问题重述
数码相机定位在交通监管(电子警察)等方面有广泛的应用。所谓数码相机定位是 指用数码相机摄制物体的相片确定物体表面某些特征点的位置。最常用的定位方法是双 目定位,即用两部相机来定位。对物体上一个特征点,用两部固定于不同位置的相机摄 得物体的像,分别获得该点在两部相机像平面上的坐标。只要知道两部相机精确的相对 位置,就可用几何的方法得到该特征点在固定一部相机的坐标系中的坐标,即确定了特 征点的位置。于是对双目定位,精确地确定两部相机的相对位置就是关键,这一过程称 为系统标定。
6
z
Or
O xr
yr
x
y
图 5 相机坐标系示意图
(四) 分别提取五个圆轮廓的像素坐标
为了便于下面求解,还要将五个圆轮廓的坐标分别提取出来。由于在上一个处理中 , 已经将图像中可能出现的孤立的点除去,因此现在图像中只存在轮廓上的点,这意味着 图像中每一个像素值为 1 的点其四周至少有一个像素的值为 1。因此我们可以使用如下 方法提取五个圆轮廓的像素坐标:
(1) 将文件读入 Matlab,使用 imread()函数 (2) 将矩阵变为 0-1 矩阵
对于用以上方式得到的矩阵,有两个值:0、15。其中 0 代表像素为白色的点,15 代表像素为黑色的点。为了方便下面处理,对需要把以上像素为 15 的点值全部变为 1。
以上两步的源代码见附录一。
3
(二) 图像轮廓的提取
对于三维坐标(X,Y,Z),其齐次坐标表示为(X1,X2,X3,X4),其中 X=X1/X4,Y=X2/X4, Z=X3/X4。对于非零数λ,λ(X1,X2,X3,X4)与(X1,X2,X3,X4)表示同一个点。若 X4=0,则该 点位无穷远点。[2]
2. 针孔相机透视模型
提取出的轮廓见下图:
图 2 提取出的轮廓示意图
4
(三) 坐标定义
1. 像素平面坐标系 像素平面坐标即像素的行、列所标识的坐标,如下图所示:
12 3 456
n
Op
1
……
u
2
3
4 5
6 …
m
v 图 3 像素平面坐标示意图
其中每个像素表示为矩阵的行、列数,如(u,v)=(1,1)代表第一行第一列的像素。 2. 像物理平面坐标系
i.令 k=1 ii. 令 i=1,j=1 iii. 判断(i,j)像素值是否为 1,若不为 1,进入第 v 步,否则,进入第 iv 步 iv. 令 i=i+1,j=j+1,跳至第 ii 步。若 i=1024 且 j=768,终止程序。 v. 将(i,j)记录至 Bk,并判断(i-1,j)、(i+1,j)、(i,j+1)、(i,j-1)、(i-1,j-1)、(i-1,j+1)、(i+1,j-1)、 (i+1,j+1)是否等于 1,并令(i,j)为以上检验出等于 1 的数值,跳至下一步 vi. 判断(i,j)像素值是否为 1,若不为 1,将(i,j)记录至 Bk,进入下一步,否则,进入 第v步 vii. 令 k=k+1,对整幅图像剔除孤立点,进入第 ii 步。 通过以上步骤即可得到五个圆的轮廓的坐标(源程序见附录三)。
标定的一种做法是:在一块平板上画若干个点, 同时用这两部相机照相,分别得 到这些点在它们像平面上的像点,利用这两组像点的几何关系就可以得到这两部相机的 相对位置。然而,无论在物平面或像平面上我们都无法直接得到没有几何尺寸的“点”。 实际的做法是在物平面上画若干个圆(称为靶标),它们的圆心就是几何的点了。而它 们的像一般会变形,所以必须从靶标上的这些圆的像中把圆心的像精确地找到,标定就 可实现。要求给出求解圆心的算法以及方法精度和稳定性的检验,最后讨论两部固定相 机的相对位置关系。
二、 符号说明
Op
像素平面坐标系原点
u
像素平面坐标系横轴
v
像素平面坐标系纵轴
Or
像物理平面坐标系原点
xr
像物理平面坐标系横轴
yr
像物理平面坐标系纵轴
O
相机坐标系原点
x
相机坐标系横轴
y
相机坐标系纵轴
M
投影矩阵
R
旋转矩阵
t
平移矢量
K
相机标定矩阵
AB( 粗 体 ) 向量 AB,粗体表示向量
三、 问题分析
题目第一问要求建立确定靶标上圆的圆心在像平面的坐标的模型。由于存在畸变, 所以像平面的图形并不是规则的形状,单纯从像平面的图形出发显然不能找到这个圆心 在像平面的坐标。题目中给出了靶标的尺寸等信息,但是靶标像上的点却很难与靶标上 的点建立起对应关系。因此我们需要将模型简化,简化成一个小孔成像的模型,这样就 可以很容易的将五个圆的外公切线的交点对应起来。对应起这四个点之后,配合靶标的
7
六、 模型建立
(一) 针孔相机模型的建立
相机即一个从三维世界点的集合到二维世界点的集合的一个映射。针孔相机模型是 一个没有引入任何非线性畸变的映射,空间点 P 通过一个 3×4 的矩阵映射到影像点 p。
1. 射影几何
射影几何是本文讨论的基础。射影几何是欧氏几何的扩展,解决了欧氏几何中无穷 远处元素的问题。
四、 模型假设
1、 假设靶标像的中心恰好在光轴上 2、 假设数码相机中图像平面与光轴垂直 3、 假设相机两个方向上焦距相等 4、 假设透镜的焦距很小,像距约等于焦距
五、 模型准备
(一) 靶图像矩阵表示
首先将题目中的图片保存出来,得到的图像可以很方便的放到 Matlab 里面进行处 理。但在处理之前还要进行进一步加工:
像物理平面坐标系是以图像的中心为坐标原点的坐标系,如下图所示:
5
Op u
Or xr
Байду номын сангаас
v
yr
图 4 物理平面坐标示意图
图中 Op-uv 坐标系为像素平面坐标系,Or-xryr 为物理平面坐标系。两者的转换关系 为[1]:
1
u
d
x
v
0
1
0
s
1 dy 0
u0