Halcon 第五章『模板匹配Matching』◆第1节:模板匹配的介绍&金字塔

        一、前言

        图像处理中的模式指的是对图像目标所具有的特征的描述,而模式识别(Pattern Recognition)就是利用计算机对图像目标进行分类,在错误概率最小的条件下使识别的结果尽量与客观事物符合。

        二、图像模式识别的定义

        人们在观察事物或现象时,常常会观察它与其他事物或现象的相同或不同之处,会把具有相似特征的归为一类。把上述过程用计算机来实现,就是模式识别过程。它可以定义为表征事物或现象的各种形式的(数值的、文字的和逻辑关系的)信息进行处理和分析,以对事物或现象进行描述、辨认、分类和解释的过程,模式识别是信息科学和人工智能的重要组成部分。

        图像模式识别是模式识别的重要分支,它是根据提取到的样本图像的特征对样本进行分类的过程。图像模式识别的过程包括训练过程和分类决策过程,包括图像采集、预处理、特征提取、样本训练以及分类决策等步骤。

        模式识别方法是指利用计算机,基于标准模板对要分析的客观事物进行分类的算法,使得在错误概率最小的条件下得到识别结果。

        常见的图像模式识别方法分为模板匹配、统计识别、人工神经网络等几种类型。

        三、模板匹配的种类

基于灰度值的模板匹配|Gray-Value-Basedhttps://blog.csdn.net/qq_45336030/article/details/124281681
基于相关性的模板匹配|Correlation-Basedhttps://blog.csdn.net/qq_45336030/article/details/124354364
基于形状的模板匹配|Shape-Basedhttps://blog.csdn.net/qq_45336030/article/details/124356665
基于组件的模板匹配|Component-Basedhttps://blog.csdn.net/qq_45336030/article/details/124388104
基于局部形变的模板匹配|Deformablehttps://blog.csdn.net/qq_45336030/article/details/124462002
基于描述符的模板匹配|Descriptor-Basedhttps://mp.csdn.net/mp_blog/creation/editor/124534139

         四、模板匹配种类的区别

搜索2D目标

(正交视点)

基于灰度值的模板匹配

(经典但过时)

——适用于目标区域灰度值比较稳定,检测图像与模板图像的相似度高,且具有相同的外界条件的场景。

——不适用于杂乱场景、遮挡、光照变化、尺寸缩放及多通道图像。

基于相关性的模板匹配

(常用)(匹配助手)

——适用于失焦图像、轻微变形、线性光照变化及轮廓模糊的图像,对纹理图像尤为支持。

——不适用于杂乱场景、遮挡、非线性光线变化、大幅的旋转、尺寸缩放和多通道图像。

基于形状的模板匹配

(常用)(匹配助手)

——适用于目标轮廓比较清晰的场景。适用于杂乱场景、遮挡、非线性光照变化、尺寸缩放、失焦和轻微形变的图像,以及多通道图像和多个模板的同步匹配。

——不适用于纹理复杂的图像。

基于组件的模板匹配

——适用于多个目标的匹配场景。适用于杂乱场景、遮挡、非线性光照变化的图像,以及多通道图像和多个模板的同步匹配。

——不适用于纹理复杂的图像,以及失焦和形变的图像。

基于局部形变的模板匹配

(匹配助手)

——适用于杂乱场景、遮挡、非线性光照变化、尺寸缩放和轻微局部形变的图像,以及多通道图像。

搜索2D模板

(透视点)

基于透视形变的模板匹配

(匹配助手)

——适用于杂乱场景、遮挡、非线性光照变化、尺寸缩放、失焦和透视形变的图像,以及多通道图像。

——但是对于纹理图像的支持不够好。

基于描述符的模板匹配

(匹配助手)

——适用于杂乱场景、遮挡、非线性光照变化、尺寸缩放、轻微局部形变、透视形变的图像,以及有纹理的图像。

——不适用于失焦和多通道图像

搜索匹配的点 基于点的模板匹配 用于在多幅部分重合的图像之间建立对应的关系

         五、图像金字塔

         图像金字塔是以多个分辨率来表示图像的一种有效且概念简单的结构型金字塔。图像金字塔最初用于机器视觉和图像压缩,一个图像金字塔的一系列以金字塔形状排列的,分辨率逐步降低的图像集合。金字塔的底部是待处理图像的高分辨率的近似,而顶部是低分辨率的近似。将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

        常见的图像金字塔分为两种:

        一种是通过高斯矩阵得到的高斯金字塔,常用来向下采样,是常用金字塔之一;

        另一种是通过拉普拉斯矩阵得到的拉普拉斯金字塔,常用来向上采样,即图像残差预测,可以对图像进行图像还原。

Halcon 第五章『模板匹配Matching』◆第1节:模板匹配的介绍&金字塔_第1张图片

         ①高斯金字塔

        高斯金字塔是通过高斯核的卷积处理来达到向下采样的,也称为降采样。原始图像为第1层(最底层),第2层图像大小都是第1层长宽的一半,即1/4,然后不断迭代,每一层图像包含的信息和细节程度都不相同,这一系列图像从大到小、自下而上构成一个塔状模型。这样创建好的模型在匹配的时候,可在不同的金字塔层级中进行图像搜索。

        1、获取金字塔一般采用如下方法:

        ⑴对图像进行高斯滤波。

        ⑵将所有的偶数行列进行去除。

        在HALCON中使用gen_gauss_pyramid来实现高斯金字塔

        Filters / Match

        计算一个高斯金字塔

gen_gauss_pyramid(Image : ImagePyramid : Mode, Scale : )

        Image:输入参数,输入的图像。

        ImagePyramid:输出参数,输出各层金字塔图像。

        Mode:输入参数,计算金字塔的方法。默认'weighted',列表【 'constant', 'max', 'min', 'nearest_neighbor', 'weighted'】。

        Scale:输入参数,缩放比例。默认0.5,建议值【 0.2, 0.3, 0.4, 0.5, 0.6】,典型值范围【 0.1 ≤ Scale ≤ 0.9】,范围【0.1 < Scale && Scale < 0.9】。

        2、采用金字塔采样算法进行形状模板匹配的过程如下:

        ⑴确定金字塔的层级数,这取决于要寻找的目标,还要保证金字塔最上层的目标图像结构清晰。

        ⑵通过降采样创建每层级的金字塔图像,由于一般会出现图像锯齿,因此还需要使用平滑滤波器对图像进行处理。

        ⑶从金字塔最顶层开始进行匹配。这个过程就是计算模板与ROI图像的相似性,可以选择的相似性度量准则有SAD(绝对值总和)、SSD(平方差总和)、NCC(归一化相关)等 ,其中NCC效果最好,也能很好的适应光照的变化。因此,在进行形状模板匹配时,NCC是默认方法,但是也是比较耗时的方法。

        ⑷得到了匹配的候选区域后,把这个结果映射到下一层,即直接将找到的匹配点的位置坐标乘以2,下一层的匹配搜索就在这个区域内进行。将找到的结果区域按照同样的方法向下映射,直到找不到目标对象或者达到金字塔的最底层。

        ②拉普拉斯金字塔

        拉普拉斯金字塔用于从金字塔高层图像重建下层未采样图像,在数字图像处理中也叫预测残差,可以对图像进行最大程度的还原,如果需要还原原始图像,需要拉普拉斯金字塔配合高斯金字塔一起使用。

        图像经过高斯卷积核降采样后,会丢失图像高频部分的信息,因此,定义拉普拉斯金字塔来描述这部分高频信息。用高斯金字塔的每一层图像减去上一层图像上采样并与高斯卷积之后的预测图像,得到一系列的差值图像,即为拉普拉斯金字塔图像。简单来说,拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列图像构成的。

        ⑴将i+1层图像(层数高,图像小)在每个方向上都扩大为原来的2倍,新增的行和列以0填充。

        ⑵使用相同尺寸的高斯内核与放大后的图像卷积,得到近似的放大图像A。

        ⑶用i层高斯图像减去图像A,就得到拉普拉斯金字塔。

        ③金字塔匹配的机制

        图像金字塔的分层策略是:先从顶层开始搜索模板,当找到匹配位置后,只需要将结果映射到原始图像上的位置即可(通常不需要还原每一层的采样图像),然后更换为底层搜索,在高层图像搜索到的模板会在底层直接匹配,没有搜索到的模板在底层就不在匹配,这样计算精确而且忽略了不必要的匹配计算,节约了时间。

        高斯金字塔是用于构建金字塔的常用方式。为了避免图像在金字塔中出现平移,高斯滤波器的尺寸必须是偶数。但是,在构建金字塔的时候,其运行速度是极其重要的因素。高斯滤波器的尺寸最小是4×4。因此,如果采用高斯滤波器来平滑图像,将增加构建金字塔时间消耗。所以,构建金字塔的时候,图像平滑操作最理想的是2×2的滤波器。此外,2×2的滤波器没有频率响应问题,而较大的滤波器会出现频率响应问题。因此,均值滤波器是构建图像金字塔的首选滤波器。

        上述模板匹配算法,均假设模板和目标图像中的目标物体方向一致。如果图像中的目标图像的方向或大小发生改变,那么按上述的模板匹配方法,匹配将失败。而在实际应用中,由于受到光照、拍摄角度等因素的影响,目标图像会发生改变,为了解决这个问题,需要对模板匹配的算法做出相应改变。

        以发生旋转的目标图像为例:为了在图像中找到发生选择的目标物体,可以以1°的角度间隔,创建多个方向的模板。一般情况下,模板像素越大,说明模板的分辨率越高,则能区分角度越小的变化,因此以更小的角度间隔,创建更多的模板。同样的,在金字塔应用中,从下往上,每层金字塔长度都会缩小一半,因此,每层的角度间隔也要增大为原来的2倍。如果半径为100像素大小的模板角度间隔为1°,则在第4层金字塔上可以用8°作为角度间隔。

        六、匹配的流程 

         ①图像预处理。图像的预处理帮助解决光学成像上造成的问题,尽可能地展现感兴趣的部分。

        ②生产模板图像。经过预处理的图像的所有区域并非都是感兴趣区域,需要对感兴趣的区域进行裁切,裁切后的图像即为模板图像。

        ③创建模板。模板图像只是原始数据,生成的模板带有旋转、缩放和极性等一系列变化,可以通过调节参数来达到理想的结果。

        ④匹配图像。把未知图像进行匹配,确定获取到的图像中是否有模板中的图像,这是匹配流程中主要的运行过程。当模板创建好之后,主要的运行过程都是匹配图像的过程。在匹配过程中,可以通过修改匹配分值门限和匹配个数等参数来影响匹配结果。

        ⑤结果显示。匹配到的结果都存储到计算机中,是无法观察的,可以通过图标的形式来展示匹配的结果,以便用户作出正确判断。

参考文献:

杨青—《Halcon机器视觉算法原理与编程实战》

郭森—《工业机器视觉基础教程 HALCON篇》

你可能感兴趣的:(Halcon初级_学习笔记,视觉检测)