Транспорт
Распознавание номеров ночью, в дождь и снег: почему ANPR ошибается и как добиться точности
Январь, Урал, минус двадцать восемь. Фура подъезжает к шлагбауму залепленная грязью пополам со снегом, и там, где должен быть номер, — серый прямоугольник. Система честно молчит. Это не выдумка для красоты, это реальный случай с одного логистического комплекса под Челябинском, и через такой вечер проходит почти каждый, кто ставит распознавание номеров ночью или зимой.
Днём в ясную погоду читает почти всё. Вопрос всегда в другом: а в три ночи, в ливень, на грязной фуре на скорости — читает? Давайте честно разберём, что именно убивает точность, и что с этим реально делают, а не обещают в презентации.
Что физически мешает камере прочитать номер
ANPR — это не магия, а связка «оптика плюс нейросеть». И оба звена ломаются в плохих условиях по конкретным причинам.
Засветка фарами (blooming). Самая частая ночная беда. Машина едет на камеру с включённым дальним или с ксеноном, и сенсор камеры физически переэкспонируется — белое пятно расползается по кадру и съедает символы номера. Глаз бы прищурился, а матрица просто выбивается в белый. На светоотражающих российских номерах эффект усиливается: пластина сама отражает свет фар обратно в объектив.
Грязь и снег на пластине. Зимой номер залепляет реагентами и снежной кашей за полчаса езды. Летом — пылью и дорожной грязью. Камера видит то же, что и вы: вместо «А123ВС» — три читаемых символа и месиво. Отдельная история — намеренно заляпанный или согнутый номер у нарушителей.
Блики на мокром. После дождя пластина мокрая и бликует под фонарями и от собственных фар камеры. Блик ложится ровно поверх символа — и единица превращается в пустоту, восьмёрка в ноль.
Смаз от скорости. Машина едет быстро, выдержка камеры длинная — символы размазываются по горизонтали. На 60 км/ч и «честных» 1/50 секунды номер уезжает на несколько пикселей, и нейросеть начинает гадать. Это не про парковку, где машина ползёт, это про сквозной проезд и трассу.
Угол и ракурс. Камера висит сбоку и сверху, номер уходит в перспективу — символы сжимаются, наклоняются. Чем острее угол, тем сильнее искажение. Добавьте сюда машины разной высоты: камеру навели на седан, а кроссовер подъехал выше — и кадр ушёл в бампер.
Режим день/ночь и ИК. Многие камеры ночью переключаются в чёрно-белый режим с ИК-подсветкой. Если подсветки не хватает или она светит не туда, номер уходит в тень. А ещё дешёвая ИК-подсветка даёт ту же засветку, что и фары, только от самой камеры.
Почему «процент распознавания» из буклета врёт
Когда вендор пишет «точность 99%», спросите: на каком наборе? Лабораторный тест на чистых дневных кадрах — это одно. Реальный поток вашего объекта зимней ночью — совсем другое.
Честные ориентиры из практики, без приукрашивания:
- День, чистые номера, нормальный угол — 97–99%. Тут действительно почти всё.
- Ночь, городское освещение, сухо — 90–96%. Просадка за счёт засветки и контраста.
- Ночь плюс дождь или снег, грязные номера, скорость — 70–88% «из коробки», без настройки под объект.
Та самая разница между 99 из буклета и 75 на вашем въезде в феврале — это и есть зона, где живёт вся настоящая работа. И именно её закрывают на пилоте, а не в спецификации.
Чем с этим реально борются
Хорошая новость: почти каждый из факторов выше лечится. Плохая — не одной кнопкой, а связкой железа и настройки.
ИК-прожектор отдельно от камеры. Не встроенная подсветка, а вынесенный ИК-прожектор, направленный точно в зону номера под правильным углом. Светоотражающая пластина в ИК отрабатывает прекрасно — номер становится ярким на тёмном фоне, а лицо водителя и салон в кадр не лезут (бонус к приватности). Это лучшее средство против ночной темноты и засветки фарами одновременно.
Короткая выдержка против смаза. Камеру настраивают на короткую выдержку — 1/500, 1/1000 и короче, — чтобы заморозить движущийся номер. Темнее кадр компенсируют тем самым ИК-прожектором. Это ключ к чтению на скорости и на сквозном проезде.
WDR и борьба с засветкой. Широкий динамический диапазон (WDR) и грамотная экспозиция помогают вытянуть номер из-под фар. Иногда достаточно опустить камеру ниже и дать ей встречный свет не в лоб, а под углом.
Дообучение модели на ваших «грязных» кадрах. Это то, что отличает рабочую систему от коробочной. Нейросеть дообучают на реальных кадрах вашего объекта — на ваших грязных фурах, вашем освещении, ваших углах. Модель, видевшая сотни залепленных снегом номеров именно с этого въезда, читает их кратно лучше универсальной.
Чтение по фрагментам. Когда видно три-четыре символа из шести, система не сдаётся, а достраивает номер по фрагментам и по белому списку: если в базе есть только один номер, начинающийся на «А12», система понимает, какая это машина, даже не дочитав до конца. Для въезда своих по списку этого часто достаточно.
Несколько кадров на проезд. Машина проходит зону не мгновенно — камера снимает серию кадров и выбирает лучший или собирает номер из нескольких. Один кадр с бликом — не приговор, если соседний чистый. Чем выше частота кадров и чем точнее зона захвата, тем больше у системы шансов поймать тот единственный момент, когда номер виден без блика и без засветки.
Правильное место для камеры. Половина ночных проблем решается ещё на монтаже. Камеру вешают не в лоб встречному свету, а под углом, на высоте, где номер ложится в кадр прямо, а не уходит в перспективу. Один доворот кронштейна на стремянке иногда даёт больше прироста точности, чем неделя настройки софта.
Подробнее про то, из чего вообще складывается такая система и сколько стоит каждый из этих узлов, — в разборе устройства и цены системы распознавания номеров.
Как поднять точность на пилоте, а не на словах
Главная мысль: процент распознавания в ваших условиях — это не цифра из договора, а результат настройки на объекте. Поэтому нормальный заход — пилот.
Как это выглядит на практике:
- Снимаем «как есть». Подключаемся к существующим камерам по RTSP, неделю собираем реальный поток — день, ночь, дождь, грязь. Получаем честную базовую цифру: сколько читается прямо сейчас, без вмешательства.
- Смотрим, что именно теряем. Разбираем непрочитанные кадры. Засветка? Угол? Грязь? Смаз? Обычно проваливается что-то одно-два, а не всё сразу.
- Лечим узкое место. Где-то хватает довернуть камеру и поставить ИК-прожектор. Где-то — поджать выдержку. Где-то — дообучить модель на собранных кадрах.
- Меряем снова. Та же неделя в тех же условиях, новая цифра. Разница между «до» и «после» обычно и есть ответ на вопрос «а в наших условиях читает».
На том самом ж/д терминале, где читали ржавые вагоны под дождём, так подняли распознавание с 71 до 96 процентов — не сменой камер, а подсветкой, выдержкой и дообучением на их же кадрах.
Честно: где даже после настройки останется потолок
Не буду продавать стопроцентную магию. Есть случаи, где и идеальная система спасует, и это нормально заложить в логику заранее.
- Намеренно скрытый номер. Согнутая пластина, заклеенный символ, грязь «по делу» — это не задача распознавания, это задача охраны. Система такое отметит как «номер есть, но не читается» и позовёт человека.
- Совсем нет переднего номера. Многие не вешают переднюю рамку. На въезде ловить нечего — выручает только задняя камера или привязка к проезду.
- Экстремальная погода. Сплошная стена снега или ливня кладёт видимость для всех, и для камеры тоже. Тут спасает серия кадров и чтение по фрагментам, но 100% не будет.
Правильный подход — не делать вид, что система непогрешима, а заложить ветку «не уверена — зови оператора». Спорный кадр уходит человеку с фото, тот решает за десять секунд. Поток не встаёт, а сомнительные проезды не пролетают мимо.
Если у вас уже стоят камеры на въезде и есть автоматический шлагбаум — основа для распознавания, скорее всего, уже есть, вопрос только в настройке под вашу ночь и вашу зиму. Посмотреть, как устроено распознавание номеров целиком, можно на отдельной странице, а если хотите проверить именно свой объект — запросите пилот: неделя на ваших камерах даёт честную цифру лучше любого буклета.
// связанные услуги
Хотите так же на вашем объекте?
Покажем видеоаналитику на ваших камерах и рассчитаем окупаемость. Бесплатно.