Как сканеры распознают даже поврежденные штрих- и QR -коды

Штрих‑коды и QR‑коды окружают нас в повседневной жизни: они на упаковках в магазине, на бирках, коробках, в билетах и на рекламных постерах. Часто встречается ситуация: код поцарапан, испачкан, помят или частично закрыт логотипом, но сканер всё равно «видит» данные. Это не случайность и не заслуга «умной» камеры. За алгоритмами распознавания кодов стоит инженерная математика, которая спасает информацию даже при серьёзных повреждениях.

Как сканеры распознают даже поврежденные штрих- и QR -коды

Из истории

Для начала несколько интересных фактов по годам:

  • 1960: изобретён алгоритм Рида–Соломона, ставший универсальным инструментом защиты данных.
  • 1974: первый коммерческий UPC-скан жвачки Wrigley’s в супермаркете Огайо положил начало цифровой рознице.
  • 1994: Denso Wave создала QR для автопрома — нужно было считывать больше данных быстрее, чем позволяли 1D-коды.
  • 2000-е: QR вышел в массы благодаря камерам в мобильных телефонах и простым приложениям.
Как сканеры распознают даже поврежденные штрих- и QR -коды

Линейные штрихкоды: одна линия — одна уязвимость

Классические (1D) штрих‑коды, такие как UPC, EAN и Code 128, кодируют информацию в виде последовательности чёрно‑белых полос разной ширины. Сканер «считаетывает» одну линию: измеряет ширины полос и переводит их в последовательность символов. В служебной части присутствуют старт/стоп‑символы и контрольная сумма - простые механизмы целостности. Именно из‑за линейной организации данных у 1D‑штрихкодов низкая устойчивость к продольным повреждениям: если по всей длине полосы идёт царапина или обрезан край, потеря данных обычно критична. Это как читать книгу построчно: вырвите кусок страницы, и смысл исчезнет. Но зато если код просто помят, частично потерт, расплылся из-за влаги «дорисовать» информацию техника сможет.

QR-код: матрица, которая все «помнит»

Так называемый двумерный код работает иначе.

Данные распределяются по сетке модулей, а не выстраиваются в линию. Это даёт два ключевых преимущества:

• Большая ёмкость (ссылки, контакты, платёжные данные);

• Встроенная «страховка» — алгоритмы коррекции ошибок.

Прежде чем считать данные, сканер должен найти код в кадре. Для этого в матрице предусмотрены служебные элементы:

• 3 больших квадрата в углах (finder patterns) — «якоря» для обнаружения и ориентации;

• Выравнивающие маркеры внутри — компенсируют перспективные искажения;

• Тайминговые линии — задают шаг сетки;

• «Тихая зона» — пустое поле вокруг кода минимум в 4 модуля. Без неё сканер просто не поймёт, где начинается и заканчивается матрица.

Главный секрет устойчивости QR

Алгоритм Рида–Соломона (используется в CD/DVD, спутниковой связи и цифровом ТВ). Он добавляет к полезным данным проверочные символы. Если часть модулей повреждена, декодер математически восстанавливает утерянные фрагменты.

В стандарте QR предусмотрено 4 уровня защиты:

L — ~7% кодовых слов можно восстановить
M — ~15%
Q — ~25%
H — до 30%

!Важно: проценты относятся к кодовым словам, а не к площади картинки. И если повреждены угловые маркеры или нарушена «тихая зона», даже уровень H не спасёт — сканер просто не найдёт код.

Почему логотип в центре QR-кода не мешает?

Часто в центр QR вставляют лого бренда. Это работает благодаря трём факторам:

- Используется высокий уровень коррекции (Q или H);

- Логотип не перекрывает угловые маркеры и тихую зону;

- Данные перемешиваются: локальная царапина или логотип не вырезают один сплошной кусок информации, а «размазывают» потерю по разным блокам, повышая шансы на восстановление.

Как сканеры распознают даже поврежденные штрих- и QR -коды

Как работает исправление ошибок по шагам

Если упростить, процесс выглядит так:

Шаг 1. Камера находит QR-код

Сканер определяет три поисковых маркера, границы и геометрию кода.

Шаг 2. Изображение выравнивается

Программа корректирует наклон, перспективу, освещение, иногда шум и размытие.

Шаг 3. Считывается служебная информация

Декодер определяет:

  • версию QR-кода;
  • маску;
  • уровень коррекции ошибок.

Шаг 4. Извлекаются данные и проверочные символы

Полезная информация в QR-коде хранится вместе с избыточными символами коррекции.

Шаг 5. Алгоритм находит ошибки

Если часть модулей повреждена, декодер видит несоответствие в кодовых словах.

Шаг 6. Применяется Reed–Solomon

Алгоритм восстанавливает потерянные или искаженные данные в пределах допустимого объема ошибок.

Именно на этом этапе QR-код “спасается”, даже если часть изображения испорчена.

Где это важно сегодня?

Логистика, билеты, чеки, уличная реклама, промышленная маркировка, платёжные сценарии. Везде, где метка может помяться, испачкаться или намокнуть.

Именно поэтому современные сканеры (в том числе решения DORS) комбинируют оптическое распознавание, предобработку изображений и алгоритмы коррекции. Они «видят» не просто картинку, а математическую структуру, что позволяет надёжно считывать коды в любых условиях.

3
Начать дискуссию