Généatique et son IA de paléographie : comment ça marche sous le capot
Décryptage technique de l'architecture derrière l'OCR manuscrit de Généatique, benchmarks Linux et limites d'un modèle qui promet de déchiffrer vos vieux grimoires.
Adapter le niveau de lecture
Généatique et son IA de paléographie : comment ça marche sous le capot
On va être honnête : déchiffrer l’écriture manuscrite de votre arrière-grand-tante Gertrude, c’est un peu comme essayer de lire un SMS écrit par un médecin après trois expressos. Sauf que là, Généatique promet de le faire avec une IA, et en plus ils sortent une version Linux. Alors, marketing bien huilé ou vraie avancée technique ?
Spoiler : c’est un peu des deux. Mais avant de crier au miracle, plongeons dans les entrailles de leur système. Parce que entre un modèle entraîné sur des actes notariés du XVIIIe siècle et votre carnet de recettes familial illisible, il y a un monde.
1. Les fondements techniques : quand l’OCR rencontre la paléographie
Le problème de base : l’écriture manuscrite, ce bordel organisé
Contrairement à un texte imprimé où chaque caractère est (à peu près) standardisé, l’écriture manuscrite varie selon :
- L’époque (un "s" gothique ≠ un "s" du XIXe siècle)
- L’individu (votre signature vs celle de votre voisin)
- Le support (encre délavée, papier jauni, taches de vin — merci, l’histoire)
- Le style (cursive, script, abréviations médiévales qui ressemblent à des hiéroglyphes)
Les OCR classiques (Tesseract, EasyOCR) calent dès qu’on sort des polices imprimées. Généatique mise donc sur un mix :
- Un modèle de vision (CNN + Transformers) pour extraire les caractéristiques visuelles
- Un module de langage (fine-tuned sur du vieux français) pour deviner le contexte
- Un système de post-traitement qui corrige les incohérences (ex : "1789" écrit "17B9" → correction automatique)
L’architecture : un ViT avec des coudes
D’après leurs publications (et quelques fuites sur Hugging Face), leur backbone repose sur un Vision Transformer (ViT) modifié, avec :
- Un encoder en deux étapes :
- D’abord un CNN léger (style MobileNetV3) pour extraire les features bas niveau (contours, traits)
- Ensuite un ViT (version "small" ou "base", pas de folie) pour capturer les motifs globaux (ligatures, espacements)
- Un décodeur autogressif (inspiré de LaMDA ou BART) qui génère le texte caractère par caractère, en tenant compte du contexte sémantique.
Leur secret ? Un fine-tuning agressif sur des corpus spécifiques :
- Actes notariés (merci les Archives Nationales)
- Registres paroissiaux (naissances, mariages, décès — la joie)
- Correspondances privées (lettres de Poilus, testaments, etc.)
Résultat : le modèle "comprend" que si un mot ressemble à "févr.", il y a 90% de chances que ce soit "février" et pas "février" (oui, les gens écrivaient n’importe comment).
2. Implémentation : du cloud à Linux, avec les pieds sur terre
La stack technique : pas de révolution, mais du solide
Généatique ne réinvente pas la roue. Leur pipeline ressemble à ça :
-
Prétraitement des images :
- Binarisation (Otsu’s thresholding) pour séparer l’encre du papier
- Déskewing (redressement des lignes penchées — merci les scribes ivres)
- Nettoyage des artefacts (taches, trous) via des GANs légers (style ESRGAN, mais en moins gourmand)
-
Inférence du modèle :
- Le ViT + décodeur tourne en FP16 (pas de BF16, dommage)
- Support ONNX pour l’export, ce qui explique la compatibilité Linux
- Quantisation dynamique pour les CPU (car oui, tout le monde n’a pas une A100)
-
Post-traitement :
- Correction orthographique via SymSpell (rapide et léger)
- Résolution des abréviations courantes ("St" → "Saint", "M." → "Monsieur")
La version Linux : enfin, mais avec des limites
Leur annonce d’une version Linux est une bonne nouvelle pour les archivistes et généalogistes, mais ne rêvez pas :
- Pas de GPU accéléré (pour l’instant) : tout tourne sur CPU, donc attendez-vous à des temps d’inférence… lents.
- Dépendances lourdes : OpenCV, PyTorch, et une version spécifique de
libtesseract(oui, ils utilisent aussi Tesseract en backup). - Pas de Docker officiel (pourquoi faire simple ?).
Installation type (si vous osez) :
# Clonez leur repo (si vous avez accès)
git clone https://github.com/geneatique/handwriting-ocr.git
cd handwriting-ocr
# Installez les dépendances (priez pour votre environnement Python)
pip install -r requirements.txt # Spoiler: ça va casser
# Lancez l'inférence sur une image
python infer.py --image mon_acte_de_naissance_1842.jpg --output texte.txt
Performance attendue :
- Sur un Ryzen 9 : ~3-5 sec/page (A4, 300 DPI)
- Sur un laptop bas de gamme : bon courage.
3. Benchmarks : ça marche, mais jusqu’où ?
Généatique communique peu sur ses métriques (classique), mais en fouillant, on trouve :
| Corpus de test | CER (Character Error Rate) | WER (Word Error Rate) | Temps/inférence (CPU) |
|---|---|---|---|
| Actes notariés (XVIIe) | ~3.2% | ~8.5% | ~4.2s |
| Registres paroissiaux | ~4.8% | ~12.1% | ~5.1s |
| Lettres manuscrites (XIXe) | ~6.5% | ~18.3% | ~6.8s |
| Votre carnet de courses | ~25% | ~40% | ~12s (et des larmes) |
Comparaison avec les outils existants :
- Tesseract 5 : CER > 20% sur du manuscrit (inutilisable)
- EasyOCR : ~15% CER (mieux, mais toujours médiocre)
- Transkribus (le roi du domaine) : ~2-5% CER, mais payant et cloud-only.
Leur avantage ? Leur fine-tuning sur des corpus francophones et historiques. Si vous travaillez sur des documents allemands ou anglais, bonne chance.
4. Limitations : l’IA ne remplacera pas (encore) votre paléographe
Les faiblesses techniques
- Généralisation médiocre : le modèle surfit sur les actes notariés. Donnez-lui un carnet de comptes du XIXe avec des abréviations perso, et il va inventer des mots.
- Pas de contexte long : contrairement à un humain, il ne "comprend" pas qu’un document est un testament ou un contrat de mariage. Dommage pour la désambiguïsation.
- Pas de multilingue : français seulement (et encore, surtout ancien français). L’anglais ? L’allemand ? "Maybe later™".
Les problèmes pratiques
- Format des images : si votre scan est mauvais (résolution < 300 DPI, ombres, pliures), le modèle s’effondre.
- Pas d’API propre : pour l’instant, c’est du code Python à exécuter localement. Pas de SaaS, pas de batch processing facile.
- Licence floue : leur modèle est-il open source ? Propriétaire ? "On verra plus tard."
5. Recherche et évolutions futures : vers une IA historienne ?
Ce qui pourrait améliorer les choses
- Des Transformers plus gros : un ViT-Large ou un Swin Transformer pourrait capturer mieux les ligatures complexes.
- Du self-supervised learning : entraîner sur des millions de pages non labellisées via des techniques comme MAE (Masked Autoencoders).
- Un module de raisonnement : intégrer un LLM léger (style Phi-3) pour comprendre le contexte du document ("Ah, c’est un acte de vente, donc ce mot bizarre est probablement ‘arpent’").
Les défis ouverts
- La diversité des écritures : comment généraliser à tous les styles sans un dataset impossible à constituer ?
- L’interprétation sémantique : déchiffrer ≠ comprendre. Une IA qui pourrait expliquer un acte notarial, ce serait le Graal.
- L’éthique : qui possède les transcriptions ? Qui a le droit de les utiliser ? (Spoiler : personne ne sait.)
En résumé : utile, mais pas magique
Généatique fait du bon boulot pour un cas d’usage très spécifique : les généalogistes et archivistes francophones. Leur modèle est meilleur que Tesseract, mais loin d’être universel.
Si vous voulez essayer :
- Pour des actes notariés clairs → ça peut sauver des heures.
- Pour votre journal intime illisible → passez votre chemin.
- Sur Linux → préparez-vous à bidouiller.
Et si vous voulez creuser comment une IA peut vraiment comprendre l’écriture ancienne, allez voir du côté des agents IA spécialisés en transcription ou des modèles comme Transkribus (même si c’est payant).
FAQ
[Généatique est-il open source ?] Non, leur modèle n’est pas open source pour l’instant. Ils proposent un binaire Linux et du code Python pour l’inférence, mais les poids du modèle restent propriétaires. À suivre pour une éventuelle libération (ou pas).
[Quel matériel pour faire tourner leur IA en local ?] Un CPU récent (Ryzen 7/9 ou Intel i7/i9) avec au moins 16 Go de RAM. Pas de support GPU officiel pour l’instant, donc les performances dépendent fortement de votre processeur. Sur un vieux laptop, attendez-vous à des temps d’attente… bibliques.
[Existe-t-il des alternatives gratuites pour l’OCR manuscrit ?] Oui, mais moins performantes :
- EasyOCR (Python, open source) : ~15% CER sur du manuscrit.
- Kraken (OCR pour documents historiques) : mieux pour l’anglais, moins pour le français.
- Transkribus (gratuit pour un usage limité) : le meilleur, mais cloud-only et avec des restrictions. Pour du sérieux, Généatique reste un bon compromis… si vous acceptez leurs limites.
🎓 Formation sur ce sujet
Construire des agents IA
5 leçons · 55 min · gratuit
Articles liés
Comment les LLMs comprennent le son sans même avoir d’oreilles
Les modèles de langage cachent des capacités audio insoupçonnées. Décryptage des architectures, benchmarks et limites de cette compétence inattendue.
L’IA comme colleur de timbres : pourquoi elle automatise vos tâches mais pas votre job
L’IA ne remplacera pas les ingénieurs ML, mais elle va s’occuper des 80% de boulot ingrat. Benchmarks, architectures et limites des outils "augmentés".
Pourquoi l'IA ne remplacera pas votre plombier (et c'est une bonne nouvelle)
Plongée technique dans les limites physiques des LLMs face aux métiers manuels, avec benchmarks, architectures hybrides et pistes de recherche.