GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (7)След. > >>   Поиск:  
 Автор Тема: Анализ символов через их синтез
Павел Фоменко
Сообщений: 1081
Анализ символов через их синтез
Добавлено: 12 июл 07 16:41
Человек при расспознавании строит гипотезы - что бы могло быть на месте непонятных символов. Предлагаю сделать программу, которая будет действовать аналогично.

Технически это примерно такая задача: достраивать нечитаемые символы, предполагать что там именно такой символ и перепроверять.
Это ещё не все, так как само по себе реального повышения расспознаваемости не даст.
Предположение относительно символа будет происходить так как я уже сказал - программа будет пытаться отрисовать заново изучаемый символ.
Есть распознаваемый символ и есть способ написания символа - паттерн движения, допустим, пера по бумаге. Если мы можем изобразить изучаемый символ с помощю выбраного паттерна - значит символ распознан.
Параллельно с этим будет происходить выдвижение гипотезы по поводу расспознаваемого символа и с другой стороны:
- будет предполагаться, что символ входит в некий слог;
- далее, предположение о вхождении слога в слово.
Ну и пока достаточно

Corwin (14:45:07 12/07/2007)
Цитата:
...Если один из элементов системы будет давать недостаточно точные значенися, то другой элемент просто не сможет правильно функционировать.
Здесь не только нужно делать несколько разных достаточно сложных модулей, но и настроить их на максимальную продуктивность.


Казаринов Виктор (14:17:14 12/07/2007)
Цитата:
это распознавание многоярусно, где распознавание собственно символа включено в распознавание слова, кот. включено в распознавание фразы и т.д. И каждый уровень распознавания может иметь обратные связи на предыд. уровень для улучшения качества распознавания.
Кроме того, в каждом узле распознавания есть анализ и синтез. И есть 2 принципиальных уровня распознавания - перцептивный, где всякая топология и т.д. и абстрактный, где более близкие по перцептивным хар-кам объекта могут принадлежать к разным классам и наоборот. Это как правое и левое полушарие мозга человека.


Скажите, стоит затевать проект? А то я уже затеял
[Ответ][Цитата]
daner
Сообщений: 4602
На: Анализ символов через их синтез
Добавлено: 12 июл 07 16:54
я до сих пор не вижу принципиальной разницы между тем что, в свое время, делал Corwin и тем что вы, Павел, предлагаете.
мое мнение -- не стоит пока переходить на более высокие уровни (слова, предложения и т.д.), это только засоряет смысл способа.

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

Замете, я не говорю что способ работать не будет. Я говорю, что это тоже что делал Corwin.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Анализ символов через их синтез
Добавлено: 12 июл 07 17:07
>это тоже что делал Corwin.

Ну, несовсем. Я в своем способе пытался полностью отойти от оригинала символа и проводить распознавание только основываясь на семантической схожести (т.е. не привязываться к таким параметрам символа как длины и углы линий). Павел же предлагает проводить сравнение через синтез символа на основе БД. Это ближе к шрифтозависимым системам чем к моей.
[Ответ][Цитата]
daner
Сообщений: 4602
На: Анализ символов через их синтез
Добавлено: 12 июл 07 17:50
Цитата:
Автор: Corwin

>это тоже что делал Corwin.

Ну, несовсем. Я в своем способе пытался полностью отойти от оригинала символа и проводить распознавание только основываясь на семантической схожести (т.е. не привязываться к таким параметрам символа как длины и углы линий). Павел же предлагает проводить сравнение через синтез символа на основе БД. Это ближе к шрифтозависимым системам чем к моей.


Разве??? т.е. вы не брали какие либо отношения между линиями? ну там изгибы, углы, и т.д.? что же тогда сравнивалось?
Вообще, коли уж вы здесь, могли бы тоже свой алгоритм на псевдокоде кратко описать. А то, я как раз думал, что вы проверяли определенные отношения между линиями контура (отношения длин, отношения углов и т.д.)
Что бы словами не бросаться, вот то как я представлял ваш способ (ну +/-)


BEGIN
for each idealChar in idealChars do
idealTemps <-add- CreateItemsRelations(
SplitToVectorsElements ( CreateConturVector ( idealChar ))
)
end_for
bitmap<-INPUT
char<-ImageProcessing(bitmap)
charRel<-CreateItemsRelations( SplitToVectorsElements ( CreateConturVector ( char )))
recognized<- min_{ideal in idealTemps} Distance(charRel,ideal)
RETURN recognized
END
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Анализ символов через их синтез
Добавлено: 12 июл 07 18:50
>т.е. вы не брали какие либо отношения между линиями? ну там изгибы, углы, и т.д.?

Брал, но они в моем алгоритме, при установлении гипотезы распознавания играют весьма скромную роль.

Примерно так:

BEGIN

АнализВходящегоСимвола
//Получаем набор ключевых точек символа которые связаны между собой (массив UnkPoints[])

for i2 = 1 to DataBase.count do
for i=1 to UnkPoints.Count do
GetMaxValue = SemanticCompare(UnkPoints[i],Pattern[i2].MainPoint)// (Функция SemanticCompare
//вызивается несколько раз и берется наибольшее значение которое повернуло несколько
//запусков (в цикле) этой функции)
if MaxValue then
MaxValueIndex = Pattern
end if
end for
end for

//MaxValueIndex - Наиболее вероятное предположение
Pattern[MaxValueIndex].GetName

END


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

Что то типа

function SemanticCompare(UnkPoint,PatternPoint)
PreResult =
// Блок ответственый за сравнение точек UnkPoint и PatternPoint, по целой куче параметров>>
....
....
// Блок ответственый за сравнение точек UnkPoint и PatternPoint, по целой куче параметров<<

for i = 1 to UnkPoint.neighbour.count do
for i2 = 1 to PatternPoint.neighbour.count do
GetMaxResult = SemanticCompare(UnkPoint.neighbour[i],PatternPoint.neighbour[i2])
end for
end for

Return PreResult+GetMaxResult
end function


Примерно такая общая структура работы моего алгоритма. К сожалению на практике все гораздо сложнее чем это здесь описано
[Ответ][Цитата]
Павел Фоменко
Сообщений: 1081
На: Анализ символов через их синтез
Добавлено: 12 июл 07 19:11
Цитата:
Автор: daner

...

Ну вы заметили разницу или ещё нет? И вообще, нужно ли это - находить разницу?
Я как раз и именно хочу сразу совместить несколько уровней, чтобы двигаться и от написания символа до конкретного слова, и от слова до изображения конкретной части в символе.
Рассмотрим букву А Изрядно подпорченную
http://autopoiesis.elnik.net/images/Example001.JPG
Как видно из рисунка, мы все-равно можем выделить характерные линии и угол между ними. Суть метода, который я предлагаю, это отрисовывать эти линии до тех пор, пока они не совпадут по максимуму с изучаемым изображением, или пока не будет достигнуто условие неправильности. К примеру, даный рисунок никогда не получится "дополнить" до изображения буквы П, даже отбросив ту часть буквы А, которая над "перекладинкой".
[Ответ][Цитата]
Victor Kazarinov
Сообщений: 13
На: Анализ символов через их синтез
Добавлено: 12 июл 07 20:05
Чтобы строить гипотезы нужно слишком много всего. Вряд ли нужно браться именно с этого. Проще создавать рефлективный распознаватель, который потом дополнять более сложными уровнями. Однако даже здесь есть серьезная проблема. Если выделять на изображении максимально возможное кол. перцептивных характеристик (цвет, направление и длина линий и границ и т.д.), то если есть хотя бы один запомненный образ определенного класса (например, буква а печатная), то при сравнении с ним нужно по всем этим характеристикам производить кластеризацию.
[Ответ][Цитата]
daner
Сообщений: 4602
На: Анализ символов через их синтез
Добавлено: 12 июл 07 21:05
Ну считайте что ваша "прорисовка символа", это и есть Corwin''овский SimanticCompare.
только он сканирует все пиксели, а вы предлагаете сканировать последовательно (кстати если буква разрывная, то все равно надо пробегаться по всей картинке.
И вообще главным в этих алгоритмах является именно КАК проводится этот самый Compare.
Различие искать надо!! иначе какой смысл колеса изобретать. Если ваша задача создать распознаватель (чисто инженерная), то ... можно и не искать. Но мы здесь принципы и способы обсуждаем и поэтому, все что не ново, не очень-то и интересно.
Поэтому, я вижу одну из целей и возможностей форума, оценить новизну идеи.

А про уровни говорить нужно, но не сейчас. Вот букву будет распознавать, тогда и про уровни можно говорить.
И вообще, решите, в чем новизна вашей идеи? в способе распознавания или иерархической структуре этого распознавания?
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Анализ символов через их синтез
Добавлено: 12 июл 07 21:33
Не знаю то ли Данер имел в виду, но все-таки для прояснения хотел бы заметить что мой алгоритм не на пиксели ориентируется а на ключевые точки.
Ключевыми точками могут быть:
- конечные точки
- Точки стыка и пересечений линий
- Точки где линия «переламывается»
Соответственно UnkPoint и PatternPoint это структуры состоящие из ключевых точек.

>А про уровни говорить нужно, но не сейчас. Вот букву будет распознавать, тогда и про уровни можно говорить.

Вполне поддерживаю. Уровни интересно рассматривать как планы на будущее.
[Ответ][Цитата]
Алхимик
Сообщений: 315
На: Анализ символов через их синтез
Добавлено: 13 июл 07 20:22
Цитата:
Автор: daner
А про уровни говорить нужно, но не сейчас. Вот букву будет распознавать, тогда и про уровни можно говорить.
И вообще, решите, в чем новизна вашей идеи? в способе распознавания или иерархической структуре этого распознавания?

Мне кажется, вы не совсем поняли идею Павла. Допустим в слове "слон" алгоритм распознает третью букву как "с"или "о" с вероятностью по 50 процентов. Вы предлагаете добиваться улучшения алгоритма, чтобы "о" узнавалась однозначно, а Павел хочет использовать паралельную информацию, что слова "слсн" не существует. Насколько я понимаю, и прорисовка букв - это тоже паралельные данные для увеличения вероятности распознавания символов.
[Ответ][Цитата]
Mad_God
Сообщений: 545
На: Анализ символов через их синтез
Добавлено: 13 июл 07 22:00
напоминает пунтосвитчер, который меняет раскладку клавиатуры, когда набираемые символы теряют смысл в данной раскладке, следит за описками. Правда бывает трудно заставить его "понять", что я хочу написать именно неправильный с его точки зрения набор символов.
[Ответ][Цитата]
daner
Сообщений: 4602
На: Анализ символов через их синтез
Добавлено: 14 июл 07 5:11
Цитата:
Автор: Алхимик


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


Ну это уже интереснее. Хотя все равно в таком случае стоит говорить (ИМХО) о двух разных алгоритмах: (1) распознавание символа с вариантами и вероятностью для каждого варианта (или хотя бы с приоритетами) и (2) уточнение написания слова (наверное в конце концов обычный spell-checker).
Но эта вообще вторая часть разговора была, а по первой... я пока так и не увидел разницу (см. выше)
[Ответ][Цитата]
Павел Фоменко
Сообщений: 1081
На: Анализ символов через их синтез
Добавлено: 15 июл 07 13:31
Цитата:
Автор: Алхимик

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

Спасибо. Практически это я и хотел выразить в идее.
[Ответ][Цитата]
daner
Сообщений: 4602
На: Анализ символов через их синтез
Добавлено: 15 июл 07 14:45
Цитата:
Автор: Павел Фоменко
Спасибо. Практически это я и хотел выразить в идее.

Ну если новизна* (т.е. идея) была в этом, то и обсуждать надо совсем по-другому. И тогда конечно смысла сравнивать и искать различия между способами Corwin''a и Павла нет. Но в таком случае, достаточно просто сказать : На низшем уровне распознания, используем один из известных способов распознавания символов, позволяющих то-то и то-то (скорее всего это самое "то-то" будет возможностью алгоритма предоставить варианты и вероятности).
Я вообще заметил, есть такая склонность у форумчан, придумав определённую теорию, описывать ее в мельчайших деталях, хотя чаще всего эти детали какой-нибудь частный случай уже известного подхода. А для чего? Это только засоряет основную идею. Плюс, если автор идеи не до конца продумал эти детали (а для чего, когда за него это уже другие сделали исследовали, нашли минусы, плюсы и сравнили с другими способами) и в этих недоработках тонет, вся прелесть новизны?!
Кроме того, если даже детали не доработаны, то описания требований от этих белых мест, позволит другим поразмыслить в этом направлении.

----------------------------------
* я имел ввиду "новизна" с точки зрения Павла. На самом деле, подобное с успехом использовалось в распознавании разговорной речи (в смысле звука). Наверняка и в других местах.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Анализ символов через их синтез
Добавлено: 31 июл 07 21:01
Может не совсем в тему, но если еще кто-то не знал:
По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, вкокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм.
[Ответ][Цитата]
 Стр.1 (7): [1]  2  3  4  5  ...  7След. > >>