当前位置:文档之家› 基于HALCON的双目立体视觉系统实现

基于HALCON的双目立体视觉系统实现

基于HALCON的双目立体视觉系统实现
基于HALCON的双目立体视觉系统实现

基于HALCON的双目立体视觉系统实现

段德山(大恒图像公司)

摘要双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。本文将主要介绍如何基于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为两个摄像机的焦距,(u1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。

视差定义为某一点在两幅图像中相应点的位置差:

由此可计算出空间中某点P在左摄像机坐标系中的坐标为:

因此,只要能够找到空间中某点在左右两个摄像机像面上的相应点,并且通过摄像机标定获得摄像机的内外参数,就可以确定这个点的三维坐标。

1.2 双目立体视觉的系统结构以及精度分析

由上述双目视觉系统的基本原理可知,为了获得三维空间中某点的三维坐标,

需要在左右两个摄像机像面上都存在该点的相应点。立体视觉系统的一般结构为交叉摆放的两个摄像机从不同角度观测同一被测物体。图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的值要小一些。无论在任何情况下,要确保立体图像对之间的交迭区域足够大并且两个摄像机应该大约对齐,也就是说每个摄像机绕光轴旋转的角度不能太大。

1.3 双目立体视觉系统标定

摄像机内参数的标定和单目视觉系统标定一致,双目立体视觉系统的标定主要是指摄像机的内部参数标定后确定视觉系统的结构参数R和T(即两个摄像机之间的位置关系,R和T分别为旋转矩阵和平移向量)。一般方法是采用标准的2D 或3D精密靶标,通过摄像机图像坐标与三维世界坐标的对应关系求得这些参数。具体的标定过程【3】如下:

1、将标定板放置在一个适当的位置,使它能够在两个摄像机中均可以完全成像。通过标定确定两个摄像机的内部参数以及他们的外部参数(R1、T1与R

2、T2),则R1、T1表示左摄像机与世界坐标系的相对位置,R2、T2表示右摄像机与世界坐标系的相对位置。

2、假定空间中任意一点在世界坐标系、左摄像机坐标系和右摄像机坐标系下的非齐次坐标分别为xw、x1、x2,则:

消去xw,得到:

两个摄像机之间的位置关系R、T可以用以下关系式表示:

1.4 双目立体视觉中的对应点匹配

由双目立体视觉系统原理可以看出双目立体视觉是建立在对应点的视差基础之上,因此左右图像中各点的匹配关系成为双目立体视觉技术的一个极其重要的问题。然而,对于实际的立体图像对,求解对应问题极富挑战性,可以说是双目立体视觉中最困难的一步。为了能够增加匹配结果的准确性以及匹配算法的速度,在匹配过程中通常会加入下列几种约束:

(1)极线约束。在此约束下,匹配点已经位于两副图像中相应的极线上。(2)唯一性约束。两副图像中的对应的匹配点应该有且仅有一个。

(3)视差连续性约束。除了遮挡区域和视差不连续区域外,视差的变化都是平滑的。

(4)顺序一致性约束。位于一副图像极线上的系列点,在另一幅图像中极线上有相同的顺序。

图像匹配的方法有基于图像灰度(区域)的匹配、基于图像特征的匹配和基于解释的匹配或者多种方法结合的匹配【3】。

二.使用HALCON进行双目立体视觉测量

本节以电路板高度测量为例,讲述在HALCON中如何方便快捷地实现高效双目立体视觉测量(图像为640*480)。

2.1 双目立体视觉系统安装

根据1.2节中对双目立体视觉系统结构分析以及精度的分析,在确保两个立体图像对有足够大的交迭区域的同时,根据待测物体表面形态以及精度要求设计合理的双目立体视觉系统安装方案(图2)。然后将双目立体视觉系统安装在一个稳定的平台上,确保开始标定后,摄像机的焦距以及摄像机的相对关系都不发生变化。

2.2 双目立体视觉系统标定

为了进行视觉系统的标定,需要得到空间点的三维坐标以及该点在左右两幅图像中坐标的对应关系,另外还需要给定两个摄像机的初始参数。拍摄标定板图像时,要保证标定板在左右两个摄像机中都能够完整成像。

如果使用HALCON标准标定板,首先可以通过函数find_caltab()在标定板图像中分离出标定板区域,然后利用find_marks_and_pose()算子,该算子通过亚象素阈值、亚象素边缘提取、圆心确定等一系列操作计算标定板上每个点的图像坐标以及标定板与摄像机之间大约的位置关系,即摄像机的外参初始值。其中使用find_caltab()分离标定板区域运算时间大约为5ms,find_marks_and_pose()计算标定板上49个标志点的坐标大约需要时间为40ms,计算坐标精度为亚象素级,如某标志点在左摄像机图像坐标系中坐标为(198.612619165, 344.142354438),右摄像机图像坐标系中相应点坐标为(212.140195587, 226.377754012)。

如果使用自定义的标定板,可以使用HALCON中的图像滤波、亚象素边缘及线提取、亚象素轮廓处理等基本函数开发算法求取标志点的坐标并估算摄像机的外参初始值。

获得标志点相应的坐标以及摄像机的起始参数后,通过调用函数

binocular_calibration()来确定两个摄像机的内参数、外参数以及两个摄像机

之间的相对位置关系。通过539个标志点坐标的对应关系计算出摄像机各个参数需要的时间为1.6094s,计算误差约为0.02个象素。

2.3 校正立体图像对

为了能够更精确地进行匹配,提高运算的效率,在获得摄像机的内外参数后首先对立体图像对进行校正。校正的过程其实就是将图像投影到一个公共的图像平面上,这个公共的图像平面方向由双目立体视觉系统基线与原始两个图像平面交线的叉集确定。

校正后的图像可以看作是一个虚拟的立体视觉系统(图5)采集的图像对。这个视觉系统中摄像机的光心与实际摄像机一致,只是通过绕光心的旋转使光轴平行,并且视觉系统中两个摄像机的焦距相同。这个虚拟的立体视觉系统就是双目立体视觉原理中提到的最简单的平视双目视觉模型。

HALCON中将标定过程中获得的摄像机的内参以及两个摄像机相对位置关系作为参数传递给函数gen_binocular_rectification_map(),再将获得的两个图像的映射图传递给函数map_ image(),即可得到校正后的两幅图像,并可获得校正后虚拟立体视觉系统中两个摄像机的内参和外参。其中函数

gen_binocular_rectification_map()耗时约为0.3488s,map_image()耗时约为0.0050s。

2.4 获得图像中三维信息

为了得到图像中某点的三维信息,需要在另一幅图像中找到该点的对应点坐标。因此想获得物体的深度信息,首先需要对校正后的立体图像对进行匹配。由于经过校正后,两幅图像中的对应点在图像的同一行中,因此在匹配时只需要在相应的行中寻找匹配点。为了得到更佳的匹配结果,如果被测物体表面没有明显的特征信息,则需要测量时在物体表面增加特征点。另外要避免被测物体上重复图案在同一行中。

将校正后的图像以及虚拟立体视觉系统中的摄像机内外参数传递给

binocular_disparity(), 这时可以设置匹配窗大小、相似度计算方式等参数,在匹配中使用图像金字塔提高匹配速度,并且可以自我检测匹配结果的正确性。函数返回一个视差图 (物体表面三维信息的表示)和一个匹配分值图(表示匹配结果的准确程度),函数的运行时间约为0.6051s。

函数binocular_distance()与binocular_disparity()类似,只不过返回一个深度图(物体表面在第一个摄像机坐标系中的深度信息)和一个匹配分值图。图6~图9显示了HALCON中利用双目立体视觉测量电路板三维信息的过程。

HALCON中另外还有很多关于立体视觉的函数,可以获得图像中某点的三维坐标,另外可以校正倾斜对高度测量的影响等。

三.总结

以视觉系统为基础的三维外形轮廓的非接触式、高速测量是一个重要的研究方向,双目立体视觉方法是其中一种最常用的方法。本文介绍了双目立体视觉的基本原理,实现方法以及标定和匹配等相关技术,并通过一个典型应用案例讲述了如何使用HALCON方便快速地搭建高效的双目立体视觉系统。双目立体视觉系统的应用领域非常广泛,为了能够将这些技术应用在实际的工程中,需要尽可能提高算法的效率与精度。在HALCON中通过校正立体视觉系统的方法,简化了匹配的复杂度,通过使用图像金字塔以及各种约束提高了算法速度和精度。在已知摄像机内外参的情况下,由两个立体图像对中恢复三维模型需要约1.3s。

另外,HALCON中不仅有匹配、识别、定位、测量和三维等性能杰出的高级算法,还提供了一系列(的)高效的图像处理基本函数,如滤波、亚象素边缘、亚象素轮廓、Blob、分割、形态学、分类器、几何变换,用户可以通过这些基本函数来搭建各种应用中高效实用的算法。

参考文献

Machine Vision in World Coordinates by MVTec Software GmbH, Germany 2 HALCON/HDevelop Reference Manual by MVTec Software GmbH, Germany

3 张广军机器视觉科学出版社北京 2005

4 马颂德,张正友计算机视觉科学出版社北京 1998

5 周富强双目立体视觉检测的关键技术研究北京航空航天大学博士后研究工作报告 2002

Halcon机器视觉实验指导书

机器视觉软件HALCON 实验指导书 目录 实验1 HALCON 概述,应用范例 实验2 HDevelop介绍,操作编程范例 实验3 HALCON编程接口,高级语言编程 实验4 HALCON数据结构,采集硬件接口 实验5 HALCON采集硬件配置,图像采集 实验6 HALCON二维测量,配准测量与识别定位 实验7 HALCON一维测量,尺寸测量 实验8 HALCON三维测量,3D重建测量 实验1 HALCON 概述,应用范例 实验2 HDevelop介绍,操作编程范例 1 邮票分割 文件名: stamps.dev 第一个例子进行文件分析任务。图5.1展示了部分邮票目录页。它描述了两种不同的邮票:以图形描述为主和以文字描述为主。 为了使用这个例子,必须把文字描述转化为计算机所能理解的形式。你可能使用OCR编程方式,你很快发现由于邮票的图形描述会导致大多数的可使用模块产生错误。于是另一项任务必须要进行预处理:对所有的邮票进行转化(例如,把邮票转化为灰色有价值的纸),这样就可以使用OCR处

理邮票的剩余部分了。 当创造一个应用程序来解决这种问题,对要处理的对象进行特征提取是非常有帮助的。这个任务可以为新手提供解决的这类问题一些的经验。 ●一般而言,特征提取有如下步骤:邮票比纸要黑。 ●邮票包含图像的部分不重叠。 ●邮票具有最大最小尺寸。 ●邮票是长方形的。

图 5.1: Mi c he l图表的部分页. 如果直接使用属性清单而非编程,任务会变得很简单。可惜由于语言的含糊,这是不可能的。所以你需要建构具有精确的语法和语义的语言,尽可能接近非正式的描述。使用HDevelop语法,一个通常的程序看起来如下: dev_close_window () read_image (Catalog, ’swiss1.tiff’) get_image_pointer1 (Catalog, Pointer, Type, Width, Height) dev_open_window (0, 0,Width/2, Height/2, ’black’, WindowID) dev_set_part (0, 0,Height-1, Width-1) dev_set_draw (’fill’)

双目视觉成像原理

双目视觉成像原理 1.引言 双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图。 双目立体视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。对运动物体(包括动物和人体形体)测量中,由于图像获取是在瞬间完成的,因此立体视觉方法是一种更有效的测量方法。双目立体视觉系统是计算机视觉的关键技术之一,获取空间三维场景的距离信息也是计算机视觉研究中最基础的内容。 2.双目立体视觉系统 立体视觉系统由左右两部摄像机组成。如图一所示,图中分别以下标L和r标注左、右摄像机的相应参数。世界空间中一点A(X,Y,Z)在左右摄像机的成像面C L和C R上的像点分别为al(ul,vl)和ar(ur,vr)。这两个像点是世界空间中同一个对象点A的像,称为“共轭点”。知道了这两个共轭像点,分别作它们与各自相机的光心Ol和Or的连线,即投影线alOl和arOr,它们的交点即为世界空间中的对象点A(X,Y,Z)。这就是立体视觉的基本原理。 图1:立体视觉系统 3.双目立体视觉相关基本理论说明 3.1 双目立体视觉原理 双目立体视觉三维测量是基于视差原理,图2所示为简单的平视双目立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b。摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图2所示。事实上摄像机的成像平面在镜头的光心后,图2中将左右成像平面绘制在镜头的光心前f处,这个虚拟的图像平面坐标系O1uv的u轴和v轴与和摄像机坐标系的x轴和y轴方向一致,这样可以简化计算过程。左右图像坐

基于双目立体视觉三维重建系统的制作流程

本技术公开了一种基于双目立体视觉三维重建系统,涉及三维重建系统技术领域;机箱的底部四角处均固定安装有行走轮,机箱的内部分别固定安装有蓄电池与处理计算机,机箱的上端分别固定安装有显示器与安装架,安装架上通过轴承座固定安装有主轴,主轴的下端固定安装有安装齿轮,安装齿轮与驱动齿轮相啮合,驱动齿轮固定安装有驱动电机的轴上,驱动电机通过螺栓安装在安装架上,主轴的上端固定安装有连接轴,连接轴为横向设置,连接轴的两端固定安装有双摄像头,连接轴的中上端固定安装有照明灯;本技术能够实现快速控制,稳定性高,且控制准确,操作简便,能够节省时间;使用方便,结构简单,且效率高,能够在检测时进行补光。 技术要求

1.一种基于双目立体视觉三维重建系统,其特征在于:包括机箱、行走轮、蓄电池、处理计算机、显示器、安装架、驱动齿轮、驱动电机、安装齿轮、主轴、连接轴、双摄像头、照明灯;机箱的底部四角处均固定安装有行走轮,机箱的内部分别固定安装有蓄电池与处理计算机,机箱的上端分别固定安装有显示器与安装架,安装架上通过轴承座固定安装有主轴,主轴的下端固定安装有安装齿轮,安装齿轮与驱动齿轮相啮合,驱动齿轮固定安装有驱动电机的轴上,驱动电机通过螺栓安装在安装架上,主轴的上端固定安装有连接轴,连接轴为横向设置,连接轴的两端固定安装有双摄像头,连接轴的中上端固定安装有照明灯,蓄电池通过导线与处理计算机、显示器的电源端电连接,双摄像头通过导线与处理计算机的输入端电连接,处理计算机的输出端分别与驱动电机、照明灯电连接,显示器与处理计算机的输入、输出端电连接。 2.根据权利要求1所述的一种基于双目立体视觉三维重建系统,其特征在于:所述显示器为触摸式显示屏。 3.根据权利要求1所述的一种基于双目立体视觉三维重建系统,其特征在于:所述行走轮为减震式万向行走轮。 4.根据权利要求1所述的一种基于双目立体视觉三维重建系统,其特征在于:所述驱动电机为低速电机。 5.根据权利要求1所述的一种基于双目立体视觉三维重建系统,其特征在于:所述照明灯为LED灯。 技术说明书 一种基于双目立体视觉三维重建系统 技术领域 本技术属于三维重建系统技术领域,具体涉及一种基于双目立体视觉三维重建系统。 背景技术

双目视觉成像原理讲解学习

双目视觉成像原理

双目视觉成像原理 1.引言 双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图。 双目立体视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。对运动物体(包括动物和人体形体)测量中,由于图像获取是在瞬间完成的,因此立体视觉方法是一种更有效的测量方法。双目立体视觉系统是计算机视觉的关键技术之一,获取空间三维场景的距离信息也是计算机视觉研究中最基础的内容。2.双目立体视觉系统 立体视觉系统由左右两部摄像机组成。如图一所示,图中分别以下标L和r标注左、右摄像机的相应参数。世界空间中一点A(X,Y,Z)在左右摄像机的成像面C L和C R上的像点分别为al(ul,vl)和ar(ur,vr)。这两个像点是世界空间中同一个对象点A的像,称为“共轭点”。知道了这两个共轭像点,分别作它们与各自相机的光心Ol和Or的连线,即投影线alOl和arOr,它们的交点即为世界空间中的对象点A(X,Y,Z)。这就是立体视觉的基本原理。

图1:立体视觉系统 3.双目立体视觉相关基本理论说明 3.1 双目立体视觉原理 双目立体视觉三维测量是基于视差原理,图2所示为简单的平视双目 立体成像原理图,两摄像机的投影中心的连线的距离,即基线距为b 。摄像机坐标系的原点在摄像机镜头的光心处,坐标系如图2所示。事实上摄像机的成像平面在镜头的光心后,图2中将左右成像平面绘制在镜头的光心前f 处,这个虚拟的图像平面坐标系O1uv 的u 轴和v 轴与和摄像机坐标系的x 轴和y 轴方向一致,这样可以简化计算过程。左右图像坐标系的原点在摄像机光轴与平面的交点O1和O2。空间中某点P 在左图像和右图像中相应的坐标分别为P1(u1,v1)和P2(u2,v2)。假定两摄像机的图像在同一个平面上,则点P 图像坐标的Y 坐标相同,即v1=v2。由三角几何关系得到: c c 1z x f u = c c 2z )b -x (f u = v 1 c c 21z y f v v ==

双目立体视觉的水下应用

双目立体视觉的水下应用 从图像预处理、相机标定、立体匹配三个方面论述了双目视觉在水下场景的应用,比较了与空气环境中应用的不同,对水下双目视觉发展趋势做了分析。 标签:水下双目视觉;相机标定;立体匹配 Abstract:This paper discusses the application of binocular vision in underwater scene from three aspects of image preprocessing,camera calibration and stereo matching,compares the application of binocular vision with that in air environment,and analyzes the development trend of underwater binocular vision. Keywords:underwater binocular vision;camera calibration;stereo matching 引言 双目立体视觉技术利用视差理论恢复像素的深度信息和三维坐标,通过获取左右两个视角下同时采集的两幅图像恢复三维场景信息,还原真实的三维世界,为导航提供目标的位置信息描述,是被动式视觉测量技术的一种。作为计算机视觉的一个重要分支,双目立体视觉技术模型简洁,运算高效,有着广阔的应用前景。而随着海洋科学技术的发展和人类对海洋资源探索的逐渐深入,双目视觉技术逐渐被应用到海洋探测,在对水下目标的监控、海底地形测绘、海流测量、水下军事设施的探测和侦查等方面都有着广泛的应用。 双目立体视觉系统模拟人眼,通过三角测量原理来获取图像的视差,进而得到目标三维信息,一般由以下几个功能模块组成:图像采集,相机标定,立体匹配,三维重建。常规的双目视觉大多是在单一介质的空气中,而由于水下环境的特殊性,往往存在光的散射,吸收效应等不利因素的干扰,相关技术方法也应随环境作适应性调整。本文从图像处理,相机标定,立体匹配这三个方面在水下场景的应用做了论述,阐明了与单一空气介质环境中的不同,并对水下双目立体视觉技术的发展做了展望。 1 成像模型 双目立体视觉用到的模型一般是线性的针孔模型,该模型是双目立体视觉中成像的基本模型,将相机理想化,并把空间点投影视为中心,投影未考虑镜头畸变和环境等其他因素,所以也叫线性摄像机模型。而水下成像模型则是考虑到折射的影响,对此做相应补偿和修正。 在双目立体视觉系统中,为了研究空间点和像点的投影关系,通常会用到4个坐标系:世界坐标系OW-XWYWXW、相机坐标系O-xyz、图像物理坐标系O-XY和图像像素坐标系Of-uv。

机器视觉算法开发软件----HALCON

机器视觉算法开发软件----HALCON HALCON是世界范围内广泛使用的机器视觉软件,用户可以利用其开放式结构快速开发图像处理和机器视觉软件。 HALCON提供交互式的编程环境HDevelop。可在Windows,Linux,Unix下使用,使用HDevelop可使用户快速有效的解决图像处理问题。HDevelop含有多个对话框工具,实时交互检查图像的性质,比如灰度直方图,区域特征直方图,放大缩小等,并能用颜色标识动态显示任意特征阈值分割的效果,快速准确的为程序找到合适的参数设置。HDevelop程序提供进程,语法检查,建议参数值设置,可在任意位置开始或结束,动态跟踪所有控制变量和图标变量,以便查看每一步的处理效果。当用户对于机器视觉编程代码完成后,HDevelop可将此部分代码直接转化为C++,C或VB源代码,以方便将其集成到应用系统中。 HALCON提供交互式的模板描述文件生成工具HmatchIt,。可交互式地为一个模型定义一个任意形状的感性趣区域,HmatchIt优化给出此创建模型的合适参数, 自动生成模板描述文件以供程序调用,快速为基于形状匹配和结构匹配的用户找到实现目标识别和匹配应用的合适的参数设置。 HALCON提供支持多CPU处理器的交互式并行编程环境Paralell Develop, 其继承了单处理器板HDevelop的所有特点,在多处理器计算机上会自动将数据比如图像分配给多个线程,每一个线程对应一个处理器,用户无需改动已有的HALCON程序,就立即获得显

著的速度提升。 HALCON中HDevelop Demo中包含680个应用案例,根据不同的工业领域,不同的用法和算法分类列出,用户可以根据自己的需求方便的找到相对应的类似案例,快速掌握其函数用法。 HALCON提供的函数使用说明文档,详细介绍每个函数的功能和参数用法,提供在不用开发语言(VC,VB,.NET等)下的开发手册,而且提供一些算法(例如3D)的原理性介绍,给用户的学习提供帮助。 特点:原型化的开发平台,自动语法检查; 动态察看控制和图标变量; 支持多种操作系统; 支持多CPU; 支持多种文件格式; 自动语言转化功能; 与硬件无关,可支持各种硬件; 应用领域:医学图像分析; 2D/3D测量; 立体视觉; 匹配定位; 光学字符识别; Blob分析;

双目立体视觉技术的实现及其进展

双目立体视觉技术的实现及其进展 摘要:阐述了双目立体视觉技术在国内外应用的最新动态及其优越性。指出双目体视技术的实现分为图像获取、摄像机标定、特片提取、立体匹配和三维重建几个步骤,详细分析了各个步骤的技术特点、存在的问题和解决方案,并对双目体视技术的发展做了展望。 关键词:双目立体视觉计算机视觉立体匹配摄像机标定特征提取 双目立体视觉是计算机视觉的一个重要分支,即由不同位置的两台或者一台摄像机(CCD)经过移动或旋转拍摄同一幅场景,通过计算空间点在两幅国像中的视差,获得该点的三维坐标值。80年代美国麻省理工学院人工智能实验室的Marr提出了一种视觉计算理论并应用在双睛匹配上,使两张有视差的平面图产生在深度的立体图形,奠定了双目立体视觉发展理论基础。相比其他类的体视方法,如透镜板三维成像、投影式三维显示、全息照相术等,双目本视直接模拟人类双眼处理景物的方式,可靠简便,在许多领域均极具应用价值,如微操作系统的位姿检测与控制、机器人导航与航测、三维测量学及虚拟现实等。 1 双目体视的技术特点 双目标视技术的实现可分为以下步骤:图像获取、摄像机标定、特征提取、图像匹配和三维重建,下面依次介绍各个步骤的实现方法和技术特点。 1.1 图像获取 双目体视的图像获取是由不同位置的两台或者一台摄像机(CCD)经过移动或旋转拍摄同一幅场景,获取立体图像对。其针孔模型如图1。假定摄像机C1与C2的角距和内部参数都相等,两摄像机的光轴互相平行,二维成像平面X1O1Y1和X2O2Y2重合,P1与P2分别是空间点P在C1与C2上的成像点。但一般情况下,针孔模型两个摄像机的内部参数不可能完成相同,摄像机安装时无法看到光轴和成像平面,故实际中难以应用。 上海交大在理论上对会摄式双目体视系统的测量精度与系统结构参数之间的关系作了详尽分析,并通过试验指出,对某一特定点进行三角测量。该点测量误差与两CCD光轴夹角是一复杂的函数关系;若两摄像头光轴夹角一定,则被测坐标与摄像头坐标系之间距离越大,测量得到点距离的误差就越大。在满足测量范围的前提下,应选择两CCD之间夹角在50℃~80℃之间。 1.2 摄像机的标定 对双目体视而言,CCD摄像机、数码相机是利用计算机技术对物理世界进行重建前的基本测量工具,对它们的标定是实现立体视觉基本而又关键的一步。通常先采用单摄像机的标定方法,分别得到两个摄像机的内、外参数;再通过同一世界坐标中的一组定标点来建立两个摄像机之间的位置关系。目前常用的单摄像机标定方法主要有: (1)摄影测量学的传统设备标定法。利用至少17个参数描述摄像机与三维物体空间的结束关系,计算量非常大。 (2)直接线性变换性。涉及的参数少、便于计算。 (3)透视变换短阵法。从透视变换的角度来建立摄像机的成像模型,无需初始值,可进行实时计算。 (4)相机标定的两步法。首先采用透视短阵变换的方法求解线性系统的摄像机参数,再以求得的参数为初始值,考虑畸变因素,利用最优化方法求得非线性解,标定精度较高。 (5)双平面标定法。 在双摄像机标定中,需要精确的外部参数。由于结构配置很难准确,两个摄像机的距离

双目视觉地图像立体匹配系统说明书文档

双目视觉的图像立体匹配系统文档 1 引言 计算机视觉技术的发展将光与影的艺术和计算机的逻辑性紧密结合起来,而双目立体视觉技术更将这种结合从平面二次元上升到立体的角度,为我们的生产生活提供了新的技术和工具,例如已经被普遍运用的3D电影技术,研发中的虚拟现实、谷歌视觉眼镜、汽车自动驾驶技术,即将上市的淘宝虚拟实景购物等,不断改变着我们的生活,另外双目立体视觉在军事、医学、工业等领域都有其重要的作用,是机器感知物体几何层级的基础,因此对双目视觉的理论研究成为推动立体视觉乃至计算机视觉技术在各个领域创造更高价值的重要因素。 在双目视觉的研究和运用中,最重要的一个阶段无疑为将平面图像转化为可计算机可识别的立体模型,这里将用到立体匹配技术,目前双目视觉研究领域用到的立体匹配算法及其衍生算法有很多种,算法的效率和匹配精度将直接影响到算法运用的响应时间和准确度[1],当今各种视觉智能设备的发展需要将立体匹配过程直接嵌入到单片机中,这种场景下,算法的效率和匹配精度将直接决定不同运算性能的嵌入式设备的选择和产品推广后的用户体验度,也将直接决定设备成本,因此研究出更加速度快、精度高的立体匹配算法在各领域都具有划时代的重要意义。 2 系统方案设计 2.1 双目视觉的图像立体匹配系统 说起立体视觉系统,要从人的双眼说起,人眼是一个典型的双目视觉系统,每只眼睛是一个摄像机,两只平行的眼睛是两台平行的摄像机,因为两只眼睛的位置不同,看到的图像是有差异的,这个差异就是立体视觉的基础,视觉信号传入大脑,大脑利用其强大的匹配能力,就可以基本确定图像中的物体的立体信息,或者叫做图像的深度信息。随着人们知识和生产生活的发展,需要通过仿真立体视觉的原理,让计算机获取到图像从2D向3D发展,即获取图像的深度信息,以实现一些和空间视觉有关的需求,这就出现了机器立体视觉技术。

双目立体视觉

双目立体视觉 双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。现说明介绍如何基于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为两个摄像机的焦距,(u1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。 视差定义为某一点在两幅图像中相应点的位置差: 图1 双目立体成像原理图图3 一般双目立体视觉系统原理图

Halcon机器视觉二维码实例及分步注解

Halcon机器视觉二维码实例及分步注解 [plain]view plaincopy 1.*2D Code generated by Image Acquisition01 2.*QR Code 3.dev_close_window() 4.dev_open_window(0,0,400,400,'black',WindowHandle) 5.*先关闭活动图形窗口,再打开这个窗口,标识符为WindowHandle; 6.*相对于界面左上角第0行、第0列,大小为400×400像素,颜色为黑色。 7.open_framegrabber('DirectShow',1,1,0,0,0,0,'default',8,'rgb',-1,'false','defa ult','Gsou USB2.0Camera',0,-1,AcqHandle) 8.*打开帧接收器(图像采集设备,如摄像头,工业相机等),参数(Parameter)详见这个算子 9.*注意摄像头的名称,可以用工具栏中的“助手”——打开新的Image Acquisition获取摄像头及插入代码 10.grab_image_start(AcqHandle,-1) 11.while(true) 12.grab_image_async(Image,AcqHandle,-1) 13.create_data_code_2d_model('QR Code',[],[],DataCodeHandle) 14.*二维码的创建开头的算子,clear为结束清除的算子,见下。 15.set_display_font(WindowHandle,16,'mono','true','false') 16.dev_set_color('forest green') 17.dev_set_draw('margin') 18.dev_set_line_width(3) 19.set_data_code_2d_param(DataCodeHandle,'default_parameters','enhanced_recognition') 20.*设置选定参数的二维数据模型,参数详见这个算子 21.find_data_code_2d(Image,SymbolXLDs,DataCodeHandle,[],[],ResultHandles,DecodedDa taStrings) 22.*检测和读取二维代码符号,也支持读取二维数据模型的序列,参数详见这个算子 23.for i:=0to|ResultHandles|-1by1 24.select_obj(SymbolXLDs,SymbolXLD,i+1) 25.get_contour_xld(SymbolXLD,Row,Col) 26.get_string_extents(WindowHandle,DecodedDataStrings[i],Ascent,Descent,TxtWidth ,TxtHeight) 27.disp_message(WindowHandle,DecodedDataStrings[i],'image',max(Row-50),max([min( Col+30)-TxtWidth/2,1]),'black','true') 28.endfor 29.*这段for循环语句的目的是让解码到的字符串(二维码的内容)显示到二维码深绿色(forest green上 面定义)的解码区域框的行列位置。 30.*disp_message(WindowHandle,DecodedDataStrings,'window',12,12,'black','true') 31.*如果不需要设置显示到区域框中间的位置,而是显示到窗体的上方或其他位置,那么不需要上面那段for 语句,只需这段信息显示的语句即可显示到窗体相应位置。 32.if(|DecodedDataStrings|>0) 33.disp_continue_message(WindowHandle,'black','true')

跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码

跟我学机器视觉-HALCON学习例程中文详解-QQ摄像头读取条码 第一步:插入QQ摄像头,安装好驱动(有的可能免驱动) 第二步:打开HDevelop,点击助手—打开新的Image Acquisition—选中图像获取接口(I),然后点击检测,找到摄像头。如下图: 第三步:点击连接,将颜色空间设置为gray,然后点击实时,此时图像窗口中将显示采集到的图像,将物体放置到摄像头前,位置调至条码清晰。如下图:

集,点击插入代码,此时程序编辑器中将自动生成代码,如下图:

这时单击下运行按钮,将会采集一副图像并显示到图形窗口中。接下来我们将开始条码读取的工作。 第五步:在Do Something后插入如下代码: create_bar_code_model ([ ], [ ], BarCodeHandle) *由于不知道条码是何类型,因此条码类型设置为auto。CodeTypes := ['auto'] find_bar_code (Image, SymbolRegions, BarCodeHandle, CodeTypes, DecodedDataStrings) get_bar_code_result (BarCodeHandle, 'all', 'decoded_types', DecodedDataTypes) 这时再重新运行程序,只要图像清晰,此时就可以读到条码了。条码区域会变成红色,而且在变量窗口中可以查到读取的条码类型和内容。如下图:

第六步:我们再添加代码,将读取结果直接显示在图像窗口中。 disp_message (WindowHandle, DecodedDataTypes[0]+': '+DecodedDataStrings[0], 'image', 100, 160, 'forest green', 'true') 此时会提示错误WindowHandle未被初始化。 *获取更多课程请Q智达工控学院:1613985351 因为图像采集助手会自动打开一个窗口,因此我们先将它关闭,然后自己创建一个窗口。在程序最开始加上这两句代码: dev_close_window () dev_open_window (0, 0, 512, 512, 'black', WindowHandle) 再重新运行程序,此时在读取到的条码在图像中写出来了。如下图:

双目立体视觉技术简介

双目立体视觉技术简介 1. 什么是视觉 视觉是一个古老的研究课题,同时又是人类观察世界、认知世界的重要功能和手段。人类从外界获得的信息约有75%来自视觉系统,用机器模拟人类的视觉功能是人们多年的梦想。视觉神经生理学,视觉心里学,特别是计算机技术、数字图像处理、计算机图形学、人工智能等学科的发展,为利用计算机实现模拟人类的视觉成为可能。在现代工业自动化生产过程中,计算机视觉正成为一种提高生产效率和检验产品质量的关键技术之一,如机器零件的自动检测、智能机器人控制、生产线的自动监控等;在国防和航天等领域,计算机视觉也具有较重要的意义,如运动目标的自动跟踪与识别、自主车导航及空间机器人的视觉控制等。人类视觉过程可以看作是一个从感觉到知觉的复杂过程,从狭义上来说视觉的最终目的是要对场景作出对观察者有意义的解释和描述;从广义上说,是根据周围的环境和观察者的意愿,在解释和描述的基础上做出行为规划或行为决策。计算机视觉研究的目的使计算机具有通过二维图像信息来认知三维环境信息的能力,这种能力不仅使机器能感知三维环境中物体的几何信息(如形状、位置、姿态运动等),而且能进一步对它们进行描述、存储、识别与理解,计算机视觉己经发展起一套独立的计算理论与算法。 2. 什么是计算机双目立体视觉 双目立体视觉(Binocular Stereo Vision)是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点间的位置偏差,来获取物体三维几何信息的方法。融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图像,如图一。 图一、视差(Disparity)图像 双目立体视觉测量方法具有效率高、精度合适、系统结构简单、成本低等优点,非常适合于制造现场的在线、非接触产品检测和质量控制。对运动物体(包括动物和人体形体)测量中,由于图像获取是在瞬间完成的,因此立体视觉方法是一种更有效的测量方法。 双目立体视觉系统是计算机视觉的关键技术之一,获取空间三维场景的距离信息也是计算机视觉研究中最基础的内容。 双目立体视觉的开创性工作始于上世纪的60年代中期。美国MIT的Roberts通过从数字图像中提取立方体、楔形体和棱柱体等简单规则多面体的三维结构,并对物体的形状和空间关系

halcon机器视觉试验平台设计方案与研究报告

封面

作者:PanHongliang 仅供个人学习 基于HALCON的机器视觉系统的研究与实现 摘要 近年来,机器视觉系统以其高效率、高可靠、低成本的特点在国外取得了广泛的应用。机器视觉系统适用于众多领域,例如工业自动化、医药业、制造业、农业等,弥补了人类视觉的很多不足。本文采用德国MVTec公司的专业机器视觉软件HALCON来开发机器视觉系统,提出了相关机器视觉实现方法,

并且在机器视觉实验平台上完成了一个弹簧片检测任务。 目前关注较多的是机器视觉系统的硬件部分,而机器视觉软件部分关注较少,一个先进的机器视觉系统除了具有高性能的硬件外,还需要有高性能的软件,虽然说许多常见的开发软件例如Mircosoft的Visual Studio、NI的LabWindows\CVI等等都可以开发机器视觉系统,但是开发周期比较长,针对性较弱,程序的复杂程度较高。而采用HALCON作为机器视觉和图像处理核心软件,不仅大大缩短了开发周期,降低了开发难度,而且可以参考HALCON 提供的众多机器视觉和图像处理例程来针对具体的任务做具体开发。 文章的第一章研究了机器视觉系统的组成、应用现状和发展,并且对机器视觉软件HALCON做了概述。第二章根据相关要求,选择合适的硬件单元,设计和搭建了VS-ZM1200机器视觉实验平台。第三章研究了机器视觉中常用的一些图像处理技术,重点讨论了在弹簧片检测任务中所采用的图像处理技术和算法,如图像的增强,分割,边缘检测等。第四章研究了机器视觉软件,重点研究了HALCON,并且对在Visual C++开发环境下如何使用HALCON编写的程序做了讨论。第五章介绍了在VS-ZM1200机器视觉实验平台上,使用HALCON和Visual C++开发的一套弹簧片检测系统,该系统完成关于弹簧片的尺寸参数测量和外观参数判别的任务。 第一章:绪论 1.1机器视觉概述 人类在征服自然、改造自然和推动社会进步的过程中,为了克服自身能力、能量的局限性,发明和创造了许多机器来辅助或代替人类完成任务。这类机器,我们通常称为智能机器,它能模拟人类的功能,能感知外部世界并有效地解决人所希望解决的问题。人类感知外部世界主要是通过视觉、触觉、听觉和嗅觉等感觉器官,而视觉,是人类最重要的感觉功能。视,就是看。觉,就是感觉、感知。通过看来感知外部世界丰富多采的信息。“百闻不如一见”,这句话生动地说明了视觉对获得客观世界信息的重要性。据统计,人所感知的外界信息有80%以上是由视觉得到的[1],通过视觉,我们可以感受到物体的位置,亮度以及物体之间的相互关系等。因此,对于智能机器来说,赋予机器人类的视觉功能对发展智能机器是极其重要的,由此形成了 一门新的学科———机器视觉。 机器视觉,就是用机器(通常是数字计算机)代替人眼来做测量及判断,对图像进行自动处理并报告“图像中有什么”的过程。美国制造工程师协会(SME Society of Manufacturing Engineers)机器视觉分会和美国机器人工业协会(RIA Robotic Industries Association)的自动化视觉分会对机器视觉下的定义为:“机器视觉是通过光学的装置和非接触的传感器自动地接收和处理一个真实物体的图像,以获得所需信息或用于控制机器人运动的装置”。具体来讲,是指通过镜头将被测目标转化为图像信号,投射至影像接受器件(一般为 CCD 元件)上再通过数字计算机进行分析处理。CCD是英文(Charge Coupling Device)的缩写,其中文含义为电荷耦合组件。当不同强度的光线照射在CCD表面,CCD

基于HALCON的双目立体视觉系统实现

基于HALCON的双目立体视觉系统实现 段德山(大恒图像公司) 摘要双目立体视觉的研究一直是机器视觉中的热点和难点。使用双目立体视觉系统可以确定任意物体的三维轮廓,并且可以得到轮廓上任意点的三维坐标。因此双目立体视觉系统可以应用在多个领域。本文将主要介绍如何基于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为两个摄像机的焦距,(u1,v1)和(u2,v2)分别为点P在左图像和右图像中的坐标。 视差定义为某一点在两幅图像中相应点的位置差:

双目立体视觉

计算机双目立体视觉 双目立体视觉技术是仿照人类利用双目线索感知深度信息的方法,实现对三维信息的感知。为解决智能机器人抓取物体、视觉导航、目标跟踪等奠定基础。 双目立体视觉(Binocular Stereo Vision )是机器视觉的一种重要形式,它是基于视差原理并利用成像设备从不同的位置获取被测物体的两幅图像,通过计算图像对应点之间的位置偏差,来获取物体三维几何信息的方法。融合两只眼睛获取的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作为视差(Disparity )图像。 双目立体视觉系统 立体视觉系统由左右两部摄像机组成,如图,世界空间中的一点A(X,Y ,Z)在左右摄像机的成 像面1C 和r C 上的像点分别为)(111,v u a 和) (r r r v u a ,。这两个像点是世界空间中同一个对象点A 的像,称为“共轭点”。知道了这两个共轭像点,分别作它们与各自相机的光心1O 和r O 的连线,即投影线11O a 和r r O a ,它们的交点即为世界空间中的对象点A 。这就是立体视觉的基本原理。 双目立体视觉智能视频分析技术 恢复场景的3D 信息是立体视觉研究中最基本的目标,为实现这一目标,一个完整的立体视觉系统通常包含六个模块:图像获取、摄像机标定、特征提取、立体匹配、三维恢复和视频

分析(运动检测、运动跟踪、规则判断、报警处理)。 图像获取(Image Acquisition ) 数字图像的获取是立体视觉的信息来源。常用的立体视觉图像一般为双目图像,有的采用夺目图像。图像的获取方式有很多种,主要有具体运用的场合和目的决定。立体图像的获取不仅要满足应用要求,而且考虑视点差异、光照条件、摄像机的性能和场景特点等方面的影像。 摄像机标定(Camera Calibration ) 图像上每一点的亮度反映了空间物体表面某点反射光的强度,而该点在图像上的位置则与空 间物体表面相应点的几何位置有关。这些位置的相互关系由摄像机成像几何模型来决定。该几何模型的参数称为摄像机参数,这些参数必须由实验与计算来确定,实验与计算的过程称为摄像机定标。 立体视觉系统摄像机标定是指对三维场景中对象点在左右摄像机图像平面上的坐标位置)(111,v u a 和) (r r r v u a ,与其世界空间坐标A (X, Y , Z )之间的映射关系的确立,是实现立体视觉三维模型重构中基本且关键的一步。 特征提取(Feature Acquisition ) 特征提取的目的是获取匹配得以进行的图像特征,图像特征的性质与图像匹配的方法选择有着密切的联系。目前,还没有建立起一种普遍适用的获取图像特征的理论,因此导致了立体视觉研究领域中匹配特征的多样化。像素相位匹配是近二十年才发展起来的一类匹配算法。相位作为匹配基元,本身反映着信号的结构信息,对图像的高频噪声有很好的一直作用,适于并行处理,能获得亚像素级精度的致密视差。但存在相位奇点和相位卷绕的问题,需加入自适应滤波器解决。或者是像素的集合,也可以是它们的抽象表达,如图像的结构、图像的目标和关系结构等。常用的匹配特征主要有点状特征、线装特征和区特征等几种情形。 一般而言,尺度较大的图像特征蕴含较多的图片信息,且特征本身的数目较少,匹配效率高;但特征提取和描述过程存在较大的困难,定位精度也较差。而对于尺度较小的图像特征来说,对其进行表达和描述相对简单,定位的精度高;但由于特征本身数码较多,所包含的图像信息少,在匹配时需要采用较为严格的约束条件和匹配策略,一尽可能的减少匹配歧义和提高匹配效率。总的来说,好的匹配特征应该具有要可区分性、不变性、唯一性以及有效解决匹配歧义的能力。 图像匹配(Image Matching ) 在立体视觉中,图像匹配是指将三维空间中一点A (X, Y , Z )在左右摄像机的成像面1C 和r C 上的像点)(111,v u a 和) (r r r v u a ,对应起来。图像匹配是立体视觉中最重要也是最困难的问题,一直是立体视觉研究的焦点。当空间三维场景经过透视投影(Perspective Projection )变换为二维图像时,同一场景在不同视点的摄像机图像平面上成像会发生不同程度的扭曲和变形,而且场景中的光照条件、被测对象的几何形状和表面特性、噪声干扰和畸变、摄像机特性等诸多因素的影响都被集中体现在单一的图像灰度值中。显然,要包含了如此之多不利因素的图像进行精准的匹配是很不容易的。

halcon 机器视觉 基础应用

? 2003-2009 MVTec Software GmbH Descriptor-based Matching Choose between calibrated and uncalibrated matching uncalibrated returns perspective map calibrated returns pose Descriptor-based matching is done in four steps 1. Train interest points 2. Detect points 3. Match points Offline Online 4. Calculate map offline online First, create a descriptor model Create model Find model Clear model 1. detect points To create a model, choose a point detector and a point descriptor 2. describe points

create_[un]calib_descriptor_model create_calib_descriptor_model(?Image::?CamParam, ?ReferencePose, ?DetectorType, ?DetectorParamName,?DetectorParamValue,?DescriptorParamName,?DescriptorParamValue,?Seed, ?DescriptorHandle) 1. detector parameters 2. descriptor parameters 1. detect points for descriptor-based matching points_harris points_harris_binomial points_lepetit fast robust Points are described by randomized ferns 2. describe points Ferns compare random pixels to learn interest point descriptions After the training, every fern contains probability distributions at every leaf 1

相关主题
文本预览
相关文档 最新文档