как распознать номера машины

Как распознать номера машины

Сообщение valeon » 03 окт 2013, 13:27

1. Берем VirtualDUB (желательно последнй он все форматы видео понимает), открываем видео, удаляем не нужное видео, оставляем только кусок где сам инцендент. Далее Файл-сохранить последовательность картинок. выбирете папку куда сохранять. Я сохранял в формате BMP. Отобрал фото где более менее близко машина с не читаемым номером была. Как отрезать не нужное в VirtualDUB выбраете начало ненужного фрагмента нажимаете кнопку HOME на клаве, затем встанте в конец ненужного фрагмента нажмите END. затем DEL. все кусок отрезан.

2. Открываем программку PhotoZoom Pro 5. Загружаете туда первую картинку. Слева в программе выбраете разрешение 500-800, сдвигаете картинку так чтобы в правом окне был виден номер ил очертания его. Затем по порядку применяете Алгоритмы изменения размера. В каждом фильтре есть наборы настроек, их тоже прогоняете. Еще нюанс, иногда получается так что пр применении фильтра в близи номер непонятен но из далека метров с двух от монитора становиться различим. (в моем случае так и получилось). Если с первой не получилось пробуйте следующую. Процесс муторный, и долги в зависимости от ПК, программке хороший процессор нужен.

3. Если картинка четкая но смазанная есть изумительная прога SmartDeblur-2.1_win в ней все понятно. Тоже помогает хорошо.

Еще нюанс чтобы результат был хороший всегда берите оригинальное ВИДЕО без пересжатия.

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

Источник

«Грязь может запутать камеры». Как распознают нечитаемые номера

как распознать номера машины

как распознать номера машины

Аномально теплая зима принесла на российские дороги грязь, лужи и жижу из мокрого снега. Все это налипает на автомобильные номера и накрепко примерзает. Но водители не спешат протирать таблички, надеясь, что камеры фотовидеофиксации в случае нарушения ПДД их просто не увидят. А иногда специально наносят искусственную грязь, чтобы обмануть комплексы фиксации нарушений. Эксперты предупреждают, что в таких случаях инспекторы ГИБДД могут лишить прав.

Если автомобильный номер плотно покрыт грязью или залеплен снегом, его не распознает ни одна камера, уверен руководитель компании «Астралаб» Сергей Ласкин. По его словам, точность работы комплексов зависит от освещенности участка и ракурса, под которым проезжают объекты, но грязь — это главная преграда.

«Грязь иногда дает читаемый рельеф. Но если вы сами, глядя на номер, не можете прочитать цифры и буквы, то и камера этого сделать не сможет, — признался Ласкин. — Особенно если все происходит в темное время суток, а на дорогах много автомобилей — в таких условиях статистика выявления нарушителей обычно падает. Конечно, если госномера лишь немного покрыты грязью, нельзя говорить, что в 100% случаев распознать номер не получится, но чем толще слой грязи, тем ниже процент распознавания».

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

как распознать номера машины

«Грязь может запутать камеры, ведь их «зрение» очень похоже на человеческое, — объяснил Ласкин. — Так, камера видит цифру, создается некий ассоциативный ряд, принимается решение, что цифра похожа на 8, а это на самом деле 0 с комком грязи посередине. Поэтому в наших камерах алгоритм такой: если устройство номер распознало, но вероятность ошибки выше 20%, эти данные просто идут в поток, например, для сбора статистических данных или же для розыскных мероприятий. В центры обработки они просто не попадут: материалы для штрафов формируются только при уверенности на уровне 99%».

Эксперт признается, что проблема езды с грязными номерами стоит остро и пока с помощью камер не получается фиксировать все нарушения. Прогрессивные технологии, которые предлагалось внедрять при создании госномеров, пока себя не оправдали. К примеру, идея устанавливать в номера специальные чипы не прошла дальше стадии обсуждения. По этой причине сотрудники ГИБДД регулярно проводят рейды и требуют у водителей удалять с табличек снег и грязь. По оценке Ласкина, вопрос грязных знаков окончательно решится только тогда, когда камеры заменят радиовизоры, способные считывать госномера.

В свою очередь, представитель компании «Технологии распознавания» (производитель комплексов «Автоураган») Сергей Кусов уверяет, что камеры могут считывать даже загрязненные знаки, хоть и с определенными ограничениями. Но в качестве доказательной базы собранные при помощи искусственного интеллекта данные использовать не получится. Информация не подойдет для оформления штрафов, поскольку камеры иногда, как мозаику, по кусочкам собирают данные о госномере автомобиля на всем пути его следования. Искусственный интеллект на этом основании делает вывод, какой у автомобиля номер, но четких фотографий, на которых виден момент нарушения, сделать не получается.

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

Источник

И ещё раз про распознавание номеров

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

как распознать номера машины

В любых задачах обработки изображений 90% успеха — хорошая база данных. Репрезентативная и большая. Весной мы обещали выложить полную базу изображений того, что нам придёт. Подписка блога заканчивается, поэтому время выполнить обещание (блог может продлят, а может и нет). Наш сервер работал 95% времени, начиная с первого поста. Всё что пришло теперь доступно + мы сделали отдельные базы по вырезанным номерам и нарезанным символам.

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

Сама база

Базы по номерам у нас не размечены (нигде нет файла с правильной расшифровкой). Размечена только база по символам.
База необрезанных фотографий автомобилей (1.4 ГБ). Примерно 9300 кадров.
Размеры будут от пары сотен пикселей до десятка мегапикселей. Выглядят картинки так:

как распознать номера машины

База вырезанных номеров + контрпримеров (260 МБ). Примерно 5000 номеров + 1200 контрпримеров.

Выглядят картинки так:

как распознать номера машины

База нарезанных символов для российских номеров (60 МБ). Примерно 18 тысяч букв, цифр и контрпримеров.
*Маленькое дополнение. Папка «17» — пустая. В ней были буквы «O», но классификаторы не делали различия от неё и нуля, поэтому мы их объединили в папке «0».

Выглядят картинки так:

как распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машиныкак распознать номера машины

Пара слов про базу

База основана на том, что мы собирали сами + на том, что нам присылали + ручное прореживание от плохих кадров. Для буков дана нарезанная база отрицательных примеров (папка за номером 22). Без отрицательной выборки почти невозможна работа реального алгоритма, буквы будут определяться на любом шуме. В отрицательной выборке содержатся куски буков, без этого порезанная пополам восьмёрка может быть принята за тройку. В конце статьи будет пример такого использования такой базы. Отрицательная выборка дана и для вырезанных номеров, если найдутся желающие обучить каскад по ним.

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

Зачем это нужно?

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

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

Дальнейшая жизнь проекта

Сервер с распознаванием номеров мы планирует поддерживать в рабочем состоянии + иногда мы апдейтим алгоритм. Приложение на телефоны, как мы и предполагали, особо не выстрелило. Оно доступно в PlayStore + есть версия под iPhone. Приложения в целом рабочие, но какой-то дальнейшей их поддержки мы делать не будем. Да и особо большой базы не собралось. Код для обоих приложений открыт. Если хотите, можете допиливать самостоятельно.
С другой стороны мы были приятно удивлены, что наш сервер зачастую стали использовать как некий эталон для проверки своих алгоритмов. Раза три нам загоняли на сервер огромные базы. Точно мы не знаем, кто и зачем. Но, приятно. Видно, что люди потратили время, чтобы сравнить свой алгоритм с нашим, пусть даже далёким от идеала.
Отсюда родилась идея: небольшой кусок базы мы оставили себе. Если вдруг кому будет интересно, можем прогнать алгоритм по нашей базе (или дать базу вам), на условиях нераспространения базы и публикации результатов. Результаты мы опубликуем тут и тут, при публикации ставим ссылку на ваш сайт/контакт.
Нераспространение такой тестовой базы нужно чтобы избежать подгонки результатов, как делают при наличии открытых баз (например MNIST).

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

Про каскад

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

Обучение распознавания букв

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

Но всё же, нам хотелось бы показать способ, как можно распознавать номера быстро и просто. Поэтому мы перебрали несколько вариантов простых алгоритмов позволяющих распознать буквы, которые легко обучить (при наличии большой базы) и обучили по базе, которую выложили выше. Наилучшие проценты и наиболее простая работа на наш взгляд у SVM в библиотеке Accord (ML-библиотека проекта AForge). В принципе, всё аналогично делается и в OpenCV, SVM есть и там.

Распознавание реализуется двумя строчками:

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

Пример обученного SVM’a. Процент правильно распознанных символов по независимой от обучающей выборке — 96%.

Источник

Распознавание номеров. Практическое пособие. Часть 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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *