Reconnaissance optique de caractères

Comment transformer un document papier, numérisé au format PDF, en texte exploitable avec un logiciel de traitement de texte, par exemple.

Article mis en ligne le 9 septembre 2020
dernière modification le 23 septembre 2020

par NV

La procédure est assez simple en ligne de commande, elle ne nécessite que quelques logiciels.

Prérequis

sudo apt-get install evince
sudo apt-get install poppler-utils
sudo apt-get install imagemagick
sudo apt-get install tesseract-ocr tesseract-ocr-fra
sudo apt-get eog

"evince" permet de visualiser des fichiers PDF,
"poppler-utils" contient l’outil (pdfimages) de transformation des pdf en images,
"imagemagick" contient "convert" l’outil qui nous servira à tourner des pages mal orientées,
l’outil "tesseract" converti une image en texte,
"eog" (Eye of GNOME) est l’outil de visualisation des images.

Visualisation du document

La première étape consiste à déterminer si le contenu du document peut être récupéré par un simple "copier/coller" ou si il s’agit d’un document scanné.
En effet, il existe plusieurs types de fichiers PDF, ceux contenant des caractères que l’on peut copier et ceux ne contenant que des images qui ne sont pas exploitables en l’état.
Utilisez un lecteur de fichier PDF ("evince" ou autre) et essayez de copier du texte avec votre souris.

evince monFichier.pdf

Si vous pouvez sélectionner le texte, vous pouvez copier le texte dans votre traitement de texte pour l’exploiter.
Sinon continuez ce tutoriel

Extraction des images

La commande "pdfimages" permet d’extraire une à une les pages du document au format image (ppm ou pbm)

pdfimages monFichier.pdf images

pdfimages a produit un ensemble de fichiers ppm et pbm
utilisez la commande "ls" pour les lister

ls
image-000.ppm image-000.pbm image-001.pbm image-001.pbm

Vérification de l’orientation

Suivant la méthode utilisée pour la numérisation, il peut être nécessaire d’appliquer une rotation aux images extraites.
"eog" vous permet de visualiser rapidement une image

eog image-001.pbm

Dans notre cas, une rotation à 270° est nécessaire

rotation

La rotation s’effectue grâce à la commande "convert"
Nous en profitons pour convertir les images au format TIF qui est plus léger que le PPM

for i in *.pbm ; do convert $i -rotate 270 $i.tif;done
for i in *.ppm ; do convert $i -rotate 270 $i.tif;done

OCR

La reconnaissance optique de caractères (ROC), en anglais "optical character recognition" (OCR), permet de convertir des images en document texte

for i in *.tif ; do tesseract $i $i -l fra;done

A la fin du processus nous obtenons un fichier texte par page

ls *.txt
image-000.ppm.tif.txt
image-001.ppm.tif.txt
image-002.pbm.tif.txt
image-003.pbm.tif.txt
image-004.pbm.tif.txt
...

Il nous reste à créer un fichier texte rassemblant tous ces éléments

cat *.txt > total.txt

Le fichier obtenu est utilisable dans un traitement de texte.

Vous pouvez voir un exemple avec les fichiers joints :