《数字图像处理系统导论》课件第6章_第1页
《数字图像处理系统导论》课件第6章_第2页
《数字图像处理系统导论》课件第6章_第3页
《数字图像处理系统导论》课件第6章_第4页
《数字图像处理系统导论》课件第6章_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章目标位姿测量系统6.1成像模型

6.2摄像机标定

6.3立体匹配

6.4三维重建6.5立体视觉目标测量系统6.6小结习题

20世纪70年代中期,以Marr、Barrow和Tenenbaum等人为代表的一些研究者,提出了一整套视觉计算的理论来描述视觉过程,其核心是从图像恢复物体的三维形状。经过近三十年的发展,在Marr的理论框架下,立体视觉取得了一大批成果。但随着立体视觉研究的不断深入,人们发现了Marr视觉理论的局限性,即从景物图像或系列图像求出景物精确的三维几何场景并定量地确定景物中物体的性质时遇到了困难。

立体视觉借助不同观察点对同一景物间的视差来帮助求取3D信息(特别是深度信息)。所以需要判定同一景物在不同图像中的对应关系,选择合适的图像特征以进行多图像间的匹配。根据对所选特征的计算来建立特征间的对应关系,从而建立同一个空间点在不同图像中的像点之间的关系,并由此得到相应的视差图像。根据得到的视差图像,可以进一步计算深度图像,并恢复场景中的3D信息,而3D信息常不完整或存在一定的误差,因此需要进行插值等改善图像质量。典型的立体视觉计算过程如图6-1所示。图6-1典型的立体视觉计算过程对上述这些理论和方法的研究有力地促进了相关应用的发展,这些应用领域包括对照片特别是航空照片和卫星照片的解释、精确制导、移动机器人立体视觉导航、医学辅助诊断、工业机器人的手眼系统、地图绘制、物体三维形状分析与识别以及智能人机接口等。在立体视觉的应用方面不乏成功的例子。

进入20世纪80年代中后期,随着移动式机器人立体视觉研究的发展,大量运用空间几何的方法以及物理知识来研究双目立体视觉,主要是完成对道路和障碍的识别处理。这一时期引入主动视觉的研究方法,并采用了距离传感器以及视觉融合技术等,由于这种研究方法可直接取得深度图或通过移动获取深度图,因而使很多病态问题变成良态的。此外,在视觉的研究中重视了对定性视觉、有目的的视觉等的研究。 6.1成像模型

计算机视觉研究中,三维空间中的物体到像平面的投影关系即为成像模型,理想的投影成像模型是光学中的中心投影,也称为针孔模型。针孔模型主要由光心(投影中心)、成像面和光轴组成,如图6-2所示。像点是物点和光心的连线与图像平面的交点。为了定量地描述摄像机成像过程,首先定义以下四个坐标系:世界坐标系、摄像机坐标系、计算机图像坐标系和图像坐标系。但在针孔模型中,假设成像面在光心的前端f处,这样可以使图像坐标系与计算机图像坐标系对齐,以简化运算。图6-2摄像机针孔透视变换模型

1.图像坐标系Oxy与计算机图像坐标系uv的关系

如图6-3所示,计算机图像坐标系uv的坐标原点是O0,图像坐标系Oxy的坐标原点是O1,O1定义为摄像机光轴与图像平面的交点,该点一般位于图像中心处。若O1在uv坐标系中的坐标为(u0,v0),每一个像素在x轴与y轴方向上的物理尺寸为dx、dy,则图像中任意一个像素在两个坐标系中的坐标有如下关系:(6-1)

写成齐次方程为(6-2)图6-3图像坐标系

2.世界坐标系OwXwYwZw与摄像机坐标系OcXcYcZc的关系

如图6-4所示,假设空间中某一点P在世界坐标系OwXwYwZw与摄像机坐标系OcXcYcZc下的齐次坐标是(Xw,Yw,Zw,1)T与(Xc,Yc,Zc,1)T,则存在如下关系:(6-3)图6-4摄像机坐标系与世界坐标系式中:R为3×3正交单位矩阵,称为旋转矩阵,表征两坐标系之间的旋转关系;t为三维平移向量,表征两坐标系之间的平移关系;0=(0,0,0)T;M1为4×4矩阵。另外,旋转矩阵R是由三个旋转角度确定的,分别是绕摄像机坐标系x轴的α、绕摄像机坐标系y轴的β和绕摄像机坐标系z轴的γ。R与三个旋转角度分关系可用下式表示:(6-4)

3.摄像机坐标系OcXcYcZc与图像坐标系Oxy的关系

根据针孔模型,空间任何点P在图像上的投影位置p,为光心O与P点的连线OP与图像平面的交点,这种关系称为中心摄影或透视投影。由比例关系有如下关系式:(6-5)式中:(x,y)为P点的图像坐标;(Xc,Yc,Zc)为空间点P在摄像机坐标系下的坐标。用齐次坐标与矩阵表示上述透视投影关系:(6-6)

4.世界坐标系OwXwYwZw与计算机图像坐标系uv的关系

将式(6-2)与式(6-3)代入式(6-6),则得到以世界坐标系表示的P点坐标与其投影点p的坐标(u,v)的关系:(6-7)图6-5标定参照物

6.2摄像机标定

6.2.1线性摄像机标定

Abdal-Aziz和Karara于20世纪70年代初提出了直接线性变换摄像机标定方法,它是利用三维标定参照物(如图6-5所示)求解投影矩阵M的算法。

将式(6-7)写成下式:(6-8)式(6-8)包含3个方程:

消去Zci,可得如下两个关于mij的线性方程:(6-10)(6-9)用矩阵表示为(6-11)由式(6-7)可见,M矩阵乘以任意不为零的常数并不影响(Xw,Yw,Zw)与(u,v)的关系。因此,在式(6-11)中指定m34=1,从而得到关于M矩阵其他元素的2n个线性方程,这些未知元素的个数为11个,记为11维向量m,将式(6-11)简写成:

Km=U

(6-12)

式中:K为式(6-11)左边2n×11矩阵;m为未知的11维向;U为式(6-11)右边的2n维向量;K、U为已知向量。当2n>11时,可用最小二乘法求出上述线性方程的解为

m=(KTK)-1KTU

(6-13)

m向量与m34=1构成了所求解的M矩阵。由上可见,由空间6个已知点与其计算机图像点坐标,可求出M矩阵。但实际上,被采用的特征点远不止6个,所用到的方程个数远大于未知量的个数,进而可利用最小二乘法求解M矩阵,以便降低由单个点的坐标误差造成的影响。

值得注意的是,在求解过程中,要对m34进行处理,即指定m34=1,这样获得的M是基于一个非零比例因子意义下相等的矩阵。虽然这并不影响投影关系,但在分解M以求内参数矩阵时必须考虑。其实,在方程中的M矩阵可写成:(6-14)由式(6-14)可得

由上式两边对应相等关系可知,m34m3=r3。又由于r3是正交单位矩阵的第三行,所以|r3|=1。因此,由m34|m3|=1可得m34=1/|m3|。

同理,可根据方程(6-15)两边对应项相等的关系得到如下解:(6-15)(6-16)6.2.2非线性摄像机标定

张正友的平板标定方法是介于传统标定方法和自标定方法之间的一种方法。它既避免了传统方法设备要求高,操作繁琐等缺点,又较自标定方法精度高。

如前所述,根据针孔成像原理,由世界坐标点到理想像素点的齐次变换如下:

式中:r是一个比例因子;s为计算机图像坐标系与图像坐标系之间的倾斜量;fx和fy分别是x轴与y轴的换算因子。(6-17)

1.单应性矩阵的计算

不失一般性,取模板所在平面为世界坐标系的Zw=0平面。用ri表示R的第i列向量,那么对于模板平面上的点都有:

模板平面上的点和其像点之间建立了一个映射H=A[r1

r2

t],这个矩阵被称为单应性矩阵(Homography)。

设(6-18)可得

整理得

其中,

h=[h11

h12

h13

h21

h22

h23

h31

h32]T

选取4对以上匹配点,可线性求解单应性矩阵H。(6-19)(6-20)令H=[h1

h2

h3],则

[h1

h2

h3]=lA[r1

r2

t] (6-21)

因为r1和r2是单位正交向量,即

所以

式(6-22)为摄像机内部参数的求解提供了两个约束条件。由于平面标定模板的单应性矩阵具有8个自由度,外部参数占据了其中的6个(3个旋转和3个平移),因此只能利用剩下的2个约束条件。(6-22)

2.参数求解

令(6-23)可以看出,B为对称矩阵,定义6维向量b=[B11

B12

B22

B13

B23

B33]T,则有

式中

hi=[hi1

hi2

hi3]T

vij=[hi1hj1

hi1hj2+hi2hj1

hi2hj3

hi3hj1+hi1hj3

hi3hj2+hi2hj3

hi3hj3]T

根据式(6-22)所示的约束条件,可以得到关于向量b的两个齐次方程:

(6-25)(6-24)若有n幅平面模板图像,根据式(6-25),则可得到线性方程组:

Vb=0

(6-26)

其中,V是一个2n×6的矩阵。如果n≥3,则可以列出6个以上的方程,从而解出一个带有比例因子的b。如果n=2,那么方程的个数少于未知数的个数,考虑到常用的CCD传感

器芯片都为方形,可以假定A中的坐标轴夹角为90°,即倾斜因子s=0,则有[010000]b=0,这就为式(6-26)提供了一个新的约束条件。如果n=1,则需进一步假定光心投影在图像的中心,方可求出解来。式(6-26)的最小二乘解为VTV最小的特征值对应的特征向量。求得b即可获得矩阵B,根据式(6-23)可求得摄像机的所有内部参数:(6-27)利用内参数A和单应性矩阵H,每个不同视点的摄像机外参数可按如下公式求得:

由于噪声的存在,R一般不满足旋转矩阵的性质,故采用最小距离准则来求解。(6-28)

3.最大似然估计

经过上述最小距离准则计算出来的R,需要采用最大似然估计对结果进行精确地求解。

设有n幅关于模板平面的图像,每幅图像中有m个标定点,每个标定点的数据都被独立同分布的噪声所污染。建立目标函数如下:

式中:mij是第i幅图像中第j个点的像点坐标;Ri、ti分别是第i幅图像坐标的旋转矩阵和平移矩阵; 是第i幅图像中第j个点的世界坐标;Mj是通过式(6-18)求得的像点坐标。(6-29)

4.标定步骤

(1)打印标定图像并将其贴到一个平板上;

(2)通过移动摄像机或标定板获得几幅在不同角度下的标定板图像;

(3)检测图像中的特征点;

(4)用如前所述的封闭解来求解摄像机所有的内外参数;

(5)用式(6-28)的最小解来精确求出所有的参数,包括畸变参数。6.2.3立体视觉摄像机标定

在立体视觉系统中,一般需要用两个摄像机。与单摄像机标定的差别是,需要通过定标,测量双摄像机之间的相对位置。

如图6-6所示,在定标中,分别得到两个摄像机各自的内外参数,如果外参数分别用R1、t1与R2、t2表示,则R1、t1表示C1摄像机与世界坐标系之间的相对位置,R2、t2表示C2摄像机与世界坐标系的相对位置。对任意一点P,如它在世界坐标系、C1坐标系与C2坐标系下的非齐次坐标分别为Xw、 ,则(6-30)消去Xw后得到

由上式可知,两个摄像机的几何关系可用以下R和t表示:(6-32)(6-31)图6-6立体视觉中双摄像机的几何关系 6.3立体匹配

立体匹配是指寻找同一空间景物,在不同视点下投影图像中像素间的一一对应关系。与普通的图像模板匹配不同,立体匹配是在两幅或多幅存在视点差异、几何和灰度畸变以及噪声干扰的图像对之间进行的,不存在任何标准模板。

当空间三维场景被投影为二维图像时,受场景中诸多因素,如光照条件、景物几何形状、噪声干扰和畸变以及摄像机特性等的影响,同一景物在不同视点下的图像会有很大不同。要准确地对包含了如此多不利因素的图像进行无歧义的匹配,是颇为困难的。对于任何一种立体匹配方法的设计,都必须解决以下三个方面的问题。

(1)基元选择:选择适当的图像特征作为匹配基元,如点、直线、区域、相位等。

(2)匹配准则:将关于物理世界的某些固有特征表示为匹配所必须遵循的若干规则,使匹配结果能真实反映景物的本来面目。

(3)算法结构:利用适当的数学方法设计能正确匹配所选基元的稳定算法。

6.3.1极线约束

极线约束可以极大地降低待验证的可能匹配点对的数量,把一个点在另一幅图像上可能匹配的点的分布从二维降到了一维。下面将介绍极线的性质和计算方法。

如图6-7所示,如果p1与p2为对应点,则由于p1、p2、P、O1、O2在同一平面S上,p1与p2分别位于S与两个图像的交线l1与l2上,l1称为I1图像上对应于I2图像上p2点的极线(简称p2点的极线),l2称为I2图像上对应于I1图像上p1点的极线(简称p1点的极线)。下面给出极线的一些性质。

(1)在I2图像上的所有极线交于同一点e2(见图6-7),e2称为极点。类似地,在I1图像上的所有极线交于e1点。e1(或e2)是O2(或O1)在I1(或I2)图像上的投影点,O1、O2、e1、e2共线。图6-7立体图对的极线与极点由图6-7可见,对应于p1点的,在I2上的极线l2是射线O1p1在I2的投影,这是因为射线O1p1上的任意一点p'都在O1、O2、P三点决定的平面S上,故O2p'也在S平面上,O2p'与I2的交点p'2必然同时在S平面与I2平面上,所以该交点必在S与I2

的交线即l2上。在空间任取不在S平面上的一点Q,在I1上的图像为q1点,在I2上的极线为l'2(见图6-7),则l'2必然是O1Q在I2上的投影。由此可见,所有在I2平面上的极线均为连接O1与空间某点的射线的投影,所有这些射线都过O1点,由射影几何知,在空间共点的射线束的投影也共点,因此,所有在I2上的极线必共点,而交点e2即为射线束交点O1在图像I2

上的投影,即连接O1O2的直线与I2的交点(见图6-7)。同理,I1上的全部极线交于e1,e1为连接O1O2的直线与I1平面的交点,所以O1、O2、e1、e2共线。

(2)当已知双摄像机投影矩阵M1与M2时,极线方程可以由它们求得。

(3)当两个摄像机的光心连线与某一摄像机图像平面平行时,该摄像机图像平面的极点位于无穷远点,即所有的极线互相平行,更特殊的情况下,当光心连线与图像平面的x轴互相平行时,极线为与x轴平行的直线(见图6-8)。

图6-8双摄像机配置

(4)I1上的极线束与I2上的极线束互为射影变换。由图6-9可见,若空间任意过O1O2的四个平面与某空间直线的交点分别为S1、S2、S3、S4,在I1与I2平面上,它们的投影分别为s11、s12、s13、s14与s21、s22、s23、s24,I1与I2上的极线束为e1s1i(i=1,…,4)与e2s2i(i=1,…,4),则由射影几何知,S1、S2、S3、S4的交比等于s11、s12、s13、s14的交比,并等于s21、s22、s23、s24的交比,因此两个极线束的交比相等。图6-9极线束互为投影变换在对摄像机进行立体视觉摄像机标定后,就得到了两个摄像机的投影矩阵M1和M2,可以利用这两个投影矩阵求得极线方程。两个摄像机的投影方程(6-7)写成:

式中:xp为空间某点P在世界坐标系下的齐次坐标;u1、u2分别是点p1与p2点的图像齐次坐标;M1与M2矩阵中左面的

3×3部分记作Mi1(i=1,2),右边3×1部分记作mi(i=1,2)。(6-33)

将 ,记作xp=(xT

1)T,其中 ,则式(6-33)可展开为

消去x得

令 ,将由m定义的反对称矩阵[m]×左乘式(6-35)两端,由于[m]×m=0,所以

令 ,得(6-34)(6-35)(6-36)(6-37)可见,上式右边的向量与u2正交,将左乘上式的两边,并除以Zc可得到如下关系:

令 ,则上式可写成

式(6-38)和式(6-39)给出了u1与u2(两个摄像机对应点p1与p2图像的齐次坐标)所必须满足的关系。在给定u1的情况下,式(6-38)是一个关于u2的线性方程,即I2图像上的极线方程。反过来,当给定u2时,式(6-39)是关于u1的线性方程,即I1

图像上的极线方程。式(6-39)还表明,在给定u1(或u2)时,极线方程只与M1与M2矩阵有关。两幅图像的极线约束示例图如图6-10所示。(6-39)(6-38)图6-10极线约束示例图

6.3.2立体匹配算法

因为单个像素的灰度不能够提供足够的信息,所以该算法先以基准图中一个像素点为中心创建一个邻域匹配窗口,用邻域像素的灰度值分布来表征该像素,然后从待匹配图中寻找对应像素,以该像素为中心创建一个同样大小的窗口,使其邻域像素的灰度值分布与前者的相似性满足一定的阈值条件。

对于已经进行外极线校正的立体图像对,可以认为匹配的对应点在图像的同一行上,如图6-11所示。图6-11成像及匹配示意图

区域相关匹配原理如图6-12所示。对于图(a)中的点I1(x,y),可以从右图中同一水平扫描线搜索其匹配点。但是在此之前,首先要定义描述两个窗口灰度分布差异的灰度相关测度函数,并选择窗口的大小,当两个窗口包含的灰度测度函数值达到最小时,认为这两个窗口的中心点是匹配的。

图6-12中,O1O2分别是图(a)、(b)的图像像素坐标系的原点,u、v分别是计算机图像坐标系的横轴和纵轴,匹配窗口大小为(2n+1)×(2m+1)(n=0,1,2,…;m=0,1,2,…),[-D,+D]是搜索范围,d表示视差值。图6-12区域相关匹配原理假设以图(a)为基准图,令C为匹配测度,d为滑动窗口的位移量,Wp为匹配窗口,Il(x,y)和Ir(x+d,y)分别为图(a)和图(b)中匹配窗口中心像素的灰度值,

分别是图(a)和(b)匹配窗U内的像素灰度值均值。以下为几种常见的灰度相关测度函数:

(1)灰度差绝对值之和(SumofAbsoluteDifference,SAD)(6-40)

(2)零均值灰度差绝对值之和(ZSAD)

(3)灰度差绝对平方和(SumofSquaredDifference,SSD)

(4)零均值灰度差绝对平方和(ZSSD)(6-41)(6-42)(6-43)

(5)灰度归一化相关(NormalizedCross-Correlation,NCC)

(6)零均值归一化相关(ZNCC)(6-45)(6-44)

以上几种常见的灰度相关测度函数,其中加入均值计算的测度函数,可以消除图(a)与(b)的灰度差异影响,但是计算量也相应地增加。在实际中以SAD和SSD应用最为普遍。图6-13(a),(b)为立体图像对,(c)为获得的视差图像。图6-13立体图像对及视差示意图 6.4三维重建

空间任一点在两个摄像机中分别成像,得到该点在两个图像中的对应坐标,在已知两摄像机的参数矩阵的条件下,通过建立以该点的世界坐标为未知数的4个线性方程,可以用最小二乘法求解得该点的世界坐标。

如图6-14所示,对于空间任意一点P,如果用摄像机C1观察,看到它在C1的像平面上的像点为p1,但仅此还无法从p1得知P的三维位置。因为,在O1P(O1为C1摄像机的光心)连线上的任意一点P′的图像点都是p1,因此,由p1点只能知道空间点位于O1p1连线上的某一位置,即仅由一幅二维图像是无法得到P点的深度信息的。

如果同时用C1和C2两个摄像机观察P点,并且能够确定在C1的像平面上的p1点和C2的像平面上的p2点是空间同一点P的像点(这个问题由立体匹配解决),那么就可以由几何关系知道,P点既在O1p1上,又在O2p2上,因此P点是这两条直线的交点,即P点的三维位置是可以唯一确定的。这就是计算机视觉三维重建的基本原理。图6-14用双摄像机观察空间点6.4.1一般配置下点坐标计算

如图6-14所示,假设:①空间任意点P在两个摄像机C1与C2上的图像点p1与p2已经从两个图像中分别检测出来,即已知p1与p2为空间同一点P的对应点;②C1与C2摄像机已标定,其投影矩阵分别为M1与M2。于是有(6-46)(6-47)式中:(u1,v1,1)与(u2,v2,1)分别为p1与p2点在各自图像中的图像齐次坐标;(X,Y,Z,1)为P点在世界坐标系下的齐次坐标;

(k=1,2;i=1,…,3;j=1,…,4)分别为Mk的第i行第j列元素。将式(6-46)和式(6-47)中的和消去,得到关于X、Y、Z的四个线性方程:(6-48)(6-49)

由解析几何知,三维空间的平面方程为线性方程,两个平面方程的联立为空间直线的方程(该直线为两个平面的交线),所以式(6-48)(或式(6-49))的几何意义是过O1p1(或O2p2)的直线。又由于空间点P是O1p1与O2p2的交点,所以将式(6-48)与式(6-49)联立就可求出P点的坐标(X,Y,Z)。在实际应用中,由于数据总是有噪声的,所以要用最小二乘法求出X、Y、Z。6.4.2平行双目点坐标计算

图6-15所示为简单的平行双目立体成像原理图,假设两个摄像机的焦距相同,内部参数也相同,而且两个摄像机的光轴互相平行,x轴重合,y轴互相平行。那么,将第一个

摄像机沿其x轴平移一段距离后与第二个摄像机完全重合。

两个摄像机坐标系分别为O1X1Y1Z1和O2X2Y2Z2,两个摄像机坐标系只差x轴方向上的一个平移,将平移距离记为b,称为基线(baseline)长度。对于空间任意一点P在C1与C2坐标系下的坐标为(x1,y1,z1)与(x2,y2,z2)。p1、p2分别是P在左右摄像机像平面上的像点。图6-15双目摄像机配置由中心摄影比例关系可得:(6-50)式中:u0、v0、αx、αx均是摄像机的内部参数;(u1,v1)是左像素点p1在计算机图像坐标系下的像素坐标;(u2,v2)是右像点p2在计算机图像坐标系下的像素坐标。上式的前提是假设世界坐标系就是C1的坐标系。

由式(6-50)解x1、y1、z1得:(6-51)分析表明,基线长度越长,计算相对误差越小。但基线长度不可太长,否则由于物体各部分的相互遮挡,两个摄像机可能不能同时观察到P点。视差是由于双摄像机位置不同,使P点在图像中的投影点的位置不同所引起的,由式(6-6)可知,P点的距离越远,视差越小。当P点趋于无穷远时,O1P与O2P趋于平行,视差趋于零。于是计算出了视差,就可以计算出深度值,同时也可以求出空间点的三维坐标。

图6-15所示的双摄像机配置的几何关系最简单,但一般情况下,这样的配置很难做到,这是因为在实际安装摄像机时,无法看到摄像机的光轴,因此无法将摄像机的相对位置调整到图6-15所示的情形。一般情况下,可用摄像机标定方法求出任意配置的双摄像机的投影矩阵,再求解P点的三维坐标。图6-16为立体图像对及三维重建的图像。图6-16三维重建效果图

6.5立体视觉目标测量系统

6.5.1测量系统硬件组成

图6-17给出了测量系统的组成框图。两个CCD摄像机组成双目对被测物体表面进行采集,通过ADC将采集的模拟图像信号转换为数字图像信号送入DSP中进行处理,在DSP

中将处理后的图像进行H.264编码,将编码后的图像信号通过网络接口送入PC机中,在PC机中进行解码显示。图6-17系统组成框图6.5.2实现步骤

图6-18给出的实验方案流程图是一般双目视觉测量系统的实现流程图。图6-18实验方案流程图图6-19给出了DSP系统实现的软件流程图。摄像机的标定参数在PC机上测得后输入给DSP。图6-19

DSP系统软件流程下面将分别介绍各个部分的实现及实验结果。

1.图像获取

立体视觉为了获得目标的深度信息需要至少两个摄像机对目标进行采集,所以本实验系统用了两个CCD摄像机。由于CCD摄像机采集到的图像是模拟图像,不能进行数字处理,所以需要经过ADC将模拟图像变为数字图像。为了保证极线约束的准确性,获得准确的测量结果,故将两个摄像机安装在同一水平线上。

2.摄像机标定

由于系统中摄像机的位置在测试过程中不会改变,即摄像机标定后其内外参数均不会发生改变,因此可先将摄像机标定后,将内外参数直接输入至DSP,以减少DSP的运算量。

双目摄像机标定实验由双目摄像机,视频采集卡和标定程序组成,如图6-20所示。双目摄像机由两个CCD摄像机组成,CCD摄像机型号为MTC-262。视频采集卡型号为DS-4004HC,可实现对4路视频的实时采集。标定程序通过在HALCON编程实现,HALCON软件由德国MVTecSoftwareGmbH公司研发。HALCON是世界上最全能的机器视觉软件,提供了1100种以上的具备突出性能控制器的库,如模糊分析、形态、模式匹配、3D校正等,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。图6-20双目摄像机标定实验组成实验中采用的标定方法是Zhang平板标定法,实验用的标定板采用HALCON中标定板图像制作而成,标定板有8×8个圆点,圆心距为40mm,如图6-21所示。

平面标定板的优点有:

①易于操作;

②它们的尺寸可以制作得非常精确;

③在标定板的矩形边界框的一个角落放置一个小的方向标记,可以使摄像机标定算法计算得到标定板的唯一方向;

④使用圆形标记可以非常精确地提取出圆的圆心坐标;

⑤圆形标志点按行和列排列成矩形阵列,可以使摄像机标定算法在图像中提取这些标志点对应的像素点坐标时更加简便。图6-21标定板产生的图像对

利用标定板的特点,采用阈值分割操作就可以得到标定板内部含有m×n个孔洞的区域。一旦找到标定对象上的内部区域,可以利用亚像素边缘提取方法来提取标定板各个圆的边缘,并求得各圆心的坐标,如图6-22所示为检测后的标定板图像对。可求出两个摄像机的内参数和两个摄像机之间的相对位置。图6-22检测标定板的点在实际标定中,假设世界坐标系是与图6-22(a)中摄像机坐标系重合的。另外,旋转矩阵R是由三个旋转角度确定的,分别是绕摄像机坐标系x轴的a、绕摄像机坐标系y轴的

b和绕摄像机坐标系z轴的g。R与三个旋转角度分关系可用下式表示:

下面给出对图6-22(a)和(b)两个摄像机进行标定后得到的参数:(6-52)图(a)中摄像机的内部参数:

f:0.0176105m

dx:1.60404e×10-5m

dy:1.48×10-5m

u0:453.797像素

v0:354.524像素

图(b)中摄像机的内部参数:

f:0.0180607m

dx:1.60688×10-5m

dy:1.48×10-5m

u0:474.927像素

v0:367.229像素由于世界坐标系与图(a)中的摄像机坐标系重合,所以图(a)中摄像机的外部参数为

a=0°

r=0°

g=0°

tx=0

ty=0

tz=0

图(b)中摄像机的外部参数为

a=359.389°

b=1.47645°

g=359.542°

tx=-0.15179m

ty=-0.00498939m

tz=-0.0404876m

通过外部参数就可以得到旋转矩阵R和平移向量t,进而可以求得M2。通过内部参数可以求得M1,由M1和M2可得到投影矩阵M,再由立体匹配得到基本矩阵F。3.预处理及特征提取

图6-23给出了左右两个摄像机采集到的被测目标图像。图中的黑色矩形就是被测目标,系统实现中以图(a)中的图像为基准图像。图6-23被测目标产生的图像对对被测目标的预处理主要进行了边缘检测和阈值分割两个过程。对被测目标首先用Sobel边缘检测算子进行边缘检测,得到了灰度图像,如图6-24(a)所示。自适应阈值进行了阈值分割,如图6-24(b)所示。图6-24

Sobel边缘检测自适应阈值分割对图像进行预处理之后就要进行特征提取。系统实现中是以矩形边框为特征,特征提取基于Hough变换。下面给出在具体实现中Hough变换检测矩形的步骤:

(1)计算Hough变换域的累加值,得到累加数组A(r,q)。试验中q的步长取为1°。

(2)定义两个阈值Tmin和Tmax,对累加值数组A(r,q)进行阈值选择。阈值选择后的A(r,q)满足下式:

将得到的非零累加值所对应的三个变量值(r,q,A(r,q))分别进行保存。(6-53)

(3)取局部极大值。经过边缘检测后得到的图像会出现边缘包含多条线的情况,造成检测错误。因此,需要进行取局部极大值的处理,避免检测到两条相邻直线的情况。

下面给出具体实现步骤:

①找出累加值A(r,q)中的最大值。

②将最大值附近区域的累计值置0。试验中所取的区域是以最大值为中心,-15≤Dr≤15,-4°≤Dq≤4°的区域。

(4)找出满足矩形性质的平行线。利用矩形的性质1、5得到矩形四条边对应的四个(r,r)值。

(5)求矩形的四个顶点。

假设不平行的两条直线l1与l2,其对应的Hough变换的参数为(r1,q1)与(r2,q2)。由两直线的极坐标方程:

联立可以解得l1与l2交点的坐标(x,y):

利用这个方法可以求得矩形四个顶点的坐标。(6-55)(6-54)

下面给出实验的结果:

图6-25给出了在阈值分割后的图像上画出的用Hough变换求出的四条直线。

对被测矩形面的四个顶点作标记,如图6-26所示。

用上述方法测得的矩形的A、B、C、D四点在左图像的计算机图像坐标分别为(270,152)、(127,295)、(413,294)、(270,447)。图6-25检测出的直线图6-26对四个顶点进行标志

4.立体匹配

实验中使用的局部立体匹配算法,采用的约束条件是极线约束,灰度相关测度函数为SAD。

具体的实现步骤如下:

(1)计算极线。特征提取后得到矩形四个顶点在左图像的计算机图像坐标,根据极线计算方法计算出各个顶点在右图像的极线。

(2)计算匹配模板。试验中选择左图像以顶点为中心的16×16的窗口作为匹配模板。

(3)进行立体匹配。对每个顶点,根据步骤(1)计算出的极线进行局部立体匹配,灰度相关测度函数选择SAD。

下面给出实验结果:根据上述方法进行立体匹配,得到匹配点在右图像的计算机图像坐标依次为点A(347,151)、点B(203,294)、点C(489,296)、点D(347,449)。

5.三维重建

摄像机标定后可以得到左右两个图像的投影矩阵和基础矩阵,立体匹配后可以得到矩形的的四个顶点在左右两个图像的计算机图像坐标。由得到的投影矩阵、基础矩阵和顶点的计算机图像坐标,可以求出四个顶点的世界坐标。

求得顶点在左右两摄像机的计算机图像坐标,可得到四个顶点的世界坐标系,系统实现中是假定世界坐标系以左图像的光心轴为Z轴,Z轴的正方向指向图像的背面。以左图像的成像面为XOY平面,由左图像指向右图像的方向为X轴正方向,Y轴的正方向垂直XOZ平面指向上。下面给出具体实验计算结果(单位为m):

点A:(0.3330061,0.3383754,-1.987853)

点B:(0.5793883,0.09766208,-1.945744)

点C:(0.07515797,0.1026953,-2.017006)

点D:(0.3260195,-0.1510862,-1.946144)

6.检测结果的验证

由立体几何的三维关系可知,空间中任意两点X(xx,yx,zx)和Y(xy,yy,zy)之间的距离为

(6-56)因此可以用求两点之间的距离来验证试验结果。

根据式(6-56)求得的距离(单位为m)如下:

LAB=0.347,LAC=0.351,LAD=0.491

而实际中,

LAB=0.350,LAC=0.358,LAD=0.500

计算绝对误差Δ和相对误差d:经过分析,导致这种结果的原因有:

(1)摄像机安装。理论上摄像机应安装在同一水平线上,以保证极线约束的准确。

(2)图像预处理。阈值分割将图像的边缘外围灰度值较小的部分置为黑,造成了检测到的边缘比实际边缘要小。

(3)摄像机非线性和畸变的影响。

(4)摄像机本身的精度不高。

其中,摄像机非线性和畸变的影响较大。6.5.3位姿测量代码示例

1.关键点分析

(1)用双目摄像机提取两幅图像,并利用函数CannyEdgeDetection()对左图像进行边缘检测,检测算子是Canny算子,通过Pingpong结构,将处理后的图像边缘保存在listptr指针所指向的地址。

(2)利用函数Hough()对边缘检测之后的左图像进行Hough变换,找到相互平行的两对直线,并计算相交直线的四个点的图像坐标,将结果保存到coor1中。

(3)根据SAD匹配算法,利用函数sad()进行左右图的立体匹配,找到右图中与左图特征点相匹配的投影特征点,并将左右图得到的立体匹配特征点的图像坐标保存到coor1和coor2指针所指向的地址中。

(4)结合已知匹配特征点的图像坐标,通过函数calc_3d(),对四个空间特征点进行三维重建,得到空间特征点的三维世界坐标,并保存到数组wx、wy、wz中。

(5)根据计算出的特征点世界坐标,计算四个空间点所对应的中点的三维世界坐标,并根据已知特征点在三维世界坐标和目标坐标系中的坐标计算出目标物体的姿态。

部分代码如下:

2.重要的函数

(1)函数CannyEdgeDetection()。此函数实现对原始图像进行边缘检测的功能,其参数包括unsignedchar*restrictInImg、unsignedchar*restrictOutImg、unsignedchar*restricttempBuf、unsignedchar*restrictPingIn、unsignedchar*restrictPingOut、unsignedchar*restrictPongIn、unsignedchar*restrictPongOut、short*restrictPingOutX、short*restrictPingOutY、short*restrictPingOutG、short*restrictPongOutX、short*restrictPongOutY、short*restrictPongOutG、short*restrictgradxBuf、short*restrictgradyBuf、short*restrictgradgBuf、int*numItems、unsignedint*restrictlistptr、unsignedcharloThres、unsignedcharhiThres。其中部分参数的含义解释如下:

InImg:输入的图像;

OutImg:输出的图像;

tempBuf:存放图像的缓存;

PingIn:输入要处理的图像;

PingOut:输出要处理的图像;

PongIn:输入要处理的图像;

PongOut:输出要处理的图像;

PingOutX:输出图像的水平梯度;

PingOutY:输出图像的垂直梯度;

PingOutG:输出图像的梯度值;

PongOutX:输出图像的水平梯度;

PongOutY:输出图像的垂直梯度;

PongOutG:输出图像的梯度值;

gradxBuf:非最大值抑制后的水平梯度;

gradyBuf:非最大值抑制后的垂直梯度;

gradgBuf:非最大值抑制后的梯度值;

numItems:边缘点的数量;

listptr:保存强边缘位置的地址;

loThres:边缘检测最小阈值;

hiThres:边缘检测最大阈值。

(2)函数Hough()。此函数对边缘检测之后的图像进行Hough变换,其参数主要包括unsignedchar*in_data、unsignedshort*restrictlistptr、intnumItems、shortwidth、shortheight、int*coor。其中,部分参数的含义解释如下:

in_data:输入的图像数据;

listptr:保存强边缘位置的缓存;

numItems:强边缘的个数;

width:图像数据的宽度;

height:图像数据的高度;

coor:直线交点的像素坐标。

(3)函数save_template()。此函数的功能是保存模板,在利用sad()函数进行立体匹配时,需要在左图像中提取16×16的模板,save_template()的作用就是保存模板。它的参数为constunsignedchar*restrictsrc_data、unsignedchar*

template_data、intx、inty。其中,部分参数的含义解释如下:

src_data:输入的源图像数据;

template_data:模板;

x:模板边界水平像素坐标;

y:模板边界垂直像素坐标。

(4)函数sad()。此函数是通过SAD算法进行左右图特征点的立体匹配,其主要参数有constunsignedchar*

restrictsrc_data、unsignedchar*template_data、intheight、

intwidth、int*src_coor、int*templat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论