Что такое сопоставление с шаблоном? Краткое руководство
Изучи метод обработки изображений, называемый сопоставлением с шаблоном (template matching), принципы его работы и значимость в истории компьютерного зрения.

Изображения часто содержат множество мельчайших деталей, которые человек легко замечает. Однако для машин эта задача не так проста. Машины воспринимают цифровое изображение как сетку значений пикселей, и даже незначительные изменения в освещении, угле обзора, масштабе или резкости могут их запутать.
Способности машины по анализу изображений обычно проистекают из двух тесно связанных областей информатики: обработки изображений и computer vision. Хотя они часто работают вместе, у них разные основные цели.
Image processing фокусируется на изображениях как на необработанных данных. Она может улучшать изображения, но не пытается понять их содержимое. Именно здесь computer vision меняет ситуацию. Computer vision — это ветвь artificial intelligence (AI), которая позволяет машинам понимать изображения и видео.
Базовая обработка изображений существует уже много лет, но передовые инновации в области компьютерного зрения появились совсем недавно. Отличный способ понять историю этой области — оглянуться назад на то, как мы раньше решали эти задачи с помощью более старых, традиционных методов.
Возьмем, к примеру, image matching. Это распространенная задача компьютерного зрения, в которой системе необходимо выяснить, присутствует ли определенный объект или паттерн внутри более крупного изображения.
В наши дни это можно сделать легко и точно с помощью ИИ и глубокого обучения. Однако до появления современных нейронных сетей в 2010-х годах предпочтительным методом была гораздо более простая техника, называемая шаблонным сопоставлением.

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

Рис. 2. Изображение А и изображение Б являются примерами шаблонов. (Source)
Основная цель шаблонного сопоставления — определить, где шаблон появляется на большой сцене, и измерить, насколько точно он совпадает с различными областями изображения. Алгоритм шаблонного сопоставления делает это, сдвигая шаблон по большему изображению и вычисляя показатель сходства в каждой позиции.
Области с более высокими показателями считаются наилучшим совпадением, что означает, что они сильно напоминают шаблон. Поскольку этот метод основан на попиксельном сравнении, он лучше всего работает в контролируемых средах, где внешний вид объектов не меняется.
Например, шаблонное сопоставление можно использовать в задачах проверки маркировки при контроле качества. Оно может легко сопоставить шаблонное изображение этикеток с изображениями готового продукта, чтобы проверить, присутствуют ли они.
Как работает шаблонное сопоставление#
Вот пошаговый обзор того, как работает шаблонное сопоставление:
-
Шаг 1 — Подготовка изображений: Процесс начинается с загрузки исходного изображения и изображения-шаблона, а затем преобразования обоих в полутоновое изображение. Поскольку шаблонное сопоставление основано на сравнении значений пикселей, удаление цветовой информации уменьшает шум и ускоряет обработку изображения.
-
Шаг 2 — Сдвиг шаблона по изображению: Затем алгоритм шаблонного сопоставления сдвигает шаблон по большему изображению по одному пикселю за раз (начиная с верхнего левого угла). Каждый шаг в этом движении представляет собой итерацию, в ходе которой алгоритм извлекает из исходного изображения участок, соответствующий размеру шаблона.
-
Шаг 3 — Оценка качества совпадения: Каждый участок изображения сравнивается с шаблоном с помощью математического метода сопоставления для создания метрики корреляции или значения корреляции для каждой возможной позиции. Распространенные подходы включают квадраты разностей (которые измеряют числовое расстояние между интенсивностями пикселей для вычисления общего несоответствия), нормализованную кросс-корреляцию (она перемножает значения пикселей, чтобы определить, насколько хорошо совпадают светлые и темные области) и коэффициент корреляции (он вычитает среднюю яркость, чтобы гарантировать, что сопоставление останется точным, даже если освещение немного изменится).
-
Шаг 4 — Определение лучшего совпадения: После оценки всех позиций алгоритм выбирает лучшее совпадение, находя максимальное или минимальное значение, в зависимости от используемого метода. К этим результатам часто применяется порог, чтобы гарантировать, что принимаются только совпадения с достаточно высоким показателем уверенности, отфильтровывая слабые или неверные обнаружения.
-
Шаг 5 — Выделение результата: Наконец, обнаруженное местоположение накладывается на исходное изображение. Обычно вокруг совпадающей области рисуется ограничивающая рамка (BBox), четко показывающая, где находится шаблон.
Практическая работа с шаблонным сопоставлением#
While image processing-based template matching isn't generally used in dynamic real-world computer vision solution deployments because of the drawbacks it comes with, if you are interested in testing it out, Python libraries like OpenCV make this process straightforward and also offer easy-to-follow tutorials. It features a built-in matchTemplate function that handles the complex mathematical comparisons.
Кроме того, он поддерживает другие функции, которые помогают в простых задачах, таких как загрузка изображений с помощью функции imread и преобразование цвета с помощью функции cvtColor для трансформации изображений в оттенки серого. Преобразование цвета — это критический шаг, потому что сведение изображения к одному каналу интенсивности делает математическое сравнение внутри matchTemplate намного быстрее и менее чувствительным к цветовому шуму.
После того как ты сгенерировал карту сходства, OpenCV также включает функцию minMaxLoc для завершения обнаружения. Ее можно использовать для сканирования всей карты, чтобы определить глобальные минимальные и максимальные значения вместе с их точными координатами. В зависимости от используемого метода сопоставления, minMaxLoc позволяет мгновенно определить местоположение наилучшего совпадения, найдя самую высокую корреляцию или самое низкое значение ошибки в данных.
Помимо OpenCV, библиотеки, такие как NumPy, необходимы для обработки массивов изображений и применения порога к результатам, в то время как Matplotlib обычно используется для визуализации карты сходства и окончательного обнаружения. Вместе эти инструменты обеспечивают полноценную среду для создания и отладки решения для шаблонного сопоставления.
Реальные применения шаблонного сопоставления#
Теперь, когда у нас есть лучшее понимание того, как работает шаблонное сопоставление, давай более детально рассмотрим его применение в реальных сценариях.
Идентификация традиционных архитектурных стилей#
В исследованиях cultural heritage и архитектуры исследователи должны анализировать фотографии исторических зданий, храмов и памятников, чтобы понять, как паттерны проектирования различаются в разных регионах. До того как передовые модели computer vision получили широкое распространение, они использовали методы сопоставления изображений для изучения таких сооружений.
Шаблонное сопоставление позволяет исследователям сосредоточиться на конкретных архитектурных признаках, таких как контуры крыш, расположение окон или мотивы на стенах. Сдвигая шаблоны или эталонные изображения по большим изображениям, они могут идентифицировать повторяющиеся формы и сократить ручной анализ изображений, который может занимать часы.
Интересный пример взят из исследования, посвященного Indonesian traditional houses. Исследователи создали небольшие шаблоны характерных особенностей и сравнили их с полномасштабными фотографиями. Этот подход использовался для выделения областей изображения, которые тесно соответствуют шаблону, и классификации архитектурных стилей по регионам.

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

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






