Tutoriel : prise en main de Kraken, épisode 1

Voici la première vidéo d’une petite série sur la prise en main de Kraken, utilisé pour des projets d’OCR/HTRisation (récupération de l’information textuelle et de la mise en page) de documents numérisés.

Kraken est un outil clé en main pour « OCRiser » (ou « HTRiser ») des documents; il peut s’utiliser via un terminal ou via Python. Il est conçu avant tout pour l’analyse de documents historiques manuscrits. Si on peut utiliser des modèles mis à disposition pour la communauté, on peut également faire du fine-tuning de modèles pour ses besoins propres.

Voir « OCR » et « HTR » sur Wikipédia.

OCR, HTR : Kraken ou Tesseract ?

Tesseract et Kraken sont deux outils utilisés pour la reconnaissance de texte, mais ils ont des caractéristiques et des objectifs différents.

Source : Histoire naturelle générale et particulière des céphalopodes acétabulifères vivants et fossiles, Tome 2, par MM. de Férussac et Alcide d’Orbigny (Gallica).

Quand Tesseract est utilisé pour extraire du texte à partir d’images et peut gérer des documents simples comme des PDF ou des images scannées, Kraken, en revanche, est peut-être plus adapté pour traiter des documents avec des écritures manuscrites, des polices anciennes ou des documents en plusieurs colonnes — ce qui le rend utile pour les chercheurs en histoire ou en archivistique.

Installation (juste sur Mac et Linux)

Il faut d’abord créer un environnement virtuel dédié, puis y installer Kraken.
Rien de plus simple (attention, c’est assez long, donc se mettre sur un bonne connexion):

mkdir mon_env_virtuel && cd mon_env_virtuel
python3 -m venv . && source ./bin/activate
pip install kraken

Vérifiez si pip est bien installé ou essayez pip3 install kraken. Sinon essayez avec conda. Je vous renvoie vers la documentation : https://kraken.re/main/index.html

Trouver les modèles en ligne

Pour prendre en main Kraken, il nous faut des modèles pour pouvoir effectuer des premiers tests. Zenodo est un dépôt communautaire de modèles : vous pourrez trouvez de quoi faire voire déployer vos propres modèles.

Chaque modèle est identifié avec un identifiant unique, le DOI, par exemple « 10.5281/zenodo.10592716 ».

Un exemple de modèle : https://zenodo.org/records/7089018

Voici comment lister les modèles disponibles sur le dépôt central (fonctionne avec une connexion internet):

kraken list

Affiner sa recherche avec un grep :

kraken list | grep -E -i "Fraktur"
kraken list | grep -E -i "LECTAUREP Contemporary French Model"
kraken list | grep -E -i "manuscript" > results.txt

Récupérer les métadonnées décrivant les modèles en indiquant le DOI (identifiant d’objet numérique), avec `show` :

kraken show 10.5281/zenodo.10592716
# Modèle : "catmus-print-fondue-large.mlmodel"

Installer des modèles

On utilise la commande `kraken get`. Je recommande de le faire avec la ligne de code suggérée par la documentation officielle, car ce modèle s’installe sans encombres (normalement) :

$ kraken get 10.5281/zenodo.10592716

Installation manuelle et modèles installés

Les modèles sont installés dans le dossier `~/.config/kraken`. Il se peut que certains modèles ne s’installent pas correctement avec ‘kraken get DOI_du_modèle’. Une bonne solution consiste à télécharger le modèle (en .mlmodel) directement sur Zenodo et à le placer dans le dossier d’installation.

Pour aller dans le dossier :

#Accéder au dossier :
cd ~/.config/kraken
# Ou faire une recherche avec find si jamais vous ne le trouvez pas :
find -name "catmus-print-fondue-large.mlmodel"

Premier test

Dans un dossier, j’ai une image nommé img.jpeg; je veux récupérer l’information textuelle brute dans un fichier « image.txt »; pour ce faire j’utilise :

kraken -i img.jpeg image.txt segment -bl ocr -m catmus-print-fondue-large.mlmodel

Prochaine partie : anatomie d’une commande kraken et du paysage des processus (segmentation, reconnaissance et sérialisation) !

,

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *