Перейти к содержимому
Compvision.ru
K0rG

Распознавание номерного знака, расп. текста.

Recommended Posts

Сделал коллаж картинок как моя программа распознает в переосвещенной области номерного знака, засветки. Чем могу, помогу в написании проекта.

 

Размытые номера.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Может кто то уже реализовывал такие задачи? 

Вопрос возможности реализации на Delphi XE... возможно ли подклчить нужные бибилиотеки ?

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

Может у кого есть обученная сеть или дата файлы для обучения?

 

p.s.: Возможно кто то захочет помочь в разработке (консультант или разработчик) за вознагрождение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, pasutka сказал:

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

Может кто то уже реализовывал такие задачи? 

Вопрос возможности реализации на Delphi XE... возможно ли подклчить нужные бибилиотеки ?

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

Может у кого есть обученная сеть или дата файлы для обучения?

 

p.s.: Возможно кто то захочет помочь в разработке (консультант или разработчик) за вознагрождение

Там печатные цифры, а не рукописные. Любой движок должен справляться, даже из бесплатных. В конце-концов можно немного дообучить тот же tesseract, чтобы достигать еще большей точности. Я не уверен на счет Delphi, как-то совсем мало проектов (примеров) на нем в области CV, ML, AI. Но что мешает создать библиотеку на том же C#(C++) и вызывать методы из Delphi?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я занимался номерами жд вагонов лет 7 назад. Баз открытых тогда не было, уверен, что и сейчас нет. Надо всё делать самому.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Приветствую всех знатоков по  компьютерному зрению. Я понимаю, что эта тема давно заглохла и уже никому не интересна. Но, к сожалению, раньше, когда тема была актуальной, я не сталкивался с подобными задачами. Коротко о своей проблеме. Есть дачный кооператив. Для ограничения проезда мы собрались и установили 3 автоматических ворот на 3 выезда. Организацию управления ими я сделал по GSM совмещенным с миникомпьютером типа "Малина". Но эта система оказалась не особо удобной. Во-первых, народ путается в телефонах и открывает не те ворота, которые надо. Во-вторых, пропадает GSM связь и вообще не возможно открыть ворота. В-третьих, народ забывает телефоны, которые пробиты в базе, и опять же виноват я. 

Вот я и подумал, что не плохо бы пропускать их по базе регистрационных номеров. В качестве железа планирую использовать дешевые IP-камеры с rtsp и миникомп с Ubuntu-16. Одна проблема - это программное обеспечение. Сильно углубляться в тему и становиться специалистом по распознаванию, как вы понимаете, не имеет смысла. Поэтому нужно какое-то готовое решение. Помогите в этом вопросе, сделайте доброе дело для пенсионера ВС. Сейчас как-то мне стало сложновато угнаться за уровнем программирования. В 80-е на заре персоналки грыз довольно активно, а сейчас серьезно отстаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если говорить о готовом ПО, то есть openalpr с открытыми исходниками. Возможно, она и подойдёт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Про эту библиотеку мне известно. Я ее пробовал. Во-первых, там напрочь отсутствуют русские номера. По обучающей системе, так и не понял,  методику создания русских настроек. Во-вторых, то что инсталлируется с github и то что используется на их сайте в демонстрации - это небо и земля. Меня облачный сервис не устраивает в принципе, поскольку только внутренняя сеть без выхода в интернет. А инсталлированный продукт работает из рук вон плохо. Поэтому я и прошу помощи здесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Думаю, в вашем случае, только платный продукт. Вот, например, http://www.mallenom.ru/demo/avtomarshal/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Боюсь, что совсем без программирования здесь никуда. По факту: есть библиотеки практически для всего, есть базы русских номеров, есть даже обученный каскад Хаара для их поиска. Возможно, что и для распознавания уже есть. Но целостное решение - нигде не видел. А что конкретно требуется? Библиотека, на вход которой видео, а на выходе номера? Или что-то ещё?

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Nuzhny

Спасибо! Нужна именно библиотека на С++, чтобы можно было скомпилировать под Линукс, opencv и доп пакеты, например, leptonica или tesseract-ocr я установить смогу. У меня есть паренек более менее разбирающийся в С++. Он мне часто помогает. Но опыта обработки изображений у него нет. Нужна, как Вы точно подметили,  "Библиотека, на вход которой видео, а на выходе номера"  в текстовом формате, чтобы можно было сравнить с базой номеров, хранящихся во флеш миникомпьютера.  Естественно, для распознавания нужны какие-то клеше для русских номеров.

Король

Вам отдельное огромное спасибо! Я посмотрел вашу статью. Результаты впечатляют. Единственное, что меня смущает, это то, что вряд ли с С# я сделаю исполняемый файл под консольный линукс. А на сам алгоритм я обязательно буду ориентироваться. Если Вы знаете как скомпилировать под Линукс с С#, то посоветуйте, пожалуйста, если такое возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С нейросетью на много лучше вычисляет по клише букв и цифр. Вот статья - https://habr.com/post/143668/ тоже правда на C#. Я это внедрил и получил очень хороший результат. 

С Линуксом правда не работал и не знаю что да как там. Но это пока. В планах у меня есть научиться под Линух программировать. Увы посоветовать не могу. Кстати тот код можно перевести на C++. Я пробовал Tesseract. Номер должен быть ровно в горизонтальном положении а это не всегда находиться правильно, даже в горизонтальном положении. Пробовал по вычислением моментов - результат тоже плохой.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Король

Вам отдельное огромное спасибо! Я посмотрел вашу статью. Результаты впечатляют. Единственное, что меня смущает, это то, что вряд ли с С# я сделаю исполняемый файл под консольный линукс. А на сам алгоритм я обязательно буду ориентироваться. Если Вы знаете как скомпилировать под Линукс с С#, то посоветуйте, пожалуйста, если такое возможно.

Даже, если точнее, то Вопрос звучит так,  возможен ли запуск вашего проекта из под MONO и компиляция под обычный консольный Линукс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Наверное до нейронных сетей нам не добраться, но тем не менее Огромное спасибо за подсказки. Попытаюсь ваш проект запустить на Линуксе в Mono. Это библиотека на Линуксе типа Фремворка в винде. Если не получится, то будем переделывать на С++

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

К сожалению, не просто переделать с С# на С++. Дело в том, что C# использует псевдокод, который понятен только .NET, а С++ - это реальный (машинный) код. Поэтому переделка проекта сводится к написанию совершенно новой программы, а этот процесс требует алгоритма. Получается, что надо сначала с С# восстановить алгоритм, а по нему написать новый проект в С++. Здесь вероятность ошибок многократно возрастает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пo C# OpenCV и linux: принципиальных сложностей там нет, emgu есть в Xamarin версии и спокойно запускается на  Linux, Unix. Если проект написан только с использованием emgu, то ничего переписывать не придется.

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

Под требования vash_sa (unix, русские номера, и железо типа малинки) вообще ничего нет, ни в виде сдк ни  в виде готовых продуктов. 

В OpenSource нормального тоже ничего нет, есть много поделок типа: нашли номер соболем ( хааром, cnn) натравили на него tesseract и получили номер. Точность у них в лучшем случае 80-90%.  Что бы выйти на хоты бы 95%, нужно потратить очень много времени и ресурсов,  соответственно в отрытый доступ никто это не выложит. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати по поводу вагонов. Мой алгоритм справиться с нахождением области цифр. Если камера по прямым углом относительно вагона. Под углом вряд ли найдет.ф

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте а есть уже скомпилированный(готовый) файл распознавалки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 11.11.2016 at 14:51, Король сказал:

Сделал коллаж картинок как моя программа распознает в переосвещенной области номерного знака, засветки. Чем могу, помогу в написании проекта.

 

Размытые номера.jpg

Добрый день! Заинтересовался темой распознавания автомобильных номеров. Пользовался вашей программой показывает на мой взгляд хорошие результаты. Чем отличается ваша бесплатная программа от коммерческого продукта? Сколько времени обрабатывается один кадр (какого разрешения и какой процессор) в коммерческом продукте? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ммм, кажется, что на этом рынке будет сложно конкурировать. У Интела есть очень быстрое бесплатное решение для китайских номеров, которое работает на CPU и будет превосходить те же каскады Хаара практически во всём. И распознавать номер. Плюс к этому они умеют находить не только номер, но и автомобиль, а также его характеристики типа цвета. Дообучить сеть для русских номеров будет плёвым делом, благо номеров в сети достаточно. Надо сделать прямо таки что-то очень сильное.

Ну и уже лет 10 назад на рынке массово появились библиотеки по распознаванию номеров почти у каждого поставщика систем безопасности. Я работал в Ставрополе, поначалу покупали украинское решение по распознаванию (набор dll + аппаратный ключ защиты для каждой копии). Они доучивали свою систему для российских, для казахстанских номеров. Потом сделали свою и отказались от сторонней. То есть рынок, кажется, занят и выйти на него с современными нейросетями довольно просто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, 2expres сказал:

Добрый день! Заинтересовался темой распознавания автомобильных номеров. Пользовался вашей программой показывает на мой взгляд хорошие результаты. Чем отличается ваша бесплатная программа от коммерческого продукта? Сколько времени обрабатывается один кадр (какого разрешения и какой процессор) в коммерческом продукте? 

Добрый день! Время обработки 500 мс и выше. Разрешение изображения 800х600 на Core-i3 х86. Если ты заметил он пробегает по всему файлу, чтобы постоить кривую. Переписывал на C++ эти функции. Обработка кадра существенно снизилась до 250 мс. Коммерческого продукта пока нет. Забраковали меня на работе. Пишу и развиваюсь для себя. Просто у нас на работе пока нет свой программы для видеонаблюдения - не разработали. Пользуемся сторонними, в особенноси "Интеллектом" - уж больно он "гибкий".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, Nuzhny сказал:

кажется, что на этом рынке будет сложно конкурировать.

Для меня распознавание номеров представляет чисто академический интерес для проверки своих алгоритмов. Я применяю свой механизм: 1) сегментация 2) векторизация 3) логический и контурный анализ полученных сегментов в векторном виде.для любого распознавания (без применения нейронных сетей). Я просто хочу сравнить подходы, быстродействие.

 

3 часа назад, Король сказал:

Время обработки 500 мс и выше.

Это в одном потоке или у вас производится распараллеливание на несколько ядер?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

СДК по распознаванию номеров сейчас много. Качество распознавания у них примерно одинаковое и развитие идет больше в сторону улучшения производительности. Года 3-4 назад камеры были 0.5Мп и 25фпс, сейчас уже fhd 40фпс при железе в лучше случае средненький i5.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

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

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×