一、机器视觉系统基本原理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一、机器视觉系统基本原理相关的知识,希望对你有一定的参考价值。
视觉系统就是用机器代替人眼来做测量和判断。视觉系统是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。是用于生产、装配或包装的有价值的机制。它在检测缺陷和防止缺陷产品被配送到消费者的功能方面具有不可估量的价值。
一个完整的机器视觉系统的主要工作过程如下:
1、工件定位检测器探测到物体已经运动至接近摄像系统的视野中心,向图像采集部分发送触发脉冲。
2、图像采集部分按照事先设定的程序和延时,分别向摄像机和照明系统发出启动脉冲。
3、摄像机停止扫描,重新开始新的一帧扫描,或者摄像机在启动脉冲来到之前处于等待状态,启动脉冲到来后启动一帧扫描。
4、摄像机开始新的一帧扫描之前打开曝光机构,曝光时间可以事先设定。
5、另一个启动脉冲打开灯光照明,灯光的开启时间应该与摄像机的曝光时间匹配。
6、摄像机曝光后,正式开始一帧图像的扫描和输出。
7、图像采集部分接收模拟视频信号通过A/D将其数字化,或者是直接接收摄像机数字化后的数字视频数据。
8、图像采集部分将数字图像存放在处理器或计算机的内存中。
9、处理器对图像进行处理、分析、识别,获得测量结果或逻辑控制值。
10、处理结果控制流水线的动作、进行定位、纠正运动的误差等。
从上述的工作流程可以看出,机器视觉是一种比较复杂的系统。因为大多数系统监控对象都是运动物体,系统与运动物体的匹配和协调动作尤为重要,所以给系统各部分的动作时间和处理速度带来了严格的要求。在某些应用领域,例如机器人、飞行物体导制等,对整个系统或者系统的一部分的重量、体积和功耗都会有严格的要求。
欢迎登陆机器视觉产品资料查询平台,超全的机器视觉系统产品线,海量的文档软件资源,满足您对机器视觉系统的一站式查询下载需求。
参考技术A 机器视觉系统的目的就是给机器或自动生产线添加一套视觉系统,其原理是由计算机或图像处理器以及相关设备来模拟人的视觉行为,完成得到人的视觉系统所得到的信息。该技术被广泛应用在生产制造等行业。可用来保证产品质量、控制生产流程、感知环境等。颜色定义:“色是光作用于人眼引起除形象以为的视觉特性”。既:颜色是一种光学现象,是光刺激人眼的结果,有光才有色。彩色也是一种心理感觉,它与照明光源的辐射能力分布及观看者的视觉生理结构有光。人眼可以感知的光谱范围为380nm-780nm,但人感知一个物体的颜色一般是指在日光照明的环境下所显示的色彩,对于同一物体在不同光线的照射下人会感觉到不同的色彩。人眼视网膜里存在着大量光敏细胞,按其形状可分为杆状和锥状两种。杆状光敏细胞的灵敏度极高,主要靠它在底照度时辨别明暗,但它对彩色是不敏感的;而锥状细胞既科二辨别明暗,也可辨别彩色。白天的视觉过程主要靠锥状细胞来完成,夜晚视觉则由杆状细胞起作用。所以在较暗处无法辨别彩色。 参考技术B 现代社会,工业自动化设备使用率越来越高,越来越多的企业、商家、客户会选择采用机械设备,不仅可以抬高产能,而且减轻人们负担,可以长时间不间断的进行工作,今天要来了解的就机器视觉设备,那你知道视觉设备工作原理是什么吗?
机器视觉系统就是利用机器代替人眼来作各种测量和判断。它是计算科的一个重要分支,它综合了光学、机械、电子、计算机软硬件等方面的技术,涉及到计算机、图像处理、模式识别、人工智能、信号处理、光机电一体化等多个领域。图像处理和模式识别等技术的快速发展,也大大地推动了机器视觉的发展。
采用机器视觉设备就是用机器替代人眼完成检测,具体实现的过程是用工业相机采集被检测器件的图像,而这个采集的过程可以说是机器视觉最为重要的一个环节了,因为要将被采集器件需要检测的特征全部都体现出来,所以如何采集图像需要不断地根据器件的特征调整光源以及相机的参数,确保能够采集到准确的图像需要不断地进行调整。
当然这个时候是模拟量,然后利用专业的图像处理软件将模拟信号转化为数字信号;再对其进行运算,抽取目标的待检测特征,比如说颜色、器件表面是否有划痕、规格大小是否合格、表面涂料是否均匀等等;输出结果,反馈到机械端对于器件进行分检,将不合格器件挑选出来。
一般来说,日弘智能机器视觉设备工作原理就是把机器人视觉硬件主要包括图像获取和视觉处理两部分,而图像获取由照明系统、视觉传感器、模拟-数字转换器和帧存储器等组成。机器人视觉通过视觉传感器获取环境的二维图像,并通过视觉处理器进行分析和解释,进而转换为符号,让机器人能够辨识物体,并确定其位置。
基于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与R2、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、分割、形态学、分类器、几何变换,用户可以通过这些基本函数来搭建各种应用中高效实用的算法。
以上是关于一、机器视觉系统基本原理的主要内容,如果未能解决你的问题,请参考以下文章