Есть ли хорошие программы для распознавания текста на Linux?
Знаете как называлась эта статья вначале? Она называлась «Бесплатные программы для распознавания текста (OCR) под Windows»… Задумка была рассмотреть программы, которые используют движок для распознавания текста tesseract-ocr (сейчас его развивает Гугл). Сначала намечался обзор по большому количеству программ, потом их осталось три, потом я хотел рассказать о двух программах, которые бесплатные, но могут конкурировать с ABBYY FineReader, затем я решил, что и одна программа — тоже неплохо. Но, в конце-концов, я пришёл к выводу, что программы или бесплатные или хорошие (хотя бы рабочие).
Если вы читаете эту статью, значит с распознаванием текста на Linux мне повезло больше. Почему tesseract-ocr и почему на нём сошёлся свет клином? tesseract-ocr — это бесплатный, с открытым исходным кодом движок, который когда-то давно показывал хорошие результаты, потом долго, до 2006 года его никто не развивал. А с 2006 года за него взялась Гугл. Проект не заброшен, в настоящее время примерно раз в год происходят обновления версии. Гугл некачественно не делает, и сейчас можно констатировать, tesseract-ocr — это хороший бесплатный движок для распознавания текста. Дело в том, что разработать собственную систему OCR, пожалуй, под силу только большим корпорациями и распространяться эта система может, следовательно, только как коммерческий продукт. В результате бесплатные программы для распознавания текста являются, фактически, оболочкой (надстройкой, графическим интерфейсом) для одного или нескольких бесплатных движков распознавания текста. tesseract-ocr — вещь хорошая и распознаёт хорошо (на уровне коммерческих продуктов), но кому интересно работать в командной строке, чтобы её использовать? Кому интересное распознавать по одному изображению? Кто бы отказался от возможности пакетной обработки графических файлов, в том числе PDF, в качественном пользовательском интерфейсе?
Сейчас, по сути, мы и будем оценивать качество реализации пользовательского интерфейса и других полезных функций в программах, которые используют tesseract-ocr в качестве своего движка, важнейшего компонента.
И ещё важное замечание. Если кто-то ругает бесплатную программу для распознавания текста, это совсем не значит, что программа плохая и что она будет плохо работать. Вполне возможно, что тот, кто ругает программу по распознаванию текста (особенно указывая на низкое качество распознавания), использует другой движок, другой OCR (например, вместо tesseract-ocr использует cuneiform или какой-нибудь ещё). Не нужно этому доверять. В программе (многие из них это поддерживают), просто выберите хороший движок OCR и, весьма вероятно, результат вас поразит.
Итак, приступим к тестированию хороших прграмм для распознавания текста (OCR) под Linux.
Предварительная подготовка
Найдите в репозитории и установите следующее:
- tesseract-ocr — движок для распознавания текста (может использоваться в командной строке)
- tesseract-ocr-rus — содержит дополнительные данные для русского языка
- cuneiform — ещё один движок OCR
Ссылка скрыта от гостей
программы, на котором вы можете найти разные ссылки, в том числе на скомпилированные пакеты, исходный код, блог автора (там есть его семейная фотография — мне было любопытно посмотреть) и пр.В репозиториях Linux Mint версия OCRFeeder 0.7.11, а последней версией, выпущенной автором, является OCRFeeder 0.8.1. Свежие версии добавили новые функции (например, поддержка многостраничных файлов изображений TIFF) и исправили разные ошибки. Поэтому если вы можете ставить программы из исходных кодов — то стоит сделать так.
Все остальные, ставьте из репозитория, даже та версия, которая там есть, работает прекрасно.
После установки в меню «Офис» появляется значок программы. Запускаем её. Всё интуитивно понятно. Можно целиком импортировать PDF файл. Можно распознавать отдельные страницы или файл полностью. Результат распознавания текста выше всякий похвал! Я специально взял для пример PDF файл со средним качеством сканирования.
Я в восторге от программы: распознаёт быстро, поддерживает пакетную обработку изображений, без проблем импортирует PDF файлы, может распознавать как по одной странице, так и весь файл целиком, высокое качество распознавания текста (сильно зависит от качества сканирования!), можно сохранить все распознанные страницы в один файл, можно сохранять в .odt (формат LibreOffice). Я попробовал ещё один документ, с высоким качеством сканирования — результат отличный.
YAGF
Следующей в нашем почётном списке качественных программ для распознавания текста становится YAGF.
Думаю, что русскоговорящим будет особенно приятно узнать, что автором является русскоговорящий Андрей Боровский (не знаю где он живёт и какое у него гражданство). Русскоязычная страничка программы
Ссылка скрыта от гостей
.Программа активно развивается, и опять, в репозитории только версия YAGF 0.9.2 от 3 сентября 2012 года (!), а крайней, которую выпустил автор, является YAGF 0.9.5 от 28 января 2015 года. За это время была добавлена поддержка многостраничных TIFF изображений, импорт DjVu, автосохранение, новые языки и т. д. Поэтому если вы знаете, что нужно делать с тарболом, то рекомендую ставить из исходных кодов. Остальные довольствуемся тем, что есть в репозитории.
После установке в меню Офис появится ещё один значок. Запускаем программу. Всё интуитивно понятно, только при импорте PDF файла программа предлагает выбрать страницы (диапазон страниц), которые нас интересуют и папку, куда будут сохранены промежуточные изображения (на которые будет разбит PDF файл).
Далее всё как и с предыдущей программой: возможность распознать отдельные страницы или файл целиком, высокое качество распознавания, возможность сохранить все страницы в один файл, для сохранения можно выбрать формат простого текстового файла или HTML.
Заключение
В своём обзоре я использовал не самые новые версии хороших бесплатных программ для распознавания текста на Linux. Я доволен результатом. Будем наедятся, что авторы не забросят свои наработки.
Честно говоря, меня поразила низкая активность пользователей, например, в комментариях (как в репозиториях, так и в блоге OCRFeeder). Неужели это интересно четверым людям? Неужели никто больше не сканирует? Судя по популярности пиратского ABBYY FineReader, вопросы сканирования интересуют очень многих. Пользователи устанавливают в свои компьютеры несколько десятков крякнутых программ, а затем рассказывают, что под Linux нет специализированного софта. Софта предостаточно, и бесплатные версии, доступные для свободной установки на Linux, зачатую, не уступают дорогим коммерческим продуктам под Windows.
Тем не менее, не нужно обольщаться. Экосистема свободного софта довольно хрупкая. Каждая из рассмотренных программ разрабатывается одним человеком. Т.е. если он слишком занят, или потерял интерес — программа становится заброшенной.
Я, как и многие из читающих, не могу помочь написанием кода или материально (мне бы самому кто помог). Но я, как минимум, могу помочь популяризировать проекты с открытым исходным кодом. И многие из читающих это могут сделать — рассказать о них в блоге, на своём сайте или в социальной сети.
Я призываю вас делать это. Не нужно воспринимать программы с открытым исходным кодом (и вообще бесплатные проекты) как данность. Нужно помогать авторам в меру своих сил. Как минимум, то, что может сделать каждый из нас, это рассказать об этих проектах, стремиться сделать их популярными. Ведь популярному проекту проще найти помощь, поддержку среди обширной аудитории.