LINUX.ORG.RU

Распознавание русского текста в Tesseract (OCR от Google)


0

0

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

Под рукой пиратского дистриба Fine Reader не оказалось. Решил попробовать распознать каким-нибудь опенсорчным распознавателем. Выяснилось, что официально с русским текстом на данный момент не работает ни одна опенсорчная система OCR.

Но для гугловской OCR Tesseract, товарищи из группы Tesseract-ocr-russian (http://groups.google.com/group/tesseract-ocr-russian) своими силами подготовили архив с настроечными файлами для распознавания шрифта в стиле Times New. Так как текст, который надо было распознать, был набран похожим шрифтом, я попробовал поработать с этой распознавалкой.

Для работы мне потребовалось

исходники системы Tesseract v.2.01
http://tesseract-ocr.googlecode.com/files/tesseract-2.01.tar.gz

и файлы распознавания русского языка
http://tesseract-ocr-russian.googlegroups.com/web/TimesEnd.tar.gz

Скомпилировал исходники, установил, скопировал файлы русского языка. Отсканировал текст, почистил его немного, перевел в двухбитовый TIFF формат и дал команду

# tesseract image.tiff output -l rus

В ответ была выдана ошибка

unicharset.cpp:67: failed assertion `ids.contains(unichar_repr, length)'

Оказывается, это известная ошибка, появляется только на русских текстах, разработчики о ней знают и советуют либо обнулить файл DangAmbigs, либо исправить в исходнике reject.cpp строку 63. Подробнее здесь http://groups.google.com/group/tesseract-ocr-russian/browse_thread/thread/7ced0bd2c14946d8

Файл DangAmbigs оказался пустым. Пришлось исправить в исходнике строчку. Пересобрав программу, снова запустил tesseract. На этот раз ошибки небыло. И я с интересом полез смотреть файл output.txt.


Результат вы видите не скриншоте.


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

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

А потом я внимательно посмотрел на эту криптографию и понял, что на самом деле все распознается.

вЛ2Г2Л11Щ0 - да это же "влагалищо"!

1-100110ЛЫ111Х Д1-1011 - а это "нескольких дней".


Таким образом, вот что можно сказать об этой системе распознавания


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

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

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

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

- Распознавание даже мелкого текста при сканировании в разрешении 300dpi проходит хорошо. Символы степени 5 и 7 распознались без проблем.


Вердикт - в данный момент система Tesseract для кириллицы сыра даже в консольном варианте, и требует доводки.

>>> Просмотр (1024x768, 262 Kb)

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

anonymous
()
Ответ на: комментарий от anonymous

Какая на хрен винда, с бодуна что ли?

anonymous
()
Ответ на: комментарий от anonymous_incognito

> Тут обычный медицинский текст, а слишком озабоченных можно и поудалять будет.

Это Вам решать, товарищ Модератор.

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

anonymous
()

Вопрос автору: Вам удобно работать с таким количеством окон на одном десктопе? Вы не шутите?

Igron ★★★★★
()

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

автору респект.

mono ★★★★★
()

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

prizident ★★★★★
()
Ответ на: комментарий от mono

> первый раз вижу скрин со смысловой нагрузкой на лоре

Тогда в Галерею стоит почаще заглядывать, да.

balodja ★★★
()
Ответ на: комментарий от anonymous

>Шрифты - гавно!

Поддерживаю, за шрифты в распозновалке - незачет. :D

xkitenz
()
Ответ на: комментарий от anonymous

> Вендааааааааа

Эта тема называется "Редмонд".

acheron ★★★★
()

вы прочтите вторую строку.... лично я ржал )))

anonymous
()

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

mic ★★★★★
()
Ответ на: комментарий от anonymous_incognito

>> У автора такая тема для Kwin.

>Спасибо. Как-то не замечал её раньше.

Не замечали?! С КДЕ 1.1.х/2.х не работали?! :)

GladAlex ★★★★★
()
Ответ на: комментарий от anonymous

>В пиратском файнридере есть выбор языка распознования + идёт автоисправление слов по словарю. Думаю, если сюда добавить эти фичи, то результат будет намного лучше. ::))

Не поможет. Древнейшие Файнридеры второй половины 1990-х гг. XX века (3-й, 4-й) не имели правки по словарю, но распознавали уже вполне прилично. Словари заюзали для исправления единичных ошибок распознавания, а не такого массового беспредела :)

KRoN73 ★★★★★
()

Распознавание квантовой криптографии?

anonymous
()
Ответ на: комментарий от KRoN73

> Древнейшие Файнридеры второй половины 1990-х гг. XX века (3-й, 4-й) не имели правки по словарю

4-й точно имел. С 3-им не работал.

acheron ★★★★
()

это уже целая статья. ИМХО, на LOR нужна возможность создания пользовательских статей со скринами и.т.д.

kda ★★★★★
()
Ответ на: комментарий от anonymous

>> Шрифты - гавно!

> Дурень, это же скан!

C юмором у вас, сударь, большая беда.

xkitenz
()
Ответ на: комментарий от kda

Ага, о том же подумал, прочтя до конца. Автору зачёт!

Asteronix ★★★
()

>вЛ2Г2Л11Щ0

а прога та падонак :-D

erfea ★★★★★
()
Ответ на: комментарий от maraudeur

> А что он с полутоновыми изображениями не работает?

Пока нет.

acheron ★★★★
()

Ссылку на статью в студию!=)

Зы: Кеды как кеды... Вы бы лучше, уважанмый статейку бы написали, а не скрин постили. (Статейку про прогу, а вы что подумали?=))

onecooler
()

> вЛ2Г2Л11Щ0 - да это же "влагалищо"! > 1-100110ЛЫ111Х Д1-1011 - а это "нескольких дней".

Распознавалка Олбанского языка !!!!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.