Reconnaissance de Noms Manuscrits
Benchmark OCR sur 66K images. TrOCR (ViT+GPT-2, 334M) meilleur : CER=0,0481, 80% de correspondance exacte. CRNN-ResNet34 : CER=0,0502. Optimisations AMP + torch.compile + accumulation de gradients.
66K images d'écriture manuscrite, 64×256px, vocabulaire de 44 caractères
Variantes CRNN (CNN+BiLSTM+CTC) vs TrOCR (ViT+GPT2) avec AMP + torch.compile
Comparaison multi-modèles OCR pour la reconnaissance de noms manuscrits non contraints.
Jeu de données
- ▸66K entraînement / 8,2K validation / 41K test (niveaux de gris 64×256)
- ▸Vocabulaire de 44 caractères (alphanumérique + caractères spéciaux)
- ▸Sous-ensemble de 20% utilisé pour les expériences
Comparaison des Architectures
| Modèle | CER ↓ | Correspondance Exacte | Vitesse |
|---|---|---|---|
| CRNN-EfficientNet | 0,1235 | — | Plus rapide |
| CRNN-ResNet18 | — | — | ~105s/ép. |
| CRNN-ResNet34 | 0,0502 | — | ~251s/ép. |
| TrOCR | 0,0481 | 80% | 34,9 min total |
CRNN (CNN + BiLSTM + CTC)
Backbone ResNet34 → BiLSTM(2×256) → Perte CTC
→ Décodage glouton / Beam search (4 faisceaux)
TrOCR (ViT + GPT-2, 334M paramètres) Fine-tuné via HuggingFace Trainer, 10 époques, sous-ensemble 20%.
Optimisations d'Entraînement
| Technique | Impact |
|---|---|
| Précision mixte (AMP) | 2× accélération, -50% mémoire |
| torch.compile | +30% accélération |
| Accumulation de gradients (4 étapes) | -75% mémoire de batch effective |
| Cache d'images (memmap 1 Go) | 3× vitesse de chargement |
CER vs Correspondance Exacte CER=0,0481 traduit par 80% de précision de correspondance exacte — le nom complet doit correspondre caractère par caractère. Même un seul caractère erroné compte comme un échec, raison pour laquelle la correspondance exacte est bien inférieure à ce que suggère le CER.