Извлечь текст из отсканированного документа

Есть ли способ выделить текст из отсканированного документа? (вывод - jpg) Какие инструменты предлагает Ubuntu для выполнения такой задачи? Есть ли какие-нибудь библиотеки, которые я могу использовать вместо готовых двоичных файлов программного обеспечения, чтобы сделать то же самое? Я попытался преобразовать его в .pdf с помощью Imagemagick, а затем попытался выделить текст, который явно не работал.

10
задан 10 May 2011 в 16:24

5 ответов

Название этого типа процедур: OCR (Оптическое распознавание символов). Эта ссылка также предлагает несколько вариантов:

gocr - A command line OCR
fuzzyocr - spamassassin plugin to check image attachments
libhocr0 - Hebrew OCR
ocrad - Optical Character Recognition program
ocrfeeder - Document layout analysis and optical character recognition system
ocropus - document analysis and OCR system
tesseract-ocr
cuneiform - multi-language OCR system 

И это говорит о том, что Tesseract ( очень старый учебник ) является лучшим вариантом из них. Так что попробуйте.

0
ответ дан 10 May 2011 в 16:24

Пакет Tesseract-ocr является командной строкой. Если вам нужна программа с графическим интерфейсом, я использую «gscan2pdf», и вы можете найти ее в Центре программного обеспечения Ubuntu.

В gscan2pdf все, что вам нужно сделать, это нажать на маленький значок сканирования в верхней части. Я думаю, что это дает вам два или три варианта, GOCR, что не очень хорошо, и Tesseract, который работает превосходно. Выберите Tesseract, и с этого момента вам нужно нажать на соответствующую вкладку, чтобы найти настройки разрешения. Ваша лучшая ставка - 300 или даже 600, и Тессеракт преуспеет.

Плохо отсканированные, кривые или старые документы плохо конвертируются. Удачи!

PS .. Я продолжаю читать, что Тессеракт может читать только изображения в формате TIFF. Это не тот случай для меня. Я также могу импортировать JPG или PNG.

PPS ... извините за правки! Вы можете попробовать OCRFeeder в центре программного обеспечения тоже. Я все еще должен попробовать это.

0
ответ дан 10 May 2011 в 16:24

Некоторое время назад оценил различные пакеты OCR в Ubuntu, обнаружил, что Tesseract был наименее плохим из них (но достаточно плох), и написал скрипт-оболочку для OCRing (поскольку Tesseract хочет скрытые форматы ввода, такие как TIFF). Вот мои ~/bin/ocr:

#!/bin/sh
# usage: ocr filename.jpg
if test -z "$1"; then
    echo "usage: ocr filename.jpg [...]"
    echo "needs imagemagick and tesseract-ocr"
    echo "if tesseract fails, check if you've got tesseract-ocr-eng installed"
fi
tmpdir="$(mktemp -d)"
for fn in "$@"; do
  convert "$fn" "$tmpdir/page.tif"
  tesseract "$tmpdir/page.tif" "$tmpdir/page" 2>&1 | grep -v '^Tesseract Open Source OCR Engine 

Предварительная обработка изображений с помощью GIMP (преобразование в B & amp; W с использованием инструмента Threshold), похоже, очень помогла.

Я надеюсь, что ситуация улучшилась с тех пор. Я недавно видел название OCR Feeder в блогах, попробую.

cat "$tmpdir/page.txt" cp -i "$tmpdir/page.txt" "${fn%.jpg}.txt" rm "$tmpdir/page.tif" "$tmpdir/page.txt" done rm -r "$tmpdir"

Предварительная обработка изображений с помощью GIMP (преобразование в B & amp; W с использованием инструмента Threshold), похоже, очень помогла.

Я надеюсь, что ситуация улучшилась с тех пор. Я недавно видел название OCR Feeder в блогах, попробую.

0
ответ дан 10 May 2011 в 16:24

Я нашел это, оно называется Tesseract OCR, надеюсь, оно вам пригодится.

http://linuxappfinder.com/package/tesseract-ocr

0
ответ дан 10 May 2011 в 16:24

У меня Linux Mint 17.2 x32 Cinnamon. Возможно, эти шаги будут работать и в Ubuntu 14.04 x32.

  1. Установить Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Вы можете добавить другие языки, установив дополнительные пакеты. Этот снимок экрана взят из Synaptic: Языковые пакеты Tesseract в Synaptic

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

ВАРИАНТ 1 - через терминал командной строки, затем перейдите в папку, где Вы сохраняете файлы изображений (jpg, png) и запускаете команду:

a) для преобразования всех файлов изображений в текст

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" text; done

Чтобы объединить весь текст файлы в один, выполните команду cat *.txt >> all.txt

b) для преобразования всех файлов изображений в файлы hocr (открываются с помощью Firefox)

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" hocr; done

ОПЦИЯ 2 - с помощью GUI

a) Установите gImageReader и используйте его

sudo add-apt-repository -y ppa:sandromani/gimagereader
sudo apt-get update
sudo apt-get install -y gimagereader

b) Второе приложение - VietOCR. Фактическая версия 4.0, поэтому скачайте VietOCR-4.0.zip

Распакуйте файлы и откройте VietOCR.jar с помощью Java:

Откройте VietOCR с помощью Java Если у вас нет Java установлена, затем вы можете установить ее из репозитория или Вы можете установить официальную Oracle Java 8. Шаги для установки Oracle Java 8 в Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Я рекомендую VietOCR, потому что он позволяет вам OCR pdf-файлы, массовое преобразование также является опцией.

0
ответ дан 10 May 2011 в 16:24

Другие вопросы по тегам:

Похожие вопросы: