Определение автомобильных номеров hikvision — hikvision урал. Настройка камеры распознавания номеров автомобилей и открывания шлагбаума Какую камеру ahd искать для чтения номеров


Существует множество систем автоматизации въезда автомобилей на территорию охраняемого объекта. Начиная от банального охранника в будке с кнопкой и заканчивая электронным пропуском или радио брелоком.

Электронная система распознавания автомобильных номеров стоит в этом списке особняком и до недавнего времени особой популярностью не пользовалась.

Причин этому несколько.

Во-первых, высокая стоимость оборудования и сложность настройки. Во-вторых, активное неприятие новшества, включая акты неприкрытого саботажа, самими охранниками, работа которых теперь жестко контролируется, исключая возможность дополнительного заработка.

Однако, есть существенные преимущества, которые предоставляет система распознавания номеров автомобилей:

  • значительное повышение уровня безопасности и контроля автомобильного транспорта на объекте;
  • исключается возможность для третьих лиц проникнуть на охраняемую территорию используя поддельные или похищенные магнитные пропуска или электронные брелоки. (автомобиль тоже можно угнать, но это намного сложнее);
  • автоматическое ведение отчетности о транспортных средствах с возможностью формирования многочисленных отчетов;
  • возможности удаленного доступа позволяют руководству организации контролировать работу служащих;
  • систему распознавания автомобильных номеров можно легко интегрировать в общую СКУД организации.

Возможность въехать на территорию охраняемого объекта, приклеив на номер автомобиля распечатанные на принтере цифры, полностью исключена. Практически все системы автоматического распознания автомобильных номеров контролируют коэффициент светоотражения, которым не обладает бумага. Переклеенный номер просто не будет считываться.

Область применения систем автоматизированного распознавания автомобильных номеров довольно разнообразна. Прежде всего, распознавание номера автомобиля будет полезно на станциях технического обслуживания, АЗС, автомойках, складах, предприятиях, паркингах.

Функции, которые может выполнять такая система автоматического распознавания автомобильных номеров довольно разнообразны:

  • контроль въезда и выезда на контролируемую территорию;
  • ограничение выезда с территории предприятия, к примеру, автостанции, клиента, не совершившего оплату;
  • осуществление контроля загрузки сервисной зоны.

В сочетании с системами контроля доступа идентификация автомобильных номеров дает дополнительные преимущества. Прежде всего, это полный контроль нахождения автомобильного транспорта в погрузочной зоне предприятия. Это дает возможность отследить ввоз сырья или вывоз готовой продукции, проверить эффективность погрузочно-разгрузочных работ и предотвратить хищения.

При этом, проверкой номера автомобиля не только на въезде, но и на выезде исключается возможность вывоза груза по поддельным или ошибочным сопроводительным документам.

Но больше всего преимуществ получает владелец паркинга или автостоянки. Система автоматического распознавания номеров позволит проконтролировать заполняемость территории в реальном времени, что даст возможность принять меры по повышению эффективности.

Совмещение распознавания номеров автомобилей с системой оплат полностью исключит возможность злоупотребления или хищения со стороны наемных работников. А так же полностью исключит возможность ошибок в подсчете времени нахождения транспортного средства на территории автостоянки и даст железное доказательство в спорах с недобросовестными клиентами.

ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ И СОСТАВ ОБОРУДОВАНИЯ

В состав системы для автоматического распознавания номеров, в зависимости от производителя и модели, могут входить несколько устройств и программный комплекс с модулями, выполняющими различные функции аналитики или обслуживающими нетипичные приспособления. К примеру, автомобильные весы, радар для определения скорости и т.п.

Требования к компьютеру на котором будет установлена программа.

Минимальные требования для разных программ могут существенно отличаться в зависимости от функциональной нагрузки, но в большинстве случаев необходим:

  • процессор, не менее 3 GHz;
  • видеокарта: Intel, ATI с OpenGL или nVidia не менее 512 MВ;
  • оперативная память, не мене 4 GB;
  • HDD диск объемом не менее 4 GB.

Видеорегистратор с функцией RTSP.

Это потоковый протокол, который дает возможность не только просмотра и записи информации, но и использования видео в режиме реального времени. Примером таких регистраторов может служить модель HIKVISION DS-7204HVI-SV.

Камера видеонаблюдения с функцией RTSP.

Такие устройства для распознания номера автомобиля должны иметь разрешение не менее 550 ТВЛ, что обеспечивается матрицей 1/3" 760H. Фокусное расстояние 9-22 мм, что даст возможность идентификации на значительном расстоянии и при довольно высокой скорости, например, Atis AW-CAR40VF или AW-CAR180VF.

Светочувствительность камеры должна быть максимально высокой от 0,001 Люкс, кроме того, устройство необходимо оборудовать ИК подсветкой дающей возможность качественной съемки с расстояния не менее 15-20 м. Обязательно наличие функций:

  • ручной установки выдержки;
  • автоматического баланса белого;
  • компенсации встречной засветки;
  • расширенного динамического диапазона.

Данные камеры будут использоваться исключительно на улице, поэтому обязательно иметь класс защиты корпуса IP 66 с встроенными термоэлементами, позволяющими устройству функционировать при низких температурах не менее -30°С.

Рекомендуется использовать черно-белые камеры, так как они обладают большей чувствительностью и разрешающей способностью, чем цветные. Кроме того, большинство алгоритмов распознания номеров автомобилей преобразуют получаемое от камеры цветное изображение в черно-белое.

Исполнительные устройства и модули управления.

К примеру, модуль «BARBOS» подключаемый к ПК через USB соединение. Данный модуль имеет 4 пятиамперных реле, через которые можно управлять шлагбаумом, воротами, калиткой, освещением, GSM оповещением, различными системами индикации, выведенными в диспетчерскую и т.п.

КАМЕРЫ ДЛЯ РАСПОЗНАВАНИЯ АВТОМОБИЛЬНЫХ НОМЕРОВ

Основным параметром, на который следует обратить внимание, при выборе места установи камеры видеонаблюдения для распознавания автомобильных номеров, является ручная установка выдержи. Существует линейная зависимость между скоростью автомобиля и рекомендуемой выдержкой (временем экспозиции кадра - shutter).

Чем выше скорость автомобиля, тем меньше должно быть время экспозиции, иначе произойдет смазывание кадра - motion blur. Однако максимально допустимая выдержка зависит не только от времени экспозиции, но и от угла установки камеры. Угол установки камеры - это угол между направлением движения автомобиля и оптической осью видеокамеры.

Большинство видеокамер средней ценовой категории способны передать пригодное к распознанию изображение автомобильного номера шириной 80 пикселей при вертикальном угле установки до +30° и горизонтальных углах отклонения +/- 30°. Хорошим показателем считается, если система распознала автомобильный номер при его отклонении от горизонтали (неровности дороги) +/- 10°.

График зависимости времени выдержки от угла установки камеры и скорости движения автомобиля приведен на рисунке.

Программное обеспечение.

ПО – является ключевым элементом системы распознавания автомобильных номеров. Существует множество фирм разработчиков, предлагающих свой продукт потребителю.

Наиболее распространенная бюджетная разработка «НомерОК» .

Она распознает Российские, Украинские, Белорусские и Молдавские номера, фиксирует дату и время въезда выезда автотранспорта и время нахождения на территории объекта. Имеет возможность построения простых отчетов и может интегрироваться в 1С. Программа совместима с большинством видеокамер и видеорегистраторов имеющих функцию RTSP.

Второй по значимости является система распознания автомобильных номеров «Автомаршал» .

Она имеет 2 алгоритма распознания один для скорости до 30 км/час, второй – до 150 км/час. Имеет специально адаптированные модули «Парковка», «Автомойка», «СКУД Gate». Широкие возможности построения аналитических отчетов, управления через WEB клиент и функцию рассылки SMS уведомлений.

Более широкими дополнительными возможностями обладает система идентификация номеров автомобилей «Трафик контроль» научно-производственного объединения «Дискрет».

Эта программа может подключаться к автомобильным весам и привязывать к номеру значения брутто и нетто, а так же формировать сводки, балансы и другие отчетные документы. «Трафик контроль» ведет фотоархив моментов проезда техники через пропускной пункт и имеет широкие возможности аналитического поиска, по номеру автомобиля или камеры, времени и дате.

Система «Авто номер» от компании «ЭЛВИС Нео Тек».

В состав входят модули «Авто-контроль», «Senesys-Avto» и «Авто Номер». Программа имеет значительные возможности интеграции с другими системами видеонаблюдения и СКУД, а так же гибкий генератор отчетов, хорошие возможности ведения архива и поиска по нему.

Несомненно, профессиональные системы распознания автомобильных номеров довольно дорогостоящее удовольствие. А использование адаптированной обычной системы видеонаблюдения и демоверсий специализированного программного обеспечения не столь эффективно, как хотелось бы.

Но применение такого рода видеоаналитики способно вывести бизнес связанный с автомобильным транспортом на качественно новый уровень, как с точки зрения контроля, так и в бизнес анализе.


* * *


© 2014-2020 г.г. Все права защищены.
Материалы сайта имеют ознакомительный характер и не могут использоваться в качестве руководящих и нормативных документов.

Добавлено: 2018-02-28 15:24:21

Современные системы видеонаблюдения – это не только сбор видеопотока, но и широкие возможности видеоаналитики.

Такие функции как подсчёт числа посетителей, распознавание лиц, распознавание и фиксация автомобильных номеров уверенно вышли за пределы интересов и юрисдикции спецслужб на решение ежедневных бизнес-задач.

Остановимся чуть подробнее на одной из востребованных функций видеоанализа – распознавание автомобильных номеров. Иногда система видеонаблюдения интегрируется с системой контроля доступа: камера считывает номер автомобиля, система аналитики сверяет полученное изображение со списком номеров из базы данных и при нахождении совпадения, отправляет подтверждение СКУД на пропуск автомобиля.

Отдельно отметим, что при проектировании системы видеонаблюдения необходимо разделить задачи распознавания автомобильных номеров и обзорную функцию (перемещения техники и пешеходов, расположение камер в зависимости от условий наблюдаемого участка и т.д.). Для камеры, предназначенной для распознавания номеров, существуют ограничения на размещение. Кроме того, требуются специальные настройки. Фокус камеры должен быть направлен строго на участок, предназначенный для проезда автомобилей (в большинстве случаев это 3-4 метра). В связи с этим рекомендуется использовать камеры с фиксированным объективом. Кроме того, они обычно имеют лучшие характеристики по светочувствительности по сравнению с моторизованными объективами.

Камеру с каким разрешением лучше выбрать?

При решении обозначенной задачи по распознаванию автомобильных номеров, высокое разрешение видеокамеры может дать результат хуже по сравнению с расчётным. Это связанно с тем, что у камер с увеличением разрешающей способности ухудшается светочувствительность, что негативно влияет на распознавание номеров в ночное время.

Для расчёта используется формула (w / n) * p:

где w – ширина обзора в зоне фиксации номера (м),

n – размер автомобильного номера (м),

Если примем ширину просматриваемого участка 3 м, среднюю ширину номерного знака 0,52 м, а оптимальный размер изображения (по практике) 200 пикселей, то получим следующий расчёт:

(w/n)*p = (3/0,52)*200 = 1154 пикселя.

Расчет показывает, что нам подойдет камера с разрешением HD (1280 х 720 пикселей).

Камеры для системы распознавания должны иметь определенные характеристики

Следует учесть физический размер матрицы. Чем больше матрица, тем она более светочувствительна. Минимально допустимый размер матрицы, для распознавания номеров 1/3 дюйма. Наиболее хорошо себя проявляют матрицы размером 1/2 дюйма и выше.

Рисунок 1. Сравнение изображений, получаемых в тёмное и светлое время суток с камер, отличающихся размером матрицы

При выборе камеры следует так же учесть параметр светосилы.Он определяется выбором объектива для камеры и указывается в виде F - числа, которое определяется соотношением фокусного расстояния и величины раскрытия диафрагмы.Чем больше светосилы, тем больше света попадет на матрицу камеры и соотношение сигнал / шум соответственно выше. На самом изображении станет меньше цифровых шумов. Для распознавания номеров требуется объектив со светосилой не меньше F / 1,4. Объектив с F / 1,3 будет являться более светосильным.

Отметим, что какие бы технические характеристики не имела камера, при полном отсутствии освещения, результата в виде распознанного номерного знака вы не получите. В связи с этим, изначально следует рассмотреть возможность дополнительного освещения. Абсолютное большинство камер имеет сейчас ИК-подсветку, однако использование встроенной ИК подсветки означает необходимость перевода камеры в чёрно-белый режим. Кроме того, дополнительное тепло, выделяемое при ИК-свечении, может в летнее время стать излишним, привести к перегреву, создавая дополнительные помехи.

Так же обратим внимание на такую характеристику камеры, как количество кадров в секунду. Мы, как производитель, рекомендуем камеру с частотой кадров 25 к/с. Однако на практике, на тех объектах, где машины движутся с низкой скоростью, камеры переводят в режим 12 к/с и ниже, снимая тем самым нагрузку с оборудования, необходимую на обработку массива информации.

Как мы уже упоминали выше, существуют достаточно жёсткие границы размещения видеокамеры, выход за них ведёт к значительному ухудшению результата.

Угол наклона номерного знака не должен превышать 5°относительно оси x в двухмерном варианте изображения.

Для захвата двух полос движения можно разместить камеру следующим образом:

Располагать камеру следует на высоте от 2 до 6 метров. При размещении на объектах, имеющих шлагбаум, необходимо учесть, что сам шлагбаум образует определённую зону отчуждения.

Компания Hikvision пару месяцев назад официально представила прошивку для камер 4-ой серии с возможностью распознавания автомобильных номеров. Данную прошивку можно скачать с официального сайта Hikvision в России , прошивка абсолютно бесплатная и подходит даже к камерам, купленным более 2-х лет назад, единственным минусом на данный момент можно назвать отключение при этом всех смарт функций, кроме распознавания номеров (это обусловлено высокой нагрузкой на процессор камеры). На данный момент, любой владелец камер Hikvision 4-ой серии может протестировать возможность данной прошивки на своих камерах. Встроенная в камеру платформа обнаруживает и распознает автомобильные номера, и отправляет полученную информацию на или для управления доступом.

Для правильного выполнения функции распознавания автомобильных номеров в камере Hikvision 4-ой серии нужно соблюсти ряд параметров:

  • для распознавания критичен угол горизонтали, и он должен быть в пределах 0-7 градусов;
  • номер должен занимать не менее 130 пикселей на изображении;
  • прошивка камеры специализированная 5.3.0_150719. Пока только на английском языке

Что мы получаем через браузе:

В приватных целях удалили картинку номерного знака и один знак из распознанного номера.

Как видно, камера распознает номерной знак, указывает время, регион и фотографии самого номера, если номер по каким-то причинам не распознан, делается скриншот, и его можно распознать в ручном режиме. Для сохранения данных, при потере связи, имеется буфер в камере на 1000 номеров.

Что мы получаем через Smart NVR (в нашем случае, с прошивкой V3.4.0):

Мы получаем набор фотографий с указанием даты, номера камеры и распознанного номера автомобиля. Регистратор собирает и хранит данную информацию. Возможен поиск как по времени, так и по номеру, можно по любой цифре и букве, за любой период времени Всю необходимую информацию можно выгрузить в XLS файле.

А также, можно загрузить обратно файл с указанием номеров из черного и белого списка, и, тем самым, автоматизировать открытие исполнительного механизма.

Последним вариантом получения информации является . На сегодняшний день, именно эта система полным образом поддерживает весь функционал по распознаванию номеров и других интеллектуальных функций камер. В iVMS-5200Pro в интерфейсе «Распознавание номерных знаков» в режиме реального времени справа от видеоряда Smart камеры отображаются 8 последних номерных знаков с указанием времени.

В приватных целях удалили один знак из распознанного номера.

При этом, нажимая на номерной знак, появляется подробная картинка:
Поиск информации: все номера и изображения автомобилей попадают в Базу Данных, где их легко искать по параметрам (можно по любой цифре и букве номера, за любой период ). Для этого открываем интерфейс Запроса Номера и указываем интересующую нас информацию.


Мы тестировали данную систему на 2-х камерах + DS-7616NI-E2 с прошивкой V3.4.0 и программным обеспечением iVMS-5200Pro от Hikvision (не так давно в обновленной версии IVMS-4200 2.3.1.3 данный модуль тоже появился и был протестирован). Процент распознанных номерных знаков составил ~70% , но, в нашем случае, это было обусловлено невозможностью поставить камеру идеально и соблюсти все параметры по углу горизонта к номеру автомобиля.

Из опыта наших коллег из Санкт-Петербурга: «По информации от производителя, процент распознанных номерных знаков составляет 85% на скорости 65 км\ч. На практике — по набережной машины едут иногда 100+, но номера распознаются корректно. Что касается распознавания номера в темное время суток — по информации от производителя, и, исходя из здравого смысла, необходимо ставить ИК прожектор с длиной волны 850 нм. В нашем случае, камера установлена высоко, и прожектор не подходит».

В описанном выше использовали «связку»:

2) Объектив Tamron 5-50

3) Термокожух Hikvision 1313HZ-S

В целом, система работает достойно, распознавание номерного знака происходит непосредственно на камере, нагрузка на ПК клиента минимальная (даже если все камеры будут работать с распознаванием), система может считывать информацию одновременно с 4-х полос.

Экономическая часть данного решения: камеры Hikvision 4-ой серии стоят от 19990 руб. за отдельно нужен термокожух и хороший объектив), и 39990 руб. за если сюда добавить 16-канальный регистратор это дополнительно 16990 руб. Стоимость системы распознавания номеров с одной камерой (вариант за 39990 руб.) на базе видеорегистратора обойдется в 57000 рублей. При использовании 2-3 камер, цена решения за канал будет снижаться и фактически равнятся стоимости самой камеры.

Офицальный дилер Hikvision (Хиквижен) на Урале (С) 2017

Рассмотрим подробнее возможности IP камеры для считывания номеров.

Она может использоваться в целях:

  • автоматизированного открытия шлагбаума при въезде на контролируемую территорию;
  • автоматизированной выписки штрафов при нарушении водителем правил в зоне покрытия камеры с распознаванием автомобильных номеров.
  • для автоматического расчета стоимости парковки, основываясь на данных автомобиля.
  • немедленного информирования об обнаружении нужной машины, путем сравнения её номера с базой данных.

Все эти аналитические процессы выполняются внутренним софтом в автоматическом режиме, либо с настройками и заданными функциями от пользователя, через установленное на сервере программное обеспечение. Начиная работу с IP камерой для распознавания автомобильных номеров, рекомендуется ознакомиться с инструкцией по установке, настройке и эксплуатации прибора. Сетевая камера распознавания номеров может иметь разный форм фактор и тип монтажа. Выбирать следует, основываясь на текущих требованиях и условиях.

Мы предлагаем купить IP камеры для распознавания автомобильных номеров, по цене от 3000 рублей в нашем интернет магазине. На сайте доступна вся необходимая информация об устройстве.

Характеристики IP камеры для распознавания автомобильных номеров

Прежде чем купить IP камеру с функцией распознавания номеров, ознакомьтесь с её техническими характеристиками.

Список технических характеристик:

  • Параметры электропитания.
  • Тип программного обеспечения, удобство управления.
  • Класс защиты IP камеры.
  • Угол обзора.
  • Разрешение.
  • Способ монтажа и подключения.
  • Скорость обработки информации, поиска соответствий.
  • Скорость съёмки, записи.
  • Температурный режим работы камеры.
  • Предельно допустимая влажность воздуха
  • Рейтинг марки производителя на рынке систем контроля и видеонаблюдения, отзывы пользователей.
  • Габариты, вес устройства.
  • Комплектация, наличие нужных для установки креплений, инструкции по эксплуатации.

Камеры, представленные в данном разделе были проверены нашими специалистами на совместимость с программным обеспечением Macroscop "Распознавание автомобильных номеров". В сочетании с данным ПО, наши камеры обеспечат Вам постоянный контроль за охраняемой территорией, поможет в поиске нужной машины, автоматизации ряда процессов.

Выбрав устройство, соответствующее всем требованиям, вы можете быстро оформить заказ на сайте. Мы доставим видеокамеру с распознаванием номеров на нужный объект по Москве в кратчайший срок.

Настало время подробно рассказать, как работает наша реализация алгоритма распознавания номеров: что оказалось удачным решением, что работало весьма скверно. И просто отчитаться перед Хабра-пользователями - ведь вы с помощью Android приложения Recognitor помогли нам набрать приличного размера базу снимков номеров, снятых совершенно непредвзято, без объяснения как снимать, а как нет. А база снимков при разработке алгоритмов распознавания самое важное!

Что получилось с Android приложением Recognitor
Было очень приятно, что пользователи Хабра взялись качать приложение, пробовать его и отправлять нам номера.


Скачиваний программы и оценки

С момента выкладывания приложения на сервер пришло 3800 снимков номеров от мобильного приложения.
А еще больше нас порадовала ссылка http://212.116.121.70:10000/uploadimage - нам за 2 дня отправили около 8 тысяч полноразмерных снимков автомобильных номеров (преимущественно вологодских)! Сервер почти лежал.

Теперь у нас на руках база в 12 000 снимков фотографий - впереди гигантская работа по отладке алгоритмов. Все самое интересное только начинается!

Напомню, что в приложении Android предварительно выделялся номер. В этой статье я не буду подробно останавливаться на этом этапе. В нашем случае - каскадный детектор Хаара . Этот детектор не всегда срабатывает, если номер в кадре сильно повернут. Анализ того, как работает нами обученный каскадный детектор, когда не работает, оставлю на следующие статьи. Это ведь действительно очень интересно. Кажется, что это черный ящик - вот обучили детектор и больше ничего не сделать. На самом деле это не так.

Но все-таки каскадный детектор - неплохой вариант в случае ограниченных вычислительных ресурсов. Если автомобильный номер грязный или рамка плохо видна, то Хаар тоже неплохо себя проявляет относительно других методов.

Распознавание номера

Здесь рассказ про распознавание текста в картинках такого вида:


Общие подходы про распознавании были описаны в первой статье .

Изначально мы ставили перед собой задачу распознавания грязных, частично стертых и здорово искаженных перспективой номеров.
Во-первых, это интересно, а во-вторых, казалось, что тогда чистые будут срабатывать вообще в 100% случаях. Обычно, конечно, так и происходит. Но тут не сложилось. Оказалось, что если по грязным номерам вероятность успеха была 88%, то по чистым, например, 90%. Хотя на деле вероятность распознавания от фотографии на мобильном приложении до успешного ответа, конечно, оказалось еще хуже указанной цифры. Чуть меньше 50% от приходящих изображений (чтобы люди не пытались фотографировать). Т.е. в среднем дважды нужно было сфотографировать номер, чтобы распознать его успешно. Хотя во многом такой низкий процент связан с тем, что многие пытались снимать номера с экрана монитора, а не в реальной обстановке.

Весь алгоритм строился для грязных номеров. Но вот оказалось, что сейчас летом в Москве 9 из 10 номеров идеально чистые. А значит лучше изменить стратегию и сделать два раздельных алгоритма. Если удалось быстро и надежно распознать чистый номер, то этот результат и отправим пользователю, а если не удалось, то тратим еще немного времени процессора и запускаем второй алгоритм для грязных номеров.

Простой алгоритм распознавания номеров, который стоило бы реализовать сразу
Как же распознать хороший и чистый номер? Это совсем не сложно.

Предъявим следующие требования к такому алгоритму:

1) некоторая устойчивость к поворотам (± 10 градусов)
2) устойчивость к незначительному изменению масштаба (20%)
3) отрезание каких-либо границ номера границей кадра или просто плохо выраженные границы не должны рушить все (это принципиально важно, т.к. в случае грязных номеров приходится опираться на границу номера; если номер чистый, то ничего лучше цифр/букв не характеризует номер).

Итак, в чистых и хорошо читаемых номерах все цифры и буквы отделимы друг от друга, а значит можно бинаризовать изображение и морфологическими методами либо выделить связанные области, либо воспользоваться известными функциями выделения контуров.

Бинаризуем кадр

Здесь стоит еще пройтись фильтром средних частот и нормализовать изображение.


На изображении приведен изначально малоконтрастный кадр для наглядности.

Затем бинаризовать по фиксированному порогу (можно порог фиксировать, т. к. изображение было нормализовано).

Гипотезы по повороту кадра

Предположим несколько возможных углов поворотов изображения. Например, +10, 0, -10 градусов:

В дальнейшем метод будет иметь небольшую устойчивость к углу поворота цифр и букв, поэтому выбран такой достаточно большой шаг по углу - 10 градусов.
С каждым кадром в дальнейшем будем работать независимо. Какая гипотеза по повороту даст лучший результат, та и победит.

А затем собрать все связанные области. Тут использовалась стандартная функция findContours из OpenCV. Если связанная область (контур) имеет высоту в пикселях от H1 до H2 а ширина и высота связана отношением от K1 до K2, то оставляем в кадре и отмечаем, что в этой области может быть знак. Почти наверняка на этом этапе останутся лишь цифры и буквы, остальной мусор из кадра уйдет. Возьмем ограничивающие контуры прямоугольники, приведем их к одному масштабу и дальше поработаем с каждой буквой/цифрой отдельно.

Вот какие ограничивающие прямоугольники контуров удовлетворили нашим требованиям:

Буквы/цифры

Качество снимка хорошее, все буквы и цифры отлично разделимы, иначе мы до этого шага не дошли бы.
Масштабируем все знаки к одному размеру, например, 20х30 пикселей. Вот они:

Кстати, OpenCV при выполнении Resize (при приведении к размеру 20х30) бинаризованное изображение превратит в градиентаное, за счет интерполяции. Придется повторить бинаризацию.

И теперь самый простой способ сравнить с известными изображениями знаков - использовать XOR (нормализованная дистанция Хэмминга). Например так:

Distance = 1.0 - |Sample XOR Image|/|Sample|

Если дистанция больше пороговой, то считаем, что мы нашли знак, меньше - выкидываем.

Буква-цифра-цифра-цифра-буква-буква

Да, мы ищем автомобильные знаки РФ именно в таком формате. Тут нужно учесть, что цифра 0 и буква «о» вообще не отличимы друг от друга, цифра 8 и буква «в». Выстроим все знаки слева направо и будем брать по 6 знаков.
Критерий раз - буква-цифра-цифра-цифра-буква-буква (не забываем про 0/о, 8/в)
Критерий два - отклонение нижней границы 6 знаков от линии

Суммарные очки за гипотезу - сумма дистанций Хэмминга всех 6 знаков. Чем больше, тем лучше.

Итак, если суммарные очки меньше порога, то считаем, что мы нашли 6 знаков номера (без региона). Если больше порога, то идем к алгоритму устойчивому к грязным номерам.

Тут еще стоит рассмотреть отдельно буквы «Н» и «М». Для этого нужно сделать отдельный классификатор, например, по гистограмме градиентов.

Регион

Следующие два или три знака над линей, проведенной по низу 6 уже найденных знаков, - регион. Если третья цифра существует, и ее похожесть больше пороговой, то регион состоит из трех цифр. Иначе из двух.

Однако, распознавание региона часто происходит не так гладко, как хотелось бы. Цифры в регионы меньше, могут удачно не разделиться. Поэтому регион лучше узнавать способом более устойчивым к грязи/шума/перекрытию, описанным далее.

Какие-то детали описания алгоритма не слишком подробно раскрыты. Отчасти из-за того, что сейчас сделан лишь макет этого алгоритма и предстоит еще протестировать и отладить его на тех тысячах изображений. Если номер хороший и чистый, то нужно за десятки миллисекунд распознать номер или ответить «не удалось» и перейти к более серьезному алгоритму.

Алгоритм устойчивый к грязным номерам

Понятно, что алгоритм, описанный выше совсем не работает, если знаки на номере слипаются из-за плохого качества изображения (грязи, плохого разрешения, неудачной тени или угла съемки).

Вот примеры номеров, когда первый алгоритм не смог ничего сделать:

Но придется опираться на границы автомобильного номера, а потом уже внутри строго определенной области искать знаки с точно известной ориентацией и масштабом. И главное - никакой бинаризации!

Ищем нижнюю границу номера

Самый простой и самый надежный этап в этом алгоритме. Перебираем несколько гипотез по углу поворота и строим для каждой гипотезы по повороту гистограмму яркости пикселей вдоль горизонтальных линий для нижней половины изображения:

Выберем максимум градиента и так определим угол наклона и по какому уровню отрезать номер снизу. Не забудем улучшить контраст и получим вот такое изображение:

Вообще стоит использовать не только гистограмму яркости, но также и гистограмму дисперсии, гистограмму градиентов, чтобы увеличить надежность обрезки номера.

Ищем верхнюю границу номера

Тут уже не так очевидно, оказалось, если снимают с рук задний автомобильный номер, то верхняя граница может быть сильно изогнута и частично прикрывать знаки или в тени, как в данном случае:


Резкого перехода яркости в верхней части номера нет, а максимальный градиент и вовсе разрежет номер посередине.

Мы вышли из ситуации не очень тривиально: обучили на каждую цифру и каждую букву каскадный детектор Хаара, нашли все знаки на изображении, так определили верхнюю линию где резать:

Казалось бы, что тут и стоит остановиться - мы же нашли уже цифры и буквы! Но на деле, конечно, детектор Хаара может ошибаться, а у нас тут 7-8 знаков. Хороший пример цифры 4. Если верхняя граница номера сливается с цифрой 4, то совсем не сложно увидеть цифру 7. Что кстати и произошло в данном примере. Но с другой стороны, несмотря на ошибку в детектировании, верхняя граница найденных прямоугольников действительно совпадает с верхней границей автомобильного номера.

Найти боковые границы номера

Тоже ничего хитрого - абсолютно также, как и нижнюю. Единственное отличие, что часто яркость градиента первого или последнего знака в номере может превышать яркость градиента вертикальной границы номера, поэтому выбирается не максимум, а первый градиент, превышающий порог. Аналогично с нижней границей необходимо перебрать несколько гипотез по наклону, т. к. из-за перспективы перпендикулярность вертикальной и горизонтальной границы совсем не гарантирована.

Итак, вот хорошо обрезанный номер:


да! особенно приятно вставить кадр с отвратительным номером, который был успешно распознан.

Печалит лишь одно - к этому этапу от 5% до 15% номеров могут отрезаться неправильно. Например, так:

(кстати это кто-то нам отправил желтый номер такси, насколько я понял - формат не штатный)

Все это нужно было, чтобы все это делалось лишь для оптимизации вычислений, т. к. перебрать все возможные положение, масштабы и наклоны знаков при их поиске - очень затратно вычислительно.

Разделить строку на знаки

К сожалению, из-за перспективы и не стандартной ширины всех знаком, приходится как-то выделять символы в уже обрезанном номере. Тут снова выручит гистограмма по яркости, но уже вдоль оси X:

Единственное, что в дальнейшем стоит исследовать две гипотезы: символы начинаются сразу или один максимум гистограммы стоит пропустить. Это связано с тем, что на некоторых номерах отверстие под винт или головка винта автомобильного номера могут различаться, как отдельный знак, а могут быть и вовсе незаметны.

Распознавание символов

Изображение до сих пор не бинаризовано, будем использовать всю информацию, что есть.

Здесь печатные символы, значит подойдет взвешенная ковариация для сравнения изображений с примером:

Образцы для сравнения и веса при ковариации:

Конечно, нельзя просто сравнить область, выделенную с помощью горизонтальной гистограммы, с образцами. Приходится делать несколько гипотез по смещению и по масштабу.
Количество гипотез по положению по оси X = 4
Количество гипотез по положению по оси Y = 4
Количество гипотез по масштабу = 3

Таким образом, для каждой области при сравнении с одним знаком необходимо рассчитать 4х4х3 ковариации.

Первым делом найдем 3 большие цифры. Это 3 х 10 х 4 х 4 х 3 = 1440 сравнений.

Затем слева одну букву и справа еще две. Букв для сравнения 12. Тогда количество сравнений 3x12x4x4x3 = 1728

Когда у нас есть 6 символов, то все справа от них - регион.

В регионе могут быть 2 цифры или 3 цифры - это нужно учесть. Разбивать регион гистограммным способом уже бессмысленно из-за того, что качество изображения может быть слишком низкое. Поэтому просто поочередно находим цифры слева направо. Начинаем с левого верхнего угла, необходимо несколько гипотез по оси X, оси Y и масштабу. Находим наилучшее совпадение. Смещаемся на заданную величину вправо, снова ищем. Третий символ будем искать слева от первого и справа от второго, если мера похожести третьего символа больше пороговой, то нам повезло - номер региона состоит из трех цифр.

Выводы
Практика применения алгоритма (второго описанного в статье) в очередной раз подтвердила прописную истину при решении задач распознавания: нужна действительно презентативная база при создании алгоритмов. Мы нацеливались на грязные и потертые номера, т.к. тестовая база снималась зимой. И действительно часто довольно плохие номера удавалось узнавать, но чистых номеров в обучающей выборке почти не было.

Вскрылась и другая сторона медали: мало что так раздражает пользователя, как ситуация, когда автоматическая система не решает совсем примитивную задачу. «Ну что тут может не читаться?!» А то, что автоматическая система не смогла узнать грязный или потертый номера, - это ожидаемо.

Откровенно говоря, это наш первый опыт разработки системы распознавания для массового потребителя. И о таких «мелочах», как о пользователях, стоит учиться думать. Сейчас к нам присоединился специалист, разработавший аналогичную «Recognitor» программу под iOs. В UI у пользователя появилась возможность увидеть, что сейчас отправляется на сервер, выбрать какой из выделенных Хааром номеров нужный, есть возможность выделить необходимую область в уже «застывшем» кадре. И пользоваться этим уже удобнее. Автоматическое распознавание становится не дурацкой функцией, без которой нельзя ничего сделать, а просто помощником.

Продумывать систему, в которой автоматическое распознавание изображения будет гармонично и удобно пользователю, - оказалось задачей ничуть не проще, чем создавать эти алгоритмы распознавания.

И, конечно, надеюсь, что статья будет полезна.



Статьи по теме