web-dev-qa-db-fra.com

Extraire le texte d'un document numérisé

Est-il possible de sélectionner le texte d'un document numérisé? (la sortie est un jpg) Quels types d'outils Ubuntu offre-t-il pour effectuer une telle tâche? Existe-t-il des bibliothèques que je peux utiliser à la place des binaires logiciels pré-construits pour faire la même chose? J'ai essayé de le convertir en un fichier .pdf en utilisant Imagemagick, puis en essayant de sélectionner le texte, ce qui n'a évidemment pas fonctionné.

10
Dananjaya

Le nom de ce type de procédure est OCR (Reconnaissance optique de caractères). Ce lien offre également quelques choix:

gocr - Un OCR en ligne de commande 
 fuzzyocr - un plugin spamassassin permettant de vérifier les pièces jointes aux images 
 libhocr0 - Hébreu OCR 
 ocrad - Programme de reconnaissance optique des caractères 
 ocrfeeder - Analyse de la mise en page du document système de reconnaissance optique des caractères 
 ocropus - analyse de documents et système de ROC 
 tesseract-ocr 
 cunéiforme - système de ROC multilingue 

Et cela suggère que Tesseract ( très vieux tutoriel ) est la meilleure option parmi celles-ci. Alors essayez-le.

9
Rinzwind

Il y a quelque temps, nous avons évalué les différents packages d'OCR dans Ubuntu, constaté que Tesseract était le moins mauvais d'entre eux (mais assez mauvais) et écrit un script de wrapper pour l'OCRing (car Tesseract veut des formats de saisie obscurs comme TIFF). Voici mon ~/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"

Le prétraitement des images avec GIMP (conversion en noir et blanc à l'aide de l'outil Seuil) a beaucoup aidé.

J'espère que les choses se sont améliorées depuis. J'ai récemment vu le nom OCR Feeder dans des billets de blog, je voudrais l'essayer.

3
Marius Gedminas

Le paquet Tesseract-ocr est en ligne de commande. Si vous voulez un programme avec une interface graphique, j'utilise "gscan2pdf" et vous pouvez le trouver dans le Centre logiciel Ubuntu.

Dans gscan2pdf, tout ce que vous avez à faire est de cliquer sur la petite icône de numérisation située en haut. Je pense que cela vous donne deux ou trois options, GOCR qui n’est pas très bon et Tesseract qui fonctionne admirablement. Choisissez Tesseract et à partir de ce point, vous devez cliquer sur l'onglet approprié pour pouvoir trouver les paramètres de résolution. Votre meilleur pari est 300 voire 600 et Tesseract s'en sortira bien.

Les documents mal numérisés, tordus ou anciens ne se convertissent pas bien. Bonne chance!

PS .. Je continue à lire que Tesseract ne peut lire que les images TIFF. Ce n'est pas le cas pour moi. Je peux aussi importer des fichiers JPG ou PNG.

PPS ... désolé pour les modifications! Vous pouvez également essayer OCRFeeder dans le centre logiciel. Je n'ai pas encore essayé cependant.

2
I Heart Ubuntu

Si j'ai trouvé ça, ça s'appelle Tesseract OCR, j'espère que ça pourra vous être utile.

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

1
scouser73

J'ai Linux Mint 17.2 x32 Cinnamon. Probablement ces étapes fonctionneraient aussi dans Ubuntu 14.04 x32.

  1. Installer Tesseract OCR Sudo apt-get install -y tesseract-ocr tesseract-ocr-fra Vous pouvez ajouter d'autres langues en installant des packages supplémentaires. Cette capture d'écran provient de synaptic: paquets de langues Tesseract dans Synaptic

Utiliser Tesseract

OPTION 1 - en ligne de commande, ouvrez le terminal, puis allez dans le dossier où vous conservez les fichiers image (jpg, png) et exécutez la commande:

a) convertir tous les fichiers image en texte

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

Pour fusionner tous les fichiers texte en un seul, exécutez la commande cat *.txt >> all.txt

b) convertir tous les fichiers image en fichiers hocr (ouvrir avec Firefox)

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

OPTION 2 - par interface graphique

a) Installez gImageReader et utilisez-le

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

b) La deuxième demande est VietOCR. La version actuelle est 4.0, alors téléchargez VietOCR-4.0.Zip

Décompressez les fichiers et ouvrez VietOCR.jar sous Java:

Ouvrez VietOCR par Java Si vous n'avez pas installé Java, vous pouvez l'installer à partir d'un référentiel ou vous pouvez installer un système officiel Oracle Java. installation d'Oracle Java 8 dans 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

Je recommande VietOCR, car il vous permet de convertir des fichiers PDF en OCR. La conversion en vrac est également une option.

0
anthony0013