QRkoder

Finder Pattern

Finder Pattern — три поисковые метки в углах QR-кода, позволяющие сканеру определить ориентацию, размер и расположение модулей данных.

Определение Finder Pattern

Finder Pattern (поисковая метка) — три квадратные структуры в углах QR-кода, используемые сканером для быстрого обнаружения кода в кадре камеры и определения его ориентации, размера и наклона. Каждая поисковая метка представляет собой «квадрат в квадрате в квадрате»: внешний квадрат 7×7 модулей, внутренний белый 5×5 модулей и центральный чёрный 3×3 модулей. Finder Pattern расположены в трёх углах QR-кода — левом верхнем, правом верхнем и левом нижнем. Правый нижний угол оставлен пустым — именно по отсутствию метки в одном из углов сканер определяет поворот кода.

Уникальной особенностью Finder Pattern является соотношение ширин чёрных и белых полос при пересечении по любой линии — горизонтально, вертикально или диагонально. Это соотношение всегда равно 1:1:3:1:1 (узкая чёрная, узкая белая, широкая чёрная центральная, узкая белая, узкая чёрная). Пропорция уникальна и практически не встречается в естественных изображениях, поэтому алгоритм распознавания очень точно находит QR-код даже на сложном фоне.

Как Finder Pattern помогает сканеру

Сканер QR-кода работает в несколько этапов, и Finder Pattern играет ключевую роль на первом из них. Алгоритм сканирует кадр горизонтальными линиями и ищет соотношение 1:1:3:1:1 в чередовании пикселей. Найдя три таких региона, декодер проводит геометрические построения: определяет координаты центров трёх меток, вычисляет линию между ними и идентифицирует, какой угол пустой. Так находится ориентация (поворот) кода.

Далее сканер определяет размер кода (версию) по расстоянию между метками и ищет служебные области: Timing Pattern, Alignment Pattern, Format Information. После чего читает маску, применяет её к полю данных и декодирует байты через Reed-Solomon. Весь процесс занимает 20–50 миллисекунд на современном смартфоне, благодаря оптимизации поиска именно Finder Pattern.

Структура поисковой метки

СлойРазмерЦвет
Внешний квадрат7×7 модулейЧёрный
Внутренняя рамка (белая)5×5 модулейБелый
Центральный квадрат3×3 модулейЧёрный

Вокруг каждого Finder Pattern расположен белый «сепаратор» шириной 1 модуль, отделяющий метку от области данных. Это гарантирует, что данные не будут ошибочно интерпретированы как часть поисковой метки. Общее пространство, занимаемое каждой меткой с сепаратором, составляет 8×8 модулей.

Почему именно три метки

Три поисковых метки вместо четырёх выбраны разработчиками Denso Wave намеренно: три точки однозначно определяют плоскость, и по их положению можно полностью восстановить геометрию QR-кода независимо от поворота, наклона камеры и перспективных искажений. Четыре метки дали бы избыточную информацию, но потребовали бы больше места.

Отсутствие четвёртой метки в правом нижнем углу также служит маркером ориентации: сканер понимает, где «верх» кода, и может корректно считать его даже если код перевёрнут на 90°, 180° или 270°. Это одно из фундаментальных преимуществ QR-кода перед линейными штрих-кодами, требующими строго перпендикулярного сканирования.

Связанные концепции

  • Alignment Pattern — метки выравнивания внутри больших QR.
  • Timing Pattern — дорожка для калибровки модулей.
  • QR-код — стандарт, содержащий Finder Pattern.

Частые вопросы

Зачем нужно соотношение 1:1:3:1:1 в Finder Pattern?

Это уникальная пропорция, по которой сканер отличает QR-код от любых других изображений. При сканировании кадр обрабатывается горизонтальными, вертикальными и диагональными линиями, и везде в зоне Finder Pattern соотношение ширин чёрных и белых областей будет 1:1:3:1:1. В естественных изображениях (фотографиях, тексте, логотипах) такая пропорция встречается крайне редко, поэтому ложных срабатываний почти нет — алгоритм точно находит именно QR-код.

Можно ли изменить форму Finder Pattern?

Технически в некоторых дизайнерских QR-кодах углы скругляют, превращают в круги или стилизованные фигуры. Однако это нарушает строгую спецификацию ISO/IEC 18004 и может снизить надёжность распознавания — старые сканеры могут не прочитать такой код. Безопасная модификация: сохраняйте соотношение 1:1:3:1:1 для ширин и высот, но скругляйте углы квадратов с радиусом до 15% от ширины модуля. Это сохранит совместимость и добавит дизайнерский вид.

Почему QR имеет три метки, а не четыре?

Три точки однозначно определяют плоскость в двумерном пространстве. Поворот, наклон и перспективные искажения QR-кода можно полностью восстановить по трём Finder Pattern. Четвёртая метка дала бы избыточность, но потребовала бы дополнительного места и не добавила бы информации. Кроме того, отсутствие метки в правом нижнем углу служит важным маркером: сканер знает, где «верх» кода, и корректно считывает его при любом повороте камеры.

Что будет, если одна Finder Pattern повреждена?

Если повреждена одна поисковая метка, современные сканеры всё равно могут попытаться найти QR-код по двум оставшимся меткам, используя алгоритмы вероятностного распознавания. Однако надёжность сильно падает. Если повреждены две из трёх меток, код, скорее всего, не будет распознан ни одним стандартным сканером. Поэтому дизайнеры QR-кодов избегают размещать логотипы или декорации в областях Finder Pattern — только в центре кода, защищённом высоким уровнем коррекции ошибок.

Сколько места занимают Finder Pattern в QR?

Каждая поисковая метка с сепаратором занимает 8×8 модулей, итого три метки требуют 3×64 = 192 модуля служебной площади. В QR-коде версии 1 (21×21 = 441 модуль) это 43% площади. В QR версии 10 (57×57 = 3249 модулей) — всего 6%, поэтому с ростом версии доля служебной площади падает и ёмкость данных растёт. Это объясняет, почему для длинных URL выгоднее использовать более крупные QR-коды версии 5+.

Создавайте QR-коды бесплатно

Динамические QR-коды с аналитикой, дизайном и без ограничений по сканированиям.

Начать бесплатно