Skip to content
ModelListedExternal
Download

Trocr Catmus French 2026

Adaptateur LoRA spécialisant microsoft/trocr-base-handwritten sur la transcription de lignes de manuscrits médiévaux français (XIIIe s., gothique Textualis), entraîné sur le sous-ensemble français de CATMuS Medieval.

KindOtherBase modelmicrosoft/trocr-base-handwrittenVersionRevision b6cd046Bgrade

Model source

Kind
Other
File size
8.08 MB
Base model
microsoft/trocr-base-handwritten
Version
vRevision b6cd046
Updated
Oct 10, 2026
Downloads
23
Source
Hugging Face

Source description

TrOCR + LoRA — HTR pour manuscrits médiévaux français (CATMuS)

Adaptateur LoRA spécialisant microsoft/trocr-base-handwritten sur la transcription de lignes de manuscrits médiévaux français (XIIIe s., gothique Textualis), entraîné sur le sous-ensemble français de CATMuS Medieval.

Projet MD5 — Master Data/IA, HETIC (Vision par ordinateur & NLP).

Résultats (test scellé CATMuS FR complet, n=4135)

MétriqueValeurIC 95 % (bootstrap)
CER14,51 %[14,19 ; 14,85]
WER44,28 %—
Baseline (sans fine-tuning)CER 76,7 %—

Utilisation

from transformers import TrOCRProcessor, VisionEncoderDecoderModel
from peft import PeftModel
from PIL import Image
import torch

REPO = "FaridBenamara/trocr-catmus-french-2026"     # cet identifiant
BASE = "microsoft/trocr-base-handwritten"

processor = TrOCRProcessor.from_pretrained(REPO)
base = VisionEncoderDecoderModel.from_pretrained(BASE)
tok = processor.tokenizer
for cfg in (base.config, base.generation_config):
    cfg.decoder_start_token_id = tok.cls_token_id
    cfg.pad_token_id = tok.pad_token_id
    cfg.eos_token_id = tok.sep_token_id
base.config.vocab_size = base.config.decoder.vocab_size
model = PeftModel.from_pretrained(base, REPO).eval()

image = Image.open("ligne.png").convert("RGB")
pv = processor(images=[image], return_tensors="pt").pixel_values
ids = model.generate(pv, max_new_tokens=128)
print(processor.batch_decode(ids, skip_special_tokens=True)[0])

Entraînement

HyperparamètreValeur
Basemicrosoft/trocr-base-handwritten (ViT + décodeur)
LoRAr = 16, α = 32, dropout 0,05, cibles query/value/q_proj/v_proj
Params entraînés2 113 536 / 336 035 328 (0,63 %)
Optimlr 1e-4, warmup 0,05, 3 epochs, batch 16, bf16
Matériel1× A100 40 Go, ~50 min · seed 42

Convention semi-diplomatique (abréviations conservées, Unicode NFC). SHA-256 du train : 11a7b277d73e53c540aba23fdd2f7533ea7068f790e16e4699a5d69fcc87c26c.

Limitations & biais

Biais 13e–15e s. / écriture Textualis ; WER élevé (une lettre fausse invalide le mot) ; qualité page-entière dépendante de la segmentation amont ; évaluation sur un échantillon de 500 lignes ; erreurs résiduelles sur lettres visuellement proches (c/e, n/u). Usage recherche non commerciale.

Citation

@misc{trocr_catmus_french_2026,
  title  = {TrOCR + LoRA pour la transcription de manuscrits médiévaux français (CATMuS)},
  author = {Benamara, Farid and Megrad, Ouassim and Touat, Abdennour and Sellani, Khaled},
  year   = {2026},
  note   = {Master Data/IA, HETIC — Projet MD5},
  howpublished = {Hugging Face Hub}
}

Dépôt code : TrOcr_NLP_HETIC_Vit_Nlp. Corpus : CATMuS/medieval.

Sources

1 source
Hugging FacePrimaryVersion b6cd04630b2bf918e4d217b15d633787253d72cb
huggingface.co/FaridBenamara/trocr-catmus-french-2026/tree/b6cd04630b2bf918e4d217b15d633787253d72cb

Verified Oct 10

Model artifacts

1 artifact

adapter_model.safetensors

safetensors · 8.08 MB · SHA-256 64f1b2233416…5043 · Hugging Face

Download file

Source excerpts

3 excerpts

--- license: mit language: - fr library_name: peft base_model: microsoft/trocr-base-handwritten pipeline_tag: image-to-text tags: - htr - handwritten-text-recognition - trocr - lora - peft - vision-encoder-decoder - medieval - old-french - catmus - digital-humanities datasets: - CATMuS/medieval metrics: - cer - wer model-index: - name: trocr-catmus-french-2026 results: - task: type: image-to-text name: Handwritten Text Recognition dataset: name: CATMuS Medieval (French subset) type: CATMuS/medieval metrics: - type: cer value: 14.51 name: Character Error Rate (%) - type: wer value: 44.28 name: Word Error Rate (%) --- # TrOCR + LoRA — HTR pour manuscrits médiévaux français (CATMuS) Adaptateur **LoRA** spécialisant [`microsoft/trocr-base-handwritten`](https://huggingface.co/microsoft/trocr-base-handwritten) sur la transcription de **lignes** de manuscrits médiévaux **français** (XIIIᵉ s., gothique *Textualis*), entraîné sur le sous-ensemble français de **CATMuS Medieval**. Projet **MD5** — Master Data/IA, HETIC (Vision par ordinateur & NLP). ## Résultats (test scellé CATMuS FR **complet**, n=4135) | Métrique | Valeur | IC 95 % (bootstrap) | |---|---|---| | **CER** | **14,51 %** | [14,19 ; 14,85] | | WER | 44,28 % | — | | Baseline (sans fine-tuning) | CER 76,7 % | — | ## Utilisation ```python from transformers import TrOCRProcessor, VisionEncoderDecoderModel from peft import PeftModel from PIL import Image import torch REPO = "FaridBenamara/trocr-catmus-french-2026" # cet identifiant BASE = "microsoft/trocr-base-handwritten" processor = TrOCRProcessor.from_pretrained(REPO) base = VisionEncoderDecoderModel.from_pretrained(BASE) tok = processor.tokenizer for cfg in (base.config, base.generation_config): cfg.decoder_start_token_id = tok.cls_token_id cfg.pad_token_id = tok.pad_token_id cfg.eos_token_id = tok.sep_token_id base.config.vocab_size = base.config.decoder.vocab_size model = PeftModel.from_pretrained(base, REPO).eval() image = Image.open("ligne.png").convert("RGB") pv = processor(images=[image], return_tensors="pt").pixel_values ids = model.generate(pv, max_new_tokens=128) print(processor.batch_decode(ids, skip_special_tokens=True)[0]) ``` ## Entraînement | Hyperparamètre | Valeur | |---|---| | Base | `microsoft/trocr-base-handwritten` (ViT + décodeur) | | LoRA...

Source context: 23 downloads · 0 likes · Pipeline image-to-text · Library peft · Repo FaridBenamara/trocr-catmus-french-2026

Source context: 29 downloads · 0 likes · Pipeline image-to-text · Library peft · Repo FaridBenamara/trocr-catmus-french-2026