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

Распознавание печатных символов

Recommended Posts

Требуется готовая реализация с открытыми исходниками и обученной базой. Что-нибудь шрифтонезависимое. Исходные данные - вырезанные изображения символов (латиница + цифры) в хорошем качестве и достаточном разрешении. Можно (но не обязательно) и более сложный вариант - распознавание текста на странице.

Хотелось бы получить аналог такого: Neural Network for Recognition of Handwritten Digits

Есть на примете у кого-нибудь?

P.S. Самому вырезать символы и тренировать нейронку не хватает времени.

PP.S. Нейросети не обязательны. Необходимо любое готовое распознавание.

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


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

По готовым распознавалкам наткнулся на вот эту:ANNOCR.RAR

Вряд ли что то серьезное.

Из более менее серьезных открытых OCR знаю две:

http://code.google.com/p/ocropus/

http://code.google.com/p/tesseract-ocr/

Базы рукописных аннотированных данных:

http://www.iam.unibe.ch/fki/databases/iam-handwriting-database

http://ai.stanford.edu/~btaskar/ocr/

http://www.gavo.t.u-tokyo.ac.jp/~qiao/database.html

Тут еще кое что:

http://www.codeproject.com/KB/recipes/handwriting-kda.aspx

  • Like 1

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


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

О, спасибо за ссылки. Самым подходящим выглядит tesseract. Скомпилированная программа с базой символов распознаёт мой текст очень хорошо.

И скомпилировать удалось. Похоже, то что надо.

А есть личные впечатления от использования какой-нибудь библиотеки?

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


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

Личных впечатлений, пока нет. Собирался использовать OCR в одном из проектов, но потом проект завял а инфы немного осталось.

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


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

что если объекты разных масштабов? их придется нормировать каким то образом?

что если несколько объектов накладываются? применим ли метод нейронных сетей в таком случае?

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


Ссылка на сообщение
Поделиться на других сайтах
что если объекты разных масштабов? их придется нормировать каким то образом?

Я нормировал (пропорциональный scaling).

что если несколько объектов накладываются? применим ли метод нейронных сетей в таком случае?

Вот тут не подскажу.

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


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

http://yann.lecun.com/exdb/mnist/

довольно большая база данных+ результаты работы алгоритмов.

Convolutional net, cross-entropy [elastic distortions] -0.4 победили сверточные сети.(причем никакой предобработки, как я понял)

large conv. net, unsup pretraining [elastic distortions] -0.39 -что то не очень понятное, но даже лучше)

Я нормировал (пропорциональный scaling).

что значит пропорциональный скейлинг? а поворот учитывался?

и вообще не очень понятно зачем нейронные сети, если можно сказать, что у нас будет входов бинарных входов nxn и мы можем просто посчитать сколько совпало этих входов с шаблоном, или это я рассмотрел самый простой случай, а сеть умеет что то еще, например интерполировать?

p.s. я наверно говорил про linear classifier (1-layer NN).

надо бы почитать теорию.

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


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

У меня были символы (только цифры) без поворота. И с кучей шума: различная освещённость, затёрты, замазаны, написаны зачастую различными шрифтами (краской), на облупившейся поверхности и т.п. Свёрточные нейросети (ссылка в первом сообщении) в таких условиях отрабатывали довольно хорошо.

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

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


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

Еще библиотека с открытым кодом попалась: http://www.gnu.org/s/ocrad/ocrad.html

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


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

http://www.cs.toronto.edu/~dmac/ShapeMatcher/index.html

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

есть проблемы

Do shock graphs represent shape holes?

No. Holes within a shape are filled in. Two shapes with different number/kind of holes would look identical to the matcher.

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

вроде говорят сверточные сети лучше всего работают.

http://www.codeproject.com/KB/library/NeuralNetRecognition.aspx#Results

тоже самое только на куде

http://www.codeproject.com/KB/graphics/GPUNN.aspx

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

и еще кроме MNIST может есть какие то базы букв или шейпов с ответами?

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


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

Добрый день!

Я занимаюсь анализом и распознаванием клеток крови.

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

Уважаемый Smorodov, а не встречался ли вам на просторах сети открытых исходников нейронной сети обученной или готовой к обучению для распознавания различных биологических объектов (клеток)? Желательно написанную на С++

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


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

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

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


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

Если хотите нейронку, то скорее всего подойдет FANN, но как сказал mrgloom, тут можно использовать любой классификатор.

ЗЫ: SVM с линейным ядром, думается, будет работать хорошо.

Можно заготовку взять отсюда http://www.compvision.ru/forum/index.php?showtopic=861

только там

params.kernel_type = CvSVM::POLY;

лучше поменять на

params.kernel_type = CvSVM::LINEAR;

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


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

Если хотите нейронку, то скорее всего подойдет FANN, но как сказал mrgloom, тут можно использовать любой классификатор.

За SVM спасибо интересная идея.

Хотелось просто с нейронкой разобраться, я как-то начитался про нее особенно про обратное распространением ошибки, вот и хотел попробовать.

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


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

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

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

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

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

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

Войти

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

Войти сейчас


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

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

×