
数码相机的定位.docx
32页数码相机定位■ 2008高教社杯全国大学生数学建模竞赛题目(请先阅读“全国大学生数学建模竞赛论文格式规范”)A题数码相机定位数码相机定位在交通监管(电子警察)等方面有广泛的应用所谓 数码相机定位是指用数码相机摄制物体的相片确定物体表面某些特征 点的位置最常用的定位方法是双目定位,即用两部相机来定位对物 体上一个特征点,用两部固定于不同位置的相机摄得物体的像,分别获得该点在两部相机像平面上的坐标只要知道两部相机精确 的相对位置,就可用几何的方法得到该特征点在固定一部相机的坐标系 中的坐标,即确定了特征点的位置于是对双目定位,精确地确定两部 相机的相对位置就是关键,这一过程称为系统标定标定的一种做法是:在一块平板上画若干个点,同时用这两部相 机照相,分别得到这些点在它们像平面上的像点,利用这两组像点的几 何关系就可以得到这两部相机的相对位置然而,无论在物平面或像平 面上我们都无法直接得到没有几何尺寸的“点”实际的做法是在物平 面上画若干个圆(称为靶标),它们的圆心就是几何的点了而它们的 像一般会变形,如图1所示,所以必须从靶标上的这些圆的像中把圆心 的像精确地找到,标定就可实现 图1靶标上圆的像有人设计靶标如下,取1个边长为100mm的正方形,分别以四个顶点(对 应为A、C、D、E)为圆心,12mm为半径作圆。
以AC边上距离A点30mm 处的B为圆心,12mm为半径作圆,如图2所示图2靶标示意图用一位置固定的数码相机摄得其像,如图3所示图3靶标的像请你们:(1) 建立数学模型和算法以确定靶标上圆的圆心在该相机像平面的 像坐标,这里坐标系原点取在该相机的焦点,x-y平面平行于像 平面;(2) 对由图2、图3分别给出的靶标及其像,计算靶标上圆的圆心在 像平面上的像坐标,该相机的像距(即焦点到像平面的距离)是 1577个像素单位(1毫米约为3.78个像素单位),相机分辨率为 1024X786;(3) 设计一种方法检验你们的模型,并对方法的精度和稳定性进行 讨论;(4) 建立用此靶标给出两部固定相机相对位置的数学模型和方法解题分析:•、问题的描述:1•数码相机监视系统,是由:景点(scene)方位、相机参数以及方位、成像参数等部 分组成的系统,系统的标定就是要确定系统各部分的相互关系(主要是几何、数量关系),系统的参数主要有两部分:1)相机的内参数:用于描述相机本身 特定属性的参数以及在空间中定位的参数,2)相机的外参数:是 指相机相对与世界坐标系(用于公共参考的坐标系)的位置关系, 主要由相机坐标系到世界坐标系的变换(平移、旋转)来描述。
确定了相机的内参数和外参数,系统就标定成功2•图示u 景点在像平面中的像;u0C 主光轴(相机坐标系Z轴)上的点在像平面的像点(殴氏坐标);u0 主光轴(相机坐标系Z轴)上的点在像平面的像点(仿射坐标);0a3.坐标系统世界坐标系相机坐标系OX YZc c c c像欧氏坐标系像仿射坐标系[注:世界坐标系是系统的一个客观的参考系;相机坐标系原点在相机光心(焦点);像的欧氏坐标系与相机坐标系的关系是:Z轴平行且同向,X-Y面平行;像仿射坐标系与像欧氏坐标系关系密切,Z轴,丫轴平行,X轴有个倾斜, 主要考虑是,像素的方快长和宽可以不等,而且,视觉效果上可能会出现倾斜情况4•射影几何简介主要介绍如何通过2D图像信息实现3D世界的自动测量,这里的测量主要指,3D中 点的空间坐标,以及通过2D图像两点位置关系测量三维距离信息,这里限于针孔模型(thin lens)也称中心投影(central projection)针孔模型的图像信息中,3D中的平行线不在保 持平行射影空间的概念考虑不包括坐标原点的n+1维空间,Rn+i-{0,0,...0},定义一个等价关系, [x1,x2,...,xn]T等价于[x1',x2',…,xn']T当且仅当存在存在非零数值t, 使,凶厲,…,Xn,xn+1]T =t *[x1';x2'J...;xn;xn+1']T ,射影空间Pn等于Rn+1-{0,0,...0}关于此等价关系的商空间,射影 空间中的点称为齐性类,射影空间中的点的坐标通常用齐性坐标表示为, x*=[x1;x2;...,xn;1]T ,最后一个坐标为 1,事实上,通过原点的任意直线上的点(原点除外)属于同一个等价类.[于是,对相机坐标系的过原点的任意射线上的点,是等价类,因为他们的像点相同].于是,射影空间Pn可以和Rn建立起 对应,,[x1;x2;...,xn;1]T [x1;x2,...,xn]T[注:在这样的表示下的好处是,坐标变换中的平移、旋转的表达形式达到一致,后面 会看到这一点。
一个射影变换是一个(n+1)*(n+1)矩阵A 使y*=Ax*,与A相差一个数值因子的变换 也是射影变换光学中心、像平面、场景示意图二、求解的思想1. 建立系统的坐标变换描述,坐标间的位置关系(主 要有:1)世界坐标系到相机坐标系的平移和旋转变换,2)相 机坐标系到像坐标系的仿射变换,确定需描述的系统参数.2. 根据已知靶标上的景点坐标与像平面对应的像素 坐标,建立方程组,求解方程组确定系统参数•完成系统的初步标 定.3. 根据标定的系统,系统参数已知,计算相应景点的 像素坐标用于检验偏差,或采用特殊的坐标系或特殊的位置关系 检验系统标定的效果.4. 上述是单相机监视系统,根据单相机系统,确定 两个相机的摄象机矩阵P, P'由此,确定两部相机的相对位置.[注:把标是平面图形,因此,两幅图片存在单应关 系,两幅图片间存在单应矩阵]三、单相机定位系统的描述1.世界坐标系中的坐标 到 相机坐标系的坐标的转 换:Xw是景点X在世界坐标系中的表示,点X的坐标由世 界坐标系转换至相机坐标系的变换为:Xc = R(Xw - t), t为 平移列向量,R为三阶正交矩阵,而Xc是点X在相机坐标系 下的坐标;2.景点以及对应像点的三维坐标:X的三维成像坐标,的推导:Xc的三维像点Uc 设Xc=[xc, yc, zc]T , Uc = [-fxc/zc, -fyc/zc, -f 卩 Uc 的坐标推导,见下述示意图(应用成像原理针孔模型)相机坐标系的原点是相机的焦点,则由原点出发的射线上的任何点具有相同的像素坐标,这样的点在相机坐标系 下的坐标具有性质:[xc,yc,zc],[xc', yc', zc']对应坐标成比例。
既存在a非零常数,:[xc,yc,zc] = a[xc', yc', zc'],这种关系是定义在相机坐标系下三维空间中点 坐标的一个等价关系,利用等价关系将R3等价类的商空间,其中的类中每个景点成像具有相同的二维像素坐标3.三维像点坐标到像素坐标的转换1) OiXiYiZi (像平面欧几里得坐标系):OXY面作为成像像素坐标平面,为此根据像素坐标特点,坐标系原点取在左上角,Z轴与相机坐标系Z轴有相同的指向,相机坐标系的Z轴与像素平面交点是像素平面的主点,像素坐标记为[uO, V0];2) OUVW坐标系(像素平面仿射坐标系):W与Zi相同,V轴是Yi的伸缩,UV面是XiYi面的仿射T T3) 由 Xc=[xc,yc,zc] ,Uc = [-fxc/zc,-fyc/zc,-f ]到[U, V,W]的变换如果已知[u,v]坐标与[xc,yc,zc]的数据,有一对点的数据就可以得到两个方程,对足够的信息量,就可以将参数确定下来4-景点坐标到像素坐标的变换设世界坐标系转换至相机坐标系的变换为:Xc = R (Xw - t), t为平移列向量,R为三阶正交矩阵,而Xc是点X在相机坐标系下的坐标;则有5.建立求解M的方程组上述可建立2k个12元的齐次方程组,可以通过Matlab中的null函数求解6. K,R,t矩阵的计算M是3行4列矩阵,前3列构成的方阵是A = KR,后1列为b = -KRt1)利用Matlab中的函数[k,r] = qr(A)可以实现从矩阵A得到,上三角矩阵K,和正交矩阵R-12)t = A *b四、标定示例的计算1•取世界坐标系OWXWYWZW原点为靶标中心,靶标平面为XOY面,Z轴指向相机方向。
于是可确定其上5个圆的圆心在世界坐标系中的坐标,在加上靶标中心的世界坐标系的原点,六个点的坐标列表 xyz=[2.靶标上的六点对应的像坐标的确定1)将靶标的像(题目本身给出的靶标的像就是1024*768分辨率)按1024*768分辨率,建立图像文件(复制到画板中,保存为24色真彩图或256色或16色索引图像,保存到Matlab中work文件夹24色真彩图的图像文件没有颜色表,图像矩阵为1024*768*3大小,256色或16色位图包含图像矩阵1024*768大小,和颜色表分表为256*3, 16*32)转换为灰度图像对24位真彩图w = imread('babiaoxiang.bmp') % 读出图像矩阵 wwgray = rgb2gray(w) % 将w矩阵转换为灰度矩阵(注,w为1024*768*3,而 wgray 是 1024*768)imshow(wgray)%显示灰度图像对于索引图像(256色或16色色拉图)[w, map] = imread('babiaoxiang.bmp') % 读出图像矩阵和颜色表wgray = ind2gray(w,map)%转换为灰度矩阵imshow(wgray)%显示灰度图像3)转换为二值图像选取适当阈值将灰度图像转换为二值图像n=size(wgray)for i=1:n(1)for j=1:n(2)if (wgray(i,j)<50)wgray(i,j)=0;elsewgray(i,j)=255;endendendwgray=edge (wgray)(2)将边缘点集合定义出来逐个像素判断是否是边缘,是,将像素坐标累计追加到边缘点坐标集合中5)将边缘点分类(1)最小距离聚类两个边缘点距离小于5个像素就被分成一类,按这个原则,就可以把所有边缘点分成若干类,每一类计算类中心像素坐标。
I)计算两两边缘点的距离矩阵||)初始时各点成一类,将距离最小的两点合并成一类,类数减少III)计算各类距离,再将距离最小的两类合并,直至最后合并为一类本题可以实施到类间距离大于5,不在合并2) 已知分为五类|)每一类中确定一个两个坐标平均值猜测的初始向量III) 将第一次分类结果得到的各类边缘点,求坐标平均值向量作为下一次分类的各类中心,继IV) 迭代一定次数为止3)有逐个边缘点按距离小于一定阈值进行分类6)计算各类像素平均坐标,写出[u(i),v(i)] i=1,2,3,4,5,6按K—均值聚类并计算各类边界点平均坐标的程序:clearw=imread('camrea.bmp');w=rgb2gray(w)n=size(w);for i=1:n⑴for j=1:n(2)if(w(i,j)<50)w(i,j)=0;elsew(i,j)=255;endendendww=edge(w);n=size(w)ed=[];imshow(w);for i=1:n(1)for j=1:n(2)if(w(i,j)==1)ed=[ed,[i;j]];endendend%center=[190,195,210,501,50。












