Как мы разработали систему распознавания автомобильных номеров для СНТ, и с чем столкнулись в процессе
За последнее время сильно изменился рынок предложения, в частности, и в сфере видеоаналитики. Ушло мно��о крупных компаний, которые предоставляли решения по распознаванию автомобильных номеров на территории Российской Федерации. Стало появляться всё больше запросов по данной тематике, что не могло нас не порадовать.
Продукт в области ANPR/LPR (Automatic number-plate recognition/License Plate Recognition) в рамках NeuroCore существует уже на протяжении трех лет. Он начал жить по итогам победы на хакатоне в Казани в треке ИТС (об этом в другой статье). Часто наша команда переключалась на внешние проекты, что постоянно отвлекало от доведения MVP и тестирования внутреннего продукта для оперативного предоставления сервиса по запросу.Решение по распознаванию номеров, как API, работает уже достаточно давно в NeuroCore по подписке, но на создание полноценного сервиса с пользовательскими интерфейсами мы долго не могли распределить нужные ресурсы.
И вот в один момент нам подвернулась возможность для пилотирования в СНТ, клиент оказался достаточно терпелив, хоть и требователен. В начале августа к нам обратились из СНТ «Снигиревский лоск» (много дач, объединенных одним ответственным лицом за обустройство) с запросом на автоматизацию проезда жителей на объект. Ведь многие владельцы загородных домов сталкиваются с такими проблемами, как забытый брелок, отсутствие охранника на посту, потому что он убежал кому-то копать огород, что порождает необходимость длительного ожидания на въезде и ощущение того, что вас не пускают к себе же домой... Вот какие вводные мы получили:
Что уже есть:
- Шлагбаум на въезд и выезд
- Две камеры на въезд и выезд
- Микротик
- Облачное видеонаблюдение Trassir
Задача, которую нужно решить:
- Минимально меняя текущее оборудование, добавить возможность распознавания автомобильных номеров с камер видеонаблюдения
- Отправка найденного номера в систему управляющей компании (интеллект парк) на предмет проверки наличия номера в базе данных СНТ;
- Подача сигнала на открытие шлагбаума в случае совпадения распознанного автомобильного номера с номером, загруженным в систему интеллект парка
Что мы предложили
Первые мысли с учетом уже имеющегося опыта по внедрению подобных решений и с учетом большой удаленности объекта от цивилизации — запустить распознавание номеров в облаке, добавить камеры в уже развернутый на хостинге сервис, локально обрабатывая лишь сам поток на предмет наличия в кадре машины, в целях фильтрации и оптимизации нагрузки на сетевой канал, ведь он тоже сильно ограничен.
Изучив цены на EDGE устройства (расшифровки терминов тут) в текущих реалиях, осознали, что полноценный ПК с GPU обходится лишь процентов на 15-20% дороже самого простого Jetson Nano, которого раньше нам хватало на несколько камер для подобных сервисов. Также еще важно отметить, что облачное решение на объектах с нестабильным интернетом, большей скоростью реакции будет проигрывать в отказоустойчивости локальному решению. Так мы пришли к концепции локальной установки: подготовили бюджетный вариант с учетом скидки на то, что мы будем совместно тратить силы на отладку системы и на это потребуются дополнительные ресурсы от каждой из сторон. И в итоге успешно обо всём договорились. Делюсь ссылкой на наш шаблон коммерческого предложения по распознаванию автомобильных номеров с ценой на модуль NeuroVision ANPR с интеграцией в локальный контур СНТ “Снигиревский лоск”.
История внедрения
Закупили ПК, установили нужное ПО, проверили, что всё работает корректно локально у нас в офисе на тестовых камерах. Перед отправкой проверили интернет соединение, наличие статического IP-адреса для возможности постоянного удаленного подключения, так как на объекте тоже не всегда кто-то присутствует и вряд ли сможет оперативно помогать нам с отладкой. И вот решение поставили на объект.
Первые дни активно мониторили камеры для получения картинок с них и запуска в нашем веб-демо, для подтверждения самим себе, что такими камерами мы что-то да можем видеть нейросетевой аналитикой. И вот результаты:
Видно, что изображение не самое лучшее из-за ракурса, так что мы заранее проговорили необходимость перевесить текущие камеры или приобрести более четкие, но при этом еще бюджетные видеокамеры по нашим рекомендациям. А вот и файл с рекомендациями по расположению камер.
Результаты получены через веб-демо, которое есть в общем доступе и можно к нему обратиться вот тут — https://demo. neuro-vision. tech/
Далее связались с интеллект парком и согласовали формат ответов от нашей системы с распознанными номерами, чтоб они смогли принимать корректно результаты распознавания NeuroVision и открывать шлагбаум в моменте совпадения номеров из базы и из нашего решения. Формат взаимодействия получилось согласовать оперативно, проблем не возникло.
Камеры в итоге пришлось перевесить согласно рекомендациям и настроить ROI для концентрации на нужной части изображения на наличие номера автомобиля в ней.
ROI (англ. Region of interest) – область интереса. Собственно, это "умная функция”, которая позволяет снимать разные части изображения с разным разрешением. Например, при съемке участка дороги "в лоб", нижняя половина (с автомобилями и дорогой) будет записана в максимальном качестве, другая часть изображения (небо, деревья) записывается с низким разрешением.
Картинка стала сильно лучше, метрики растут на глазах:
Последняя трудность, которая оставалась нерешенной — интеграция для открытия шлагбаума, так как нужно одновременное участие нескольких команд для данного тестирования, но оно тоже прошло успешно, хоть и заняло больше времени, чем мы изначально планировали. Так наше решение прижилось на объекте и до сих пор находится под нашей опекой у команды технической поддержки. А так выглядел пользовательский интерфейс системы на момент установки (изображение ниже) . Всё достаточно наглядно, но в работе расширение функциональности и возможностей системы уже в новых красках.
Также, в процессе реализации нам пришла идея улучшить наш продукт и добавить интеллектуальную подмену с использованием масок для точного распознавания, в случае если номера грязные или стоит отражатель. Все правила ��ропускной системы сделали легко настраиваемыми. Гибкая система настроек с редактированием порога точности распознавания позволяет увеличить эффективность работы Системы. Также про то, как мы улучшили наш продукт, можно прочитать в этой статье.
Так что теперь жители нашего товарищества могут проезжать автоматически без необходимости дожидаться охранника с заработков, дополнительных просьб близких и соседей для передачи брелков, если его забыли и не нужно больше ждать пока кто-то проедет с брелком, чтобы успеть перестроиться вслед за другой машиной. Приятно, что наши решения помогают делать жизнь человека проще и легче, экономя самый ценный ресурс — время. Внедрив распознавание номеров по белому списку, проезд стал беспрепятственным для владельцев загородных домов, чьи номера машин внесены в систему NeuroVision.