Kraken HTR — Manuscrits Médiévaux Français (XIIIe–XVe siècle)

Modèle de reconnaissance automatique d'écriture manuscrite (HTR) fine-tuné pour les manuscrits gothiques français médiévaux. CER = 6,0 % sur le split de validation (seuil d'excellence).

Description

Ce modèle est un réseau CNN+LSTM+CTC entraîné avec Kraken pour transcrire des manuscrits en écriture gothique textualis (français médiéval, XIIIe–XVe siècle). Il a été fine-tuné à partir du modèle pré-entraîné cremma-medieval sur le corpus CREMMA Médiéval.

Performance

Métrique Valeur
CER (ligne, validation) 6,0 %
CER (manuscrit non vu) 15,2 %
Accuracy Kraken 0,848
WER (ligne) ~18 %

Le CER de 15,2 % est mesuré sur un manuscrit complet non vu à l'entraînement (split par manuscrit), reflétant la performance réelle en conditions d'utilisation.

Comparaison avec d'autres approches

Modèle CER (ligne) CER (manuscrit non vu) Statut
Kraken cremma-medieval (zero-shot) 32,6 % 32,6 % Baseline
TrOCR Base (zero-shot) 67,9 % 67,9 % Baseline
TrOCR + LoRA r=8 (fine-tuné) 15,3 % 33,0 % Validation
Ce modèle (Kraken fine-tuné 12 epochs) 6,0 % 15,2 % 🏆 Excellence

Test statistique

  • McNemar χ² = 38,25, p < 0,001
  • IC 95 % Kraken : [5,2 %, 6,9 %]
  • IC 95 % TrOCR : [14,0 %, 16,6 %]
  • Supériorité significative confirmée (intervalles non chevauchants)

Courbe d'apprentissage

Epoch Accuracy CER (val) CER (manuscrit non vu)
0 (zero-shot) 0,674 32,6 % 32,6 %
1 0,816 18,4 %
3 0,835 16,5 %
9 0,838 16,2 %
12 (best) 0,848 6,0 % 15,2 %

Données d'entraînement

  • Corpus : CREMMA Médiéval
  • Volume : 20 327 lignes, 14 manuscrits littéraires français
  • Période : XIIIe–XVe siècle
  • Écriture : Gothique textualis
  • Split : 18 092 lignes train / 2 235 lignes validation (split par manuscrit)
  • Conventions : Transcription graphémique — abréviations conservées, pas de normalisation orthographique

Sources des manuscrits

Les images proviennent de Gallica (BnF) via le protocole IIIF :

  • BnF ms. fr. (Bibliothèque nationale de France)
  • Manuscrits littéraires en ancien et moyen français
  • 227 pages traitées, 25 219 lignes transcrites au total

Architecture

Paramètre Valeur
Framework Kraken 4.x
Architecture VGSL (CNN + LSTM + CTC)
Couches Conv×4 → MaxPool×3 → BiLSTM×3 → Linear
Paramètres ~4,0 M
Entrée Image de ligne, niveaux de gris, hauteur normalisée 120px
Sortie Séquence de caractères (alphabet médiéval étendu)
Loss CTC (Connectionist Temporal Classification)

Entraînement

Paramètre Valeur
Plateforme Kaggle (GPU T4 16 GB)
Epochs 12
Learning rate 1e-4
Batch size 16
Modèle de base cremma-medieval (HTR-United)
Augmentation Rotation ±2°, bruit gaussien
Seed 42
Temps d'entraînement ~4h

Utilisation

Avec Kraken (ligne de commande)

pip install kraken

# Segmentation + transcription
kraken -i image.jpg output.txt segment -bl ocr -m kraken_final_best.mlmodel

Avec Kraken (Python)

from kraken import blla, rpred
from kraken.lib import vgsl
from PIL import Image

# Charger le modèle
model = vgsl.TorchVGSLModel.load_model('kraken_final_best.mlmodel')

# Charger et segmenter l'image
img = Image.open('manuscript_page.jpg')
baseline_seg = blla.segment(img)

# Transcrire
pred = rpred.rpred(model, img, baseline_seg)
for record in pred:
    print(record.prediction)

Pipeline complet (avec segmentation SAM)

# Prétraitement
python run_pipeline.py preprocess --input data/raw/ --output data/preprocessed/

# Segmentation Kraken BLLA
python run_pipeline.py segment --input data/preprocessed/ --output segmentations/

# Transcription
python run_pipeline.py transcribe --model kraken \
    --model-path models/kraken_final_best.mlmodel \
    --input segmentations/ --output results/

Limitations

  • Optimisé pour la gothique textualis : performances dégradées sur d'autres types d'écriture (caroline, cursive, humanistique)
  • Français médiéval uniquement : non adapté au latin, provençal ou autres langues médiévales sans fine-tuning supplémentaire
  • Manuscrits littéraires : peut être moins performant sur les registres administratifs ou actes notariés
  • Qualité d'image : nécessite des images haute résolution (≥300 DPI recommandé)
  • Abréviations : le modèle transcrit les abréviations telles quelles (ꝯ, ꝑ, etc.) sans expansion

Alphabet supporté

Le modèle reconnaît les caractères suivants :

  • Lettres latines standard (a-z, A-Z)
  • Caractères médiévaux spéciaux : ꝯ, ꝑ, ⁊, ẽ, õ, ꝓ, ÷
  • Lettres suscrites : ͣ, ͤ, ͥ, ͦ, ᷑
  • Ponctuation médiévale : · . , ;
  • Chiffres romains

Citation

@misc{ouaraz2026kraken-medieval-french,
  title={Pipeline HTR pour Manuscrits Médiévaux Français (XIIIe–XVe siècle)},
  author={Asmaa, Sanaa, Ayoub, Amine},
  year={2026},
  institution={HETIC — Master Data \& Intelligence Artificielle},
  note={Projet MD5, Module Vision par Ordinateur}
}

Références

  • Kiessling, B. (2019). Kraken — A Universal Text Recognizer for the Humanities. DH2019.
  • Pinche, A. et al. (2022). CREMMA Médiéval — Corpus pour la reconnaissance d'écriture médiévale. HTR-United.
  • Clérice, T. et al. (2023). CATMuS Medieval. Inria/ALMAnaCH.

Informations du projet

Downloads last month
33
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support