Распознавание текстов в Ubuntu
Discussion / Работа «Плантариума» / Forum

Plantarium
online plant identification guide
Help and manuals

Views: 2007
Discussion

Недавно перешёл с Windows на Ubuntu 18, возникла необходимость решить вопрос с распознаванием текстов из книжек в формате DjVu. Попробовал несколько смотрелок для DjVu. Наиболее удобным нашёл Okular. Что важно, он позволяет выделать фрагменты текста и сохранять из в формате PNG. Распознавание как и раньше под Windows выполняю с помощью Cuneiform, но в этот раз - из консоли. Итого, по шагам. 1. Открываю в Okular нужную страницу текста, увеличиваю масштаб просмотра по максимуму, чтобы сохранённая картинка была максимального размера (мелкий текст практически не распознаётся). Получаю картинку шириной чуть более 1000 px. 2. Выбираю Tools | Area selection (достаточно сделать один раз, выбор затем сохраняется). Выделяю прямоугольник, охватывающий текст и сохраняю как картинку в формате PNG (для удобства - в один и тот же файл "text.png"). 3. Если исходная страница перекошена, поворачиваю картинку в "text.png" до горизонтального положения строк (с обрезкой полей) в XnView. 4. Открываю консоль, перехожу в папку с "text.png" и запускаю Cuneiform:
cuneiform -l ruseng --singlecolumn -o result.txt text.png
5. Открываю в той же папке файл с распознанным текстом ("result.txt") в текстовом редакторе, исправляю ошибки распознавания и копирую текст на сайт. Обычная проблема - путаются буквы "и" и "н" и почему-то вместо символа тире выводится странная последовательность символов (—). Но в принципе, работы не больше, чем раньше.
 | edited
Добавлю. У меня лучше получается распознать целиком DjVu файл, а потом оттуда брать нужные куски распознанного текста. Такой подход лучше тем, что все лежит в одном месте. Как это делается: 1) Нужно поставить DjView4, последний tesseract (это система распознавания от Google) со всеми языками, и ocrodjvu. Как это все ставить -- можно нагуглить, но если нужна инструкция, напишите. 2) Берем DjVu файл, понимаем какие там языки, запускаем в консоли: ocrodjvu --in-place -j 4 -l eng file.djvu и ждем. По умолчанию запускается tesseract, поэтому его указывать не надо. tesseract медленный, но _очень_ качественный, по многим тестам лучше FineReader, и уж куда лучше cuneiform. Кроме того, он развивается, то есть постоянно выходят новые версии (а cuneiform нет). "-j 4" значит, что распознавать надо в четыре потока (а если в системе процессоров больше, то лучше всегда ставить максимальное значение). Можно комбинировать языки, причем по три или даже четыре! Например, "-l chi-sim+lat+rus" скомбинирует китайский упрощенный (материковый Китай), латиницу и русскую кириллицу. Есть и другие опции, но эти важнее всего. 3) Как только файл готов, открываем его в DjView4, нажимаем F2, выделяем любой фрагмент и по контекстному меню копируем текст в буфер. Что важно, теперь можно в DjVu файле искать (Crtl+F). А можно выделить весь текст, это лучше делать в консоли: djvutxt file.djvu > file.txt Получается текстовый файл со всем текстом из книги.
 | edited
Зачем нужен, скажем, китайский. Вот у меня есть три странички подорожников из "Iconographia Cormophytorum Sinicorum". Я запускаю ocrodjvu: ocrodjvu --in-place -l chi-sim+lat -j 4 iconogr_cormophytorum_sinicorum_1980_plantago.djvu жду две минуты выделяю китайское описание Plantago asiatica, загружаю его в Google Translate, и получаю среди прочего (без правки): === ... Hairless or pubescent; petiole 5 to 22 cm long. flower Several grasses, erect, 20-45 cm long, short Hairy; spikes occupy 1/3 to 1/2 of upper end, with green White sparse flowers, bracts broadly triangular, rather than calyx lobes Short, both have green broad keel-like protrusions, calyx has Short-handled, lobes obovate-elliptic to elliptic, long 2 to 2.5 mm; corolla lobes lanceolate, 1 mm long Meter. Shade fruit oval, about 3 mm in length, lobed, planted Child 5_6, rare 7-8, oblong, about L5 mm long, Black-brown. ... === (заглавные буквы надо игнорировать, в китайском их нет). Понимаю, что 5-6 (7-8) семян авторы считают для этого вида типичным. Очень полезно.
Спасибо за ценную информацию!
Спасибо! Надо будет попробовать.
Попробовал (по инструкциям Алексея Шипунова) - результаты хорошие, еще раз спасибо. На очереди испытание японскими текстами.
 | edited
Круто. Распознавать, в том числе для того, чтобы автоматически переводить.
Михаил Серебряный wrote:
На очереди испытание японскими текстами.
Немного оффтопик -- я сейчас в Японии, если что, обращайтесь.
Алексей, спасибо за предложение! Просьбы у меня могут быть исключительно библиографического свойства: до некоторых публикаций японских ботаников в японских же журналах практически невозможно дотянуться (если с автором лично не общаешься). И дело совсем не в языке оригинала.
Попробовал поставить tesseract и посмотреть, как он распознаёт картинки, которые я ранее прогонял через cuneiform. Выполнил команды установки:
sudo apt update sudo apt install tesseract-ocr sudo apt install tesseract-ocr-rus sudo apt install tesseract-ocr-lat
Далее запускаю на картинке, которую сегодня уже скармливал cuneiform: Команда:
tesseract text.png stdout -l rus+eng+lat --oem 1 --psm 3
Результат:
Родство. От родственного вида С’. uralensis Fisch. ex DC. ormmaercs стеблями с волосками и шипами (а не железисто-волосистыми), листоч- ками с отогнутой (а не прямой) верхушкой, компактными (а не рыхлы- ми) кистями, которые вместе с цветоносом в 1.5 раза короче ( а не длин- нее) листьев, цветками 18—20 (а не 12-14) мм дл, чашечкой 10-12 (ане 6-8) мм дл., бордовой (а не зеленой) сверху, бобами 3—6 (а не 1-4)- семянными, улитковидными (а не серповидными), сильно поперечно- извилистыми (а не плоскими), сохраняющимися (а не частично опа- дающими), собранными в длинный цилиндр (а не пучок), который вме- сте с цветоносом почти равен (а не длиннее) длине листьев. Распространение. Казахстан (Тарбагатай, Джунгарский Алатау), Киргизия ( Тянь-Шань), Россия (Тува) и Китай (Джунгария, Кашга- рия).
На мой взгляд - неплохо. Только русское слово после латыни посчитало за латынь Smile image Надо поискать, как убрать переносы (а может кто знает?). Буду пользоваться. Для сравнения результат распознавания cuneiform:
Родство. От родственного вида С. uralensis Fisch ex DC. отличается стеблями с волосками и шипами (а не железисто-волосистыми), листочками с отогнутой (а не прямой) верхушкой, компактными (а не рыхлыми) кистями, которые вместе с цветоносом в 1.5 раза короче ( а не длиннее) листьев, цветками 18 — 20 (а не 12 — 14) мм дл, чашечкой 10 — 12 (а не 6 — 8) мм дл., бордовой (а не зеленой) сверху, бобами 3 — 6 (а не 1-4)- семянными, улитковидными (а не серповидными), сильно поперечноизвилистыми (а не плоскими), сохраняющимися (а не частично опадающими), собранными в длинный цилиндр (а не пучок), который вместе с цветоносом почти равен (а не длиннее) длине листьев. Распространение. Казахстан (Тарбагатай, Джунгарский Алатау), Киргизия ( Тянь-Шаль), Россия (Тува) и Китай (Джунгария, Кашгария).
png
text.png
> Надо поискать, как убрать переносы (а может кто знает?). Можно так: tesseract text.png stdout -l rus+lat | perl -0 -pe 's/(\S+)-\s+(\S+)/$1$2/g' Кстати, изображение 200 dpi, тогда как для распознавания лучше 300 dpi. Интересно, что cuneiform лучше справился. И быстрее он раз в пять чем tesseract. Так что у него по-прежнему много плюсов.
Надо сказать, что тут картинка неплохого качества. При случае попробую на худших образцах.
Search
Top.Mail.Ru Feedback To the top
www.plantarium.ru
"Plantarium" uses cookies. By continuing to browse the site, you consent to their use.