Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Операция "текст" начинается |
Автор: B2_Russia 16.9.2003, 09:13 |
Во-первых, всем привет!!! Как то я уже писал, что наваял программу по распознаванию рукописных символов. Программа работала хорошо, но в ней было много недостатков. Главный из них - это то, что распознавался "чистый" образ, т.е. нарисованный при помощи мыши. Понятно, что такая картинка имеет мало диффектов. Сейчас я перелопатил бо'льшую часть исходников (в части предобработки и самого распознавания картинки). Теперь все работает намного лучше (даже с отсканированными символами), а точность распознавания тоже возрасла. НО!!!!!!!!!!!!!!!! Как оказалось, заставить машину распознавать символы (поотдельности) куда проще, чем заставить "видеть" ее эти символы в тексте, т.е. определить какая часть слова является буквой. Так вот, я решил довести все это до логического завершения. ПРОСЬБА. Если у кого есть идеи просьба написать их в этом топике. Заранее благодарствую. ПРЕДЛОЖЕНИЕ. Приглашаю несколько (2х-3х) человек, для доведения до ума этой программы. Если проект удастся, то, я думаю, никому не стоит говорить о его перспективах. |
Автор: zckernel 16.9.2003, 10:02 |
Определить расстояние между строками можно примерно так же как и в случае машинописного текста. Но разграничить символы в машинописном тексте куда проще чем чем в рукописном.(там хоть какие-нить интервалы присутствуют). Поэтому вижу единственным выходом из этой ситуации выработку правил выявления соединительных элементов между символами с последующей расстановкой указателей проблемных мест в тексте. После чего предварительно распознанное слово необходимо попытаться найти в словаре. В случае неудачи менять символы в проблемных местах и повторять поиск. Однако данный метод обладает рядом недостатков, главный - скорость. |
Автор: B2_Russia 16.9.2003, 10:16 |
Да, кстати, нужны идеи и по предварительной обработке отсканированного изображения в части определения угла выравнивания страницы (части текста) и определения какая область является картинкой, а какая текстом. zckernel, насамом деле все и упирается в скорость распознавания. Можно придумать множество "накладных" алгоритмов. Вообще без словаря насамом деле не обойтись. На счет проблеммных мест, можно заранее обучить программу распознавать не только 1 букву, но и их сочетание. Вот. |
Автор: RAN 16.9.2003, 11:23 |
Согласен, нужно в словаре искать. Словарь надо хорошо проиндексировать. Скажем по первым двум буквам. И ещё спрашивать пользователя, когда тупик (но это должно отключаться). Если есть такая возможность, надо словам сопоставить их "рейтинг". То есть слово1 более популярно слова2. При споре берём более вероятное слово1. Не знаю, как ты распознаёшь буквы. Но слова можно распознавать слева на право следующим принципом. Определяем первую букву. По первым штрихам это может быть любая буква, организуем в памяти массив на 33 буквы (не char, конечно, а класс какой-то, содержащий позицию и ещё, что надо). Дальше распознавая первую букву, становиться ясно, что это не а, не б и т.д. Соответствующие объекты или удаляются из памяти, или помечаются как отпавший вариант, смотря что быстрее будет работать. Когда мы получаем, что это может быть "и". Объект, отражающий букву "и" утверждается и создаются следующие 33 объекта второй буквы. А в первой букве на них указатель храним. Но! По первой букве ещё не все варианты отпали. Там не утверждены и не отпали объекты "ш", "щ"... По ним продолжается работа. То есть цикл идёт по позиции в слове, а дальше вызываются методы прорабатываемых объектов-букв.э В конце получаем дерево, по которому собираем получившиеся слова и анализируем их (проверяем по словарю и т.п.) Надеюсь привнёс что-то. И это что-то поняли. P.S. Ты знаешь, мне кажется работа только началась. Намаешься ты. Где-то сканер подведёт. Где-то человек в слове интервал большой сделает. Кто-то буквы пишет по разному в разных словах. А также грамматические ошибки. Но дело серьёзное и безусловно будет, чем гордиться. |
Автор: dm9 16.9.2003, 13:46 |
С радостью принял бы участие в проекте. Есть небольшой опыт: я писал программу распознавания символов. Правда, только печатных. Были даже попытки бороться с погрешностями сканирования. Ты не мог бы выложить хотя бы exe? Или пришли на ящик: [email protected]. Если не жалко исходников, тоже присылай ![]() |
Автор: B2_Russia 22.9.2003, 10:11 |
RAN идея с деревом интересная. Да по поводу спорных решений я думаю - лучший вариант. Люди если кто наткнется на методы выделения букв из текста, киньте ссылку плиз... Буду очень признателен. dm9 послал тебе письмо, жду ответ. |