Что такое сопоставление шаблонов? Краткое руководство
Узнай о методе обработки изображений, известном как сопоставление шаблонов, о принципах его работы и его значении в истории компьютерного зрения

Изображения часто содержат множество мельчайших деталей, которые люди легко замечают. Однако для машин эта задача не так проста. Машины воспринимают цифровое изображение как сетку значений пикселей, и даже небольшие изменения освещения, угла, масштаба или резкости могут вызвать затруднения.
Возможности машины анализировать изображения обычно основаны на двух тесно связанных областях компьютерных наук: обработке изображений и компьютерном зрении. Хотя они часто работают вместе, их основные задачи различаются.
Обработка изображений рассматривает изображения как необработанные данные. Она может улучшать изображения, но не пытается понять их содержимое. Здесь и проявляется отличие компьютерного зрения. Компьютерное зрение — это раздел искусственного интеллекта (AI), который позволяет машинам понимать изображения и видео.
Базовая обработка изображений существует уже много лет, но передовые инновации в компьютерном зрении появились сравнительно недавно. Чтобы лучше понять историю этой области, полезно вспомнить, как раньше решались подобные задачи с помощью более старых и традиционных методов.
Например, рассмотрим сопоставление изображений. Это распространённая задача компьютерного зрения, в которой системе нужно определить, существует ли конкретный объект или узор внутри более крупного изображения.
Сегодня эту задачу можно легко и точно решать с помощью AI и глубокого обучения. Однако до появления современных нейронных сетей в 2010-х годах основным методом была гораздо более простая техника, называемая сопоставлением с шаблоном.

Рис. 1. Пример сопоставления с шаблоном (Источник)
Сопоставление с шаблоном — это метод обработки изображений, при котором небольшое изображение-шаблон перемещается по большому изображению пиксель за пикселем. Этот процесс сканирования, похожий на свёртку, позволяет алгоритму найти область, которая наиболее точно соответствует заданному узору.
В этой статье мы рассмотрим, что такое сопоставление с шаблоном и как современные улучшения делают его более надёжным в реальных условиях. Давай начнём!
Что такое сопоставление с шаблоном?#
Сопоставление с шаблоном также называют классической техникой компьютерного зрения, то есть оно работает непосредственно с пикселями изображения (наименьшими элементами цифрового изображения). Его используют для поиска небольшого узора внутри большого изображения.
Подобные методы определяются геометрией, оптикой и математическими правилами, а не обучением больших моделей на огромных наборах данных. Иными словами, система сопоставления с шаблоном сравнивает яркость, цвет и другие сведения о пикселях в двух входных данных: входном изображении (большом изображении) и небольшом изображении-шаблоне (узоре, который нужно найти).

Рис. 2. Изображения A и B являются примерами шаблонов. (Источник)
Основная цель сопоставления с шаблоном — определить, где шаблон расположен в большой сцене, и измерить степень его соответствия разным областям изображения. Алгоритм сопоставления с шаблоном перемещает шаблон по большому изображению и вычисляет оценку сходства в каждой позиции.
Области с более высокими оценками считаются наиболее подходящим совпадением, то есть они очень похожи на шаблон. Поскольку этот метод основан на попиксельном сравнении, лучше всего он работает в контролируемых условиях, где внешний вид объектов не меняется.
Например, сопоставление с шаблоном можно использовать для проверки этикеток в задачах контроля качества. Оно позволяет легко сопоставить изображение-шаблон этикеток с изображениями готового продукта и проверить, присутствуют ли этикетки.
Как работает сопоставление с шаблоном#
Ниже приведён пошаговый обзор работы сопоставления с шаблоном:
-
Шаг 1 — Подготовка изображений: Сначала загружаются входное изображение и изображение-шаблон, после чего оба преобразуются в оттенки серого. Поскольку сопоставление с шаблоном основано на сравнении значений пикселей, удаление информации о цвете снижает шум и ускоряет обработку изображений.
-
Шаг 2 — Перемещение шаблона по изображению: Затем алгоритм сопоставления с шаблоном перемещает шаблон по большому изображению на один пиксель за раз, начиная с верхнего левого угла. Каждый шаг этого перемещения представляет собой итерацию, в ходе которой алгоритм извлекает из исходного изображения фрагмент размером с шаблон.
-
Шаг 3 — Оценка качества совпадения: Каждый фрагмент изображения сравнивается с шаблоном с помощью математического метода сопоставления, который вычисляет метрику корреляции или значение корреляции для каждой возможной позиции. К распространённым подходам относятся квадраты разностей (они измеряют числовое расстояние между интенсивностями пикселей для расчёта общего несоответствия), нормированная кросс-корреляция (она перемножает значения пикселей, чтобы определить, насколько хорошо совпадают узоры света и тени) и коэффициент корреляции (он вычитает среднюю яркость, чтобы совпадение оставалось точным даже при небольших изменениях освещения).
-
Шаг 4 — Определение наилучшего совпадения: После оценки всех позиций алгоритм выбирает наилучшее совпадение, находя максимальное или минимальное значение в зависимости от используемого метода. Для этих результатов часто задаётся порог, чтобы принимать только совпадения с достаточно высокой оценкой уверенности и отфильтровывать слабые или ошибочные обнаружения.
-
Шаг 5 — Выделение результата: Наконец, обнаруженное местоположение отображается на исходном изображении. Обычно вокруг совпавшей области рисуется ограничивающая рамка, наглядно показывающая, где находится шаблон.
Практическая работа с сопоставлением с шаблоном#
Хотя сопоставление с шаблоном на основе обработки изображений обычно не используется при развёртывании динамичных решений компьютерного зрения в реальных условиях из-за связанных с ним недостатков, при желании протестировать этот метод библиотеки Python, такие как OpenCV, упростят процесс и предоставят понятные учебные материалы. В них есть встроенная функция matchTemplate, которая выполняет сложные математические сравнения.
Кроме того, они поддерживают другие функции для простых задач: например, загрузку изображений с помощью функции imread и преобразование цвета с помощью функции cvtColor, которая переводит изображения в оттенки серого. Преобразование цвета — важный шаг, поскольку сведение изображения к одному каналу интенсивности значительно ускоряет математическое сравнение внутри matchTemplate и снижает его чувствительность к цветовому шуму.
После построения карты сходства в OpenCV также есть функция minMaxLoc, которая помогает завершить обнаружение. Её можно использовать для сканирования всей карты и определения глобальных минимального и максимального значений вместе с их точными координатами. В зависимости от используемого метода сопоставления minMaxLoc позволяет мгновенно определить местоположение наилучшего совпадения, найдя максимальную корреляцию или минимальное значение ошибки в данных.
Помимо OpenCV, библиотеки вроде NumPy необходимы для работы с массивами изображений и применения порога к результатам, а Matplotlib обычно используется для визуализации карты сходства и итогового обнаружения. Вместе эти инструменты создают полноценную среду для разработки и отладки решения на основе сопоставления с шаблоном.
Применение сопоставления с шаблоном в реальных условиях#
Теперь, когда мы лучше понимаем, как работает сопоставление с шаблоном, давай подробнее рассмотрим его применение в реальных сценариях.
Определение традиционных архитектурных стилей#
В исследованиях культурного наследия и архитектуры учёным приходится анализировать фотографии исторических зданий, храмов и памятников, чтобы понять, как элементы дизайна различаются в разных регионах. До широкого распространения современных моделей компьютерного зрения они использовали методы сопоставления изображений для изучения подобных сооружений.
Сопоставление с шаблоном позволяет исследователям сосредоточиться на конкретных архитектурных признаках, таких как очертания крыш, расположение окон или узоры на стенах. Перемещая шаблоны или эталонные изображения по большим изображениям, они могут находить повторяющиеся формы и сокращать объём ручного анализа изображений, который может занимать часы.
Интересный пример связан с исследованием традиционных индонезийских домов. Исследователи создали небольшие шаблоны характерных признаков и сравнили их с полноразмерными фотографиями. Этот подход использовали для выделения областей изображений, наиболее похожих на шаблон, и классификации архитектурных стилей в разных регионах.

Рис. 3. Использование сопоставления с шаблоном для классификации традиционных домов в Индонезии (Источник)
Обнаружение объектов в промышленных системах компьютерного зрения#
Промышленные предприятия могут использовать системы компьютерного зрения, способные быстро обнаруживать компоненты, проверять сборку или находить дефекты. До широкого распространения глубокого обучения в производстве многие команды экспериментировали с методами сопоставления изображений для автоматизации этих задач.
Проще говоря, эталонный шаблон компонента можно использовать для сканирования изображений с производственной линии и выделения областей, соответствующих шаблону. Это хорошо работает, когда детали расположены одинаково, а освещение стабильно.
Сопоставление с шаблоном для обнаружения опухолей лёгких#
Даже несмотря на влияние передовых технологий на здравоохранение, диагностика проблем со здоровьем по данным медицинской визуализации, например КТ, по-прежнему остаётся сложной задачей. Традиционно радиологам приходилось вручную просматривать каждый срез сканирования, что требовало чрезвычайной точности и значительных затрат времени.
До применения глубокого обучения в здравоохранении исследователи пытались использовать сопоставление с шаблоном для оптимизации рабочего процесса и помощи в обнаружении аномалий. Хорошим примером этой техники является обнаружение опухолей или узелков в лёгких.
В этом методе исследователи создают эталонные шаблоны, отражающие типичную форму и интенсивность опухоли. Затем система перемещает эти шаблоны по снимкам пациентов, измеряя сходство в каждой координате.

Рис. 4. Обнаружение опухолей лёгких с помощью сопоставления с шаблоном (Источник)
Преимущества и недостатки сопоставления с шаблоном#
Вот несколько ключевых преимуществ использования сопоставления с шаблоном:
- Интуитивность и простота: Сопоставление с шаблоном легко понять и реализовать, поэтому это идеальная отправная точка для начинающих специалистов в области AI и компьютерного зрения.
- Надёжность в контролируемых условиях: Метод хорошо работает с изображениями в оттенках серого при стабильном освещении и даёт точные результаты, когда узоры и фон остаются неизменными.
- Простая интеграция: С помощью библиотек Python, таких как OpenCV, сопоставление с шаблоном можно быстро применять в реальных проектах без сложной настройки и больших вычислительных затрат.
Хотя сопоставление с шаблоном даёт множество преимуществ, у него есть и ограничения. Вот несколько проблем, о которых стоит помнить:
- Чувствительность к масштабу и повороту: Изменение размера или ориентации шаблона может снизить точность.
- Зависимость от освещения и контраста: Изменения освещения или контраста между шаблоном и изображением могут привести к ошибочным совпадениям или усложнить обнаружение шаблона.
- Ограниченная адаптивность: В отличие от методов на основе AI, сопоставление с шаблоном не может обучаться на данных или улучшаться со временем. Лучше всего оно работает в контролируемых или повторяющихся условиях.
Основные выводы#
Компьютерное зрение — обширная область, включающая различные техники. Изучение традиционных методов обработки изображений, таких как сопоставление с шаблоном, — отличная отправная точка для понимания принципов анализа изображений. Передовые инновации в области vision AI развивают те же базовые концепции и решают схожие задачи.
Хочешь узнать больше об AI? Присоединяйся к нашему сообществу и загляни в наш репозиторий на GitHub. Узнай, как AI в розничной торговле и vision AI в производстве меняют отрасли. Изучи наши варианты лицензирования, чтобы уже сегодня создавать решения на основе vision AI!









