OCR в системах Linux [закрыто]

14

Я всегда обнаруживал, что технология OCR отстает в системах с открытым исходным кодом. Я также смотрел проект Ocropus с самого детства. Я попробовал то, что слышал, это лучший механизм распознавания текста для Linux, Tesseract , и обнаружил, что его очень не хватает для деловых документов. Существуют ли другие более перспективные реализации OCR? Как насчет еще более обнадеживающей цели интерпретации почерка? Что возможно в * nix системах в этой области?

jjclarkson
источник
1
Должно ли это быть перенесено в softwarerecs?
Джефф Шаллер
@ Джефф, вероятно, нет, учитывая, что ему почти семь лет. С тех пор многое произошло. Некоторые из них в OCR ... ;-)
roaima

Ответы:

4

Тессеракт

По состоянию на 2018 год лучшее доступное программное обеспечение OCR с открытым исходным кодом - это Tesseract 4 (бета) с его новой моделью оптического распознавания символов в нейронной сети LSTM . Его производительность распознавания намного лучше, чем у предыдущей модели распознавания, использованной в версии 3.

Пример (создайте файл PDF output.pdfс текстовым слоем для отсканированного немецкого документа):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

Распечатать распознанный текст на стандартный вывод:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Список установленных языков:

$ tesseract --list-langs

Поддержка многих языков / скриптов доступна в виде загружаемых обученных наборов данных , например, существует даже набор данных для Fraktur.

С новой моделью LSTM Tesseract черпает вдохновение из исследовательского проекта OCRopus .

Версия 3 Тессеракта работает относительно плохо даже на входных изображениях хорошего качества, т. Е. Часто ложно обнаруживает отдельные символы в пикселях пыли (вне любого текстового контекста) и легко вводит односимвольные ошибки в известных словах.

клинопись

Производительность Cuneiform OCR не так уж и плоха, но она не поддерживается активно (последний выпуск в 2011 году, версия 1.1), легко падает и имеет некоторые другие проблемы:

Вы можете отключить алгоритм макета следующим образом:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lуказывает язык исходного документа)

ocrad

$ ocrad -F utf8 image-0001

Текст печатается по умолчанию в стандартный вывод.

В деловом документе пропущено подчеркнутое слово, а cuneiform / tesseract / gocr - нет.

GOCR

$ gocr image-0001

Текст печатается по умолчанию в стандартный вывод.

аппаратные средства

Sane имеет очень хорошую поддержку для многих сканеров с автоматической подачей документов (ADF), например, для Avision и Fujitsu .

В состав Sane входит программа scanimageкомандной строки, которую вы можете использовать для создания сценариев сканирования по сценарию (см., Например, мой adf2pdf.pyсценарий).

maxschlepzig
источник
Я попробовал клинопись. Это хорошо работает, если вам нужно распознать отсканированное изображение (не фотографии). Я использовал Yagf в качестве графического интерфейса.
Сергей
3

Я нашел похожий вопрос в StackOverflow, и Asprise OCR SDK , один из связанных коммерческих продуктов, имеет версию для Linux.

Ларри Смитмиер
источник
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - Из обзора
Томас
1
@ Том ссылка является единственным возможным ответом, так как ссылка указывает на конкретный инструмент в соответствии с запросом ОП. Не все ответы только на ссылки плохие. Это дает название определенной части программного обеспечения и ссылку на его веб-страницу. Даже если ссылка не работает, вы все равно сможете найти ее по названию.
Тердон
1

Есть несколько популярных инструментов командной строки OCR:

  • Тессеракт ( ReadMe , FAQ ) (Python)

    Также доступно для: Tesseract .NET , Tesseract iOS

    Механизм оптического распознавания текста, который был разработан в лабораториях HP между 1985 и 1995 годами ... а теперь и в Google. Тессеракт, вероятно, является наиболее точным из доступных механизмов OCR с открытым исходным кодом.

    Использование:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Пример: сделать существующий PDF доступным для поиска (OCR) через командную строку / скрипт

  • GOCR

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

  • OCRopus ™ ( FAQ ) (написано на Python, NumPy и SciPy)

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

    Механизм OCRopus основан на двух исследовательских проектах: высокопроизводительном распознавателе рукописного ввода, разработанном в середине 90-х годов и развернутом Бюро переписи населения США, и новых высокопроизводительных методах анализа макетов.

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

  • Tessnet2 (с открытым исходным кодом, OCR, Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    Tesseract - это механизм распознавания текста с открытым исходным кодом на C ++. Tessnet2 - это сборка .NET, предоставляющая очень простые методы для распознавания текста. Tessnet2 находится под лицензией Apache 2 (например, tesseract), что означает, что вы можете использовать его по своему усмотрению, включая коммерческие продукты.

Другие уже предложили: ABBYY CLI OCR для Linux , Asprise OCR .

Читайте также:

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

kenorb
источник
0

... OCR - это больше, чем «только распознавание символов». Обработка изображений, предварительная обработка - анализ страницы / макета для поиска текстов, изображений, таблиц или штрих-кодов. Для распознавания вам приходится иметь дело с разными шрифтами, размерами и языками. Это важно, потому что для получения хороших результатов вы должны использовать словари и определения языка. Наконец, люди ожидают больше вариантов экспорта, чем текста (например, XML, RTF или PDF с возможностью поиска). Есть несколько коммерческих опций для SDK, но они не дешевые и бесплатно.

Недавно я обнаружил CLI OCR для Linux от ABBYY . Существует бесплатная пробная версия на 100 страниц.

tshepang
источник
0

Если у вас есть бюджет, я настоятельно рекомендую ABBYY FineReader Engine CLI для Linux . Наша компания уже год использует его в нашем веб-приложении, и мы планируем продлить лицензию. Очень хорошее качество распознавания, интерфейс командной строки, распознавание на многих языках.

Минаев
источник
2
Этот продукт уже упоминался в предыдущем ответе . Пожалуйста, не дублируйте ответы!
Дэвид Фёрстер