关于本手册
匹配是一种适合于在图像中查找和定位目标的方法。该解决方案指南引导您使用HALCON提供的各种匹配方法。
第7页第1节中介绍了可用的匹配方法,包括为特定应用选择特定方法的技巧。
第19页第2节讨论了一些适用于多种方法的通用主题。例如包括:选择合适的模板,速度提升的技巧和使用结果。
第57页第3节提供了一些关于个别的匹配方法的细节信息。
本解决方案指南中提供的HDevelop示例程序可以在目录%HALCONROOT%的指定子目录中找到。
目录
1 简介
1.1 怎样使用该手册?
1.2 什么是匹配?
1.3 怎样应用匹配?
1.4 哪种方法是有效的?
1.5 哪种方法适用于哪种情况?
1.5.1 匹配方法:2D和3D对比
1.5.2 在3D空间中3D对象和2D对象的决策
1.5.3 首先是正交成像二维对象的决策
1.5.4 基于形状的匹配与基于相关的匹配
1.5.5 匹配方法的快速指南
2 通用主题
2.1模板制作
2.1.1 将参考图像还原为模板图像
2.1.2 感兴趣区域的影响
2.1.3 将合成模型作为模板图像的替代品
2.2 模型再使用
2.3 加快搜索速度
2.3.1 限制搜索空间
2.3.2 关于二次抽样
2.4 使用匹配结果
2.4.1 个别匹配方法的结果
2.4.2 关于转换
2.4.3 使用估算的2D位置和方向
2.4.4 使用估算的2D缩放比例
2.4.5 使用估算的2D单应矩阵(Homography)
2.4.6 使用估算的3D姿态
2.4.7 关于分数
3 个别的方法
3.1 基于灰度值的匹配
3.2 基于相关性的匹配
3.2.1 第一个例子
3.2.2 选择ROI模型
3.2.3 创建一个合适的NCC模型
3.2.4 优化搜索过程
3.3 基于形状的匹配
3.3.1 一个例子
3.3.2 选择模型ROI
3.3.3 创建一个合适的形状模型
3.3.4 优化搜索过程
3.3.5 使用基于形状匹配的具体结果
3.3.6适应相机方向的改变
3.4 基于组建的匹配
3.4.1 一个例子
3.4.2 提取初始组件
3.4.3 创建合适的组件模型
3.4.4 模型实例的搜索
3.4.5使用基于组件的匹配的具体结果
3.5局部形变匹配
3.5.1 一个例子
3.5.2 选择模型ROI
3.5.3 建立合适的局部变形模型
3.5.4 优化搜索过程
3.5.5 使用局部形变匹配的具体结果
3.6透视变形匹配
3.6.1 一个例子
3.6.2 选择模型ROI
3.6.3 创建合适的透视图变形模型
3.6.4 优化搜索过程
3.6.5 使用透视图变形匹配的具体结果
3.7 基于描述符匹配
3.7.1 一个例子
3.7.2 选择模型ROI
3.7.3 创建合适的描述符模型
3.7.4 优化搜索过程
3.7.5 使用基于描述符的匹配的具体结果
该部分介绍了HALCON的匹配功能。此外,提供了以下概括:
怎样使用该手册(1.1节)
匹配的一般含义(1.2节)
如何应用匹配(第9页1.3节)
可用的方法(第9页1.4节)
关于哪种方法适合于哪种情况的信息(第10页1.5节)
如果您没有或只有很少的使用HALCON匹配应用程序的经验,那么下面的小节将向您介绍一般的HALCON匹配,并指导您了解可用匹配方法之间最显著的差异。因此,它们可以帮助您选择最适合您的特定应用的匹配方法。此外,我们建议您在进入第57页第3节的小节之前阅读第19页的第2节,该小节详细描述了您所选择的匹配方法。
如果你是一个有经验的HALCON用户且熟悉匹配,而你正在寻找如何优化特定应用的进一步技巧,你可以立即进入第57页第3节的子部分,该部分描述了您选择的匹配方法,您可能额外需要看的部分是第9页第2节,该部分描述了一些多个匹配方法都需要的一般性的主题。
通过匹配,HALCON为图像中目标的稳健定位提供了一种方法,可用于许多不同的应用。为了适应应用的不同需求,可以使用不同的方法。所有的方法都由一组小的操作符组成,只需要对其中的少部分参数进行调整。此外,这些方法都不需要对图像中的对象进行明确的分割。因此,即使您没有机器视觉方面的专门知识,也可以成功地定位您的对象。
匹配的主要思想是使用一个原型对象(模板),创建一个它的模型,并在其他图像中搜索模型。对于大多数匹配任务,您可以从显示感兴趣对象的参考图像中获得模型。为了抑制图像中包含的其他结构或对象,将图像缩小到只包含该对象且可能具有任意形状的感兴趣区域(ROI)。经过简化的映像是模板映像,模型由特定方法的操作符从模板映像创建。另一种特定方法的操作符使用所获得的模型在不同的搜索图像中找到目标。也就是说,它通过搜索图像结构来匹配模型(在较小的公差范围内)。
HALCON提供的不同匹配方法在用于构建模型的图像结构上有所不同。一些匹配方法使用与其周围区域(邻域)灰度值的关系来建立模型。另一些方法则使用,例如,轮廓的形状(参见图1.1)。匹配的结果是每一种情况下的位置信息,对于大多数方法还有方向信息,以及一些方法也在搜索图像中得到对象的尺度信息。
虽然不同的匹配方法使用不同的操作符集,但主要步骤是相似的,主要步骤如下:
一个对象模型,即,描述搜索对象的内部数据结构,是使用该对象的代表性参考图像或合成模型创建的。采用哪种方法取决于所选择的方法和可用的数据。
在图像中搜索以前创建的模型的实例及其位置,在大多数情况下它们的方向,对于一些方法它们的比例都会返回。
如果模型不再需要,它将会被销毁以释放分配的内存。
除了这些基本步骤之外,大多数方法还提供了修改模型、再使用模型(即将其存储到文件中并从文件中读取),和从模型中查询信息。
该解决方案指南中描述的匹配方法包括
- 经典的基于灰度值的匹配(第57页3.1节),仅在非常罕见的情况下推荐,以及
- 更强大的基于相关性的匹配(第58页3.2节),它分别使用归一化互相关(NCC)来匹配对象或模式。
- 基于形状的匹配(第64页3.3节),
- 基于组件的匹配(第92页3.4节),是为对象含有多个组件(刚性部件)相对移动的特定情况而设计的,
- 局部变形匹配(第111页3.5节),它可以处理和返回对象的局部变形,并允许校正包含变形模型的图像部分
- 透视变形匹配(第124页3.6节),它可以处理透视变形,并可以导出一个3D姿态代替2D转换参数校准版本。
- 基于描述符的匹配(第136页3.7节)匹配一组所谓的兴趣点。与透视变形匹配相似,它可以处理透视变形,并并可以导出一个3D姿态代替2D转换参数校准版本。
此外,所谓的基于点的匹配和3D匹配是可用的。对于基于点的匹配,利用对应的点组合重叠图像。这种方法也称为未校准镶嵌。在更广泛的意义上,寻找对应点也是一种匹配,但本解决方案指南的重点是“2D对象”的匹配。3D匹配由不同的方法组成,将在下一节简要介绍,但也不受本解决方案指南的约束。详情请参阅第145页第10章解决方案指南1的3D匹配。
选择匹配方法的第一步是决定是否需要两个或三个空间维度。然后,进一步的标准,如所需的转换参数或对象在图像中的显示,都要包括在决策中。以下部分将为您提供决策的背景。快速浏览一下,这个背景在第15页第1.5.5节的图中有清楚的说明。
不同的匹配方法适用于不同的应用。有些只适用于从正交视图中成像的二维物体,其他的可以处理透视畸变,有些方法甚至可以在一个完整的三维空间中匹配三维形状(见图1.2)。请注意,“2D对象”一词指的是平面对象部分上的固定视图,而不是实际的有形对象,而实际对象自然是三维的。相比之下,“3D对象”是从任意方向观看的对象。
基于灰度值、基于相关性、基于形状、基于组件和局部变形匹配可以用于在图像中查找2D对象。对于参考图像和搜索图像,必须从正交视图中获取对象。理论上,还可以使用角度可变形或基于描述符的匹配来查找正交成像的2D对象,但由于这些方法没有严格的2D方法快,因此它们被建议用于通过透视图成像的对象情况中。
角度可变形和基于描述符的匹配页可用于查找平面对象。但除了用于正交视图的方法外,这些对象还可能是透视变形的。此外,如果应用摄像机标定,不仅可以得到物体的2D位置和方向,还可以得到物体的3D姿态。虽然这两种方法也可以用于正交成像的2D对象,但是它们更适合于透视图,因为它们没有严格的2D方法快。
3D匹配在二维图像中搜索“真实”的三维对象。在这里,可以使用不同的方法。例如,对于基于形状的三维匹配,没有参考图像来创建模型,但必须提供一个综合的三维模型,特别是DXF CAD模型。如果三维对象包含在所有搜索图像中可见的特征平面部分,则可选择校准透视二维方法,即,可以使用透视图形变或基于描述符的匹配,这样更方便,速度也快得多。只有当需要多个平面部分的物体才能将物体与其他图像部分区分开来时,才需要进行三维匹配。
注意,3D匹配不是这个解决方案指南的一部分!如欲查询更多有关3D匹配的资料,请参阅解决方案指南一,第145页第10章。
如果要搜索在所有三个维度上都与其他对象不同的复杂3D对象(请参见图1.3),那么选择适当的匹配方法很容易,因为您必须使用3D匹配。
如果3D对象包含一个独特的,但平面部分明显不同于其他结构预期的图像,或如果你搜索一个平面任意面向对象,可能在3D空间中还可以使用角度变形或基于描述符匹配,它可以处理二维对象的角度扭曲。这两种方法都比3D匹配更快、更方便。
要选择哪一种透视图方法取决于特定的应用。如果搜索图像中感兴趣的目标是各向异性缩放的,那么只有透视变形匹配才是合适的。如果感兴趣的对象只被平移和旋转,那么这两种方法都是合适的,同时图像中物体的外观必须加以考虑。这两种方法之间最重要的区别是对象建模的方式。透视变形匹配通过物体轮廓的形状来描述模型。因此,它适用于包含清晰可见轮廓的对象(参见图1.4)。
相比之下,基于描述符的匹配通过兴趣点来描述模型。因此,对于具有任意但固定纹理特征的对象(请参见图1.5),它可能是首选。
如果你能从正交视图采集平面对象图像,且只需要找到对象实例的2D转换参数,透视变形或基于描述符的匹配会得到期望的结果,但严格限制应用于2D的方法更快。2D方法包括基于灰度值、基于相关性、基于形状、基于组件和局部形变匹配。
这些方法中有三种仅在具体情况下使用:
在大多数正交2D情况下,您必须选择剩下的两种方法之一,即,即基于形状的匹配或基于相关的匹配。
要决定基于形状的匹配还是基于相关性的匹配更适合您的特定应用,您应该进一步研究应用的需求。
例如,您应该知道需要哪些转换参数来描述搜索图像中的对象与模型所描述的对象之间的关系。该对象将只平移和旋转,或也缩放?如果需要缩放,则不能使用基于关联的匹配,而只能使用一种基于形状的匹配方法。在这里,您可以进一步选择使用均匀缩放或各向异性缩放的方法,即其中x方向和y方向的缩放系数不同。
此外,对象的外观可能会随着图像的变化而变化。原因可以是,例如遮挡、杂乱或照明的变化可能导致物体极性的变化。此外,图像可能散焦,或者物体是复杂背景前的复杂图案,即它是有显著特征的。为了得到一个健壮和快速的结果,在对物体成像时,应该尽可能地减少物体外观的变化。然而,有时像遮挡、混乱或散焦这样的畸变是无法避免的。这些扭曲必须涉及到为特定应用使用哪种方法的决策中。
特别是,如果不能避免遮挡(见图1.8)或杂波,或者应用颜色变化的对象匹配,则应选择基于形状的匹配。
相比之下,基于相关性的匹配适用于纹理随机变化的对象或形状略有变化的对象(见图1.9)。此外,在处理强散焦图像时,首选基于相关性的匹配。
图1.10到图1.15清楚地总结了决定哪种匹配方法适合特定应用所需的信息。特别是,