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)

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

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

anonymous ()

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

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

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

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

anonymous ()

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

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

Igron ★★★★★ ()

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

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

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

mono ★★★★★ ()

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

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

prizident ★★★★★ ()

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

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

anonymous ()

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

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

mic ★★★★★ ()

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

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

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

KRoN73 ★★★★★ ()

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

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

anonymous ()

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

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

kda ★★★★★ ()

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

>перевел в двухбитовый TIFF формат

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

maraudeur ()

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

>вЛ2Г2Л11Щ0

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

erfea ★★★★★ ()

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

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

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

onecooler ()

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

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

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

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