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

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

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

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

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

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






