Искусственный Интеллект

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Искусственный Интеллект » Макеты и реализации » Распознавание рукописного текста


Распознавание рукописного текста

Сообщений 31 страница 60 из 165

31

Egg написал(а):

а для чего устанавливать сроки? разве не интереснее/полезнее дольше обсуждать и
быстрее сделать?

Согласен.

3d6 написал(а):

можно посоревноваться в системе восстановления зашумленного текста

Требование к тексту - "свободно читается человеком" - задаёт достаточный уровень шумов и других искажений. Если человек (5) текст не прочитает, то и машина не должна прочитать (а даже если машина прочитает, то как определить, что она прочитала верно?)

3d6 написал(а):

использование словаря - это две задачи вместо одной

Если определить смысл термина "словарь" как - "упорядоченное множество эталонов", то в словарь потенциально могут войти и целые словосочетания, и слова, и буквы и даже их части. Вначале шли трения относительно того, насколко этот словарь должен быть широк. Может ли он включать, например, спец-термины. Решили, что на словарь ограничений не накладывается. И это абсолютно верно. Я даже рискну утверждать, что в основном именно словарь (в вышеуказанной дефиниции) предопределит качество распознавания.

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

0

32

Egg написал(а):

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

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

Egg написал(а):

вы, как мне показалось, все время пытаетесь свести задачу к такой, какой в жизни не бывает... :) рафинированной...

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

Prosolver написал(а):

Если определить смысл термина "словарь" как - "упорядоченное множество эталонов"

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

0

33

3d6 написал(а):

Которые все имитируются различными моделями шума

нет. Принципиально нет. Давайте на примерах, это тема важная.
1. Буква алфавита гарнитуры Таймс (или любой другой).
а) У нас есть точное описание этого объекта - правила.
б) В идеальных условиях мы не имели бы проблем с разпознаванием иных, кроме удовлетворения правилам.
2. Буква рукописная.
а) У нас нет правил, в лучшем случае - только статистика начертаний, которая может быть репрезентативной
и "уйти" в насыщение.
б) Каждый экземпляр нашего объекта уникален, хотя и подобен, отличия между разными экземплярами минимальны.
3. Дефект потери металла.
а) У нас нет ни правил, ни репрезентативной статистики, поскольку объекты могут быть не подобными.
б) Может быть совершенно уникальные экземпляры.

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

0

34

3d6 написал(а):

Другое дело, сравнить различные подходы на модельной задаче

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

0

35

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

0

36

Egg написал(а):

Вы никак никаким шумом не сможете имитировать разное начертание буквы Т

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

0

37

2NO
да, но я и такую таблицу тоже считаю словарем...
мне бы еще хотелось семантику прикрутить, чтобы искать варианты распознаваемого слова и предложения с учетом контекста соседних ("впереди" и "сзади") слов и предложений...

0

38

Любопытно полностью автоматически построить распознаватель. Имея набор текстов в ascii, и набор текстов в bmp. Про bmp желательно чтобы было известно сколько там букв нарисовано. Можно еще wav-файлы добавить.

0

39

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

Отредактировано NO (2009-08-08 19:30:04)

0

40

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

много рукописного текста есть в архиве Ершова
http://www.ershov.ras.ru/archive/eaindex.asp?did=39893
http://www.ershov.ras.ru/files/theory/fold525/525_007.gif

Отредактировано NO (2009-08-08 22:10:28)

0

41

я не все слова разобрал... :)

0

42

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

0

43

NO написал(а):

Видимо за счет слуховых отделов, а не зрительных.

это интересны поворот обсуждений...
я прочитал как ИЕЩБЕЧИНО

0

44

Egg написал(а):

когда "ваш форум" все обсудит, поставь меня, плиз, в известность о ТЗ

Формально выполняя договорённость, сообщаю - "наш форум" возражений не имеет. Фактически я уже приступил к выполнению.

0

45

Prosolver написал(а):

"наш форум" возражений не имеет.

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

0

46

Тоже верно. Бана бояться - на форумы не ходить.

Egg написал(а):

пара конструктивных идей:
1) считать длину слова и смотреть словарь
2) делать акцент на первой и последней букве

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

Данный текст -
Е
Е
Е
рекуррентен
Е
Е
Е
в нем 13 букв Е

И тогда в понятие "словарь" войдёт и алфавит (символы), и даже более частные инварианты (линии, дуги).

0

47

Prosolver написал(а):

оже верно. Бана бояться - на форумы не ходить.

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

Prosolver написал(а):

И тогда в понятие "словарь" войдёт и алфавит (символы), и даже более частные инварианты (линии, дуги).

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

ОРО <- (Prosolver + Egg) & ЛО

это  - [к] оро [мы] [c] ло

здесь надо уточнить задачу...
если речь идет о распознавание - это одно...
если о "грамматике" и "словарных цепях использования" - это другое
если о герменевтике - третье...

Отредактировано Egg (2009-08-10 23:02:56)

0

48

Egg написал(а):

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

Рекуррентный текст с буквой Е я привёл в качестве примера того, что способ распознавания строк текста (самых обычных, написанных правильно) может не отличаться по сути от способа распознавания буквы Е. Зачем плодить несколько алгоритмов, если можно обойтись одним рекуррентным. По моему это просто, красиво и думать так легче.

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

Если программа сможет распознавать текст на разных уровнях вложенности - то это только плюс.

То же относится к распознаванию слов по длине и по крайним буквам - почему бы не распознавать и буквы тоже сначала просто - только по размеру и крайним точкам, вдаваясь в детали только по мере необходимости (недостаточночти). Человек, во всяком случае, так, по моему, и делает.

Egg написал(а):

ОРО <- (Prosolver + Egg) & ЛО

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

0

49

Prosolver написал(а):

Но здесь присутствуют запрещённые символы

я переформулирую Prosolver с Egg и ЛО к ОРО :)

Prosolver написал(а):

это честная точка

не честная... была бы честной, не говорил бы о рекуррентности...

Prosolver написал(а):

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

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

0

50

Prosolver написал(а):

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

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

1. NPC разных "типов" друг к другу не сводятся (насколько я знаю)
2. задача распознавания вообще-то не имеет смысла, особенно, если объекты живут быстрее,
чем способности к обучению (тема Актуальности)...
Задача классификации - да, это очень важно... особенно классификации без учителя...
3. Задачи поведения к задачу узнавания свести нельзя, можем поговорить об этом...
4. распознавание рукописного текста - это не задача распознавания, я надеялся, что смог это объяснить...
если нет - давай заново пройдемся...

Отредактировано Egg (2009-08-11 22:43:20)

0

51

Egg написал(а):

NPC разных "типов" друг к другу не сводятся (насколько я знаю)

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

Egg написал(а):

задача распознавания вообще-то не имеет смысла, особенно, если объекты живут быстрее, чем способности к обучению

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

Egg написал(а):

распознавание рукописного текста - это не задача распознавания, я надеялся, что смог это объяснить

Это только вопрос терминологии. С разными людьми я использую разные слова - иначе невозможно скоординироваться.

Egg написал(а):

Задачи поведения к задачу узнавания свести нельзя, можем поговорить об этом

Для меня зрение - это в первую очередь эффектор. При этом не возникает никаких проблем в интерпретации поведения как узнавания. Это важный момент, определяющий всю архитектуру.
Собственно, хотелось бы сказать пару начальных слов непосредственно о задаче, как я её себе представляю.

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

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

0

52

Prosolver написал(а):

NPC задачи очевидно сводимы к нахождению кратчайшего пути на графе

ты, наверное, имел ввиду, что все NPC - это задачи полного перебора... :)
http://ru.wikipedia.org/wiki/ Категория:NP-полные_задачи

теперь по процедуре... ты пишешь:

Prosolver написал(а):

Тут слово "все" не приницпиально.

Prosolver написал(а):

разными людьми я использую разные слова

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

Prosolver написал(а):

Понимать распознавание как классификацию я могу, если под "классами" понимать эталоны для реконструирования и итоговые точки, направления "обозначающего" эффектора.

Понимаешь в чем дело... во внешнем мире классов нет... вообще... никаких
особенно нет эталонов и предопределенных значений...
задача классификации не в том, чтобы что-то соотнести с каким-то набором,
а в том, чтобы этот набор создать...

Prosolver написал(а):

Для меня зрение - это в первую очередь эффектор.

если мы рецепторы станем называть эффекторами только потому,
что ты не разобрался как возникает реакция на зрительные "паттерны" ничего не получится...
глаз - рецептор... http://ru.wikipedia.org/wiki/ Зрение_человека

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

Отредактировано Egg (2009-08-12 00:28:49)

0

53

Egg написал(а):

все NPC - это задачи полного перебора

Очень похоже на то, но для меня пока не очевидно. Если получится показать, что полнотой перебора можно управлять через простую зависимость от условий задачи - выложу макет.

Egg написал(а):

задача классификации не в том, чтобы что-то соотнести с каким-то набором, а в том, чтобы этот набор создать

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

Egg написал(а):

глаз - рецептор...

Глаз - рецептор, а процесс зрения - это работа эффекторного механизма. Насколько мне известно единственными сколько-нибудь внятными исследованиями зрительной коры занимались Дэвид Хьюбел и Торстен Визель и их результаты, на мой взгляд, неоднозначны. Зато есть несколько факторов, позволяющих мне с большой вероятностью полагать, что любая осознанная деятельность (в том числе зрение) - это эффектор.
1. Кора головного мозга устроена одинаково как для моторных, так и для рецепторных зон.
2. Если бы работа зрительной системы основывалась только на (пассивном) анализе входных сигналов, зрение было бы слишком инертным (скорость распознавания не соизмерима с количеством нейронов, которые активизируются только посредством сигнала от рецептора).
3. Мы видим сны и воображаем визуальные образы без внешней стимуляции.
4. Количество аксонов, проложенных в обратном направлении (в направлении к рецепторам) возрастает с углублением от сетчатки к коре. У меня есть гипотеза, что латеральное коленчатое тело и медиальное коленчатое тело - это те структуры мозга, где сравниваются образы, соответственно, от сетчатки и кортиева органа, с теми образами, которые продуцирует кора (во взаимодействии с таламусом и гиппокампом) и которые мы, собственно, видим (как это ни парадоксально звучит). Эти тела возможно выдают сигналы, управляющие процессом обучения. (К сожалению не могу найти хорошего атласа мозга, может кто подскажет?)
5. Осознаваемый психический акт зрения - это, в первую очередь, процесс высвобождения энергии нейронов, а не поглощения энергии света.
6. Принцип Оккама - такой взгляд на зрение не противоречит наблюдениям, при этом он проще.
7. Лично у меня складывается непротиворечивая картинка работы психики только если психику полагать преимущественно активной, а не реактивной. Это значит, что работу мозга я предлагаю рассматривать преимущественно изнутри (от ретикулярной формации) наружу (к коленчатым телам, рецепторам, мышцам), а не только снаружи внутрь. В частности, предсказательный, упреждающий характер любого акта восприятия свидетельствует о предварителном внутреннем действии (эффекте).

Я не претендую на 100% научную строгость сказанного, но рассматриваю это как очень полезные гипотезы.

Egg написал(а):

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

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

0

54

Prosolver написал(а):

Очень похоже на то, но для меня пока не очевидно. Если получится показать, что полнотой перебора можно управлять через простую зависимость от условий задачи - выложу макет.

лучше, не фантазировать, а хотя бы интернет почитать. Если бы какие-то NPC задачи можно было решить покрытием или "управлять через простую зависимость от условий" они бы не были NPC. :)

Prosolver написал(а):

Варианты могут быть только в том, что понимать под "создать эталон" и "сравнить с эталоном".

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

Prosolver написал(а):

Лично мне было бы интересно если бы мои слова старались понимать именно так, как я их связываю

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

0

55

Egg написал(а):

здесь нет вариантов - когда система сама строит классификацию (это совсем не эталон), она опирается на статистику входа

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

0

56

Prosolver написал(а):

Я подразумевал, что именно для классификации есть разные варианты устройств и думаю, что именно способ классификации будет одной из ключевых проблем в данном топике.

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

идея Классификации без учителя очень проста и приходит из типического кластерного анализа,
посмотри ее краем глаза - будет полезно...

0

57

картинко
http://yann.lecun.com/exdb/lenet/noisy-2.html
http://yann.lecun.com/exdb/lenet/gifs/anoise2.gif

0

58

Я довольно долго занимаюсь математической постановкой задач, относящихся к ИИ. Формально задача распознавания рукописного текста может выглядеть так (без 100% гарантии, конечно):
Найти ФУНКЦИЮ (алгоритм), которая переводит множество изображений (страниц) в символьный текст. Исходные данные для подбора функции:
* Множество обучающих изображений и полученный по ним текст. При этом это обучающее множество должно быть сделано с точностью до слова, т.е. каждый кусок изображения со словом должен отображаться в соответствующее слово в символическом тексте. То же самое относится к фразам, предложениям, параграфам и т.п., т.е. обучающее множество иерархически должно сохранять контекст.
* Критерий качества обучения. Например, он может быть сформулирован как количество исправлений, которые нужно внести в распознанный текст, чтобы получить настоящий (обучающий).
* Контрольное множество изображений и полученный по ним текст, недоступные на этапе обучения. Реальное сравнение функций распознавания должно производится не на обучающем множестве «изображения-текст», а на отдельном независимом. Это принципиально важно, т.к. будет исключена подгонка искомой функции под результат (под обучающее множество).

Смысл такой постановки задачи состоит в том, чтобы интеллектуализация распознавания происходила в компьютере, а не в наших головах и потом программировалось. Вообще-то в критерий нужно еще внести объем используемых при вычислении искомой функции ресурсов (память и использование ЦПУ), и еще кое-что, но не суть. Само создание обучающего множества, содержащего в себе всю (ну, почти всю) необходимую информацию – это просто титанический труд. Это нереально. Еще более нереально то, что кто-то из участников форума сможет конструктивно решить описанную суть формально математическую задачу.

Распознавание начертаний символов – это более реально. Видимо, обучающая база должна включать в себя десятки тысяч начертаний, включающие в себя сдвиги, наклоны, масштабы, нелинейность начертания, изменение жирности, шумы и т.д. Ну, и, конечно независимое множество для проверки. Только кто это сделает?

0

59

mserg написал(а):

Само создание обучающего множества, содержащего в себе всю (ну, почти всю) необходимую информацию – это просто титанический труд. Это нереально.

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

mserg написал(а):

Только кто это сделает?

Двое добровольцев уже есть. Третьим будешь?

0

60

Дорогой Prosolver, в каком месте у меня выход алгоритма 0 или 1? По-моему, было «количество исправлений, которые нужно внести в распознанный текст, чтобы получить настоящий (обучающий)» и еще КОЕ-ЧТО. См. мое сообщение выше.

Третьи я не буду. Для создания реально полезной обучающей базы нужно много данных. Это неподъемно для 3-х человек и даже для 20-ти.

0


Вы здесь » Искусственный Интеллект » Макеты и реализации » Распознавание рукописного текста


Создать форум.