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


10

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

Ответы:


9

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

gocr - командная строка OCR
fuzzyocr - плагин spamassassin для проверки вложений изображений
libhocr0 - иврит OCR
ocrad - программа оптического распознавания символов
ocrfeeder - Система анализа документов и система оптического распознавания символов
ocropus - анализ документов и система распознавания текста
тессеракт-OCR
клинопись - многоязычная система распознавания текста 

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


3

Некоторое время назад оценил различные пакеты 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$'
  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 & W с использованием инструмента Threshold), похоже, очень помогла.

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


2

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

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

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

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

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



0

У меня 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), и выполните команду:

а) конвертировать все файлы изображений в текст

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

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

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

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

ВАРИАНТ 2 - GUI

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

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

б) Второе заявление - 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-файлы, массовое преобразование также вариант.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.