
Распознавание автомобильных номеров часто воспринимают как обычную задачу OCR: есть изображение с текстом, значит, достаточно прочитать символы. На практике OCR — лишь один из этапов обработки: до распознавания система должна обнаружить автомобиль, локализовать номерной знак, подготовить изображение и проверить результат. При этом на качество распознавания влияют десятки факторов: угол съемки, освещение, скорость движения автомобиля, загрязнение номера и другие особенности реальных условий эксплуатации.
В статье разбираем, как устроен пайплайн распознавания автомобильных номеров в «Фалькон Тех», почему эту задачу нельзя свести к «чтению текста с картинки» и какие инженерные решения помогают сохранять высокую точность при сложных условиях съемки.
Почему распознавание автомобильных номеров — это не OCR
OCR-модель не работает с исходным кадром с камеры: для распознавания символов ей требуется уже подготовленное изображение номерного знака. Именно поэтому в системах автоматического распознавания автомобильных номеров (ANPR) OCR выступает лишь одним из этапов обработки.
До запуска OCR система должна обнаружить автомобиль, определить положение номерного знака и подготовить изображение к распознаванию. Эти задачи выполняются последовательно и образуют единый пайплайн обработки.
Типичный пайплайн включает несколько этапов:
-
Детекцию автомобиля.
-
Локализацию номерного знака.
-
Подготовку изображения к распознаванию.
-
Распознавание символов (OCR).
-
Валидацию результата.
В решении «Фалькон Тех» используется аналогичный подход: система последовательно обрабатывает изображение, передавая результат каждого этапа следующему модулю.
Мы сначала проводим сегментацию и выделяем все машины. Дальше каждую машину отправляем в пайплайн, детектируем на ней номер, запускаем OCR-модель, затем проверяем номер на соответствие шаблону и возвращаем результат с вероятностью того, что он распознан корректно.
Артём Теряев, ML-инженер «Фалькон Тех»
OCR отвечает только за распознавание символов — поиск автомобиля, локализация номерного знака, подготовка изображения и проверка результата выполняются отдельными компонентами пайплайна. В этом и заключается ключевое отличие ANPR от классических OCR-систем, где модель работает с уже выделенной областью текста.
Что мешает системе увидеть номер: реальные условия эксплуатации
В лабораторных условиях модель получает изображения с высоким разрешением, хорошим освещением и четко различимыми символами. В реальной эксплуатации такие условия встречаются редко: камеры устанавливают на разной высоте и под разными углами, автомобили движутся с разной скоростью, а качество изображения зависит от времени суток, погоды, состояния камеры и самого номерного знака.
В большинстве случаев система работает не с «идеальным» изображением, а с кадром, который содержит различные искажения.
Если бы все номера снимались строго перпендикулярно, при хорошем освещении и без помех, задача была бы значительно проще. В реальных условиях так практически не бывает.
Артём Теряев, ML-инженер «Фалькон Тех»
Большинство проблем можно разделить на три группы:
-
геометрические искажения: съемка под углом, изменение перспективы, удаленность автомобиля от камеры;
-
оптические помехи: недостаточное освещение, блики от солнца и фар, дождь, снег, капли воды на объективе;
-
проблемы самого номерного знака: загрязнение, механические повреждения, частичное перекрытие или естественный износ.
На практике эти факторы редко встречаются по отдельности: автомобиль может одновременно двигаться под углом к камере, находиться в тени и иметь загрязненный номерной знак. В таком случае ухудшается качество изображения еще до запуска OCR.
До распознавания символов система локализует номерной знак, выполняет геометрическую коррекцию и подготавливает изображение. Эти этапы уменьшают влияние части искажений, но не могут восстановить информацию, которой нет в исходном кадре.
Ограничения возникают не на этапе OCR, а значительно раньше — в момент получения изображения с камеры. Именно поэтому точность ANPR зависит не только от модели распознавания, но и от качества входных данных, с которых начинается весь пайплайн обработки.
Как современная ANPR-система превращает кадр с камеры в распознанный номер
После получения кадра система последовательно выполняет несколько этапов обработки. Результат каждого этапа становится входными данными для следующего.
В общем виде пайплайн выглядит так:

Сначала модель сегментации выделяет все автомобили, попавшие в кадр. Затем система определяет положение номерного знака и вырезает область, которая будет использоваться на следующих этапах обработки.
Перед запуском OCR изображение подготавливается к распознаванию. На этом этапе корректируются перспективные искажения, нормализуется масштаб и выполняются другие преобразования, чтобы OCR-модель работала с изображением в едином формате.
Для разных типов номерных знаков подготовка изображения может различаться. Например, в «Фалькон Тех» отказались от отдельных моделей для квадратных и прямоугольных номеров и заменили их алгоритмом предварительной обработки.
Мы придумали алгоритм, который расширял границы изображения и делил номер в заданной пропорции в зависимости от соотношения сторон. В итоге это решение оказалось лучше двух отдельных моделей для прямоугольных и квадратных номеров.
Артём Теряев, ML-инженер «Фалькон Тех»
После подготовки изображения OCR-модель распознает последовательность символов, однако полученная строка символов еще не считается готовым результатом.
Проверка результата: почему распознанный номер нельзя сразу считать правильным
После OCR система получает последовательность символов, но это еще не означает, что номер распознан правильно. Ошибка даже в одном символе меняет результат полностью: вместо одного автомобиля система идентифицирует другой. Именно поэтому после OCR распознанный номер проходит дополнительную проверку.
Первый этап проверки — соответствие шаблону государственного регистрационного знака. Если OCR вернул последовательность символов, которая не может быть номером автомобиля, такой результат сразу отбрасывается.
Допустим, мы распознали слово «машина». Мы же не можем вернуть его в качестве государственного регистрационного знака, поэтому сначала проверяем, что результат действительно соответствует нужному шаблону.
Артём Теряев, ML-инженер «Фалькон Тех»
На следующем этапе проверки, если номер соответствует шаблону, система оценивает достоверность распознавания. OCR-модель возвращает не только итоговую строку, но и вероятность распознавания каждого символа.
Например, результат может выглядеть так:
А123ВС777
А — 99,9%
1 — 99,8%
2 — 98,7%
3 — 99,5%
В — 99,6%
С — 99,4%
7 — 99,9%
7 — 99,8%
7 — 99,7%
В реализации «Фалькон Тех» итоговая вероятность номера рассчитывается на основе вероятностей отдельных символов.
Мы берем вероятность распознавания каждого символа и перемножаем их. Получается итоговая вероятность для всего номера.
Артём Теряев, ML-инженер «Фалькон Тех»
На первый взгляд может показаться, что если вероятность каждого символа близка к 99%, то и вероятность для всего номера будет примерно такой же. На практике это не так: для номера из девяти символов итоговая вероятность рассчитывается с учетом всех девяти оценок.
Например, если вероятность каждого символа составляет 99%, итоговая вероятность будет: 0,99⁹ ≈ 0,914.
То есть итоговая уверенность составит около 91,4%. Если один символ распознан менее уверенно, итоговая оценка снижается еще сильнее. Например: 0,99⁸ × 0,80 ≈ 0,738.
Несмотря на то что восемь символов распознаны почти без ошибок, итоговая вероятность составляет уже около 73,8%. Именно поэтому даже один символ с низкой уверенностью может стать причиной отклонения всего результата.
Система сравнивает полученную вероятность с заданным порогом. Если итоговая оценка выше порога, результат принимается. Если ниже — отклоняется или передается на дополнительную проверку.
Математически всё выглядит достаточно просто, но выбрать подходящий порог только по результатам тестирования модели нельзя. Нужно учитывать, как распознанный номер будет использоваться дальше.
В «Фалькон Тех» это стало очевидно после неожиданной ситуации на одном из проектов. Команда несколько раз улучшала пайплайн и повысила точность распознавания на выбранном датасете при хорошем качестве съемки и правильном освещении примерно с 97 до 99,5%. Вместо ожидаемой положительной реакции заказчик сообщил, что система стала распознавать номера слишком хорошо.
Заказчик пришел к нам с жалобой, что мы стали слишком хорошо распознавать номера. Модель могла восстановить номер, который оператор уже не мог уверенно прочитать.
Артём Теряев, ML-инженер «Фалькон Тех»
Причина оказалась не в качестве модели, а в требованиях прикладной системы. Каждый штраф должен был подтвердить оператор. Модель уже могла распознать номер на изображении низкого качества, а человек — нет. Если оператор не мог визуально подтвердить символы по исходному кадру, такой материал нельзя было использовать.
После этого команда «Фалькон Тех» несколько недель подбирала пороги уверенности и правила проверки результатов. Цель состояла не в том, чтобы распознавать как можно больше номеров, а в том, чтобы автоматически принимать только те результаты, которые можно подтвердить и использовать в работе.
Для промышленной ANPR-системы отказ от распознавания — нормальный сценарий работы. В задачах, где ошибка может привести к юридическим или финансовым последствиям, безопаснее не вернуть результат, чем передать номер, в котором система недостаточно уверена.
Из чего складывается точность распознавания автомобильных номеров
Точность ANPR нельзя свести к качеству одной OCR-модели. На итоговый результат влияет каждый этап обработки изображения: от качества исходного кадра до проверки распознанного номера перед передачей в прикладную систему.
На практике точность системы складывается из нескольких компонентов:
-
качества изображения, поступающего с камеры;
-
устойчивости моделей к различным условиям съемки;
-
точности локализации номерного знака;
-
подготовки изображения перед распознаванием;
-
качества работы OCR-модели;
-
проверки результата и выбора порогов уверенности.
Эти компоненты работают не независимо друг от друга. Ошибка на любом этапе передается дальше по пайплайну: например, неточная локализация номера ухудшит качество изображения, поступающего в OCR, а неправильно выбранный порог уверенности приведет либо к ложным срабатываниям, либо к отклонению корректно распознанных номеров.
Именно поэтому в промышленных ANPR-системах нет универсального рецепта, который гарантирует высокую точность. Замена одной модели на более современную не всегда дает заметный эффект. Иногда бо́льший выигрыш приносит доработка предварительной обработки изображения, изменение логики проверки результатов или настройка порогов уверенности под конкретный сценарий использования.
Можно сделать модель, которая будет распознавать больше номеров. Но это не всегда означает, что вся система станет работать лучше.
Артём Теряев, ML-инженер «Фалькон Тех»
Высокая точность ANPR складывается из согласованной работы всех компонентов пайплайна: качества изображения, локализации номерного знака, подготовки данных, OCR, проверки результата и настройки порогов уверенности.
В реальных проектах задача заключается не в том, чтобы распознавать как можно больше номеров любой ценой, а в том, чтобы получать результат, которому можно доверять и использовать в дальнейшем процессе. Именно поэтому современные ANPR-системы — это не просто OCR для чтения автомобильных номеров, а комплекс алгоритмов обработки изображений, где каждый этап влияет на надежность итогового результата.
Автор: FalconTech


