Ultralytics YOLO27:
获取 YOLO 许可
指南

什么是模板匹配?快速指南

了解模板匹配这一图像处理技术的工作原理,以及它在计算机视觉发展史上的重要意义。

ABAbirami Vina6 分钟阅读
图像处理中模板匹配的示例

图像中往往包含许多细微的细节,人类很容易发现这些细节。然而,对机器来说,这项任务并不简单。机器将数字图像视为像素值网格,即使光照、角度、比例或清晰度发生细微变化,也可能让机器难以处理。

机器的图像分析能力通常源自两个密切相关的计算机科学领域:图像处理和计算机视觉。虽然它们经常协同工作,但核心目标各不相同。

图像处理将图像视为原始数据。它可以增强图像,但不会尝试理解图像内容。这正是计算机视觉发挥作用的地方。计算机视觉是人工智能(AI)的一个分支,能够让机器理解图像和视频。

基础图像处理已经发展了很多年,但尖端的计算机视觉创新则是近些年才出现的。要了解这一领域的发展历程,一个好方法是回顾过去,看看我们曾如何使用更传统的旧方法解决这些问题。

以图像匹配为例。这是一项常见的视觉任务,系统需要判断某个特定物体或模式是否存在于较大的图像中。

如今,借助 AI 和深度学习,我们可以轻松、准确地完成这项任务。然而,在 2010 年代现代神经网络兴起之前,常用的方法是一种简单得多的技术,称为模板匹配。

模板匹配示例

图 1. 模板匹配示例(来源)

模板匹配是一种图像处理技术,它将一张较小的模板图像逐像素滑过一张较大的图像。这种类似卷积的滑动过程能让算法找到与特定模式最匹配的位置。

本文将介绍什么是模板匹配,以及现代改进如何让它在现实场景中更加可靠。开始吧!

什么是模板匹配?#

模板匹配也可以称为一种经典计算机视觉技术,也就是说,它直接处理图像像素(数字图像的最小单位)。它用于在较大的图像中查找较小的模式。

这类方法基于几何、光学和数学规则定义,而不是通过海量数据集训练大型模型。换句话说,模板匹配系统会比较两个输入中的亮度、颜色和其他像素信息:输入图像(较大的图像)和较小的模板图像(要查找的模式)。

作为模板示例的图像 A 和图像 B

图 2. 图像 A 和图像 B 是模板示例。(来源)

模板匹配的主要目标是在较大的场景中定位模板,并衡量它与图像不同区域的匹配程度。模板匹配算法会将模板滑过较大的图像,并在每个位置计算相似度分数,以此完成定位。

分数较高的区域被视为最佳匹配,也就是说,这些区域与模板非常相似。由于这种方法依赖逐像素比较,因此最适用于物体外观不会变化的受控环境。

例如,模板匹配可用于质量控制中的标签验证任务。它可以轻松地将标签模板图像与成品图像进行匹配,以检查标签是否存在。

模板匹配的工作原理#

以下是模板匹配工作原理的分步概览:

  • 步骤 1 - 准备图像: 首先加载输入图像和模板图像,然后将两者转换为灰度图像。由于模板匹配依赖像素值比较,去除颜色信息可以减少噪声并加快图像处理速度。

  • 步骤 2 - 在图像上滑动模板: 接下来,模板匹配算法会从左上角开始,将模板逐像素滑过较大的图像。每次移动都算作一次迭代,算法会从源图像中提取一个与模板尺寸相同的图像块。

  • 步骤 3 - 衡量匹配程度: 算法会使用数学匹配方法将每个图像块与模板进行比较,为每个可能的位置生成相关性指标或相关值。常见方法包括平方差(通过测量像素强度之间的数值距离来计算总不匹配程度)、归一化互相关(将像素值相乘,以判断明暗模式的对齐程度)以及相关系数(减去平均亮度,确保即使光照略有变化,匹配结果仍然准确)。

  • 步骤 4 - 找出最佳匹配: 评估所有位置后,算法会根据所用方法,通过寻找最大值或最小值来选出最佳匹配。通常还会对结果应用阈值,确保只接受置信度足够高的匹配,从而过滤掉较弱或错误的检测结果。

  • 步骤 5 - 标出结果: 最后,将检测到的位置映射回原始图像。通常会在匹配区域周围绘制边界框,清晰地标出模板出现的位置。

动手试试模板匹配#

虽然基于图像处理的模板匹配存在一些缺点,通常不会用于动态的现实世界计算机视觉解决方案部署,但如果你有兴趣尝试,像 OpenCV 这样的 Python 库可以让整个过程变得简单,也提供易于上手的教程。它内置了 matchTemplate 函数,可以处理复杂的数学比较。

此外,它还支持其他函数,帮助完成简单任务,例如使用 imread 函数加载图像,以及使用 cvtColor 函数进行颜色转换,将图像转为灰度图。颜色转换是关键步骤,因为将图像简化为单个强度通道后,matchTemplate 中的数学比较会快得多,也不容易受到颜色噪声的影响。

生成相似度图后,你还可以使用 OpenCV 中的 minMaxLoc 函数完成检测。它可以扫描整张图,找出全局最小值和最大值及其精确坐标。根据所用的匹配方法,minMaxLoc 可以通过找出数据中的最高相关性或最低误差值,让你立即定位最佳匹配位置。

除了 OpenCV,NumPy 等库对于处理图像数组和为结果应用阈值也必不可少,而 Matplotlib 常用于可视化相似度图和最终检测结果。这些工具结合起来,为构建和调试模板匹配解决方案提供了完整的环境。

模板匹配的现实应用#

现在,我们已经更了解模板匹配的工作原理,接下来仔细看看它在现实场景中的应用。

识别传统建筑风格#

在文化遗产和建筑研究中,研究人员需要分析历史建筑、寺庙和纪念碑的照片,以了解不同地区的设计模式有何差异。在先进的计算机视觉模型被广泛采用之前,他们会使用图像匹配技术研究这些建筑。

模板匹配让研究人员能够专注于特定的建筑特征,例如屋顶轮廓、窗户布局或墙面纹饰。通过将模板或参考图像滑过较大的图像,他们可以识别重复出现的形状,减少可能耗费数小时的人工图像分析工作。

一个有趣的案例来自一项关于印度尼西亚传统民居的研究。研究人员创建了具有代表性特征的小型模板,并将其与完整尺寸的照片进行比较。这种方法用于突出与模板高度匹配的图像区域,并对不同地区的建筑风格进行分类。

使用模板匹配对印度尼西亚传统民居进行分类

图 3. 使用模板匹配对印度尼西亚传统民居进行分类(来源)

工业视觉系统中的目标检测#

工业环境可以借助视觉系统快速检测零部件、验证装配情况或发现缺陷。在深度学习广泛应用于制造业之前,许多团队尝试使用图像匹配方法自动完成这些任务。

简单来说,可以使用零部件参考模板扫描生产线上的图像,并突出显示与模板匹配的区域。如果零部件的位置一致且光照稳定,这种方法就能很好地发挥作用。

使用模板匹配检测肺部肿瘤#

即使尖端技术正在为医疗健康领域带来深远影响,通过 CT 扫描等医学影像诊断健康问题仍然具有挑战性。传统上,放射科医生必须手动查看每个扫描切片,这个过程要求极高的精度,也非常耗时。

在深度学习应用于医疗健康领域之前,研究人员曾尝试使用模板匹配来简化工作流程,并辅助识别异常情况。检测肺部肿瘤或结节就是这种技术的一个典型应用。

在这种方法中,研究人员会创建参考模板,用来表示肿瘤的典型形状和强度。随后,系统会将这些模板滑过患者扫描图像,并在每个坐标处测量相似度。

使用模板匹配检测肺部肿瘤

图 4. 使用模板匹配检测肺部肿瘤(来源)

模板匹配的优缺点#

以下是使用模板匹配的一些主要优势:

  • 直观易懂:模板匹配易于理解和实现,是 AI 和计算机视觉初学者的理想入门方法。
  • 在受控条件下可靠:在光照稳定的灰度图像上表现良好;当模式和背景保持稳定时,能够得出准确结果。
  • 易于集成:借助 OpenCV 等 Python 库,无需复杂设置或大量计算,就能快速将模板匹配应用于实际项目。

模板匹配有许多优势,但也存在局限。以下是一些需要注意的挑战:

  • 对缩放和旋转敏感:模板尺寸或方向发生变化时,准确率可能会下降。
  • 依赖光照和对比度:模板与图像之间的光照或对比度发生变化时,可能导致匹配错误,或让模板更难检测。
  • 适应性有限:与基于 AI 的方法不同,模板匹配无法从数据中学习,也不会随着时间推移而改进。它最适合受控或重复性场景。

要点#

计算机视觉是一个广阔的领域,涵盖多种技术。了解模板匹配等传统图像处理技术,是理解图像分析原理的绝佳起点。尖端视觉 AI 创新建立在相同的核心概念之上,解决的也是类似问题。

想进一步了解 AI?加入我们的社区,并查看我们的 GitHub 代码仓库。了解 AI 如何改变零售业以及视觉 AI 如何推动制造业变革。查看我们的许可选项,立即开始构建视觉 AI 应用!

Explore solutions

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情
体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

借助 Ultralytics YOLO,将无人机和航空影像转化为实时洞察,应用于农业、水产养殖、环境监测、自然保护和地理空间分析。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 应用于航空监测。借助计算机视觉解决方案,赋能无人机、航空航天工作流、环境保护和地理空间行业。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来