OCR de documents manuscrits : une IA souveraine qui lit l'écriture à la main
Un modèle vision-langage à poids ouverts transcrit la page manuscrite, puis un modèle de texte range la transcription dans des champs. Copies d'apprenants, comptes rendus de chantier et formulaires papier sont traités sur un GPU dédié en France, au forfait.
Un OCR classique lit bien un texte imprimé, beaucoup moins bien une écriture cursive, des chiffres griffonnés ou une case cochée. Pour ces documents, nous utilisons une chaîne en deux temps. Un modèle vision-langage transcrit la page, puis un modèle de texte range la transcription dans un schéma fixe.
Ces documents contiennent souvent des données personnelles, parfois celles de mineurs. Ils passent donc par une route privée, sur un GPU dédié en France.
Les documents concernés
La chaîne vise les documents remplis à la main en grand nombre, qu'il faut ensuite exploiter dans un tableur ou un logiciel métier.
Copies et devoirs d'apprenants, pour la correction ou le suivi pédagogique.
Comptes rendus de chantier rédigés sur place.
Bons d'intervention remplis et signés chez le client.
Formulaires papier, comme des fiches d'inscription, des questionnaires ou des fiches d'inspection.
Les limites de l'OCR classique face au manuscrit
Un moteur d'OCR classique reconnaît des caractères à partir de formes apprises, surtout sur du texte imprimé. Le manuscrit sort de ce cadre.
Cursive : les lettres sont liées, et leur forme change d'une personne à l'autre, parfois d'une ligne à l'autre.
Chiffres : un 1 et un 7, un 4 et un 9 se confondent. Une erreur sur une note ou une quantité change le sens du document.
Cases cochées : une croix, une coche ou un trait qui déborde doivent devenir une valeur oui ou non, ce qui sort du périmètre d'un OCR de caractères.
Il en sort souvent un texte brut où les valeurs ont perdu le libellé imprimé qui leur donnait un sens.
Transcrire, puis structurer
La chaîne sépare deux tâches que l'on a tendance à confier au même modèle.
Transcription par un modèle vision-langage : un VLM à poids ouverts, par exemple Qwen2.5-VL 7B, lit l'image et produit du texte brut. Nous lui demandons de garder chaque libellé imprimé à côté de la valeur manuscrite (« Date d'intervention : 12/03 », « Conforme : coché »), pour que la valeur garde son sens.
Structuration par un modèle de texte : un LLM reçoit cette transcription et la range dans un JSON à schéma fermé, dont les champs, les types et les valeurs autorisées sont connus d'avance.
Mieux vaut ne jamais demander un JSON strict au VLM. Sur des sorties longues, il saute des champs ou produit un JSON invalide. Le texte brut est plus robuste, et la mise en forme revient au modèle de texte.
Le cas des formulaires pré-imprimés
Quand le formulaire est fixe, la liste des champs est connue à l'avance. Nous la fournissons au modèle de structuration sous forme de profil canonique, avec le nom, le type et les valeurs possibles de chaque champ.
La sortie devient alors déterministe. Chaque champ du profil apparaît dans le JSON, et une case restée vide est marquée comme vide au lieu d'être omise ou devinée. Deux documents du même formulaire donnent des sorties comparables, prêtes à entrer dans un tableur ou un logiciel métier.
La correction assistée
Aucune chaîne ne lit parfaitement toutes les écritures. La relecture humaine reste nécessaire, et elle doit rester rapide.Page scannéeZone recadrée et agrandievaleur extraite12/03Relecture humaineConfirmerCorriger
Pour chaque champ à vérifier, l'outil de relecture affiche la zone de la page recadrée et agrandie à côté de la valeur extraite. La personne compare, corrige si besoin et confirme, sans chercher la valeur sur la page entière.
Un traitement en file d'attente
Les documents manuscrits arrivent par paquets, comme une pile de copies ou les bons de la semaine, et personne n'attend la réponse devant l'écran. Le traitement passe donc par une file d'attente et des lots.
Le débit se dimensionne sur le volume à traiter dans la journée. La latence d'une page compte peu, ce qui permet d'occuper le GPU de façon régulière et d'absorber les pics sans surdimensionner la machine.
Les réglages à vérifier avant de changer de modèle
Changer de VLM ou de version se fait par configuration, comme pour tout LLM privé hébergé en France. Trois réglages pèsent pourtant sur la qualité et méritent une vérification à chaque changement.
Résolution de l'image envoyée : trop basse, l'écriture devient illisible pour le modèle. Trop haute, la page consomme beaucoup de tokens et de mémoire.
Taille de contexte du serveur d'inférence : une page riche en tokens d'image peut dépasser la fenêtre configurée et se retrouver tronquée.
Mode « thinking » : sur les modèles qui en ont un, il vaut mieux le couper pour la transcription. Il allonge la réponse et le temps de traitement, pour une tâche qui n'en a pas besoin.
Données personnelles et route privée
Des copies d'élèves, souvent mineurs, des comptes rendus nominatifs ou des formulaires remplis par des clients contiennent des données personnelles. Ces documents passent par la route privée de notre passerelle IA souveraine, vers un modèle interne sur un GPU dédié, le socle de notre IA hébergée en France.
Cette route est fail-closed. Si le modèle interne est indisponible, le traitement s'arrête sur une erreur explicite et aucune page ne bascule vers le cloud.
Vous restez responsable de traitement. Pour des données de mineurs ou des données sensibles, une analyse d'impact (AIPD, article 35 du RGPD) sera probablement exigée. Le guide technique de Private GPT détaille la route privée et les recommandations de mise en œuvre.
Un coût au forfait plutôt qu'au token
L'OCR manuscrit combine un volume élevé et un faible besoin d'intelligence, le profil type d'une tâche à placer au forfait. Au token, chaque page ajoute des tokens d'image et de texte à la facture.
Sur un GPU dédié, l'Instance IA démarre à 160 € HT/mois. Ce montant ne dépend pas du nombre de pages tant que la machine absorbe la charge (au-delà, le palier suivant fait l'objet d'un devis).
Pendant le prototype, nous mesurons le nombre de tokens et de pages par document sur vos propres fichiers, pour chiffrer le coût réel. À faible volume, une API facturée au token peut rester moins chère, et ce relevé permet de le vérifier.
Mesurer la qualité sur vos propres documents
Nous ne promettons aucun taux de précision. La qualité dépend de l'écriture, du scan, du formulaire et du modèle retenu.
Elle se mesure sur un échantillon réel de vos documents, champ par champ, en comparant la sortie à une saisie de référence. Ce protocole donne un chiffre propre à votre cas, puis sert de test de non-régression à chaque changement de modèle ou de réglage.
Questions fréquentes
Un OCR classique suffit-il pour des documents manuscrits ?
Rarement. Il reconnaît bien l'imprimé, mais la cursive, les chiffres ambigus et les cases cochées lui posent problème. Une transcription par un modèle vision-langage, suivie d'une structuration par un modèle de texte, convient mieux à ces documents.
Pourquoi ne pas demander directement un JSON au modèle vision-langage ?
Sur des sorties longues, un VLM à qui l'on impose un JSON strict saute des champs ou produit un JSON invalide. Il transcrit donc en texte brut en gardant les libellés imprimés, puis un modèle de texte produit le JSON à schéma fermé.
Quelle précision peut-on attendre ?
Aucun taux n'est garanti. La précision dépend de l'écriture, du scan et du formulaire, et elle se mesure sur un échantillon réel de vos documents pendant le prototype. Une relecture humaine sur zone agrandie reste prévue pour les champs douteux.
Les copies d'élèves partent-elles dans un cloud ?
Non. Elles passent par la route privée de la passerelle, vers un modèle interne sur un GPU dédié en France, et cette route ne bascule jamais vers le cloud. Une analyse d'impact (AIPD) sera probablement exigée côté responsable de traitement.
Combien coûte l'OCR manuscrit sur une IA souveraine ?
Le traitement tourne sur une Instance IA au forfait, à partir de 160 € HT/mois, tant que la machine absorbe le volume. Le nombre de tokens et de pages par document se mesure pendant le prototype pour chiffrer le coût réel. À faible volume, une API facturée au token peut rester moins chère.
Faut-il traiter les documents en temps réel ?
Rarement. Les documents manuscrits arrivent par paquets, donc une file d'attente et des lots suffisent. Le débit se dimensionne sur le volume de la journée, ce qui évite de surdimensionner le GPU.