Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

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

23K
16 января 2011 года
Inc(Dec(i))
61 / / 13.02.2009
Добрый день.

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

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

UPD: возможно есть какая годная литература по обработке изображений, желательно на русском, но и на английском тоже сойдет
11K
16 января 2011 года
Babandr
76 / / 05.05.2008
Ну вот...Напишет человек удачно дипломную прогу - и капче как идее придет капец. Ведь страшно подумать, что тогда начнется. Ужас, да и только.:)
7
17 января 2011 года
@pixo $oft
3.4K / / 20.09.2006
Оффтопить,право же,не стоило:) ТС,чем вам не нравятся полустандартные средства распознавания текста?Т.е. я не знаю точно,может,задание такое–велик сделать,но если нет,то лучше готовым воспользоваться
33K
17 января 2011 года
hivewarrior
205 / / 16.11.2010
Совет: Если картинка цветная, не поленись перевести ее в Grey Scale. С цветом вычислительные мощности тебе будут иначе ставить палки в колеса. В крайнем случае, разделяй все на три канала R G и B.

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

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

И последний совет: написать программу можно в течении дней 4х. Алгоритм элементарный (если ты взял за основу "обратное распространение"). Львиную долю времени у тебя займет настройка весов. Недели 2. Первые пару дней может выводить невменяемый бред.

Книги, в которых можно почитать про нейронные сети, я напишу вечером, когда буду дома, если не забуду;)
23K
19 января 2011 года
Inc(Dec(i))
61 / / 13.02.2009
Спасибо за ответы всем.
В общем-то вся изюминка проекта в том что я планирую распознавать только печатный текст на дейвайсе под управлением Android ОС. Т.е. в идеале, человек сфоткал документ, на выходе получил текст а не картинку. К сожалению пока что возникла техническая сложность связанная с платформой Android которая может не дать создать задуманное(((

hivewarrior а можно поподробнее на пальцах, как нейронкой выделить области с текстом? или где почитать? В нейросетях я относительный нуб и не очень представляю как можно просканировать картинку на наличие облайстей с текстом. Нейронка же на вход принимает вектор каких-то числовых значений и дает вектор/значение на выходе, как это может помочь в деле выделения текста?

Кстати особого желания писать нейронку с нуля нету, нашел уже готовую хорошую либу. Если кому интересно называется neuroph
33K
20 января 2011 года
hivewarrior
205 / / 16.11.2010
Цитата: Inc(Dec(i))

...
hivewarrior а можно поподробнее на пальцах, как нейронкой выделить области с текстом? или где почитать? В нейросетях я относительный нуб и не очень представляю как можно просканировать картинку на наличие облайстей с текстом. Нейронка же на вход принимает вектор каких-то числовых значений и дает вектор/значение на выходе, как это может помочь в деле выделения текста?
...


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

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

Мне видится этот алгоритм как-то так;)
Если снова не забуду, то список книг сегодня вечером напишу:rolleyes:

33K
20 января 2011 года
hivewarrior
205 / / 16.11.2010
А начальные размеры области сканирования можно вычислять по относительной частоте черного (или более темных тонов, которые, скорее всего, текст). Проведи исследование, найди апроксимирующую функцию. Мат.статистика тебе в помощь. Или же снова нейросеть с одним входом и одним выходом, который покажет размер сканирующего квадрата.
33K
22 января 2011 года
hivewarrior
205 / / 16.11.2010
;)Обещанные книги по нейронным сетям:

М. Тим Джонс, Программирование искусственного интеллекта в приложениях. Очень хорошая книга с примерами. Описывает достаточно простым и понятным для всех языком. Разобран не один пример алгоритмов для ИИ, в том числе и нейронная сеть с обратным распространением ошибки.

Л.Г.Комарцова, А.В.Максимов, Нейрокомпьютеры Еще одна книга, но уже серьезная. Обоснованы нейронные сети с математической стороны, а не просто приведены алгоритмы. Но по прежнему язык остается не слишком сложный и читается запоем за 3-4 дня.

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

Если нужны еще книги, то обращайся.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог