по для распознавания автомобильных номеров
Распознавание номеров. Практическое пособие. Часть 1
Все начиналось банально — моя компания уже год платила ежемесячно плату за сервис, который умел находить регион с номерными знаками на фото. Эта функция применяется для автоматической зарисовки номера у некоторых клиентов.
И в один прекрасный день МВД Украины открыло доступ к реестру транспортных средств. Теперь по номерному знаку стало возможным проверять некоторую информацию про автомобиль (марку, модель, год выпуска, цвет и т.д. )! Скучная рутина линейного программирования померкла перед новой свехзадачей — считывать номера по всей базе фото и валидировать эти данные с теми, что указывал пользователь. Сами знаете как это бывает «глаза загорелись» — вызов принят, все остальные задачи на время стали скучны и монотонны… Мы принялись за работу и получили неплохие результаты, чем, собственно и решили поделиться с сообществом.
Для справки: на сайт AUTO.RIA.com, в день добавляется около 100 000 фото.
Кто еще распознает
Год назад я изучил этот рынок и оказалось, что работать с номерами стран exUSSR умеет не так уж много сервисов и ПО. Ниже представлен список компаний с которыми мы работали:
Automatic License Plate Recognition
Recognitor
Какие инструменты нужны для распознавания номеров
Нахождение объектов на изображении или в видео-потоке это задача из области компьютерного зрения, которая решается разными подходами, но чаще всего с помощью, так-называемых, сверточных нейронных сетей. Нам нужно найти не просто область на фото в которой встречается искомый объект, но и отделить все его точки от других объектов или фона. Эта разновидность задач называется «Instance Segmentation». На иллюстрации ниже визуализированы разные типы задач компьютерного зрения.
Я не буду сейчас писать много теории о том как работает сверточная сеть, этой информации достаточно в сети и докладов на youtube.
Из современных архитектур сверточных серей для задач сегментации часто используют: U-Net или Mask R-CNN. Мы выбрали Mask R-CNN.
Второй инструмент, который нам понадобится — это библиотека по распознаванию текстов, которая бы могла работать с разными языками и которую можно легко настраивать под специфику текстов, которые мы будем распознавать. Тут выбор не так уж велик, самой продвинутой является tesseract от Google.
Так же есть ряд менее «глобальных» инструментов, с помощью которых нам нужно будет нормализовать область с номерным знаком (привести его в такой вид, при котором распознавание текста будет возможным). Обычно для таких преобразований используют opencv.
Так же, можно будет попробовать определить страну и тип, к которой относится найденный номерной знак, чтоб в постобработке применить уточняющий шаблон, характерный для этой страны и этого типа номера. Например, украинский номерной знак, начиная с 2015 года оформлен в сине-желтом оформлении состоит из шаблона «две буквы черыре цифры две буквы».
Кроме того, имея статистику частоты «встречания» в номерных знаках того или иного сочетания букв или цифр можно улучшить качество постобработки в «спорных» ситуациях. «
Nomeroff Net
Все материалы для нашего проекта: размеченные датасеты и натренированные модели, мы выложили в открытый доступ с разрешения RIA.com под лицензией Creative Commons CC BY 4.0
Что нам понадобится
Для того, чтобы ускорить установку планируем создать dockerfile — ожидайте в ближайших апдейтах проекта.
Nomeroff Net «Hello world»
Давайте уже что-то попробуем распознать. Клонируем с github-а репозиторий с кодом. Качаем в папку models, натренированные модели для поиска и классификации номеров, немного подправим под себя переменные с расположением папок.
UPD: Этот код является устаревшим, он будет работать только в ветке 0.1.0, свежие примеры смотрите здесь:
Все, можно распознавать:
Онлайн демка
Набросали простенькую демку для тех кому не хочется все это ставить и запускать у себя :). Будьте снисходительны и терпеливы к скорости работы скрипта.
Если нужны примеры украинских номеров (для проверки работы алгоритмов коррекции), возьмите пример из этой папки.
Что дальше
Я понимаю, что тема очень нишевая и вряд ли вызовет большой интерес у широкого круга программистов, кроме того, код и модели еще достаточно «сыроваты» в плане качества распознавания, быстродействия, потребления памяти и пр. Но все же есть надежда, что найдутся энтузиасты, которым будет интересно натренировать модели под свои нужды, свою страну, которые помогут и подскажут, где есть проблемы и вместе с нами сделают проект не хуже, чем коммерческие аналоги.
Известные проблемы
Анонс
Если это будет кому-то интересно, во второй части собираемся рассказать о том как и чем размечать свой датасет и как тренировать свои модели, которые могут работать лучше для вашего контента (вашей страны, вашего размера фото). Также поговорим о том как создать свой классификатор, который, например, поможет определять не зарисован ли номер на фото.
Нейронные сети в детектировании номеров
Распознавание автомобильных номеров до сих пор является самым продаваемым решением на основе компьютерного зрения. Сотни, если не тысячи продуктов конкурируют на этом рынке уже на протяжении 20-25 лет. Отчасти поэтому сверточные нейронные сети (CNN) не бьют прежние алгоритмические подходы на рынке.
Но опыт последних лет говорит, что алгоритмы CNN позволяют делать надежные и гибкие для применения решения. Есть и еще одно удобство: при таком подходе всегда можно улучшить надежность решения на порядок после реального внедрения за счет переобучения. Кроме того, такие алгоритмы отлично реализуются на GPU (графических модулях), которые значительно эффективней с точки зрения потребления электроэнергии, чем обычные процессоры. А платформа Jetson TX от NVidia так просто потребляет очень мало по меркам современных вычислителей. Наглядное «энергетическое превосходство»:
Конечно, такое превосходство Jetson TX1 над Intel Core i7 преувеличено, т.к. всегда существуют побочные задачи: захват изображения с камеры, работа с памятью, не все вычисления целесообразно переносить на GPU. И все-таки, выглядит заманчиво.
Несложно оценить бюджет потребления для системы в сборе:
А значит, даже для автономного решения, запитываемого от солнца и ветра, можно установить 3-4 камеры с источниками ИК и 2 Jetson-а.
Стало еще привлекательней! Значит, нужно сделать распознавание на Jetson TX1, и сделать хорошо.
Сразу скажем спасибо коллективу NVidia в России. Благодаря их помощи все получилось. Мужики подарили нам Jetson TX1 на опыты и обещали дать затестить TX2.
Алгоритм поиска номера
Поиск границ и углов автомобильных номеров на снимках состоял из трех стадий, реализованных разными обученными CNN-ями.
Определение позиции автомобильного номера (центра):
Выходной слой сверточной сети — поле вероятностей нахождения центра номера в данной точке. На выходе получаются вот такие красивые “Гауссы”. Конечно, тут возможны ложные срабатывания. Более того, пороги так и выбираются, чтобы минимизировать вероятность пропуска номера (увеличив “ложняки”).
За последние пару лет на наш свободно-доступный сервер пришли десятки тысяч разнообразных номеров. С такой базой удалось обучить значительно более надежный детектор, чем используемый ранее Haar.
Оценка масштаба автомобильного номера:
Тут попутно отсеиваем часть ложных срабатываний.
Поиск лучшего преобразования “гомографии”, приводящей автомобильный номер в привычный вид:
Здесь поработали еще 2 сверточные нейронные сети: детектирование границ номера, определение максимально правдоподобной гипотезы.
Результат работы первой:
А вторая выбирает наилучшую гомографию:
В результате получается нормализованное изображение автомобильного номера, которое дальше необходимо распознать. Ниже несколько примеров таких нормализованных табличек (некоторые из них не читаемы даже глазом):
Такой многоуровневый подход показал себя весьма надежным. На каждой стадии вероятность пропуска минимизируется, а сверточная нейронная сеть на каждом следующем уровне обучается не только выполнять свою основную функцию, но и убирать ложные срабатывания. Таким образом, неточность каждой CNN компенсируется на следующем этапе.
Для того, чтобы заставить все это работать, мы использовали 2 типа сверточных сетей:
1) Стандартный классификационный вариант, подобный VGG:
2) Архитектуру, предназначенную для сегментации, подробнее описанную в одной из предыдущих статей.
Конечно, эти архитектуры пришлось немного облегчать для работы на Jetson TX1. Кроме того, несколько ухищрений с функциями потерь и выходными слоями помогли улучшить обобщение при тренировке на не такой уж и огромной базе, которая имелась в распоряжении.
Алгоритм распознавания текста на номере
Честно говоря, казалось, что проблемы с распознаванием текста уже несколько лет основательны решены современными Deep Learning алгоритмами. Но почему-то нет.
На Хабре недавно была статья про использование LSTM и CNN для распознавания текста в паспорте.
Но описанный подход требует ручной разметки всей базы (границы между знаками). А у нас была серьезного размера база с разметкой другого плана (изображение + текст):
Ведь был же алгоритм предыдущего поколения, который часто довольно удачно распознавал автомобильный номер (порою допуская ошибки). А значит, нужно было придумать подход, который позволил бы обучить нейронную сеть без привлечения информации о позиции каждого символа. Такой подход еще более ценен из-за того, что так значительно проще автоматически наращивать обучающую выборку. В системе, в которой глазами проверяют и исправляют ошибки (например, для отправки штрафа) автоматически формируется расширение обучающей выборки. Да даже если коррекция не проводится, переобучение поможет после накопления распознанных номеров.
Любая сверточная сеть имеет заранее запрограммированную структуру, в которой заложено, что одни и те же ядра (свертки) применяются к разным позициям изображения. За счет этого достигается значительное сокращение количества весов.
Можно взглянуть на это свойство сверточных сетей и с другой стороны, как предлагает AlexeyR (читать тут). Если коротко, то задача обобщения неразрывно связана с задачей преобразования входной информации в контекст, в котором она чаще встречается или лучше описывается. Вооружившись этой концепцией (или вдохновившись) попробуем решить эту, кажется простую, задачу распознавания текста на изображении с имеющейся у нас разметкой (нет позиции знаков, есть лишь их перечень).
Соорудим маленькую контекстно-зависимую область из 36 миниколонок (подробнее):
На картинке изображены только 10 преобразований. Вот как должны выглядеть отклики на каждый из контекстов в приведенной выше картинке
Тут нужно отметить, что использовалось далеко не самое эффективное кодирование внутри миниколонок, но при имеющихся 22 понятиях, это не большая проблема.
Сверточные сети задуманы так удачно, что эти контекстные преобразования автоматически получаются на выходе любого сверточного слоя, а значит нет смысла смещать входные изображения, достаточно взять выход любого сверточного слоя, совершить несколько преобразований, уже реализованных слоями в Caffe, да запустить обучение SGD.
И в результате обучения получим “срез” для 36 миниколонок:
Выделим локальные максимумы и сообщим на выход сочетания: что узнали и в каком контексте. А затем соберем все по порядку слева-направо: A902YT190
Эту задачу удалось решить с помощью CAFFE и архитектуры сверточной сети. Но если бы пришлось рассматривать более сложные и неочевидные преобразования (масштаб, повороты в пространстве, перспективу), то пришлось бы задействовать больше вычислительных ресурсов и создавать куда более серьезные алгоритмы.
Кроме того, пришлось довольно сильно попотеть над регионами, качество которых оставляет желать лучшего. Но это настолько большая история, что не хочется ее включать в эту и так длинную статью.
При этом, стоит отдельно отметить. Если регионов нет, то любые номера с монотонным шрифтом распознаются одной и той же сеткой. Просто достаточно предоставить достаточно большую базу примеров.
Применения
Конечно, самое очевидное — контроль ПДД. Но есть еще несколько применений, которые нам встречались. Нам хотелось сделать достаточно универсальный алгоритм. Поэтому пришлось подумать о том, какие же варианты использования бывают:
1) Контроль ПДД (применение 1)
— Высокое разрешение камер: 3-8MP
— ИК осветитель
— Предсказуемая ориентация и масштаб
— Возможная ручная настройка после монтажа
— До 10-20 номеров в кадре
2) Контроль проезда на КПП (применение 2)
— Камеры низкого разрешения (0.3MP — 1MP)
— ИК осветитель
— Предсказуемый размер и область номера
— Возможная ручная настройка после монтажа
— Только один номер за раз в кадре
3) Фотографии “с рук” (применение 3)
— Камера высокого разрешения
— Нет ИК подсветки
Непредсказуемый размер номера и область его расположения. Оказалось, что последнее применение наиболее затратно по вычислительным ресурсам. В основном из-за того, что масштаб номера плохо предсказуем. Наиболее простое применение — второе. В кадре не больше одного номера. Масштаб номера варьируется в небольших пределах. Первое применение тоже достаточно удачное и находится по вычислительным потребностям посередине. Но со всеми этими ситуациями Jetson TX1 успешно справляется. Только последнее не укладывается в масштаб реального времени, а требует около 1 секунды на расчет в неоптимизированном коде.
Бюджет времени расчета кадра на Jetson TX1
Тесты производительности предварительны, все еще возможна оптимизация, особенно под специфичное применение.
И, естественно, при выполнении того же самого алгоритма на видеокартах уровня 1080/Titan можно получить практически десятикратное увеличение скорости работы. Для третьего применения это уже
100мс на изображение.
Telegram Bot
Плоха та статья на хабре, которая не заканчивается рассказом о написании Telegram бота! Поэтому, конечно, мы сделали одного такого на Jetson TX1, чтобы Вы могли пофотографировать и протестировать алгоритм. Бота зовут Recognitor
Работает сейчас этот бот на демонстрационной плате Jetson TX1:
Jetson TX1 распознает изображения в домашних условиях (обратите внимание на вентилятор — он включается каждый раз, когда приходит новое изображение).
Оказалось, что Telegram Bot — великолепный вспомогательный инструмент при работе с программами компьютерного зрения. Так, например, можно организовать ручную проверку результатов распознавания с его помощью. Telegram API предоставляет отличный набор функций для этого. ZlodeiBaal здесь уже использовал телеграм бота.
Все просто: прикладываете изображение в сообщение (одно! Кажется telegram позволяет отправить несколько, но проанализировано будет только последнее). Возвращается изображение с отмеченными рамками и несколько строк со всеми вероятно-найденными номерами. В каждой строке также указан процент — это условная вероятность того, что номер действительно распознан. Меньше 50% — что-то с номером не то (часть не влезла в кадр или это вовсе не номер).
Если же хотите оставить нам комментарий по конкретной фотографии, то просто напишите его текстом, не прикладывая картинку. Он обязательно сохранится в файле log.txt, который очень вероятно мы прочитаем.
Не забывайте, что сейчас алгоритм запущен в тестовом режиме и ожидаются лишь стандартные рос.гос.номера или желтые номера такси (без транзитов, прицепы и.т.д.).
Обучающая выборка
У нас в распоряжении было около 25000 изображений. Большая часть базы — снимки с телефона со случайным положением и масштабом номера:
Несколько тысяч снимков были получены с контрольно-пропускных пунктов:
Около тысячи снимков — стандартный ракурс для камер регистрации нарушений ПДД.
Большая часть базы была основана на той выборке, которую мы выкладывали в открытый доступ давным давно:
В итоге
Собрали весь стек алгоритмов распознавания автомобильных номеров, основанный на сверточных нейронных сетях, для Jetson TX1 с достаточным быстродействием, чтобы работать с видео в реальном времени.
Надежность распознавания значительно улучшилась относительно предыдущего алгоритма. Конкретные цифры приводить тяжело, т.к. они сильно разнятся в зависимости от условий применения. Но разница неплохо видна невооруженным глазом — Recognitor
Благодаря тому, что все алгоритмы переобучаемы, можно легко расширить применимость решения. Вплоть до изменения объектов распознавания.
iCCTV — бесплатный программный комплекс для распознавания автомобильных номеров и детектирования объектов с IP камер
Введение
Существует много платных программ видеонаблюдения, позволяющих встраивать распознавание автомобильных номеров и детектирование типов различных объектов в системы наблюдения и/или автоматизации управления доступа. Часть из них работает с использованием облачных технологий, предоставляя доступ к IP камере через Интернет, что не всегда возможно по разным причинам. В данной статье мы представим бесплатное решение для ОС Windows, которое работает без использование средств интернет.
Сайт программы: https://icctvvision.com/ или https://intbusoft.com/icctv/.Загрузить программу можно оттуда. Программа работает в версиях Windows 8.1 и 10. Не требует инсталляции и ввода ключей, только распаковать архив и запустить ICCTVManager.exe. Если программа не запустится, то нужно установить компоненты Microsoft из папки vc_redist. Ответы на многие вопросы можно найти в документации к программе в файле ICCTV_Manual.pdf или по ссылке https://icctvvision.com/doc/ICCTV_Manual.pdf. Для обычного пользователя все функции программы предоставлены бесплатно, однако если вы хотите прямо или косвенно распространять iCCTV со своим программным или аппаратным комплексом, то придётся заплатить за лицензию Developer. Ниже представлены разрешения и запрещения для бесплатной версии.
Разрешенное бесплатное использование:
Запрещение бесплатного использования:
Ниже представлен скриншот работы программы:
Системы распознавания номеров на практике
Наверняка каждый сталкивался с историями – «Здравствуйте, мне надо проехать в компанию, которая у вас на территории находится», получая в ответ, что «пропуск не заказан», «нельзя» или и вовсе глухие ворота высотой метра 4. Притом сам въезд как правило охраняется очень разным контингентом – от не совсем трезвого дяди Васи со стаей собак до реальных профи на важных объектах.
Как это может быть?
Как обычно устроен въезд?
На въезде на территорию обычно стоит контрольно-пропускной пункт (КПП). Чаще всего это строение для размещения в нем сотрудника охраны или службы безопасности, плюс разные сочетания противоподкатных препятствий или столбов (боллардов), ворот с автоматическим приводом, «падающих деревьев» (именно так дословно переводится der Schlagbaum с немецкого языка), брелков и пультов для управления этими штуками, считывателей различных идентификаторов.
Вот так выглядит типовой КПП на стандартных объектах (фото с Яндекс.Карт)
Например, тут есть и будка КПП небольших размеров, и ограждающие ширину проезда бетонные блоки, и шлагбаум и даже противоподкатные шипы. В данном случае управление всеми техническими средствами исключительно ручное: брелок на открытие шлагбаума у дежурного в расчет не идет.
Проезд машин на таком КПП чаще всего осуществляется по бумажным спискам. Списки составляются по звонку или, в лучшем случае, по письму от руководителей отделов. Здесь человеческий фактор налицо, а возможность восстановить картину событий даже через день весьма посредственная. Если понадобится провести какое-то расследование, то оно будет основываться исключительно на показаниях людей. Возможно, его ещё можно будет дополнить кадрами из архива системы видеонаблюдения, в котором еще придется выискивать нужную информацию, так как тегов с маркой или номером машины там никто не проставляет в реальном времени. Результат — низкая достоверность отчетной информации и огромные временные затраты на составление прокотола.
Три стадии КПП
Понятно, что первая категория не требует больших денежных вложений. Защита объекта и возможность достоверно восстановить картину событий отсутствуют. «Зарегистрированные» пользователи проезжают, предъявляя выставленный под лобовым стеклом кусок картона или лист бумаги с напечатанным «пропуском», остальные идут к вахтёру и объясняют цель визита, далее их либо пропускают под их честное слово, либо сверяют с бумажным списком.
Пример оснащения въезда автоматическим шлагбаумом
Вторая категория потребует некоторых денежных вложений на приобретение и установку технических средств. Однако по-прежнему уровень защиты является посредственным – человеческий фактор в качестве возможного ложного допуска сыграет свою роль, ведение логов событий отсутствует. Доступ чаще всего осуществляется с помощью радиобрелков. Эта категория хороша лишь тем, что позволяет «зарегистрированным» пользователям (например, сотрудникам компании ) заезжать на территорию с большим комфортом, остальных будут пропускать, как и в случае №1.
Пример КПП 3-й категории
Третья категория КПП с персональными идентификаторами уже обладает «интеллектом». Для начала — появляется возможность вести и сохранять протоколы событий проезда.
Правда, тут тоже есть нюансы: например, если нужно опускать стекло и тянуться картой-пропуском к считывателю, это не очень удобно. Можно использовать считыватели и идентификаторы на базе радиосигнала с хорошим радиусом действия — это добавит комфорт при проезде для зарегистрированных пользователей. Правда, и тут не обойдется без человеческого фактора, так как проезд чужой машины по заявке, даже если она формируется в электронном виде и сохраняется в системе, все равно осуществляется путем нажатия кнопки на пульте управления преграждающего устройства (его тип и исполнение в данном случае не важны). Получается, что данный тип оснащения все равно оставляет русскому изобретательному уму лазейки для получения собственной выгоды.
Когда несколько месяцев назад наши безопасники осознали этот простой и печальный факт, мы начали искать решение, которое можно будет применять и у нас, и на объектах заказчиков.
Решение на практике
Вводная: есть офисный центр, у которого есть два въезда и один выезд. На территории — многоярусная стоянка для автомобилей сотрудников и гостей. Исходно въезд и выезд на территорию оснащены контрольно-пропускным пунктом с системой контроля и управления доступом (СКУД), включающей в себя автоматические шлагбаумы, которые управляются СКУД, а СКУД, в свою очередь, использует уникальные персональные идентификаторы для принятия решения о доступе. Сначала работали с RFID-метками, которые располагались в машинах и выдавались сотрудникам.
Условием для получения RFID-метки служило предоставление информации о машине – марки и госномера. С момента внедрения системы данная информация стала персональной, т.е. начала попадать под действие закона о защите персональных данных (это отдельный вопрос). Задача по проезду гостей решалась через электронную заявку на разовый пропуск с указанием данных о машине. Таким образом, в рассматриваемой системе сохранялась точная информация о проездах сотрудников с привязкой к точке и времени проезда и информация о дате посещения компании гостем на определенной машине.
Со временем сотрудники меняли машины, и лишь самые сознательные сообщали актуальную информацию. RFID-метка легко переносилась в другую машину: в результате начался зарождаться бардак: это привело к потере актуальной информации о стоящей на автостоянке машине. Когда на одном из уровней мы нашли ржавую девятку, то прошерстили базу машин и поняли, что сотрудники научились подолгу хранить неиспользуемые машины на стоянке, пользуясь тем, что привязки автомобиль-водитель нет. Это, конечно, не конец света, но сигнал о проблеме — отсутствии актуальной информации у службы безопасности. Как следствие — невозможность быстро найти владельца машины в случае действительно серьезных инцидентов. Так и возникла задача отслеживания проезда конкретного сотрудника на конкретной машине.
Был вариант оснащения автомобилей различными стационарными метками, которые крепятся на кузове машины, но это оказалось не очень целесообразным при расчётах: если такую машину угоняют или меняют, затраты слишком велики. Плюс пришлось бы получать разрешение каждого сотрудника на прикручивание непонятного предмета к кузову (как правило, в пространстве под бампером).
В итоге решили остановиться на использовании системы видеоаналитики номеров машин. При этом нужно было подключить распознавание к текущей СКУД, чтобы была связка человек-машина. Идеальным решением стало новое голландское решение, которое показывали на выставке MIPS 2012. Что приятно, голландцы сразу разрабатывали свою систему распознавания с учётом особенностей российского рынка и рынка восточной Европы, в частности, с точной подстройкой по особенностям номеров и шрифтов.
В отличие от других решений, интеграция прошла дешевле (примерно в два раза дешевле существующих тогда на рынке вариантов) и намного проще. Дело в том, что железка больше напоминает «чёрный ящик» — по сути, только отдаёт число, уникально соответствующее госномеру автомобиля. Её интерфейс стандартный, поэтому достаточно просто воткнуть новое устройство вместо старого идентификатора радиометок – и вся система после минимальных настроек работает на ура.
Устройство
Штука называется ANPR – Automatic Number Plate Recognition. Состоит из модуля с телекамерой и светодиодной подсветкой со встроенным контроллером, на котором «крутится» вся аналитика по распознаванию номера, и модуля-конвертора для подключения этой системы в систему контроля доступа как внешнего считывателя. Итого у нас всего две коробочки, которые для СКУД являются обычным считывателем, передающим уникальный идентификатор. Идентификатором является госномер машины, который по специальному алгоритму преобразуется в цифровой код, понятный СКУД. Общая схема работы системы — картинка вверху топика.
Система может работать и напрямую с любым исполнительным преграждающим устройством. В этом случае потребуется только модуль ANPR без модуля-конвертора, так как у ANPR есть релейный выход для управления внешними устройствами. Понятно, что при таком подключении теряется важная часть сохранения событий проезда в СКУД, остается только протокол событий на самом устройстве. Одним словом, на любой запрос и любую задачу возможна нужная конфигурация системы без лишних затрат.
Производитель дает четкие инструкции по высоте и дальности установки системы от линии, на которой должно выполняться распознавание. Обоим устройствам необходимо питание с постоянным напряжением 24 В, для конфигурирования модулей и удаленного управления они оснащены портами LAN. На модуле ANPR есть web-интерфейс и встроенный FTP-сервер.
Все параметры настроек понятны и легко изменяются, а через FTP-соединение можно скачать кадры, сделанные при проезде автомобилей. Есть настройки размера, качества картинки. Параметры записи по событиям позволяют хранить кадры без перезаписи в течение месяца или же настроить автоматическое сохранение кадров на внешнем FTP-сервере.
Настройки параметров обработки изображения позволяют ограничить область для распознавания, чтобы исключить попадание сразу двух госномеров, или задать параметры считывания номера для ускорения передачи информации о нем в СКУД.
Вот так выглядит законченная установка системы на выезде с территории
Модуль с телекамерой и подсветкой работает в любых режимах, независимо от времени суток и погодных условий, а для системы распознавания важно получение контрастной картинки. Из этого сразу становятся понятны ответы на возможные вопросы – «А как это работает, если номер грязный?», «А что, если номер испорчен?». Ответ заключается в понимании степени загрязненности или испорченности номера.
Примеры
Ниже – примеры распознаваемых номеров (в том числе с нестандартным размещением, в плохую погоду и т.д.), а также пара картинок с номерами, которые распознать не удается.
Обратите внимание, что в левом верхнем углу кадра размещается информация о распознанном госномере, дате, времени и количестве распознаваний за время перемещения машины в поле зрения телекамеры.
Информация непосредственно на записываемом кадре
А на внутреннюю карту памяти записывается файл с теми же данными, в итоге при необходимости быстро найти данные в архиве по конкретной машине можно просто поискать файл по госномеру. Выглядит имя файла вот так:
2012-08-17_09-21-41-842_CAR_H714MY71-RUS_4
Установка госномера выше, чем у обычных легковых автомобилей. Распознаётся.
А это любитель совсем нештатного места установки. Распознаётся.
Работа системы в дождь. Номер чистый. Распознаётся.
Первая цифра и первая буква значительно размыты. Не распознается!
Один из нескольких погнутых номеров. Распознается с ошибкой: T 954 KP 19RUS.
Резюме
Система себя оправдывает для любых организаций и предприятий, с любым количеством своих и чужих автомобилей, где важно значительно снизить человеческий фактор, повысить актуальность информации о проезжающих автомобилях и всегда иметь возможность выполнить быстрый анализ и получить отчет.
Опыт тестовой эксплуатации в течение месяца позволил значительно поднять уровень актуальности данных об эксплуатируемых автомобилях, так как у сотрудников появился стимул сообщить эти данные, ведь новая система позволяла проезжать быстрее, не отвлекаясь на нажатие кнопки на RFID-метке.
И под занавес, предвосхищая вопросы и предложения по способам обмана системы, хочу напомнить, что эта система предназначена для санкционированного доступа, поэтому с точки зрения безопасности важнее не пропустить автомобиль со «странным» госномером, чем наоборот. Для безнадежно испорченных номеров всегда остается вариант проезда по RFID-метке, однако таких машин совсем мало, и теперь охрана точно знает их владельца в лицо, а машину по характерному номеру. Любители специально проверить граничные условия работоспособности системы распознавания вольны выбирать – спокойно заехать на охраняемую парковку или искать место на улице с известным риском вернуться после работы к поцарапанной или битой машине (такие случаи, увы, уже были).