Optical Character Recognition (OCR)
La reconnaissance optique de caractères (OCR) convertit le texte des numérisations et des photos en caractères lisibles par une machine. Découvre ses étapes de détection et de reconnaissance, avec du code.
La reconnaissance optique de caractères (OCR) consiste à convertir le texte présent dans des images — pages numérisées, photos, captures d'écran et trames vidéo — en caractères lisibles par une machine, que les logiciels peuvent rechercher, modifier et analyser. Les premiers systèmes faisaient correspondre chaque caractère à des modèles enregistrés de polices connues. Les systèmes OCR modernes utilisent l'apprentissage profond pour repérer le texte n'importe où dans une image et lire d'un seul coup des mots et des lignes entiers, ce qui leur permet de gérer les polices variées, les faibles résolutions, la perspective et les arrière-plans encombrés. L'OCR couvre à la fois le texte des documents, comme les factures et les livres, et le texte dans les scènes, comme les panneaux, les étiquettes de produits et les plaques d'immatriculation.
Fonctionnement de l'OCR#
La plupart des systèmes OCR exécutent deux modèles à la suite :
- Détection de texte : un détecteur repère les régions de l'image qui contiennent du texte et produit une boîte ou un polygone pour chaque mot ou ligne. Les détecteurs de texte dans les scènes comme EAST, CRAFT et DBNet prédisent les régions de texte pixel par pixel, ce qui leur permet de gérer le texte courbe et orienté.
- Reconnaissance de texte : chaque région est recadrée, redressée et redimensionnée à une hauteur fixe, puis un système de reconnaissance lit ses caractères. L'architecture CRNN transmet le recadrage à un CNN, parcourt les colonnes de caractéristiques obtenues de gauche à droite avec un LSTM bidirectionnel, puis les décode avec la classification temporelle connexionniste (CTC), qui aligne les prédictions par colonne sur une chaîne de caractères sans indiquer le début de chaque caractère. Les systèmes de reconnaissance Transformer, comme TrOCR de Microsoft, génèrent plutôt les caractères avec un décodeur de texte.
Le prétraitement, comme la binarisation et le redressement, reste utile pour les numérisations de mauvaise qualité. Le post-traitement vérifie les résultats à l'aide de dictionnaires, de formats attendus ou d'un modèle de langage. EasyOCR regroupe les deux étapes — un détecteur CRAFT et un système de reconnaissance CRNN — pour plus de 80 langues :
import easyocr
# Load EasyOCR's CRAFT text detector and English CRNN text recognizer
reader = easyocr.Reader(["en"])
# Detect every text region in the photo, then read the characters inside it
results = reader.readtext("https://ultralytics.com/images/bus.jpg")
# Each result holds a 4-corner box, the recognized string, and a confidence score
for box, text, confidence in results:
if confidence > 0.5:
print(f"{text}: {confidence:.2f}")Il affiche cero: 0.95 et emisiones: 0.99, les mots inscrits sur le côté du bus. Le détecteur repère aussi le panneau de destination matriciel du bus et les petits caractères sur ses vitres, mais le système de reconnaissance renvoie des chaînes illisibles avec des scores de confiance inférieurs à 0,5 ; le seuil les élimine donc.
Les documents nécessitent une étape de mise en page avant la reconnaissance. Un modèle de mise en page divise la page en blocs, chaque type de bloc est traité différemment, puis les résultats sont réassemblés dans l'ordre de lecture ; un article sur deux colonnes se lit ainsi colonne par colonne :
La précision se mesure à l'aide du taux d'erreur au caractère (CER), soit le nombre d'insertions, de suppressions et de substitutions nécessaires pour transformer le résultat en texte correct, divisé par la longueur du texte correct, ainsi que du taux d'erreur au mot (WER), calculé de la même manière à partir des mots.
Moteurs et modèles OCR#
Le moteur open source Tesseract a vu le jour chez Hewlett-Packard dans les années 1980, a été publié en open source en 2005 et a été développé avec le soutien de Google de 2006 à 2018 ; la version 4 a ajouté un moteur de reconnaissance reposant sur un réseau LSTM. Les services cloud, tels que Google Cloud Vision et Amazon Textract, ajoutent l'analyse de la mise en page ainsi que l'extraction des tableaux et des formulaires. Les modèles de vision et de langage lisent de plus en plus les documents de bout en bout : olmOCR, de l'Allen Institute for AI, convertit les pages PDF en texte propre à l'aide d'un modèle de vision et de langage affiné, et les modèles de documents sans OCR répondent aux questions sur une page sans produire au préalable une transcription distincte.
OCR et termes connexes#
- Reconnaissance de l’écriture manuscrite : également appelée reconnaissance de texte manuscrit (HTR) ou reconnaissance intelligente de caractères (ICR), elle lit l’écriture manuscrite, où les formes des lettres varient bien davantage qu’en caractères imprimés et où les caractères sont souvent liés.
- Détection d'objets : un détecteur peut repérer un panneau STOP en tant qu'objet, tandis que l'OCR lit les lettres S-T-O-P qui y sont inscrites. La propre étape de détection de l'OCR localise le texte sans le lire.
- Classification d'images : attribue une seule étiquette à une image entière, comme « facture », tandis que l'OCR extrait la séquence de caractères qu'elle contient.
- Traitement intelligent des documents : enrichit l'OCR par l'analyse de la mise en page et la reconnaissance d'entités nommées (NER) pour extraire des champs précis — date, fournisseur et montant total d'une facture, par exemple — vers les systèmes métier.
Applications concrètes#
- Reconnaissance des plaques d'immatriculation : les systèmes de péage, de stationnement et de contrôle routier détectent chaque plaque, puis la lisent. Un modèle YOLO26 entraîné sur des boîtes de plaques prend en charge l'étape de détection, et sa variante à boîtes englobantes orientées ajuste des boîtes tournées aux plaques inclinées afin que chaque recadrage puisse être redressé avant la reconnaissance.
- Numérisation de documents : les banques, les assureurs et les gouvernements transforment les formulaires, les reçus et les archives en texte consultable, tandis que les bibliothèques numérisent des livres imprimés à grande échelle.
- Accessibilité et traduction : les lecteurs d’écran et les applications de traduction par caméra lisent les panneaux, les menus et les étiquettes à voix haute, ou superposent une traduction à l’image en direct.
- Fabrication et logistique : les caméras lisent les codes de lot, les dates de péremption et les numéros de série sur les lignes de production. Les codes des conteneurs maritimes suivent la norme ISO 6346, dont les 11 caractères se terminent par un chiffre de contrôle calculé à partir des 10 premiers, ce qui permet à un lecteur de rejeter automatiquement la plupart des codes mal lus.










