双目原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
双目立体视觉
双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。现说明介绍如何基于HALCON实现双目立体视觉系统,以及立体视觉的基本理论、方法和相关技术,为搭建双目立体视觉系统和提高算法效率。
双目立体视觉是机器视觉的一种重要形式,它是基于视差原理并由多幅图像获取物体三维几何信息的方法。双目立体视觉系统一般由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置。双目立体视觉系统在机器视觉领域有着广泛的应用前景。
HALCON是在世界范围内广泛使用的机器视觉软件。它拥有满足您各类机器视觉应用需求的完善的开发库。HALCON也包含Blob分析、形态学、模式识别、测量、三维摄像机定标、双目立体视觉等杰出的高级算法。HALCON支持Linux和Windows,并且可以通过C、C++、C#、Visual Basic和Delphi 语言访问。另外HALCON与硬件无关,支持大多数图像采集卡及带有DirectShow和IEEE 1394驱动的采集设备,用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。
一.双目立体视觉相关基本理论说明
1.1 双目立体视觉原理
双目立体视觉三维测量是基于视差原理,图1所示为简单的平视双目立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b。摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图1所示。事实上摄像机的成像平面在镜头的光心后,图1中将左右成像平面绘制在镜头的光心前f处,这个虚拟的图像平面坐标系O1uv的u轴和v轴与和摄像机坐标系的x轴和y轴方向一致,这样可以简化计算过程。左右图像坐标系的原点在摄像机光轴与平面的交点O1和O2。空间中某点P在左图像和右图像中相应的坐标分别为P1(u1,v1)和P2(u2,v2)。假定两摄像机的图像在同一个平面上,则点P图像坐标的Y坐标相同,即v1=v2。由三角几何关系得到:
上式中(xc,yc,zc)为点P在左摄像机坐标系中的坐标,b为基线距,f为两个摄像机的焦距,(u 1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。
视差定义为某一点在两幅图像中相应点的位置差:
图1 双目立体成像原理图图3 一般双目立体视觉系统原理图
由此可计算出空间中某点P在左摄像机坐标系中的坐标为:
因此,只要能够找到空间中某点在左右两个摄像机像面上的相应点,并且通过摄像机标定获得摄像机的内外参数,就可以确定这个点的三维坐标。
1.2 双目立体视觉的系统结构以及精度分析
由上述双目视觉系统的基本原理可知,为了获得三维空间中某点的三维坐标,需要在左右两个摄像机像面上都存在该点的相应点。立体视觉系统的一般结构为交叉摆放的两个摄像机从不同角度观测同一被测物体。图3为原理图。这样通过求得两个图像中相应点的图像坐标,便可以由双目立体视觉测量原理求取三维空间坐标。事实上,获取两幅图像也可以由一个摄像机实现,如一个摄像机通过给定方式的运动,在不同位置观测同一个静止的物体,或者通过光学成像方式将两幅图像投影到一个摄像机,都可以满足要求。
各种双目视觉系统结构各有优缺点,这些结构适用于不同的应用场合。对要求大测量范围和较高测量精度的场合,采用基于双摄像机的双目立体视觉系统比较合适;对测量范围要求比较小,对视觉系统体积和质量要求严格,需要高速度实时测量对象,基于光学成像的单摄像机双目立体视觉系统便成为最佳选择。
基于双摄像机的双目立体视觉系统必须安装在一个稳定的平台上,在进行双目视觉系统标定以及应用该系统进行测量时,要确保摄像机的内参(比如焦距)和两个摄像机相对位置关系不能够发生变化,如果任何一项发生变化,则需要重新对双目立体视觉系统进行标定。
视觉系统的安装方法影响测量结果的精度。测量的精度可由下式得出:
上式中⊿z表示测量得出的被测点与立体视觉系统之间距离的精度,z指被测点与立体视觉系统的绝对距离,f指摄像机的焦距,b表示双目立体视觉系统的基线距,⊿d表示被测点视差精度。
为了得到更高的精度,应该使摄像机的焦距以及基线长度增大,同时应该使被测物体尽可能的靠近立体视觉系统。另外这个精度和视差的精度有直接的关系。在HALCON中一般情况下视差结果可以精确到1 /5~1/10个像素,如果一个像素代表7.4μm那么视差的精度可以达到1μm。图4表示深度测量的精度和各个参数之间的关系(假设视差精度为1μm)。
如果b和z之间的比值过大,立体图像对之间的交迭区域将非常小,这样就不能够得到足够的物体表面信息。b/z可以取的最大值取决于物体的表面特征。一般情况下,如果物体高度变化不明显,b/z可以取的大一些;如果物体表面高度变化明显,则b/z的值要小一些。无论在任何情况下,要确保立体图像对之间的交迭区域足够大并且两个摄像机应该大约对齐,也就是说每个摄像机绕光轴旋转的角度不能太大。
图4 深度测量精度与各个参数之间的关系图5 校正后的双目立体视觉系统
1.3 双目立体视觉系统标定
摄像机内参数的标定和单目视觉系统标定一致,双目立体视觉系统的标定主要是指摄像机的内部参数标定后确定视觉系统的结构参数R和T(即两个摄像机之间的位置关系,R和T分别为旋转矩阵和平移向量)。一般方法是采用标准的2D或3D精密靶标,通过摄像机图像坐标与三维世界坐标的对应关系求得
这些参数。具体的标定过程如下:
1、将标定板放置在一个适当的位置,使它能够在两个摄像机中均可以完全成像。通过标定确定两个摄像机的内部参数以及他们的外部参数(R1、T1与R
2、T2),则R1、T1表示左摄像机与世界坐标系的相对位置,R2、T2表示右摄像机与世界坐标系的相对位置。
2、假定空间中任意一点在世界坐标系、左摄像机坐标系和右摄像机坐标系下的非齐次坐标分别为xw、
x1、x2,则:
消去xw,得到:
两个摄像机之间的位置关系R、T可以用以下关系式表示:
1.4 双目立体视觉中的对应点匹配
由双目立体视觉系统原理可以看出双目立体视觉是建立在对应点的视差基础之上,因此左右图像中各点的匹配关系成为双目立体视觉技术的一个极其重要的问题。然而,对于实际的立体图像对,求解对应问题极富挑战性,可以说是双目立体视觉中最困难的一步。为了能够增加匹配结果的准确性以及匹配算法的速度,在匹配过程中通常会加入下列几种约束:
(1)极线约束。在此约束下,匹配点已经位于两副图像中相应的极线上。
(2)唯一性约束。两副图像中的对应的匹配点应该有且仅有一个。
(3)视差连续性约束。除了遮挡区域和视差不连续区域外,视差的变化都是平滑的。
(4)顺序一致性约束。位于一副图像极线上的系列点,在另一幅图像中极线上有相同的顺序。图像匹配的方法有基于图像灰度(区域)的匹配、基于图像特征的匹配和基于解释的匹配或者多种方法结合的匹配。
二.使用HALCON进行双目立体视觉测量
本节以电路板高度测量为例,讲述在HALCON中如何方便快捷地实现高效双目立体视觉测量(图像为640*480)。
2.1 双目立体视觉系统安装
根据1.2节中对双目立体视觉系统结构分析以及精度的分析,在确保两个立体图像对有足够大的交迭区域的同时,根据待测物体表面形态以及精度要求设计合理的双目立体视觉系统安装方案(图2)。然后将双目立体视觉系统安装在一个稳定的平台上,确保开始标定后,摄像机的焦距以及摄像机的相对关系都不发生变化。
2.2 双目立体视觉系统标定
为了进行视觉系统的标定,需要得到空间点的三维坐标以及该点在左右两幅图像中坐标的对应关系,另外还需要给定两个摄像机的初始参数。拍摄标定板图像时,要保证标定板在左右两个摄像机中都能够完整成像。
如果使用HALCON标准标定板,首先可以通过函数find_caltab()在标定板图像中分离出标定板区域,