这一节介绍如何完成常用的机器视觉任务。最常用的检测任务是测试图像中有还是没有某个部件,并测量部件的大小以确定是否满足标准。

测量是基于图像中物体所表现出来特征。图像处理算法通常利用图像中包含的信息进行分类,如边、面或形状。不同类型的机器视觉算法,影响并提取一种或多种信息。

边缘检测及其衍生技术,如耙子,同心耙,和辐条(rakes, concentric rakes, and spokes)用于图像中所表现出了边。他们可以精确地定位物体边缘的位置。可以使用边缘检测来进行部件宽度一类的测量, 这一技术被称为卡尺。也可以综合多条边来计算交点、投射、适合的园或椭圆。

模式匹配算法使用边和样板。模式匹配可以精确的定位所检测部件的基准位置或特性。可以综合使用这些位置来计算长度、角度和其它的测量指标。

测量指标的健壮性以来与图像采集条件的稳定性。传感器分辨率、光照、光学、震动控制、 工件夹具,以及一般环境都是图像建立的关键因素。 图像采集环节的所有元素直接影响测量的精度。

下图介绍了机器视觉过程中的基本步骤。

p_w_picpath

说明 图中虚线框起来的内容是可选步骤。

检测物体定位

典型的机器视觉应用中,是从关注区中提取测量指标而不是从整个图像中。要使用这种技术,关注物体的各个部分都要出现在所定义的关注区中。

如果需要处理的图像中被测物体始终保持在相同的位置和方向,那么直接定义关注区就可以了。参见本文中关于选择ROI一章。

通常,被测物体会在需要处理的图像中发生相对位移或旋转。 发生这种情况时,那么关注区就需要跟所关注的物体的所有部分一起移动或旋转。对于要随物体一起移动的关注区,需要定义一个相对于参考图像中物体的参考坐标系统。在测量处理期间,当需要处理的图像中的物体出现移动和旋转时,坐标系统也随物体一起移动。这个坐标系统称为测量坐标系统。测量模块利用相对于参考坐标系统的测量位置自动地将关注区移动到正确的位置。关于坐标系统,参见参见NI Vision概念手册,第14章,维度测量。

可以利用边缘检测或模式匹配建立一个坐标变换。建立坐标变换的边缘检测和模式匹配模块的输出结果是原点、角度,和坐标系统的轴向。某些 机器视觉模块采用这一输出结果并自动调整检测区域。也可以通过编程利用这些输出结果来移动做相对于物体的检测区域。

利用边缘检测创建坐标变换

可以采用两种边缘检测技术创建一个坐标变换。IMAQ Find CoordSys (Rect) 2 模块利用一个矩形区域定义一个参考坐标系。IMAQ Find CoordSys (2 Rects) 2 模块使用两个独立的矩形区域定义一个坐标系。使用边沿检测构建一个坐标变换的完整步骤如下。

1. 指定一个或恋歌矩形区域。

a) 如果使用IMAQ Find CoordSys (Rect) 2 模块,指定一个包含两个正直部分的关注区,如下图所示。这个矩形区域必须足够大以包含全部图像中所要检测的边缘。

p_w_picpath

 

1 坐标系搜索区域

3 坐标系原点

2 物体边缘

4 测量区域

b) 如果使用IMAQ Find CoordSys (2 Rects) 2 模块,指定两个矩形关注区,每个区域包含一个分开的、正直物体边缘,如下图所示。这两个边不能平行。这两个矩形区域必须足够大以包含全部图像中所要检测的边缘。

p_w_picpath

 

1 第一搜索区域

3 坐标原点

2 第二搜索区域

4 测量区域

2. 选择用于定位物体上边缘的参数。

3. 选择坐标轴方向。

4. 选择希望覆盖在图像上的结果。

5. 为模块选择模式。第一次建立坐标变化,将模式设置为Find Reference。 要为其后的图像更新坐标变换,将该模式设置为Update CoordSys

使用模式匹配构建一个坐标变换

使用模式匹配可以构建一个坐标变换。IMAQ Find CoordSys (Pattern) 2 基于参考属性的位置定义一个参考坐标系。该技术用于检测物体没有正直边,或不连续边的情况。使用模式匹配构建一个坐标变换的完整步骤如下:

说明 如果使用旋转-不变模式匹配,使用该技术可以使物体在图像中旋转 360° 。

1. 定义代表用作参考属性的物体的一部分的模板,。

2. 定义一个期望查找模板的矩形搜索区

3. 选择匹配模式。当检测图像中所要的样板发生旋转时,选择Rotation Invariant ,否则,选择Shift Invariant

4. 选择需要覆盖在图像上的结果

5. 为模块选择模式。第一次建立坐标变化,将模式设置为Find Reference。 要为其后的图像更新坐标变换,将该模式设置为Update CoordSys。

选择构建坐标变换的方法

下图所示的流程图引导在应用程序中选择最佳的建立坐标变换的方法。

p_w_picpath

设置搜索区域

在图像中选择关注区,以限制处理和检测的区域。可以通过交互式或编程来定义关注区。

交互式定义区域

下面的表列出了特定的测量模块所 使用的关注区。

关注区

测量模块

旋转矩形

IMAQ Find Pattern 2
IMAQ Clamp Horizontal Max
IMAQ Clamp Horizontal Min
IMAQ Clamp Vertical Max
IMAQ Clamp Vertical Min
IMAQ Find Edge
IMAQ Find Straight Edges

环形

IMAQ Find Circular Edge
IMAQ Find Concentric Edge

程序化定义区域

当设计一个自动化应用程序是,需要程序化定义关注区。可以有两种方法:

l 制定ROI描述元素。

l 提供描述要定义的区域的基本参数来制定区域。可以通过提供左上角坐标,右下角,和旋转角度来指定一个旋转矩形。可以通过提供中心坐标,内径,外径,起始角,结束角来指定一个环形。可以通过设置x-和y-坐标来指定一个点。可以设置起点和终点来指定一条线。

查找测量点

在设置了检测区域之后,就能够定位基本测量的点。可以使用边缘检测、模式匹配、彩色模式匹配和色彩定位来定位测量点。

使用边缘检测获得特征

图像的非连续性通常表现为像素明暗度的突然改变。使用边缘检测工具可以识别和定位图像中剧烈的不连续处。

查找线和圆

如果想沿着物体的边沿查找点并找到描绘这条边的线,使用IMAQ Find Edge, IMAQ Find Straight Edges,和IMAQ Find Concentric Edge模块。IMAQ Find EdgeIMAQ Find Straight Edges 模块基于矩形搜索区域查找边缘,如下图所示。 IMAQ Find Concentric Edge 模块基于环形搜索区域查找边缘。

p_w_picpath

 

1 搜索区域

3 检测到的边缘点

2 搜索线

4 与边缘点所对应的线

如果想要沿着圆形边缘查找点并找到最适合边缘的圆,如下图所示,使用IMAQ Find Circular Edge 模块。

p_w_picpath

 

1 环形搜索区域

3 检测到的边缘的点

2 搜索线

4 与边缘点所对应的圆

IMAQ Find Edge 和 IMAQ Find Concentric Edge 模块查找物体边缘和一组搜索区域中的搜索线之间的交叉点。为模块指定用于检测边缘的线的间隔。检测模块基于他们对比度、宽度和倾斜度来确定交叉点。软件计算出紧贴外缘的最适合的线,或者通过所找到点的最适合的圆。检测模块返回所找到的边的坐标。

沿一个搜索轮廓线查找边缘点

IMAQ Simple Edge 模块和IMAQ Edge Tool 2 模块用于沿着一个轮廓查找边缘点。可以沿着轮廓查找 第一个边缘,最后一个边缘,或所有的边缘。当图像中包含很少的噪声并且物体和背景明显不同时,使用IMAQ Simple Edge模块。否则,使用IMAQ Edge Tool 2模块

IMAQ Simple Edge 模块要求输入沿着搜索轮廓的点的坐标。使用IMAQ ROIProfile 模块可以从轮廓的RO描述中获得坐标。如果有了一条直线,使用IMAQ GetPointsOnLine模块来获得线上的点,而不使用ROI描述。

IMAQ ROIProfile和IMAQ GetPointsOnLine基于对比度和斜度确定边缘点。如果需要可以指定查找边缘点的子像素精度。

沿着多个搜索轮廓查找边缘点

IMAQ Rake 2, IMAQ Spoke 2, 和IMAQ Concentric Rake 2 模块用于沿着多个搜索轮廓查找边缘点。这些模块需要传入一个ROI描述用于定义搜索区域。

IMAQ Rake 作用于一个矩形搜索区域。搜索线被画在与矩形平行的方向。通过指定区域中每条线之间以像素为单位的距离来控制搜索线的数量。对于水平方向的矩形指定从左到右或从右到左的搜索方向。对垂直方向的矩形指定从上到下或从下到上的搜索方向。

IMAQ Spoke 2 作用于一个环形搜索区域,扫描每一条从区域的中心到外缘并落在搜索区域中的线。通过指定每条线之间以度数为单位的角度来控制线的数量。搜索方向指定为从中心向外或者从外沿向中心。

IMAQ Concentric Rake 2 作用于一个环形搜索区域。中心扫描耙(rake)是一个环形区域耙的适配器。边缘检测是沿着搜索区域中出现的与外层圆形边缘同心的扫描线完成。通过以像素为单位指定同心线的径向距离可以控制用于边缘检测的同心搜索线的数量。搜索方向指定为顺时针或反时针。

使用模式匹配查找点

NI Vision中的模式匹配算法用于测量理想化的特征表现,成为模板,与图像中的可能表现之间的相似度。特征是图像中像素的一个特定的模式。模式匹配返回模板和模板方位的中心位置。利用模式匹配查找图像特征通常需要以下步骤:

1. 定义一个参考或基准样本作为模板图像。

2. 使用IMAQ Learn Pattern 2模块利用参考样本训练模式匹配算法。

3. 定义一个图像或图像的一个区域作为搜索区域。较小的搜索区域能减少查找特征的时间。

4. 使用IMAQ Setup Match Pattern 2设置容限和参数以指定算法在运行时如何工作。

5. 使用IMAQ Match Pattern 2模块在测试图像上测试搜索算法。

6. 使用一种排序方法验证结果。

定义并创建有效的模板图像

一个有效的模板图像是获得最佳结果的关键部分。由于模板代表了所要查找的样本,要确保样本的所有特征和唯一特性都要在图像中定义。

在建立模板图像的过程中有几个因数是最关键的。这些关键因素包括均匀度,细节特征,位置信息,以及背景信息。

均匀度

一个旋转均匀的模板,如图A所示,与一个不均匀的模板相比队旋转的时候有很少的敏感度。一个旋转均匀的模板提供了很好的位置信息,而没有方向信息 。图B 显示了一个旋转非均匀模板。

p_w_picpath

细节特征

具有相对粗糙特征的模板,如图B所示,与图A所示的具有精细特征的模板相比,对尺寸和旋转变化有很少的敏感度。然而,模型必须包含足够的细节以确定特征。

p_w_picpath

位置信息

一个x-和y-方向具有明显边缘的模板便于定位。图A 显示了一个x-和y-方向都有边缘的模板例子。图B 显示了一个仅在x-方向有边缘的模板例子。

背景信息

模板中单一的背景信息有利于改善搜索效率和精度。图A所示的模板包含很少的背景信息。图B 所示的模板包含了 大量的背景信息可以用于将模板从其它可能的匹配中分离出来。

训练模式匹配算法

在建立了良好的模板图像之后,模式识别算法必须要学习模板的重要特征。 IMAQ Learn Pattern 2 模块用于学习模板。学习的过程依赖于所要完成的匹配类型。如果不期望图像中的模板实例发生旋转或改变大小,模式匹配算法必须学习的仅仅是对位移匹配相关的模板信息。然而,如果希望匹配任意方向的模板,学习过程必须考虑任意方向的可能性。IMAQ Setup Learn Pattern 2用于指定要使用哪种学习模式。可以为IMAQ Learn Pattern 2提供一个遮罩,代表学习算法需要在图像中忽略的像素区域。可以将被测图像中变化的模板区域遮起来,以使匹配过程中忽略这个区域,使整个模式匹配过程更加有效(Robust)。遮罩必须与模板图像大小相同。如果为IMAQ Learn Pattern 2提供一个遮罩,该模块仅学习模板中与遮罩中对应像素值为0像素。遮罩像素不为0的被忽略。如果需要学习整个模板,就不要使用遮罩。

学习过程通常是很耗时的,因为算法试图查找模板的每个特征以便快速、准确地匹配。所选择的学习模式也影响学习过程的速度。学习位移不变的匹配比学习旋转不变得模板要快。为了节省时间,也可以使用离线方式训练匹配算法,然后使用IMAQ Write File 2的实例IMAQ Write Image and Vision Info File 2将模板图像保存起来。

定义搜索区域

有两个重要因素决定了模式匹配算法的成功与否:精度与速。可以定义一个搜索区域以减少搜索过程中的不确定性。例如,如果图像中有多个样板实例,而其中只有一个是用于检测任务的,额外的样板实例的出现可能产生不正确的结果。为了避免发生这种情况,减少搜索区域以使仅仅所需要的样板出现在搜索区中。

在图像中定位一个样板所需要的时间,即取决于模板的尺寸,也取决于搜索区域。减少搜索区域,可以减少所需的搜索时间。增加模板尺寸能改善搜索时间,但如果这样做,如果较大的模板包含的过多的背景信息将较少匹配的精度。

在许多检测应用中,已经拥有基准位置的一般信息,可以利用这一信息定义一个搜索区域。例如,在一个标准的元器件安置应用中,每个要检测的印刷电路板可能不是以相同的方向放在相同的位置。在各种图像中的印刷电路板位置可能在已知的范围内移动和旋转。图A所示的模板用于定位图像中的PCB。图B所示的图象包含一个想要定位的带有基准的PCB 。注意,搜索区域是围绕着基准的。如果在匹配过程开始之前就知道PCB 图象可能在一个固定的范围内移动或选装,分别如图C和D所示,就可以将基准的搜索区域限制在图象的一个很小的区域内。

p_w_picpath

设置匹配参数和容限

每个模式匹配算法都对图象和机器视觉应用中所使用模式匹配参数做出一些假设。这些假设适用于大多数应用。然而,也有一些应用中这些假设并不是最优的。了解特定应用和所要处理的图象在选择模式匹配参数时是非常有有用的。 IMAQ Setup Match Pattern 2 模块用于设置以下影响NI Vision模式匹配算法的参数:匹配模式最小对比度旋转角度范围

匹配模式

设置匹配模式用于控制模式匹配算法如何处理不同的方向。如果希望有效的匹配相对于模版的方向变化小于±5°,可以将Match Mode设置Shift Invariant(位移不变)。否则,将Match Mode设置为 Rotation Invariant。 位移不变匹配比旋转不变更快。

最小对比度

模式匹配算法忽略所有对比度值低于所设置的最小对比度的图象区域。对比度是一个区域中最小和最大像素值的差异。将Minimum Contrast 设置为稍低于最低对比度搜索区域的对比度值。

设置最小对比度可以潜在地增加模式匹配算法的速度。如果搜索图像整体对比度较高但包含一些低对比度区域,设置一个较高的最小对比度值可以排除所有的低对比度图像区域。排除这些区域可以明显地减少模式匹配算法必须搜索的面积。然而,如果搜索的图像整体上对比度较低,那么就应设置一个较低的最小对比度以确保模式匹配算法能在图像的所有区域中搜索模板。

旋转角度范围

如果已经知道模板旋转限制在一定的范围内,例如,在–15°和15°之间,可为该限制信息在Rotation Angle Ranges空间中提供给模式匹配算法。该信息可以改善搜索时间,因为模式匹配算法可以在较小的角度内搜索。有关模式匹配的详细内容,参见NI Vision 概念手册,第12章,模式匹配。

在测试图像上测试搜索算法

要验证所选择的模板或参考样板是否适合自己的机器视觉应用,可以使用 IMAQ Match Pattern 2模块在少量图像上测试模板。这些测试图像会反映出机器视觉应用在真实运行条件下所生成的图像。如果模式匹配算法能够在所有情况下都能定位到参考样板,说明所选择的是一个好的模板。否则,就要改善当前的模板,或者选择一个更好的模板知道训练和测试都是成功的。

使用分级方法验证结果

解读IMAQ Match Pattern 2模块结果的方法取决于应用程序。对于标准的校准应用,例如查找晶片基准,最重要的信息是位置和最佳匹配部位。使用Matches指标PositionBounding Box 元素获得位置和匹配部位。

在检测应用中,例如光学字符检验(OCV),最匹配分值是比较有用的。模式匹配算法返回的匹配分值是原样板与图像中找到的内容匹配紧密度的指标。高分代表一个非常紧密的匹配,而低分代表匹配的比较差。分值可以作为一个评判标准以确定打印的字符是否是可以接受的。使用Matches 指标的Score 元素来获得对应的匹配分值。

使用几何匹配查找点

NI Vision中的几何匹配算法用于在灰度图像中寻找与一个参考样板匹配的模型,或模板。几何匹配专门用于寻找具备离散化几何或形状信息的模板。几何匹配查找模板匹配能够忽略光的变化,模糊,噪声,咬合,以及几何变换,如模板的位移、旋转,或比例。几何匹配返回模板的中心位置,模板的方向,和模板的比例。

使用几何匹配查找图像中的特征通常要完成以下步骤。

1. 使用一个模板图像定义一个参考或基准的样板。

2. 使用NI Vision模板编辑器利用参考样板训练几何匹配算法。选择 Start?All Programs?National Instruments?Vision?Template Editor 打开NI Vision模板编辑器。

3. 定义一个图像或图像的一个区域作为搜索区域。小的搜索区域可以减少查找特征的时间。

4. 使用IMAQ Setup Match Geometric Pattern模块设置容限和参数以指定运行时算法如何工作。

5. 使用IMAQ Match Geometric Pattern模块在测试图像上测试搜索算法。

定义和创建有效的模板图像

选择一个有效的模板图像是获得好的结果的决定性的部分。由于模板图像代表所要查找的样板,要确保所有重要和独特的特征都被很好的定义在图像中。

几何匹配算法是为定位具有良好几何信息的物体而优化的。下面的图线是了具有良好几何或形状信息的模板图像的例子。

p_w_picpath

几何匹配不适合于主要是灰度或纹理信息的模板图像。下面的图显示了没有良好几何信息的模板图像。图A中的模板图像的主要特征是图像中的灰度或纹理信息。图B包含了太多的边缘,会急剧地增加几何匹配在图像中定位模板的时间。

p_w_picpath

训练几何匹配算法

在建立了一个好的模板图像之后,几何匹配算法必须学习模板的重要特征。使用NI Vision模板编辑器选择模板中的重要特征。几何匹配使用在图像中查找到的曲线作为用于匹配的基本特征。使用NI Vision模板编辑器可以去除模板中的噪声或不重要的曲线并仅保存图像中对定位模板重要的曲线。

图A显示了一个面具的图像模板。图B显示了在图像模板中发现的所有曲线。这些图像由若干很适合匹配的曲线构成,例如沿着面具边缘的线,噪声或不重要的曲线,以及编码周围的线和图像中反光区域的线。如果带着不重要的曲线学习模板,几何匹配算法会把这些曲线作为必须在有效匹配区中必须查找的重要特征。为了使匹配过程更加可靠,应在学习模板之前去掉这些曲线。图C 显示了利用NI Vision模板编辑器去掉了不重要的曲线之后的用于学习模板的曲线。

p_w_picpath

一旦训练了了模板图像,就可以从NI Vision模板编辑器中将模板保存到文件中。使用IMAQ Read Image and Vision Info 模块可以在程序中读取模板文件。

关于训练几何匹配算法的详细内容,参见NI Vision 模板编辑器帮助。

设置匹配参数和容限

几何匹配算法对机器视觉应用中使用的图像和几何匹配参数作了一定的假设。这些假设适用于绝大多数应用。然而,也有一些应用中这些假设并不是最优的。了解特定应用和所要处理的图象在选择模式匹配参数时是非常有有用的。 IMAQ Setup Match Geometric Pattern模块用于设置以下影响NI Vision模式匹配算法的参数:匹配模式转角度范围,咬合范围

匹配模式

通过设置控制模式来控制几何匹配算法查找模板的条件。如果希望有效的匹配与模板间的方向变化大于±5°,将Match Mode中的Rotation 选项设置为有效。如果希望尺寸变化范围大于5%, 将Match Mode中的Scale选项设置为有效。如果期望有效的匹配可以部分覆盖或缺失,将Match Mode中的Occlusion选项设置为有效。任何一个选项设置为无效或限制它们的范围将减少搜索时间。

旋转角度范围

如果已知样板限制在一定的范围内,例如,在–15°和15°之间。设置Range Settings控件中的Rotation Angle(度) 将这些限制信息提供给几何匹配算法。该信息改善了搜索时间,因为几何匹配算法能在更小的角度内搜索样板。

比例因子范围

Match ModeScale选项有效时,几何匹配仅搜索图像中模板出现与否而忽略有效的匹配是否是不同的大小。默认的比例范围是75%到125%。如果已知有效匹配的比例范围限制在一定的范围内,例如,在90%和110%之间,通过设置Range Settings 控件中的Scale Factor (%)选项,将这一限制信息提供给几何匹配算法。

咬合范围

Match Mode 中的Occlusion选项有效时,几何匹配搜索图像中模板的有无,允许模板的一定比例被遮挡。默认的遮挡范围是0% 到25%。如果已知有效匹配的遮挡范围限制在一定范围内,例如,在0%和10%之间。通过设置Range Settings 控件中的Occlusion (%)选项,将这一限制信息提供给几何匹配算法。

有关几何匹配的更多信息,参见NI Vision概念手册,第13章,几何匹配

在测试图像上测试搜索算法

为了验证所选择的模板或参考样板是否满足机器视觉程序的要求,可以使用IMAQ Match Geometric Pattern 模块在少量测试图像上对模板进行测试。这些测试图像应该反映出机器视觉程序在实际运行条件下生成的图像。如果几何匹配算法在所有情况下都能找到参考样板,就说明已经选择了一个很好的模板。 否则, 就需要优化当前的模板,或者选择一个更好的模板直到训练和测试都成功为止。

使用多模板图像

如果应用程序需要在目标图像中查找多个模板图像,按下列步骤进行。

1. 使用定义和创建有效模板图像训练几何匹配算法所介绍的方法建立和训练每个模板图像。

2. 使用IMAQ Learn Multiple Geometric Patterns 模块将上面的步骤中训练的模板合并到多几何模板中。

如果想要离线完成学习过程,使用IMAQ Write Multiple Geometric Template 模块将所生成的多几何模板保存到文件中。使用IMAQ Read Multiple Geometric Template 模块可以使应用程序在匹配处理期间读取多几何模板文件。

1. 使用设置破配参数和容限一节介绍的方法定义每个模板如何与目标图像匹配。

说明 尽管本步骤生成的参数仅用于匹配期间,仍然可以在学习阶段将这些参数传递给IMAQ Learn Multiple Geometric Patterns模块。将这些参数存储在多几何模板中,当保存多几何模板时它们就会存放到文件中。程序读取多几何模板文件时,它们将作为多几何模板的一部分在匹配处理期间使用。如果想在匹配处理期间覆盖某些参数,可以将要覆盖的参数传递给IMAQ Match Multiple Geometric Patterns 模块。

2. 使用IMAQ Match Multiple Geometric Patterns 模块在测试图像上测试多模板搜索算法以匹配所有模板。该步骤的重要性与在测试图像上策测试搜索算法中解释的相同。

使用彩色模式匹配查找点

彩色模式匹配算法为在出现彩色的时候提供了一种快速的查找物体的方法。如果图像具有下列质量,就可以适用彩色模式匹配:

  1. 1. 要查找的物体的彩色信息与背景非常不同,并且希望在找到图像中物体的精确位置。
  2. 2. 要查找的物体的灰度特性非常难以鉴别,或者与搜索图像中的其它物体非常相像。这种情况下,灰度模式匹配可能得出不精确的结果。如果物体具有的彩色信息不同于屏幕中的其它物体,那么色彩就为机器视觉软件提供了定位物体的额外信息。

彩色模式匹配返回模板的中心位置和模板的方向。适用彩色模式匹配查找图像中的特征采用以下步骤:

1. 以模板图像的形式定义一个参考或基准样板。

2. 使用IMAQ Setup Learn Color Pattern 模块利用参考样板训练彩色模式匹配算法。

3. 定义一个图像或图像区域作为搜索区域。较小的搜索区域可以减少查找特征的时间。

4. 将Feature Mode 控件设置为Color and Shape

5. 使用IMAQ Setup Match Color Pattern模块设置容限和参数,以制定算法在运行时如何工作。

6. IMAQ Match Color Pattern 模块在测试图像上测试搜索工具。

7. 使用分级方法验证结果

定义和建立好的彩色模板图像

选择一个好的模板图像在使用彩色匹配算法获得精确结果的过程中是关键的一步。因为模板图像代表着想要查找的彩色和样本,应确保所有的重要和唯一的特征都被定义在图像中。

有几个因素是建立模板图像的关键。这些关键因素包括彩色信息、均匀度细节、位置信息,和背景信息。有关这些因素的更多信息,参见定义和建立有效的模板图像

彩色信息

单色的模板比包含许多颜色的模板能为样板提供更好的结果,特别是背景或图像中的其它物体。

均匀度

在两度平面上一个旋转均匀的模板比旋转不均匀的模板对旋转变化的敏感度低。

细节特征

相对粗糙特征的模板对尺寸变化的敏感度比具有细致特征模型要低。然而,模型必须要把包含足够辨认它的细节。

位置信息

彩色模板的亮度平面包含的x-和y-方向的明显的边沿,便于定位。

背景信息

在灰度模式匹配期间,单一的背景信息可以改进搜索的性能和精度。这一要求对于彩色模式匹配的彩色信息要求是冲突的,因为背景色可能在彩色定位阶段产生干扰。解决这一问题的方法是为灰度模式匹配选择一个具有充分背景信息的模板,同时指定在彩色定位阶段要排除的背景色。有关如何忽略色彩的更多信息,参见训练彩色模板匹配算法

训练彩色模式匹配算法

在建立了一个好的模板图像之后,彩色模式匹配算法需要学习模板的重要信息。学习的过程取决于所期望完成的匹配类型。默认情况下,彩色模式匹配算法仅从模板中学习与位移不变匹配所必需的信息。然而,如果希望让模板在任意方向上匹配,学习过程必须考虑任意方向的可能性。

使用IMAQ Setup Learn Color Pattern模块指定使用哪种学习模式。然后使用IMAQ Learn Color Pattern 模块学习模板。

排除模板中在搜索阶段不感兴趣的色彩。忽略模板中难于定位的色彩。模板与搜索图像的部分区域仅仅是主色不同,可以考虑忽略掉主要的共同色彩以改善性能。通常,主色是彩色模板的背景色。

IMAQ Setup Learn Color Pattern 模块用于忽略颜色。可以使用Ignore Black and White 控件忽略特定的预定颜色。要忽略其他颜色, 首先使用IMAQ ColorLearn 学习要忽略的颜色。然后,将IMAQ Setup Learn Color Pattern 模块的Ignore Color Spectra 控件设置成结果的色谱。

学习算法是很耗时的,因为算法要试图找到模板的位移特性,以便快速、精确的匹配。但是,可以离线训练模式匹配算法,并使用IMAQ Write File 2模块的实例IMAQ Write Image and Vision Info File 2保存模板图像。

定义搜索区域

有两个同等重要的因素决定了彩色模式匹配算法是否成功,精度和速度。可以定义一个搜索区域以减少无为的搜索过程。例如,如果图像中有多个样板的实例,且检测任务仅需要一个实例,样板其他实例的出现可能产生不正确的结果。为了避免出现这个问题,减少搜索区域以使仅将需要的样板留在搜索区内。比如,在保险箱检测的例子中,使用要检测的保险丝的位置定义搜索区。因为所要检测的保险箱可能不是处于精确的位置或者在图像中的方向与上一个相同,所定义的搜索区域应该足够大以适应箱子的位置变化。下图显示了如何为不同的物体选择搜索区域。

p_w_picpath

 

1 20 Amp保险丝搜索区

2  25 Amp 保险丝

在图像中定位样板所需的时间既取决于样板大小,也取决于搜索面积。减少搜索面积,可以减少所需的搜索时间。增加模板大小可以改善搜索时间,但这样做的话,如果更大的模板包含的多余的背景信息会降低匹配的精度。

设置匹配参数和容限

每个彩色模式匹配算法都会对图像和机器视觉程序中使用的彩色模式匹配参数做出一些假设。这些假设对绝大多数应用是有效的。但是,有些应用中算法所使用的假设可能不是最优的。这时就必须修改彩色模式匹配参数。了解应用以及所有处理的图像对选择模式匹配参数是非常有必要的。使用IMAQ Setup Match Color Pattern 模块设置下列影响彩色模式匹配的参数:色彩感光度、搜索策略、色彩分值权重、忽略颜色、最小对比度,以及旋转角度范围。

色彩感光度

色彩感光度用于控制模板图像中彩色信息的颗粒度。如果背景和图像中的物体包含的色彩与模板图像中的色彩非常相近的话,应适用更高的色彩感光度设置。 较高的感光度设置利用非常接近的色调来区分色彩。NI Vision中有三个色彩感光度设置: 低、中、和高。如果模板中的颜色与背景或不感兴趣的物体的颜色非常不同,那么就使用低设置。随着差异的降低,应增加色彩感光度。IMAQ Setup Match Color Pattern模块的Color Sensitivity控件用于设置色彩感光度。有关色彩感光度的更多信息,参见NI Vision概念手册,第15章,彩色检测

搜索策略

使用搜索策略可以优化彩色模式匹配算法的速度。搜索策略控制用于模板的步长、子采样因子、以及彩色信息比例。

可选择的策略如下:

  1. Conservative—使用一个非常小的步长,最小的子采样量,和模板中出现的所有彩色信息。保守策略对于在可能降低速度的情况下搜索一个模板是最可靠的方法。

说明 如果图像中有挨得特别近的多个目标时,适用保守策略。

  1. Balanced—使用挑战型和保守型之间的值。
  2. Aggressive—使用一个较大的步长,许多子采样,以及模板中全部的色谱信息。
  3. Very Aggressive—使用最大的步长,最多的子采样,以及仅使用模板中主要的色彩来搜索模板。当模板中的色彩非常一致,模板与背景有明显的对比,而且图像中出现的模板很容易区分时使用该策略。该策略是在图像中查找模板的俄最快速的方法。

通过不同的选项试验来确定最好的策略。使用Search Strategy控件选择搜索策略。

色彩分值权重

当同时使用色彩和形状信息搜索模板时,匹配处理期间产生的色彩和形状分值合并后生成最后的彩色模式匹配分值。色彩分值权重决定色彩分值对于最终彩色模式匹配分值的贡献度。如果模板的色彩信息优于模板的形状信息,就将权重设高。例如,如果使用1000的权重,算法同时使用色彩和形状信息查找每个匹配,然后完全基于它们的色彩分值对匹配进行分类。 如果权重是0,匹配仍然使用色彩和形状信息, 但他们完全被基于其形状分值分类。使用Color Score Weight 控件来设置色彩分值权重。

最小对比度

使用最小对比度可以增加彩色模式匹配算法的速度。彩色模式匹配算法忽略所有灰度对比度值低于最小对比度值得图像区域。使用Minimum Contrast 控件设置最小对比度。有关最小对比度的内容,参见设置匹配参数及容限

旋转角度范围

有关旋转角度范围的内容,参见 设置匹配参数及容限。

在测试图像上测试搜索算法

有关测试搜索算法的信息,参见在测试图像上测试搜索算法

使用彩色定位查找点

彩色定位算法为在带有特定颜色的图像中定位一个区域提供了一种快速的方法。在应用程序中使用彩色定位有以下特点:

  1. 需要带有特定彩色信息图像中区域的位置和数量
  2. 依赖于区域中的累积的彩色信息,而不是彩色的分布信息
  3. 不要求区域的方向
  4. 不要求子像素精度的位置
  5. 不要求区域的形状信息

使用彩色定位在图像中查找特征,需要完成下列步骤:

1. 以模板图像的形式定义一个参考样板。

2. 使用IMAQ Learn Color Pattern模块,利用参考样板训练彩色定位算法。

3. 定义一个图像或图像区域作为搜索区。小的搜索区可以减少发现特征的时间。

4. 将IMAQ Setup Learn Color Pattern 模块的Feature Mode 控件设置为Color

5. 使用IMAQ Setup Match Color Pattern模块设置容限和参数,以指定运行时算法如何工作。

6. 使用IMAQ Match Color Pattern 模块在测试图像上彩色定位算法。

7. 使用分类算法验证结果。

可以使用IMAQ Write File 2模块的IMAQ Write Image and Vision Info File 2实例保存模板图像。

将像素坐标转换成现实坐标

通过边缘检测和模式识别得到的测量点是以像素为坐标的。如果需要以现实单位进行测量,需要使用IMAQ Convert Pixel to Real World 模块将像素坐标转换成像素坐标。

进行测量

可以从图像或在图像中检测到的点中进行不同类型的测量。

进行距离测量

Measure Distances模块用于测量搜索区中一个矩形中的两个边之间的间距。为监测边和搜索区内要查找边的搜索线之间的间隔指定参数。

说明 使用IMAQ Select Rectangle 模块为卡尺模块生成一个有效的输入搜索区。

第一个模块使用排队函数监测所测物体边缘的点。其它的模块计算沿着取景框(rake)的每条搜索线上的各个测到的边上的点之间的距离。这些模块返回垂直或水平方向上的最大或最小距离,并输出它们找到的所有边缘点的坐标。

下面的列表介绍可用的卡尺模块:

IMAQ Clamp Horizontal Max—测量一个矩形搜索区域内两条边之间的最大水平间距。

IMAQ Clamp Horizontal Min—查找两条垂直边之间的最小水平间距。

IMAQ Clamp Vertical Max—查找两条水平边之间的最大间距。

IMAQ Clamp Vertical Min—查找两条水平边之间的最小间距。

IMAQ Point Distances模块用于计算一个点矩阵中连续点对之间的距离。可以使用查找测量点中介绍的任何一种特征检测方法从图象中获得这样的点。

进行分析几何测量

使用以下模块可以对在图像中检测到的点进行几何测量:

IMAQ Fit Line—将点集拟合成一条线并计算出线的等式。

IMAQ Fit Circle 2—将至少有三个点的点集拟合成一个圆,并计算其面积,周长和半径。

IMAQ Fit Ellipse 2—将至少六个点的点集拟合成一个椭圆,并计算其面积、周长,及长轴和短轴的长度。

IMAQ Lines Intersection—计算用起点和终点表示的两条线的夹角和交叉点。

IMAQ Perpendicular Line—查找一个点到一条线之间的正交线和距离。

IMAQ Bisecting Line—查找两条线之间的夹角等分线。

IMAQ Mid Line—查找一点与一条线之间的平行中线。

IMAQ Polygon Area—计算顶点表示的一个多边形的面积。

进行仪表阅读测量

下列模块用于针对从仪表和LCD获得的数值进行测量:

IMAQ Get Meter和IMAQ Get Meter 2 模块用于校准需要阅读的仪表或量器。

IMAQ Get Meter利用指针的起始位置和满量程位置校准仪表。该模块计算指针的基点位置和针尖轨迹的弧。

IMAQ Get Meter 2 利用仪表上的三个点校准仪表:指针的基点,出于起始位置的针尖,和处于满量程位置的针尖。该模块计算出针尖覆盖的弧上点的位置。

IMAQ Read Meter模块利用基点和针尖轨迹的弧上的点矩阵读取指针的位置。

IMAQ Get LCD ROI模块计算LCD或LED中包围每个数字的关注区。为了找到每个数字区域,显示器的每个段都必须显示。

IMAQ Read Single Digit模块用于读取LCD或LED的一个数字。IMAQ Read LCD模块用于读取LCD或LED的多个数字。

辨别被测部件

这设置了检测区域之后除了进行测量,还可以使用分类来辨认部件、 光学字符识别,以及条形码阅读。

分类样本

使用分类通过将未知物体的明显特征与已知物体类型的概念化表征相比较来辨别物体。与分类有关的标准应用如下:

Sorting—各种形状物体的分选。例如,将传送带上的不同机械零件分选到不同的箱子中。

Inspection—通过给每个物体赋予一个辨认分值来检测物体,并剔除不能与训练集中的成员紧密匹配的物体。

在进行物体分类之前,必须使用NI分类训练界面,通过物体样本的训练分类器。选择Start?All Programs?National Instruments?Vision?Classification Training 登录NI 分类训练接口。

在训练了需要分类的物体样本以后,适用以下模块对物体进行分类:

在代码的初始化部分,适用IMAQ Read Classifier File 木块读取一个使用NI 分类训练接口创建的分类器会话。

IMAQ Classify模块用于将被检测图像的关注区内的物体分类成NINI 分类训练接口建立的类别的一种。

IMAQ Dispose Classifier模块用于释放分类器会话所使用的资源。

下图显示一种标准分类模块的LabVIEW 伪代码。

p_w_picpath

 

1 读取一个分类器文件

4 分类样本

7 类别

2 获取和预处里图像

5 释放分类器

8 停止

3 定位要分类的样本

6 转到训练分类器文件

 

读取字符

OCR用于读取图像中的文字或字符。检测应用中OCR通常用于鉴别或分类零部件。

在读取图像中的文字或字符之前,必须使用NI OCR训练接口利用字符样本训练OCR会话。选择Start?All Programs?National Instruments?Vision?OCR Training登录NI OCR训练接口。

在训练了所要读取的样本之后,利用以下模块读取字符:

在代码的初始化部分,使用IMAQ OCR Read Character Set File 模块读取利用NI OCR训练接口创建的一个会话。

IMAQ OCR Read Text 3 模块用于读取被测图像关注区内的字符。

IMAQ OCR Dispose Session模块用于释放OCR会话所适用的资源。

读取条码

使用条码阅读模块可以读取一维条码,数据阵列码,QR码和PDF417码中编码的值。

读取一维条码

IMAQ Read Barcode模块读取一维条码中的编码值。使用定位要检测的物体设置搜索区域两节中介绍的一种方法,定位图像中的条码,然后将位置的关注区描述传递给IMAQ Read Barcode模块。使用Barcode Type控件指定一种条码类型。

NI Vision 支持下列一维条码类型:Codabar, Code 39, Code 93, Code 128, EAN 8, EAN 13, Interleaved 2 of 5, MSI, UPCA, Pharmacode,和RSS Limited。

读取数据阵列码

IMAQ Read Data Matrix Barcode 2 模块用于读取数据阵列码中的编码值。该模块能自动地为程序确定合适的搜索参数。但是,也可以通过为程序指定特定的控件值来改进程序的性能。

IMAQ Read Data Matrix Barcode 2模块能自动定位图像中的数据阵列码。但是,也可以通过定位来改进检测性能。使用定位要检测的物体一节中介绍的一种技术,然后将位置的关注区描述传递给IMAQ Read Data Matrix Barcode 2模块。

读取QR码

IMAQ Read QR Code模块用于读取QR或micro-QR码中的编码值。该模能自动为程序确定搜索参数。也可以通过为控件指定特定的值来改善应用性能。

IMAQ Read QR Code模块能自动定位图像中的QR码。也可以通过指定条码的位置来改善程序的性能。用定位要检测的物体一节中介绍的一种技术,然后将位置的关注区描述传递给IMAQ Read QR Code模块。

读取PDF417码

IMAQ Read PDF417 Barcode 模块用于读取PDF417码中的编码值。

IMAQ Read PDF417 Barcode模块能自动定位图像中的一个或多个PDF417码。也可以指定代码位置来改进检测性能。用定位要检测的物体一节中介绍的一种技术,然后将位置的关注区描述传递给IMAQ Read PDF417 Barcode模块。

提示 如果每个图像中只读取一个PDF417码,那么将Search Mode 设置为Single Barcode, Conservative 以加快模块的速度。

检查图像的缺陷

可以通过将被测图像与一个黄金模板相比较并验证图像中的特征来检测图像的缺陷。

与黄金模板比较

IMAQ Compare Golden Template模块基于灰度差检测图像。使用NI Vision 模板编辑器学习所要检测的黄金模板。选择Start?All Programs?National Instruments?Vision?Template Editor 登录 NI Vision模板编辑器。使用进行颗粒分析一节中介绍的方法,分析结果的二值图像。

验证字符

使用字符验证函数验证图像中的字符。

在验证文字之前,必须使用NI OCR训练接口利用字符样板训练OCR会话。选择Start?All Programs?National Instruments?Vision?OCR Training 登陆NI OCR训练接口。然后必须为字符集中的每个字符指定对应字符。需要验证的字符与这些参考字符相比较,并基于这个比较付给一个分值。

当训练了字符样板并赋予相应字符之后,使用下列函数来验证字符。

在代码的初始化部分,使用IMAQ OCR Read Character Set File 模块读取使用NI OCR训练接口创建的一个会话。

IMAQ OCR Verify Text 用于验证被测图像关注区域中的字符。

IMAQ OCR Dispose Session模块用于释放OCR会话使用的资源。

显示结果

可以将检测阶段得到的结果覆盖在检测图像上。NI Vision将所要覆盖的信息附加到图像上,而不修改图像。也可以将相似的覆盖信息分成组以将多个覆盖信息作为一个来起作用。每次显示图像时都会出现覆盖信息。

使用下列模块设置或查看图像覆盖的属性。

IMAQ Set Overlay Properties—为一幅图像设置覆盖属性。

IMAQ Get Overlay Properties—从一幅图像中获取覆盖属性。

使用下列模块覆盖搜索区域、检测结果,以及其它信息,如文字和位图。

IMAQ Overlay Points—将点覆盖在图像上。用x-,y-坐标表示一个点。

IMAQ Overlay Line—将一条直线覆盖在图像上,用起点和终点表示一条线。

IMAQ Overlay Multiple Lines—在图像上覆盖多条线。

IMAQ Overlay Rectangle—将矩形覆盖在图像上。

IMAQ Overlay Oval—将椭圆或圆覆盖在图像上。

IMAQ Overlay Arc—将弧覆盖在图像上。

IMAQ Overlay Bitmap—将位图覆盖在图像上。

IMAQ Overlay Text—将文字覆盖在图像上。

IMAQ Overlay ROI—将一个有关注区描述符指定的关注区覆盖在图像上。

要使用这些模块,需要传入所要覆盖的图像和需要覆盖的信息。

提示 使用前面的模块时,可以选择覆盖的颜色。

可以为下列处理模块配置不同的图像覆盖信息类型:

IMAQ Edge

IMAQ Find Circular Edge

IMAQ Find Straight Edges

IMAQ Find Concentric Edge

IMAQ Clamp Horizontal Max

IMAQ Clamp Horizontal Min

IMAQ Clamp Vertical Max

IMAQ Clamp Vertical Min

IMAQ Find Pattern 2

IMAQ Count Objects 2

IMAQ Find CoordSys (Rect) 2

IMAQ Find CoordSys (2 Rects) 2

IMAQ Find CoordSys (Pattern) 2

下面的列表包含了各种可以在上述模块上覆盖的信息类型::

Search area input into the VI(搜索区域输入到模块)

Search lines used for edge detection(用于边缘检测的搜索线)

Edges detected along the search lines(沿着搜索线检测到的边)

Bounding rectangle of particles(颗粒的包罗矩形)

Center of particles (颗粒的中心)

Result of the VI (模块的结果)

将模块对应的布尔控件设置为允许,来选择覆盖信息。

IMAQ Clear Overlay模块用于从图像中清除任何事先覆盖信息。IMAQ Write File 2 模块的IMAQ Write Image and Vision Info File 2实例可以将覆盖信息保存到文件中。 也可以使用IMAQ Read Image and Vision Info 模块从文件中将信息读取到图像中。

注意 当图像大小或方向改变时,使用IMAQ Set Overlay Properties 模块制定覆盖信息的行为。默认情况下,如果图像大小或方向改变,校准和覆盖信息会被从图像中移除。