Извлечь текст из отсканированного документа
Есть ли способ выделить текст из отсканированного документа? (вывод - jpg) Какие инструменты предлагает Ubuntu для выполнения такой задачи? Есть ли какие-нибудь библиотеки, которые я могу использовать вместо готовых двоичных файлов программного обеспечения, чтобы сделать то же самое? Я попытался преобразовать его в.pdf, используя Imagemagick, а затем попытался выделить текст, который явно не работал.
5 ответов
Этот тип процедуры называется OCR (оптическое распознавание символов). Эта ссылка также предлагает несколько вариантов:
gocr - командная строка OCR fuzzyocr - плагин spamassassin для проверки вложений изображений libhocr0 - иврит OCR ocrad - программа оптического распознавания символов ocrfeeder - Система анализа документов и система оптического распознавания символов ocropus - анализ документов и система распознавания текста тессеракт-OCR клинопись - многоязычная система распознавания текста
И это говорит о том, что Tesseract ( очень старый учебник) является лучшим вариантом из них. Так что попробуйте.
Некоторое время назад оценил различные пакеты 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 в блогах, я бы попробовал.
Пакет Tesseract-ocr является командной строкой. Если вам нужна программа с графическим интерфейсом, я использую "gscan2pdf", и вы можете найти ее в Центре программного обеспечения Ubuntu.
В gscan2pdf все, что вам нужно сделать, это нажать на маленький значок сканирования в верхней части. Я думаю, что это дает вам два или три варианта, GOCR, что не очень хорошо, и Tesseract, который работает превосходно. Выберите Tesseract, и с этого момента вам нужно нажать на соответствующую вкладку, чтобы найти настройки разрешения. Ваша лучшая ставка - 300 или даже 600, и Тессеракт преуспеет.
Плохо отсканированные, кривые или старые документы плохо конвертируются. Удачи!
PS.. Я продолжаю читать, что Tesseract может читать только изображения в формате TIFF. Это не тот случай для меня. Я могу импортировать JPG или PNG тоже.
PPS... простите за правки! Вы можете попробовать OCRFeeder в центре программного обеспечения тоже. Я все еще должен попробовать это все же.
Я нашел это, оно называется Tesseract OCR, надеюсь, оно вам пригодится.
У меня Linux Mint 17.2 x32 Cinnamon. Возможно, эти шаги будут работать и в Ubuntu 14.04 x32.
- Установить 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-файлы, массовое преобразование также вариант.