La reconnaissance optique de caractères (OCR) transforme les images de texte (scans, photos de smartphone, PDF) en chaînes de caractères lisibles par machine et, de plus en plus, en données structurées. L'OCR moderne est un pipeline qui nettoie une image, trouve du texte, le lit et exporte des métadonnées riches afin que les systèmes en aval puissent rechercher, indexer ou extraire des champs. Deux normes de sortie largement utilisées sont hOCR, un microformat HTML pour le texte et la mise en page, et ALTO XML, un schéma orienté bibliothèque/archives ; tous deux préservent les positions, l'ordre de lecture et d'autres indices de mise en page et sont pris en charge par des moteurs populaires comme Tesseract.
Prétraitement. La qualité de l'OCR commence par le nettoyage de l'image : conversion en niveaux de gris, débruitage, seuillage (binarisation) et redressement. Les tutoriels canoniques d'OpenCV couvrent le seuillage global, adaptatif et d'Otsu — des incontournables pour les documents avec un éclairage non uniforme ou des histogrammes bimodaux. Lorsque l'éclairage varie au sein d'une page (pensez aux photos de téléphone), les méthodes adaptatives surpassent souvent un seuil global unique ; Otsu choisit automatiquement un seuil en analysant l'histogramme. La correction de l'inclinaison est tout aussi importante : le redressement basé sur Hough (Transformée de Hough) associé à la binarisation d'Otsu est une recette courante et efficace dans les pipelines de prétraitement de production.
Détection vs. reconnaissance. L'OCR est généralement divisé en détection de texte (où se trouve le texte ?) et reconnaissance de texte (que dit-il ?). Dans les scènes naturelles et de nombreux scans, les détecteurs entièrement convolutifs comme EAST prédisent efficacement des quadrilatères au niveau du mot ou de la ligne sans étapes de proposition lourdes et sont implémentés dans des boîtes à outils courantes (par exemple, le tutoriel de détection de texte d'OpenCV). Sur les pages complexes (journaux, formulaires, livres), la segmentation des lignes/régions et l'inférence de l'ordre de lecture sont importantes :Kraken implémente la segmentation traditionnelle de zones/lignes et la segmentation neuronale de ligne de base, avec un support explicite pour différents scripts et directions (LTR/RTL/vertical).
Modèles de reconnaissance. Le classique cheval de bataille open-source Tesseract (open-sourcé par Google, avec des racines chez HP) a évolué d'un classifieur de caractères en un reconnaisseur de séquence basé sur LSTM et peut émettre des PDF consultables, des sorties compatibles hOCR/ALTO, et plus encore depuis la CLI. Les reconnaisseurs modernes s'appuient sur la modélisation de séquence sans caractères pré-segmentés. La classification temporelle connexionniste (CTC) reste fondamentale, apprenant les alignements entre les séquences de caractéristiques d'entrée et les chaînes d'étiquettes de sortie ; elle est largement utilisée dans les pipelines d'écriture manuscrite et de texte de scène.
Ces dernières années, les Transformers ont remodelé l'OCR. TrOCR utilise un encodeur Vision Transformer plus un décodeur Text Transformer, entraîné sur de grands corpus synthétiques puis affiné sur des données réelles, avec de solides performances sur les benchmarks de texte imprimé, manuscrit et de scène (voir aussi la documentation de Hugging Face). En parallèle, certains systèmes contournent l'OCR pour la compréhension en aval : Donut (Document Understanding Transformer) est un encodeur-décodeur sans OCR qui produit directement des réponses structurées (comme du JSON clé-valeur) à partir d'images de documents (repo, carte de modèle), évitant l'accumulation d'erreurs lorsqu'une étape OCR distincte alimente un système d'IE.
Si vous voulez une lecture de texte clés en main sur de nombreux scripts, EasyOCR offre une API simple avec plus de 80 modèles linguistiques, renvoyant des boîtes, du texte et des confiances — pratique pour les prototypes et les scripts non latins. Pour les documents historiques, Kraken brille par sa segmentation de ligne de base et son ordre de lecture sensible au script ; pour un entraînement flexible au niveau de la ligne, Calamari s'appuie sur la lignée d'Ocropy (Ocropy) avec des reconnaisseurs (multi-)LSTM+CTC et une CLI pour affiner des modèles personnalisés.
La généralisation dépend des données. Pour l'écriture manuscrite, la base de données d'écriture manuscrite IAM fournit des phrases en anglais de divers scripteurs pour l'entraînement et l'évaluation ; c'est un ensemble de référence de longue date pour la reconnaissance de lignes et de mots. Pour le texte de scène, COCO-Text a superposé des annotations étendues sur MS-COCO, avec des étiquettes pour l'imprimé/manuscrit, lisible/illisible, le script et les transcriptions complètes (voir aussi la page originale du projet). Le domaine s'appuie également fortement sur le pré-entraînement synthétique : SynthText in the Wild rend le texte dans des photographies avec une géométrie et un éclairage réalistes, fournissant d'énormes volumes de données pour pré-entraîner les détecteurs et les reconnaisseurs (référence code et données).
Les compétitions sous l'égide de la lecture robuste d'ICDAR maintiennent l'évaluation sur le terrain. Les tâches récentes mettent l'accent sur la détection/lecture de bout en bout et incluent la liaison de mots en phrases, avec le code officiel rapportant précision/rappel/F-score, l'intersection sur l'union (IoU) et les métriques de distance d'édition au niveau du caractère — reflétant ce que les praticiens devraient suivre.
L'OCR se termine rarement par du texte brut. Les archives et les bibliothèques numériques préfèrent ALTO XML car il encode la mise en page physique (blocs/lignes/mots avec coordonnées) ainsi que le contenu, et il se marie bien avec l'empaquetage METS. Le microformat hOCR , en revanche, intègre la même idée dans HTML/CSS en utilisant des classes comme ocr_line et ocrx_word, ce qui facilite l'affichage, la modification et la transformation avec des outils web. Tesseract expose les deux — par exemple, en générant du hOCR ou des PDF consultables directement depuis la CLI (guide de sortie PDF) ; les wrappers Python comme pytesseract ajoutent de la commodité. Il existe des convertisseurs pour traduire entre hOCR et ALTO lorsque les dépôts ont des normes d'ingestion fixes — voir cette liste organisée d' outils de format de fichier OCR.
La tendance la plus forte est la convergence : la détection, la reconnaissance, la modélisation du langage et même le décodage spécifique à la tâche fusionnent dans des piles de Transformers unifiées. Le pré-entraînement sur de grands corpus synthétiques reste un multiplicateur de force. Les modèles sans OCR seront en concurrence agressive partout où la cible est des sorties structurées plutôt que des transcriptions littérales. Attendez-vous également à des déploiements hybrides : un détecteur léger plus un reconnaisseur de style TrOCR pour le texte long, et un modèle de style Donut pour les formulaires et les reçus.
Tesseract (GitHub) · Documentation de Tesseract · Spécification hOCR · Contexte ALTO · Détecteur EAST · Détection de texte OpenCV · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · Écriture manuscrite IAM · Outils de format de fichier OCR · EasyOCR
La reconnaissance optique de caractères (OCR) est une technologie utilisée pour convertir différents types de documents, tels que des documents papier numérisés, des fichiers PDF ou des images capturées par un appareil photo numérique, en données modifiables et recherchables.
L'OCR fonctionne en numérisant une image ou un document d'entrée, en segmentant l'image en caractères individuels, et en comparant chaque caractère avec une base de données de formes de caractères en utilisant la reconnaissance de formes ou la reconnaissance de caractéristiques.
L'OCR est utilisé dans une variété de secteurs et d'applications, y compris la numérisation de documents imprimés, l'activation des services de texte en parole, l'automatisation des processus de saisie de données, et l'aide aux utilisateurs malvoyants pour mieux interagir avec le texte.
Bien que des progrès importants aient été faits dans la technologie OCR, elle n'est pas infaillible. La précision peut varier en fonction de la qualité du document original et des spécificités du logiciel OCR utilisé.
Bien que l'OCR soit principalement conçu pour le texte imprimé, certains systèmes OCR avancés sont également capables de reconnaître une écriture manuelle claire et cohérente. Cependant, la reconnaissance de l'écriture manuelle est généralement moins précise en raison de la grande variation des styles d'écriture individuels.
Oui, de nombreux systèmes logiciels OCR peuvent reconnaître plusieurs langues. Cependant, il est important de s'assurer que la langue spécifique est prise en charge par le logiciel que vous utilisez.
OCR signifie Optical Character Recognition et est utilisé pour reconnaître le texte imprimé, tandis que ICR, ou Intelligent Character Recognition, est plus avancé et est utilisé pour reconnaître le texte écrit à la main.
L'OCR fonctionne mieux avec des polices claires et faciles à lire et des tailles de texte standard. Bien qu'il puisse fonctionner avec différentes polices et tailles, la précision a tendance à diminuer lorsqu'on traite des polices inhabituelles ou des tailles de texte très petites.
L'OCR peut avoir du mal avec les documents de faible résolution, les polices complexes, les textes mal imprimés, l'écriture manuelle, et les documents avec des arrière-plans qui interfèrent avec le texte. De plus, bien qu'il puisse fonctionner avec de nombreuses langues, il ne couvre peut-être pas parfaitement toutes les langues.
Oui, l'OCR peut numériser du texte en couleur et des arrière-plans en couleur, bien qu'il soit généralement plus efficace avec des combinaisons de couleurs à contraste élevé, comme le texte noir sur un fond blanc. La précision peut diminuer lorsque les couleurs du texte et de l'arrière-plan manquent de contraste suffisant.
Le format d'image MAT, communément associé à MATLAB, un langage de haut niveau et un environnement interactif développé par MathWorks, n'est pas un format d'image conventionnel comme JPEG ou PNG. Il s'agit plutôt d'un format de fichier permettant de stocker des matrices, des variables et d'autres types de données généralement utilisés dans MATLAB. Le format MAT est une abréviation de MATLAB MAT-file. Ce format de fichier est essentiel pour les utilisateurs de MATLAB car il permet de stocker et de gérer les données de session, qui peuvent inclure des variables, des fonctions, des tableaux et même des images dans un format qui peut être facilement rechargé dans l'espace de travail MATLAB pour une analyse ou un traitement ultérieur.
Les fichiers MAT sont des conteneurs de données binaires pouvant contenir plusieurs variables, notamment des tableaux multidimensionnels et des données scalaires. En ce qui concerne les images, MATLAB les traite comme des matrices avec chaque valeur de pixel stockée comme un élément de la matrice. Pour les images en niveaux de gris, il s'agit d'une matrice bidimensionnelle, tandis que pour les images en couleur, il s'agit d'une matrice tridimensionnelle avec des couches séparées pour les composantes de couleur rouge, verte et bleue. Le format MAT est particulièrement utile pour stocker de telles données d'image car il préserve la précision numérique et la structure exactes des données, ce qui est crucial pour les applications scientifiques et d'ingénierie.
Le format de fichier MAT a évolué au fil du temps, différentes versions étant publiées au fur et à mesure que MATLAB a été mis à jour. Les versions les plus courantes sont les versions 4, 5 et 7 du fichier MAT, la version 7.3 étant la dernière à ma connaissance en 2023. Chaque version a introduit des améliorations en termes de capacité de données, de compression et de compatibilité avec le HDF5 (Hierarchical Data Format version 5), qui est un modèle de données, une bibliothèque et un format de fichier largement utilisés pour stocker et gérer des données complexes.
La version 4 du fichier MAT est le format le plus simple et le plus ancien, qui ne prend pas en charge la compression des données ou les structures hiérarchiques complexes. Il est principalement utilisé pour la compatibilité avec les anciennes versions de MATLAB. La version 5 est un format plus avancé qui a introduit des fonctionnalités telles que la compression des données, l'encodage de caractères Unicode et la prise en charge des nombres et des objets complexes. La version 7 a ajouté d'autres améliorations, notamment une compression améliorée et la possibilité de stocker des tableaux plus volumineux. La version 7.3 s'intègre entièrement à la norme HDF5, permettant aux fichiers MAT d'exploiter les fonctionnalités avancées de HDF5, telles qu'un stockage de données plus volumineux et une organisation de données plus complexe.
Lors du traitement de fichiers MAT, en particulier pour les données d'image, il est important de comprendre comment MATLAB gère les images. MATLAB représente les images sous forme de tableaux de nombres, chaque nombre correspondant à l'intensité d'un pixel dans les images en niveaux de gris ou au code couleur dans les images RVB. Par exemple, une image en niveaux de gris 8 bits est stockée sous forme de matrice avec des valeurs allant de 0 à 255, où 0 représente le noir, 255 représente le blanc et les valeurs intermédiaires représentent des nuances de gris. Dans le cas des images en couleur, MATLAB utilise un tableau tridimensionnel où les deux premières dimensions correspondent aux positions des pixels et la troisième dimension correspond aux canaux de couleur.
Pour créer un fichier MAT dans MATLAB, on peut utiliser la fonction « save ». Cette fonction permet aux utilisateurs de spécifier le nom du fichier et les variables qu'ils souhaitent enregistrer. Par exemple, pour enregistrer une matrice d'image nommée « img » dans un fichier MAT nommé « imageData.mat », il faudrait exécuter la commande « save('imageData.mat', 'img') ». Cette commande créerait un fichier MAT contenant les données d'image qui peuvent être rechargées dans MATLAB ultérieurement à l'aide de la fonction « load ».
Le chargement d'un fichier MAT est simple dans MATLAB. La fonction « load » est utilisée pour lire les données du fichier et les importer dans l'espace de travail MATLAB. Par exemple, l'exécution de « load('imageData.mat') » chargerait le contenu de « imageData.mat » dans l'espace de travail, permettant à l'utilisateur d'accéder aux données d'image stockées et de les manipuler. La commande « whos » peut être utilisée après le chargement pour afficher des informations sur les variables qui ont été chargées, notamment leur taille, leur forme et leur type de données.
L'un des principaux avantages du format MAT est sa capacité à stocker des données de manière compacte et efficace. Lors de l'enregistrement de données dans un fichier MAT, MATLAB peut appliquer une compression pour réduire la taille du fichier. Ceci est particulièrement utile pour les données d'image, qui peuvent être assez volumineuses, en particulier lorsqu'il s'agit d'images haute résolution ou de vastes ensembles de données d'image. La compression utilisée dans les fichiers MAT est sans perte, ce qui signifie que lorsque les données sont rechargées dans MATLAB, elles sont identiques aux données d'origine sans perte de précision ou de qualité.
Les fichiers MAT prennent également en charge le stockage de métadonnées, qui peuvent inclure des informations sur l'origine des données, la date de leur création, la version de MATLAB utilisée et tout autre détail pertinent. Ces métadonnées peuvent être extrêmement précieuses lors du partage de données avec d'autres ou lors de l'archivage de données pour une utilisation future, car elles fournissent un contexte et garantissent que les données peuvent être interprétées et reproduites avec précision.
Outre les tableaux numériques et les données d'image, les fichiers MAT peuvent stocker une variété d'autres types de données, tels que des structures, des tableaux de cellules, des tables et des objets. Cette flexibilité fait des fichiers MAT un outil polyvalent pour les utilisateurs de MATLAB, car ils peuvent encapsuler une large gamme de types de données et de structures dans un seul fichier. Ceci est particulièrement utile pour les projets complexes impliquant plusieurs types de données, car toutes les données pertinentes peuvent être enregistrées de manière cohérente et organisée.
Pour les utilisateurs qui ont besoin d'interagir avec des fichiers MAT en dehors de MATLAB, MathWorks fournit la bibliothèque d'E/S de fichiers MAT, qui permet aux programmes écrits en C, C++ et Fortran de lire et d'écrire des fichiers MAT. Cette bibliothèque est utile pour intégrer des données MATLAB à d'autres applications ou pour développer des logiciels personnalisés qui doivent accéder aux données des fichiers MAT. De plus, des bibliothèques et des outils tiers sont disponibles pour d'autres langages de programmation, tels que Python, permettant à une plus large gamme d'applications de fonctionner avec les fichiers MAT.
L'intégration des fichiers MAT à la norme HDF5 dans la version 7.3 a considérablement étendu les capacités du format. HDF5 est conçu pour stocker et organiser de grandes quantités de données, et en adoptant cette norme, les fichiers MAT peuvent désormais gérer des ensembles de données beaucoup plus volumineux qu'auparavant. Ceci est particulièrement important pour des domaines tels que l'apprentissage automatique, l'exploration de données et le calcul haute performance, où de gros volumes de données sont courants. L'intégration HDF5 signifie également que les fichiers MAT sont accessibles à l'aide d'outils compatibles HDF5, améliorant ainsi l'interopérabilité avec d'autres systèmes et logiciels.
Malgré les nombreux avantages du format MAT, il y a quelques considérations à garder à l'esprit. L'une est la question de la compatibilité des versions. Au fur et à mesure que MATLAB a évolué, le format de fichier MAT a également évolué, et les fichiers enregistrés dans les nouvelles versions peuvent ne pas être compatibles avec les anciennes versions de MATLAB. Les utilisateurs doivent connaître la version de MATLAB qu'ils utilisent et la version du fichier MAT qu'ils essaient de charger. MATLAB fournit des fonctions pour vérifier et spécifier la version des fichiers MAT lors de l'enregistrement, ce qui peut aider à maintenir la compatibilité entre les différentes versions de MATLAB.
Une autre considération est la nature propriétaire du format MAT. Bien qu'il soit bien documenté et pris en charge par MathWorks, il ne s'agit pas d'une norme ouverte comme certains autres formats de données. Cela peut poser des problèmes lors du partage de données avec des utilisateurs qui n'ont pas accès à MATLAB ou à un logiciel compatible. Cependant, l'intégration avec HDF5 a atténué ce problème dans une certaine mesure, car HDF5 est une norme ouverte et de nombreux outils sont disponibles pour travailler avec les fichiers HDF5.
En conclusion, le format d'image MAT est un moyen puissant et flexible de stocker des données d'image et d'autres variables dans MATLAB. Sa capacité à préserver la précision numérique, à prendre en charge une large gamme de types de données et à s'intégrer à la norme HDF5 en fait un outil précieux pour les utilisateurs de MATLAB, en particulier ceux qui travaillent dans les domaines scientifiques et d'ingénierie. Bien qu'il existe certaines considérations concernant la compatibilité des versions et la nature propriétaire du format, les avantages de l'utilisation des fichiers MAT pour le stockage et l'échange de données sont importants. Au fur et à mesure que MATLAB continue d'évolu
Ce convertisseur fonctionne entièrement dans votre navigateur. Lorsque vous sélectionnez un fichier, il est lu en mémoire et converti dans le format sélectionné. Vous pouvez ensuite télécharger le fichier converti.
Les conversions commencent instantanément, et la plupart des fichiers sont convertis en moins d'une seconde. Les fichiers plus volumineux peuvent prendre plus de temps.
Vos fichiers ne sont jamais téléversés vers nos serveurs. Ils sont convertis dans votre navigateur, puis le fichier converti est téléchargé. Nous ne voyons jamais vos fichiers.
Nous prenons en charge la conversion entre tous les formats d'image, y compris JPEG, PNG, GIF, WebP, SVG, BMP, TIFF, et plus encore.
Ce convertisseur est complètement gratuit, et le restera toujours. Parce qu'il fonctionne dans votre navigateur, nous n'avons pas besoin de payer pour des serveurs, donc nous n'avons pas besoin de vous faire payer.
Oui ! Vous pouvez convertir autant de fichiers que vous voulez simultanément. Il suffit de sélectionner plusieurs fichiers lorsque vous les ajoutez.