Comments 29
Отличный материал! Спасибо за статью!
Про алгоритмы бы еще, как в предыдущих постах.
Про алгоритмы бы еще, как в предыдущих постах.
Ну можно же вместо HTTP сервера на коленке использовать WCF-сервис c WebHttpBinding (и пускать всё в self hosted режиме). Раз уж решили .NET использовать.
Что-то вдруг вспомнилось
UFO just landed and posted this here
Авторы описанного инструмента про этот баг помнят, таблицу после аплоада не дропнуло. Выдало
O701AH 45 67% T066MM 02 62%
А почему бы не выложить алгоритм работы распознавания? Или это не Ваш алгоритм? Зачем городить огород с сервером распознавания или в дальнейшем это будет коммерческий проект?
Был интересный нюанс насчёт преобразования Хафа, но в первом посте на него (пока?) не ответили… Насчёт сервера: судя по всему, не опенсорс :(
В следующей статье опишу алгоритмы которые использовались. Открывать полностью/частично/не открывать — решаем прямо сейчас. Открыть все — казалось бы хорошо для других. Но все-равно без отладки и поддержки это бессмысленно с коммерческой точки зрения. Прикладник лучше свои подходы реализует, чем будет адаптировать чужое.
Для всех некоммерческих, кто к нам обращается, мы отдаем доступ свободный. Адаптировать на мобильное устройство не выйдет — там другие алгоритмы нужны. Но и с таким вопросом никто не обращался пока.
А главное, что беспокоит в такой ситуации: эти исходники всплывут в десятках курсовых (если не дипломных) работ. А это очень печально на самом деле, когда студент просто тащит что-то готовое, не напрягаясь. Причем совершенно не надуманная история — делали обзор по биометрии на сайте когда-то, то его посещаемость в течении двух лет активировалась до сотен в день только перед сессией.
а что с хафом не ответили? Фактически хаф используется для поиска нижней и боковых границ, верхняя часто размыта и вообще является частью багажника, т.к. снимают номер сверху.
Для всех некоммерческих, кто к нам обращается, мы отдаем доступ свободный. Адаптировать на мобильное устройство не выйдет — там другие алгоритмы нужны. Но и с таким вопросом никто не обращался пока.
А главное, что беспокоит в такой ситуации: эти исходники всплывут в десятках курсовых (если не дипломных) работ. А это очень печально на самом деле, когда студент просто тащит что-то готовое, не напрягаясь. Причем совершенно не надуманная история — делали обзор по биометрии на сайте когда-то, то его посещаемость в течении двух лет активировалась до сотен в день только перед сессией.
а что с хафом не ответили? Фактически хаф используется для поиска нижней и боковых границ, верхняя часто размыта и вообще является частью багажника, т.к. снимают номер сверху.
п.с. не правильно утверждать, что посещаемость сайта свидетельствует про то, что его активно ctrl-c-ctrl-v, но в большинстве случаев открытые такие «точечные» алгоритмы распознавания изображений всплывают в студенческих работах. Но был бы рад ошибаться.
Для всех некоммерческих, кто к нам обращается, мы отдаем доступ свободный. Адаптировать на мобильное устройство не выйдет — там другие алгоритмы нужны. Но и с таким вопросом никто не обращался пока.
Я к вам обращался еще 6 мая, писал сообщение с идеей разработки свободной и бесплатной кроссплатформенно библиотеки распознавания (вообще это даже не идея, я пишу такую библиотеку, пока дело продвигается туго, в плане как раз алгоритмов распознавания номеров). Вы сказали, что исходники алгоритма закрыты и заказчик не планирует их открыть. Сейчас пишите, что для некоммерческих даете доступ, нестыковка получается.
прошу прощения, не точно сформулировал. «Даем доступ к серверу», ну т.е. пользуйтесь пожалуйста, мы учимся лучше работать, вам сервис распознавания. Эта статья как раз про доступ к серверу.
«Открывать полностью/частично/не открывать — решаем прямо сейчас». Вы понимаете, что если я Вам писал в личном сообщении, что существует заказчик именно первых исходников, то под этой формулировкой «решаем прямо сейчас» может скрываться ряд мероприятий (даже если все писать с нуля, то согласовывать в каком-то виде с заказчиком надо), которые не всегда хочется публично на весь хабр обсуждать.
«Открывать полностью/частично/не открывать — решаем прямо сейчас». Вы понимаете, что если я Вам писал в личном сообщении, что существует заказчик именно первых исходников, то под этой формулировкой «решаем прямо сейчас» может скрываться ряд мероприятий (даже если все писать с нуля, то согласовывать в каком-то виде с заказчиком надо), которые не всегда хочется публично на весь хабр обсуждать.
кстати, а чем OpenCV не такая кроссплатформенная библиотека распознавания? Они на многих платформах присутствуют. Качество распознавания не всегда лучшее? Ну так это очевидно проблема всех библиотек общего назначения. Все всегда зависит от условий съемки и предмета съемки. И когда встает задача прикладную систему сделать под конкретные весьма задачи, то библиотеку распознавания приходится откладывать и смотреть, а чего тут собственно специфичного.
OpenCV предоставляет готовые алгоритмя по обработке изображения, но не дает готовых алгоритмов распознавания дорожных знаков, номеров автомобилей, лиц, оптич. распознавание текста методом контурного анализа и т.д.
Библиотека которую я пишу представляет набор процедур и функций, на вход которым дается изображение + набор параметров, а на выходе готовый результат. Конечно в своей библиотеки я использую массу сторонних, включая opencv.
Разработчику не нужно придумавать сам алгоритм, он уже есть в библиотеке. Вот в этом и отличие.
Например сейчас есть готовый набор простых процедур и функций для OCR, оптич. распознавания текста с использованием Tesseract-OCR, то есть на входе указываю карнитку (jpg, gif, tiff, png) + язык распознавания, на выходе получаем готовый распознанный текст, если нужны доп. продвинутые функции, например массив из позиций всех слов в тексте, или строк или отдельных букв, то пожалуйста, есть и такие фунции. Так же я написал VCL компонент для Delphi и Lazarus для использования функций OCR моей библиотеки.
Библиотека которую я пишу представляет набор процедур и функций, на вход которым дается изображение + набор параметров, а на выходе готовый результат. Конечно в своей библиотеки я использую массу сторонних, включая opencv.
Разработчику не нужно придумавать сам алгоритм, он уже есть в библиотеке. Вот в этом и отличие.
Например сейчас есть готовый набор простых процедур и функций для OCR, оптич. распознавания текста с использованием Tesseract-OCR, то есть на входе указываю карнитку (jpg, gif, tiff, png) + язык распознавания, на выходе получаем готовый распознанный текст, если нужны доп. продвинутые функции, например массив из позиций всех слов в тексте, или строк или отдельных букв, то пожалуйста, есть и такие фунции. Так же я написал VCL компонент для Delphi и Lazarus для использования функций OCR моей библиотеки.
Здравствуйте. Мне бы очень хотелось узнать (отнюдь не для курсовой) об алгоритме, основанного на поиске градиента в пространтстве Хафа (или о вашем понимании, что он из себя представляет). Для себя. Можно ли это считать «некоммерческой» целью, не знаю, но думаю, да. В комментарии я привел ссылки о результатх поиска, но имхо это все не то. Поэтому хотелось бы, чтобы вы это рассказали, если можете.
Огород с сервером нужно городить:
логика подсказывает, что еще довольно долго искуственный мозг в кармане за 100у.е. никому не носить, а значит архитектура с сервером потенциально выигрышна для любых алгоритмов, которые не работают full-time. Наше приложение скачали >1000 раз и позапускали его, мучают сервер. Но он даже и на 10% времени не занят. Просто вопрос эффективности.
По-этому коммерческое направление тут может быть — это КПП с простенькими IP камерами, вся аналитика на спец. сервере.
И еще нам было очень важно собрать принимаемые номера в одном месте на сервере, у нас. Т.к. нам же и оптимизировать развивать алгоритм. Просто сделать какое-то распознавание и не улучшаться его… зачем? А как еще наладить логистику получения номеров у нас на сервер, кроме как сделать этот сервер обязательным для распознавания? Попросить всех отправлять нам номера? ))) ну порядка на 2 у нас бы меньше приходило.
логика подсказывает, что еще довольно долго искуственный мозг в кармане за 100у.е. никому не носить, а значит архитектура с сервером потенциально выигрышна для любых алгоритмов, которые не работают full-time. Наше приложение скачали >1000 раз и позапускали его, мучают сервер. Но он даже и на 10% времени не занят. Просто вопрос эффективности.
По-этому коммерческое направление тут может быть — это КПП с простенькими IP камерами, вся аналитика на спец. сервере.
И еще нам было очень важно собрать принимаемые номера в одном месте на сервере, у нас. Т.к. нам же и оптимизировать развивать алгоритм. Просто сделать какое-то распознавание и не улучшаться его… зачем? А как еще наладить логистику получения номеров у нас на сервер, кроме как сделать этот сервер обязательным для распознавания? Попросить всех отправлять нам номера? ))) ну порядка на 2 у нас бы меньше приходило.
Это объяснялось подробно в прошлой статье, а вам, помниться, Вася ещё и отвечал на эту тему. Проект — частично наш. Полностью коды опубликовать мы пока права не имеем. Но сделать всё чтобы любой октрытый проект пользовался «облаком» распознавания — можем. И, поверьте, это нужно многим. После моей прошлой статьи к нам обратилось несколько владельцев сайтов, позволяющих отправлять заявления в ГИБДД и.т.д. которые хотят к себе это подключить.
Почему? Потому что у нас есть неиспользуемая библиотека и мы можем это сделать. Как мне кажется если можно принести пользу- её нужно принести. Даже если открыто в OpenSource не всё.
Почему? Потому что у нас есть неиспользуемая библиотека и мы можем это сделать. Как мне кажется если можно принести пользу- её нужно принести. Даже если открыто в OpenSource не всё.
На SGSIII с CyanogenMod приложение play.google.com/store/apps/details?id=org.opencv.samples.tutorial334565 ничего не показывает, черный экран, потом вылетает с ошибкой.
Часто вижу в автомобилях два устройства, которые бы неплохо могли совместно помочь водителям: регистратор (читай — камера), и мультимедийная голова, не родная для автомобиля — из тех, что и интернет «умеют», и навигаторы ставь какие хочешь. Такие девайсы обычно имеют либо WinCE, либо Android в качестве ОСи, и на них можно запустить свой софт.
Так вот, случись камере в процессе движения видеть дорогу, и передавать картинку в «голову» с нужным софтом (картинка — это автомобили на полосах, сами полосы и знаки вокруг), то, при должном распознавании, можно и запоминать номера тех авто, что ехали рядом в потоке (вплоть до того, что на случай аварии держать список возможных свидетелей), и принимать решение, какие знаки и разметка сейчас действует и водителю подсказывать режим движения (более актуально не в пробке, а на полупустой дороге), и даже упреждать слишком сильное приближение к впереди находящему автомобилю.
Мечты-мечты, точнее, идеи-идеи, но было бы здорово, если бы такое реализовали. В некоторых машинах распознавание знаков и полос уже есть (Opel Mokka с системой «Фронтальная камера с системой распознавания дорожных знаков» — там камера прямо глазом заметна, нефиговая такая штука приклеена к лобовому стеклу), но, подозреваю, точность распознавания в российских условиях там… не 100%-я, наверняка )
А вот распознавать ли знаки на сервере, или локально — вопрос интересный. Ведь знаки меняются редко, центральная база всех знаков, проверенных людьми, была бы в тему, наверное? Зато эта база лимитов скорости и прочих указаний водителям была бы куда актуальнее тех, что идут с картами в навигаторах.
Так вот, случись камере в процессе движения видеть дорогу, и передавать картинку в «голову» с нужным софтом (картинка — это автомобили на полосах, сами полосы и знаки вокруг), то, при должном распознавании, можно и запоминать номера тех авто, что ехали рядом в потоке (вплоть до того, что на случай аварии держать список возможных свидетелей), и принимать решение, какие знаки и разметка сейчас действует и водителю подсказывать режим движения (более актуально не в пробке, а на полупустой дороге), и даже упреждать слишком сильное приближение к впереди находящему автомобилю.
Мечты-мечты, точнее, идеи-идеи, но было бы здорово, если бы такое реализовали. В некоторых машинах распознавание знаков и полос уже есть (Opel Mokka с системой «Фронтальная камера с системой распознавания дорожных знаков» — там камера прямо глазом заметна, нефиговая такая штука приклеена к лобовому стеклу), но, подозреваю, точность распознавания в российских условиях там… не 100%-я, наверняка )
А вот распознавать ли знаки на сервере, или локально — вопрос интересный. Ведь знаки меняются редко, центральная база всех знаков, проверенных людьми, была бы в тему, наверное? Зато эта база лимитов скорости и прочих указаний водителям была бы куда актуальнее тех, что идут с картами в навигаторах.
Супер, спасибо за наводку! Кажется, единственный аргумент повестить Android в роли регистратора :)
Правда, пользоваться не особо удобно, похоже: регистратор висит так, чтобы не мешать зрению водителя, а индикатор знаков — он должен быть на виду. Ну а телефон в роли регистратора + оповещателя — недорого, но чуждо логике интегрированной инфосистемы машины.
Так что было бы супер иметь аппаратное решение, а лучше подружить бы мелкую камеру, «голову» (иные «головы» могут и регистраторами работать, если в них камеру воткнуть), и толковый софт — милое бы дело было!
Альтернатива, так сказать, Opel Eye и иже с ним (хотя ни одного более подобного решения от производителя авто не знаю).
Правда, пользоваться не особо удобно, похоже: регистратор висит так, чтобы не мешать зрению водителя, а индикатор знаков — он должен быть на виду. Ну а телефон в роли регистратора + оповещателя — недорого, но чуждо логике интегрированной инфосистемы машины.
Так что было бы супер иметь аппаратное решение, а лучше подружить бы мелкую камеру, «голову» (иные «головы» могут и регистраторами работать, если в них камеру воткнуть), и толковый софт — милое бы дело было!
Альтернатива, так сказать, Opel Eye и иже с ним (хотя ни одного более подобного решения от производителя авто не знаю).
Да, по поводу распознавания из видео на лету нас уже активно спрашивали:)
В принципе это очень перспективное применение. Но его нужно поддерживать какой-нибудь крупной фирме или большому коллективу энтузиастов с огромной пачкой серверов. Этим направлением очень интересуются люди, связанные с направлением автоматически управляемых автомобилей. Тем очень полезна была бы функция «знать кто перед тобой едет».
Распознавание знаков в чём то проще, в чём то сложнее. Знаки достаточно универсальны и обычно грязью не замазаны. Но там нужно достаточно мощную логику строить. Кстати, мне перспективнее кажется, когда распознаётся набор знаков тем же Яндыксом, а потом Яндыкс.Навигатор говорит знаки, которые расположены в текущей области. Но там, конечно, требуется ручная работа для поддержания знаковой системы.
В принципе это очень перспективное применение. Но его нужно поддерживать какой-нибудь крупной фирме или большому коллективу энтузиастов с огромной пачкой серверов. Этим направлением очень интересуются люди, связанные с направлением автоматически управляемых автомобилей. Тем очень полезна была бы функция «знать кто перед тобой едет».
Распознавание знаков в чём то проще, в чём то сложнее. Знаки достаточно универсальны и обычно грязью не замазаны. Но там нужно достаточно мощную логику строить. Кстати, мне перспективнее кажется, когда распознаётся набор знаков тем же Яндыксом, а потом Яндыкс.Навигатор говорит знаки, которые расположены в текущей области. Но там, конечно, требуется ручная работа для поддержания знаковой системы.
del
Сервер больше не работает?
Тема еще жива?
Sign up to leave a comment.
Распознавание номеров: от А до 9. Часть 3