Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распознавание рукописного текста 
:(
    Опции темы
PavelK
Дата 25.10.2005, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Привет всем.

Хочу написать простенький распознователь рукописного текста.

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

Интересно обменятся идеями по поводу построения распознователя.
Добавлено @ 08:38
Я себе это предстовляю так:

Забить в базу шаблоны букв в виде векторов. А затем выделять на картинке обекты, разбивать их на вектора и сравнивать.
PM   Вверх
Alexeis
Дата 25.10.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: нет
Всего: 459



Задача распознования рукописного текста весьма сложная.
Прежде чем приступить к реализации лучше подумать хватит ли сил.
Компания Finereader так и не сумела решить эту задачу на должном уровне


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
PavelK
Дата 25.10.2005, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Я и не собираюсь заниматся этим хотя бы на уровне Finereader. Просто хочу покрутить эту тему и понять основные принципы (а вдруг чего и придумаем).

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

PM   Вверх
z-END
Дата 25.10.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(PavelK @ 25.10.2005, 09:34)
Хочу написать простенький распознователь рукописного текста

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


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
PavelK
Дата 25.10.2005, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Кое-какой опыт по работе с печатным текстом у меня есть. Правда, делалось все это на MatLabe. В общем там больших проблем нет (если экзотические шрифты не использовать).
Добавлено @ 10:14
Вы бы лучше идеи как это сделать подкинули, чем меня отговаривать.
PM   Вверх
Albinos_x
Дата 25.10.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: нет
Всего: 108



посмотри
тут
тут
и тут

может быть поможет


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
PavelK
Дата 25.10.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Спасибо за ссылочки. А как бы мне не только рецензию, а и саму дипломную получить?
PM   Вверх
DragonFire
Дата 25.10.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



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


--------------------
PM MAIL ICQ   Вверх
PavelK
Дата 25.10.2005, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



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

PM   Вверх
DragonFire
Дата 26.10.2005, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Зря ты так сразу. Почитай про нейроновые сетки. Там все просто. Есть у тебя нейрон. Ты подаешь ему на вход сигналы. Допучтим у нас буква 5х5, поэтому сигналов meltn 25: 1 - если черная клетка в букве, 0 - если белая. Нейрон твой жует твои сигналы и выдает ответ "А" это буква или нет, расчитывая это по формуле: <РЕЗУЛЬТАТ>=<сигнал1>*<Вес1>+<сигнал2>*<Вес2>+...+<сигнал25>*<Вес25>;
If <РЕЗУЛЬТАТ> > <Порог> then Буква - А, если нет, то не А.
Все здесь сводится к тому, чтобы расчитать эти <Вес> так, чтобы когда у нас поступали сигналы c буквы "А", то выражение <Результат> было больше порога, обычно он берется 1.5 или 0.5. Такой процесс называется обучением нейрона. Вот и вся задача. Обучаешь 33 нейрона - каждый на распознования своей определенной буквы - вот и Файн-Ридер написал!!! smile
Если что не понятно объяснил - спрашивай. Я не учитель... smile

smile //Offtop:
Прошу модератора разрешить прикрепить рисунок к этому сообщению, а то то что я написал не очень понятно... Плиз... smile

Это сообщение отредактировал(а) DragonFire - 26.10.2005, 06:44


--------------------
PM MAIL ICQ   Вверх
PavelK
Дата 26.10.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Спасибо за объяснение. С нейронными сетями дело иметь тоже приходилось, так что ничего нового ты не написал. Такой метод классно работает с печатным текстом, а что выдаст твой персептрон, если на него подать рукописный? Да и выделять в тексте отдельные буквы как то нужно.

Хотя в целом идея интересная, нужно подумать толком на досуге. Давай обсудим как следует.

PM   Вверх
DragonFire
Дата 26.10.2005, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



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


--------------------
PM MAIL ICQ   Вверх
Guest
Дата 26.10.2005, 17:12 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я и не собирался подбирать картинки. Я собирался входной текст представить в виде векторов. И сравнивать не сами написанные буквы с эталонными картинками, а векторное представление текста с векторным представлением каждой буквы. Причем искать буду не равные вектора, а последовательность векторов направленных приблизительно так же, как и в эталоне.

Тут тоже не лишним был бы рисунок.

Такой подход позволяет сразу исключить проблемы с размером написанных букв.
Да и отдельные буквы перед распознаванием из текста выделять не нужно. Потом сами выделятся.

  Вверх
PavelK
Дата 26.10.2005, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Последнее сообщение было мое. Прошу прошения забыл выполнить "вход".
PM   Вверх
DragonFire
Дата 26.10.2005, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Да возможно это так, но я не представляю как это можно реализовать практически...


--------------------
PM MAIL ICQ   Вверх
PavelK
Дата 26.10.2005, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Да в общем то сама идея простая, вот только писанины многовато.

Можно рассмотреть пример. Пуст есть векторный шаблон буквы "И". Он будет представлять собой 3 вектора (первый направлен вниз, второй - вверх под углом 45 градусов, третий - тоже вниз). Берем входной текст. Преобразовываем его в векторный вид. Идем по тексту и ищем направленный в низ вектор. Если сразу за ним идет вектор направленный вверх под углом близким к углу в 45 градусов, а следующий за ними вектор направлен вниз, то мы нашли искомую букву.

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

PM   Вверх
PavelK
Дата 26.10.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



Самая большая проблема в этом алгоритме - это правильно выполнить преобразование текста в вектора. И в этой области есть где развернутся, хотя в распознавании образов есть (и даже не один) алгоритм как такое сделать.

Я вот все думаю над твоей идеей. Однослойная нейросеть проблему явно не решит. А как насчет более сложных вариантов?
PM   Вверх
alksoft
Дата 26.10.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.10.2005

Репутация: нет
Всего: нет



В принцыпе можно сделать методомо жука.
Долго писать, если нужно стучи в аську - 24 9 9 60
PM MAIL   Вверх
DragonFire
Дата 27.10.2005, 06:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



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


--------------------
PM MAIL ICQ   Вверх
PavelK
Дата 27.10.2005, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2005

Репутация: нет
Всего: нет



А в чем проблема с векторами? Два направленных отрезка. Нужно получить угол между ними. Это еще в школе было.
PM   Вверх
DragonFire
Дата 27.10.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Ну не знаю. Хотя идея мне нравится...


--------------------
PM MAIL ICQ   Вверх
RA
Дата 27.10.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Цитата
Совсем скоро компания ABBYY намерена выпустить инструментарий для разработчиков (SDK) - ABBYY FineReader Engine 8.0 для Windows. В нем содержатся все имеющиеся технологии распознавания, созданные компанией ABBYY к настоящему моменту: распознавание печатных текстов (OCR), текстов, написанных от руки (ICR), меток (OMR), одномерных и двумерных штрих-кодов, обработка PDF-файлов, извлечение данных с форм и неструктурированных документов. Все функции распознавания и сбора данных из документов, форм и PDF-файлов, доступны через единый универсальный API (Application Programming Interface).
 
В новой версии продукта улучшены возможности полнотекстового распознавания документов, впервые появится полный набор функций, рассчитанный для распознавания текста на уровне отдельных полей. ABBYY FineReader Engine 8.0 распознает печатный текст на 189 языках, а поля, заполненные печатными буквами от руки - на 91 языке. Новая версия имеет возможность настройки на необходимую точность за счет влияния на выбор гипотез, сформированных в процессе распознавания.

В новой версии ПО появилась функция диагностики, которая позволяет отследить все вызовы функций ABBYY FineReader Engine и измерить скорость их работы.

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

ABBYY FineReader Engine поставляется в виде набора динамически подключаемых библиотек (DLL). Интерфейс прикладного программирования (API) ABBYY FineReader Engine поддерживает стандарт COM (Component Object Model) и позволяет создавать приложения в средах разработки C/C++, Visual Basic, Visual Studio.Net и любых других, поддерживающих COM-компоненты.

В продажу новая версия ABBYY FineReader Engine 8.0 поступит уже в ноябре. Более подробно ознакомиться со всеми новыми возможностями продукта можно здесь.

Источник: Компьюлента

PM   Вверх
sergejzr
Дата 27.10.2005, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



RAdmin, смысл не в результате, а в пути к нему smile Интересная ведь идея. Вот только я не очень понимаю, почему вектор для Буквы и описан как:
Цитата
Он будет представлять собой 3 вектора (первый направлен вниз, второй - вверх под углом 45 градусов, третий - тоже вниз).

А почему не:

вниз -> вниз под углом 45 -> вниз.

Добавлено @ 22:45
Вообще то можно не вектор, а кривые брать, Релевантны лишь начальная и конечная точка, а факторы колеблятся в пределах n.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
DragonFire
Дата 28.10.2005, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



И вообще почему именно три вектора? Как ты собираешся описывать букву "М" или "Ш" тремя векторами, а с "О", это вообще сложно будет разобратся...


--------------------
PM MAIL ICQ   Вверх
Guest
Дата 28.10.2005, 12:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











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

  Вверх
Guest
Дата 28.10.2005, 12:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемый, RAdmin, подскажите пожайлуста где ты взял статейку о ABBYY FineReader Engine 8.0.
  Вверх
Гость_Silver
Дата 8.11.2005, 14:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Про вектора идея не нова. У нас недавно аспирант защитил кандидатскую по распознованию, алгоритм основан на нечеткой логике(размытой логике) он там с петлями работал (что то вроде векторов smile)) ). Кстати его алгоритм очень хорош по минимизации ошибок по сравнению с западными аналогами, делал он его для КПК и вроде даже толкнул програмку за большие мани. Его автореферат попробуй найти (его зовут В. В. Киселев из Челябинского Государственного Университета)
  Вверх
Guest
Дата 15.1.2006, 01:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да возможно это так, но я не представляю как это можно реализовать практически...
smile smile smile smile smile smile smile smile smile smile smile smile smile smile
  Вверх
sergejzr
Дата 15.1.2006, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



Вообще то темку не зря подняли. Год прошёл, может какие компоненты/алгоритмы появились на распознавание? Что скажете?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
DeadSoul
Дата 15.1.2006, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 1
Всего: 11



Цитата(alexeis1 @ 25.10.2005, 09:43 Найти цитируемый пост)

Компания Finereader так и не сумела решить эту задачу на должном уровне

alexeis1, данная компания называется Abbyy. Finereader - это програмный продукт.


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Y-Vladimir
Дата 15.1.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 16.7.2004
Где: Казань

Репутация: 1
Всего: 6



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

Цитата(sergej.z @ 15.1.2006, 01:11 Найти цитируемый пост)

год прошёл, может какие компоненты/алгоритмы появились на распознавание

Не появилось... Есть много программ по рукопечатному распознаванию (FormReader), а также онлайновому рукописному распознаванию (для КПК скажем) - это задача на много порядков проще и ее успешно решают. Но для оффлайнового распознавния ничего нету.



--------------------
PM MAIL WWW   Вверх
DeadSoul
Дата 15.1.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1217
Регистрация: 25.9.2005
Где: Москва

Репутация: 1
Всего: 11



Цитата(Y-Vladimir @ 15.1.2006, 15:11 Найти цитируемый пост)

Есть много программ по рукопечатному распознаванию (FormReader),

Это аналог Finereader от тойже компании Abbyy. Распознавалка там не отличается. Просто совфт предназначен для другого.


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
chaos
Дата 16.1.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: нет
Всего: 44



Цитата(DragonFire @ 27.10.2005, 06:07)
На счет многослойной сети можно подумать...

3х слойной сети(1-вохд, 2-скрытый слой, 3-выход) должно хватить! По моему даже Колмоговров доказал что практически любую задачу решаемой многослойной сетью (больше 3 слоев) можно решить сетью из 3 слоев
PM WWW   Вверх
SoWa
Дата 16.1.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Буквы можно представлять в виде матриц. Так работает Finereader но оплюс нейронные сети. В одну матрицу [8,3] можно положить 8 букв и доставать оттуда по определителю каждой буквы


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1460 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.