01Задача
Ночью обычные камеры видят номер плохо: автоэкспозиция подстраивается под фары, появляются блики от ИК-подсветки и смаз. Ставить дорогие ANPR-камеры на каждый въезд заказчик не хотел, а облако исключалось. Требования: точность не ниже 95 %, ложных чтений не более 0,5 %, не более 500 мс на событие.
02Решение
- Не один кадр, а проезд: номер сопровождается по 10–40 кадрам, лучшие выбираются по резкости, экспозиции и бликам, итог определяется голосованием
- Нормализация яркости и контраста внутри рамки номера, подавление ИК-бликов, выпрямление перспективы
- Компактная CRNN-модель — меньше 1 млн параметров — на CPU: около 4 мс на кадр номера
- Декодер знает формат номера: буква не может оказаться на месте цифры, код региона сверяется со справочником
- Сомнительный результат не публикуется — оператор получает кандидата и подсказку
- API и вебхуки для платформы: распознавание, проезды, триггер по событию
03Результат
- 97,5 % точности против 86,5 % у стандартного подхода «лучший кадр»
- 0 % ложных чтений во всех группах сложности
- 121 мс от события до ответа; 2 ядра CPU обслуживают 1–2 камеры
- Развёртывание в Docker или systemd прямо на объекте