Spaces:
Sleeping
Sleeping
File size: 1,870 Bytes
563a0f0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Corpus de référence — anti-régression CER (Sprint A5)
Item M-14 de l'audit institutional-readiness-2026-05.
Ce dossier sert de **gardien anti-régression de performance OCR**.
Le workflow [`.github/workflows/perf_regression.yml`](../../../.github/workflows/perf_regression.yml)
le réutilise toutes les semaines (cron) pour vérifier que Tesseract +
Pero OCR ne dérivent pas sur des entrées canoniques.
## Philosophie
- **Synthétique** : les documents sont générés via Pillow à partir
de texte rendu en typographies courantes. Pas de manuscrit
authentique embarqué (raisons : licence, taille du repo, indépendance
vis-à-vis d'un fonds particulier).
- **Représentatif** : 3 strates couvertes (imprimé moderne propre,
imprimé ancien stylisé, cursive simulée).
- **Reproductible** : graine fixe (`seed=4242` dans `_generate.py`),
donc deux générations successives produisent des PNG bit-à-bit
identiques.
- **Tolérance large** : le seuil par défaut est `CER < 15 %` sur
Tesseract. Pas de finetuning à atteindre — on cherche juste à
détecter une **régression franche** (CER × 2 du jour au lendemain
signale qu'un PR a cassé un adapter ou la normalisation).
## Génération
```bash
python -m pytest tests/fixtures/reference_corpus/_generate.py
# (ou directement)
python tests/fixtures/reference_corpus/_generate.py
```
Le script (re)crée :
- `doc_<NN>.png` — image du document
- `doc_<NN>.gt.txt` — vérité terrain associée
## Limites assumées
- **Tesseract** : modèle `eng+fra` standard, OCR sur imprimé moderne
fonctionne ; sur cursive simulée, le CER attendu est ~30 % et
c'est le but (vérifie que le pipeline ne crashe pas).
- **Pas de paléographie réelle** : pour des benchmarks scientifiques
de qualité paléographique, utiliser un corpus HTR-United ou IIIF
via ``picarones import``.
|