🟠 形状模板匹配

功能描述

基于形状的模板匹配是一种目标检测算法,可以通过分析一个“模板图片”的轮廓和梯度信息来学习物体的独特形状,然后在新的图像中快速、准确地定位该物体。与依赖颜色和纹理的深度学习方法不同,该算法对光照变化的不敏感性。只要物体的形状保持不变,即使在不同的亮度、对比度或颜色条件下,它也能成功匹配。此外,该算法可通过配置参数找到发生旋转和缩放的目标,并返回其精确的角度和尺寸。

该算子的工作流程分为两个阶段:

  1. 训练阶段:在初始化时,算子会分析上传的模板图片,提取关键的形状特征,并根据设定的旋转、缩放等参数,生成一个可重用的模板文件。

  2. 匹配阶段:在运行时,算子加载训练好的模板,在输入的待检测图像中进行全局搜索,找出所有与模板形状相似的区域。

使用场景

在光照条件不佳或产品颜色多变的环境中,缺乏大量标注数据,可以尝试使用形状匹配。

输入输出

输入项

图像:待搜索和匹配的图像。

输出项

检测结果:一个检测实例列表。列表中每个元素都代表一个成功匹配到的目标,包含其位置、旋转角度、缩放比例、匹配得分以及轮廓。

参数说明

强制训练

参数说明

用于选择是否在初始化时强制重新训练模板,即使已经存在模板文件。

调参说明

在调试阶段建议开启此选项,强制算子使用新参数生成新的模板;在参数固定后,可以关闭此项以加快流程启动速度。

模板图片

参数说明

模板图像,用作匹配的参考。

调参说明

尽可能保证图片的质量,清晰、无遮挡地展示目标的完整形状。

模板生成路径

参数说明

用于存储生成模板文件的文件夹路径。

调参说明

建议指定一个固定的路径,便于管理和复用训练好的模板;如果留空,将使用系统默认的缓存路径。

模板名字

参数说明

为生成的模板文件指定一个唯一的名称。

启用缩放/缩放比例

参数说明

针对高分辨率图像的优化选项。开启后,模板图片和待匹配图片都会在处理前按指定比例缩小。

调参说明

如果图片图像分辨率非常高,建议开启此项并设置一个小于1的比例(如0.5)可以提升训练和匹配的速度。

参数范围

[0.1,1.5],默认值:0.7

缩放范围/缩放步长

参数说明

定义匹配时要搜索的目标尺寸范围。

调参说明

缩放范围是一个包含最小值和最大值的二元列表,如[0.8,1.2]表示搜索原尺寸的80%到120%。缩放步长定义了在此范围内搜索的精细程度。范围越广、步长越小,越有可能找到不同尺寸的目标,但训练和匹配的时间也越长,可根据实际情况调整参数。若模板图像是从生成模板图像节点制作的,可以用该节点输出的缩放范围为此参数。

参数范围

[0.8,1.2]

旋转角度范围/旋转角度步长

参数说明

角度范围用于设置匹配时要搜索的目标旋转角度范围,角度步长用于设置搜索的精细度。

调参说明

如果目标可能以任意角度出现,请将范围设置为[0,360]。步长越小,角度检测越精确,但耗时越长。如果目标的角度变化范围已知且有限,缩小范围可以大幅提速。

参数范围

角度范围[0,360],步长[0,60]

特征点数量

参数说明

从模板图像中提取的用于描述其形状的特征点的数量。

调参说明

  • 增加数量:更精细地描述复杂形状,鲁棒性更强,但会降低速度。

  • 减少数量:速度更快,适用于形状简单的物体,但对于复杂形状可能不稳定。

参数范围

[0,1000],默认值:75

匹配精度级别

参数说明

通过在不同分辨率的图像上进行匹配来优化速度和精度,算法先在低分辨率图像上粗定位,再在高分辨率图像上精定位。

调参说明

通常保持默认参数即可。列表中的数字代表搜索图像时层级的缩放因子(2的幂次),例如[4,8]表示分别在1/4和1/8分辨率下进行搜索。数字越小,代表在越接近原图分辨率的层级上进行匹配,精度更高但速度更慢;数字越大,搜索越快但越粗糙。

参数范围

[4,8]

得分阈值

参数说明

匹配结果的最低接受分数,分数越高代表匹配结果与模板的形状越相似。

调参说明

  • 调高此值:过滤掉相似度不高的结果,减少误匹配。

  • 调低此值:找回一些可能被错过的目标,但可能引入错误匹配。

参数范围

[0,100],默认值:80

重叠过滤阈值

参数说明

用于去除对同一目标的多个高度重叠的检测结果,只保留得分最高的那一个。

调参说明

  • 增大此值:可以保留更多的重叠匹配结果;

  • 减小此值:能更严格地去除重叠较大的结果。

参数范围

[0,1],默认值:0.3

类别名

参数说明

为成功匹配到的目标手动指定一个类别名称。

调参说明

检测结果的“类别”由此参数指定。