Comment extraire du texte d’une image ou d’un fichier PDF numérisé à l’aide de la technologie OCR, directement dans votre navigateur.
Par l’équipe FileTinker7 min de lecture
Vous avez une photo de document, une capture d'écran ou un PDF numérisé et vous souhaitez extraire le texte pour le modifier, le rechercher ou le coller ailleurs. Cette tâche s'appelle la reconnaissance optique de caractères (OCR). Vous n'avez plus besoin de logiciels de bureau ni de sites web d'upload pour cela : les navigateurs modernes peuvent exécuter un moteur OCR entièrement en local. Cependant, l'OCR n'est pas de la magie. Sur une numérisation propre, il identifie presque tous les caractères avec précision ; sur une photo floue prise avec un téléphone, il produit des résultats erronés, et cette différence dépend presque entièrement de la qualité de l'entrée que vous lui fournissez. Ce guide explique ce que fait réellement l'OCR, comment savoir quand vous n'en avez même pas besoin, ce qui le fait échouer, pourquoi le réglage de la langue est plus important qu'on ne le pense, et ce qu'un outil en navigateur fait et ne fait pas transmettre sur le réseau.
OCR en un paragraphe : des pixels en entrée, des hypothèses en sortie
Une page numérisée ne contient aucun texte. Pour un ordinateur, il ne s’agit que d’une grille de pixels colorés, tout comme une photo de plage. La technologie OCR est un logiciel qui analyse cette grille, identifie les formes qui ressemblent à des lettres et produit une interprétation, en proposant les caractères les plus probables. Le mot « interprétation » est important : le logiciel compare les motifs de pixels à ce qu’il a appris sur l’apparence du texte imprimé, de sorte que le résultat est une reconstitution statistique, et non une copie.
C’est pourquoi le même outil peut donner d’excellents résultats sur un fichier et être totalement inefficace sur un autre. Si vous lui fournissez une image nette, de haute qualité et à fort contraste d’un texte imprimé, un bon moteur d’OCR pourra l’analyser avec une précision quasi parfaite, en ne commettant que quelques erreurs mineures. En revanche, si vous lui donnez une photo de téléphone floue et déformée d’un petit texte, chaque étape du processus d’analyse se détériore : il détecte des lignes là où il n’y en a pas, il sépare les caractères aux mauvais endroits et il affiche avec assurance les lettres incorrectes. Considérez le résultat de l’OCR comme une première version rapide qui nécessite une relecture, et non comme une vérité absolue, en particulier pour les chiffres.
Tout d’abord, vérifiez si vous avez réellement besoin d’utiliser la fonction OCR.
Il existe deux types de fichiers PDF, et ils se ressemblent à l’écran. Un fichier PDF créé directement en format numérique, par exemple en l’exportant depuis Word, Google Docs ou un site web, stocke son texte sous forme de caractères. Ouvrez-le dans n’importe quel lecteur PDF et vous pourrez sélectionner le texte avec votre curseur, le rechercher et le copier. Cette copie est instantanée et 100 % exacte, ce qu’aucun logiciel de reconnaissance optique de caractères (OCR) ne pourra jamais égaler. Un fichier PDF numérisé est différent : chaque page est une photographie d’une feuille de papier, et il n’y a aucun caractère à l’intérieur que l’on puisse sélectionner.
Donc, avant de lancer une opération de reconnaissance optique de caractères (OCR) sur un fichier PDF, essayez de sélectionner un mot dans le document ou d’en rechercher un. Si cela fonctionne, copiez simplement le texte directement et sautez l’étape de l’OCR. L’application de l’OCR à un fichier PDF initialement créé en format numérique revient à transformer un texte parfaitement lisible en une image, puis à essayer de le reconstituer, ce qui est plus lent et moins précis que le texte d’origine. L’OCR est utile dans les cas où la sélection est impossible : pour les documents numérisés, les fax, les photos de documents papier et les captures d’écran.
Qu'est-ce qui rend l'OCR précis, et ce qui le fait échouer silencieusement
Les moteurs OCR sont entraînés sur du texte imprimé propre, ce qui fait que la précision diminue à mesure que l'on s'éloigne de cet idéal : une page plate, une mise au point nette, un texte sombre sur un fond clair et une police standard. Le facteur le plus déterminant est la résolution. La règle empirique établie depuis longtemps est de numériser à 300 DPI, ce qui, pour une photo ou une capture d'écran, correspond à des lettres d'environ 20 pixels de hauteur ou plus. En dessous de ce seuil, les traits qui distinguent un 8 d'un B ou un e d'un c ne font qu'un ou deux pixels de large, et les informations dont le moteur a besoin ne sont tout simplement pas présentes dans l'image. L'augmentation de la résolution d'une image basse résolution par la suite ne permet pas de la restaurer.
Les principaux tueurs valent la peine d'être connus par leur nom, car chacun d'eux peut être évité au moment de la capture :
- Flou et tremblements de l’appareil photo : les contours estompés rendent les formes des lettres imprécises.
- Déformation : lorsqu’un texte est photographié ou numérisé avec un angle, la détection des lignes est compromise.
- Texte de petite taille : les captures d’écran de petits éléments de texte ou de notes en petits caractères sont considérées comme ayant une taille minimale d’environ 20 pixels.
- Faible contraste : texte gris sur fond gris, ou texte superposé à des photos et à des arrière-plans colorés.
- Éclat et ombres : une photo prise avec un téléphone, où votre propre ombre se projette sur la page, peut entraîner la perte de certaines zones de l’image.
- Écriture manuscrite : les moteurs d’OCR classiques sont conçus pour traiter du texte imprimé ; l’écriture cursive est interprétée comme du bruit.
- Polices décoratives : les polices très stylisées ou condensées s’éloignent trop des données d’entraînement.
- Mises en page complexes : les pages et les tableaux à plusieurs colonnes peuvent être réorganisés de manière à perturber l’ordre de lecture.
Comment capturer une source que l'OCR peut réellement lire
Prendre cinq minutes pour soigner la capture permet de gagner trente minutes en évitant de devoir corriger un document mal numérisé. Si vous utilisez un scanner, numérisez les documents texte à une résolution de 300 DPI ; le mode « niveaux de gris » est suffisant et permet d’obtenir des fichiers plus petits que si vous utilisiez la couleur. Si vous utilisez votre téléphone, placez la page sur une surface plane, dans un endroit bien éclairé, et tenez l’appareil photo directement au-dessus, plutôt qu’en biais. Assurez-vous que la page remplisse tout le cadre et que votre propre ombre ne se projette pas sur le texte. Touchez l’écran pour faire la mise au point sur le texte avant de prendre la photo.
Ensuite, recadrez l’image. Si le texte que vous souhaitez numériser partage le cadre avec le bord d’un tableau, une main ou un arrière-plan chargé, recadrez l’image de manière à ne conserver que la zone contenant le texte avant de lancer la reconnaissance optique de caractères (OCR). Tout le reste dans le cadre pourrait être interprété à tort comme du texte par le moteur. Chacune de ces étapes correspond directement à l’un des problèmes mentionnés ci-dessus : résolution, inclinaison, contraste et encombrement.
Langues : un paramètre que les utilisateurs ont tendance à ignorer.
Les moteurs d’OCR utilisent un modèle distinct entraîné pour chaque langue, car le modèle encode à la fois la forme des lettres et les statistiques de la langue, c’est-à-dire les séquences de caractères qui constituent des mots plausibles. Si vous sélectionnez la mauvaise langue, vous n’obtiendrez pas seulement des résultats légèrement moins bons, mais un charabia : un modèle anglais analysant un texte chinois produira consciencieusement les lettres latines qui ressemblent le plus aux traits de ce texte. Si le résultat de votre OCR ressemble à une suite de caractères aléatoires, la première chose à vérifier est le paramètre de langue, avant de vous inquiéter de la qualité de l’image.
La fonction OCR de FileTinker prend en charge 17 langues : anglais, chinois traditionnel et simplifié, français, allemand, espagnol, italien, portugais, néerlandais, russe, japonais, coréen, arabe, hindi, polonais, turc et vietnamien, ainsi qu’un mode combiné anglais + chinois pour les documents qui mélangent réellement les deux langues, ce qui est fréquent dans les reçus et les formulaires provenant de Taïwan et de Hong Kong. Les données de chaque langue ne sont téléchargées que lors de la première utilisation. Utilisez le mode combiné uniquement pour les pages qui mélangent réellement les deux langues : donner à l’outil deux alphabets à prendre en compte sur une page rédigée dans une seule langue ne fera que multiplier les possibilités d’erreurs.
Ce que fait réellement un outil OCR dans le navigateur avec votre fichier
L’outil « Image vers texte » de FileTinker utilise le moteur Tesseract, un logiciel open source, compilé en WebAssembly, et l’exécute dans un processus distinct au sein de votre onglet de navigateur. Vous sélectionnez une langue, téléchargez un fichier, et vous pouvez suivre la progression grâce à une barre d’état pendant que le logiciel effectue la reconnaissance. Il accepte les formats d’image courants, tels que JPG, PNG, WebP et d’autres, ainsi que les fichiers PDF. Les images sont directement envoyées au moteur.
Les fichiers PDF numérisés nécessitent une étape supplémentaire : l’outil commence par convertir chaque page en image, en doublant sa résolution nominale, à l’aide de pdf.js, puis il envoie les pages au moteur une par une, en affichant une indication de progression du type « page 2 sur 5 ». Les pages reconnues sont ensuite assemblées, avec une ligne vide entre elles, pour former un seul résultat. Il est important de noter que cette opération s’applique à tous les fichiers PDF, y compris ceux qui sont déjà en format numérique, ce qui explique pourquoi il est judicieux d’effectuer d’abord la vérification de sélection et de copie mentionnée précédemment.
Le résultat s’affiche dans une zone de texte modifiable, ce qui vous permet de corriger immédiatement les erreurs de reconnaissance, puis de copier ou de télécharger le texte au format .txt. Si le moteur ne trouve rien, il l’indique plutôt que d’inventer du texte. Et si vous avez besoin du texte nettoyé à nouveau sous forme de document, l’outil de FileTinker qui convertit le texte en PDF transformera le fichier .txt en un véritable fichier PDF avec du texte sélectionnable, ce qui est généralement l’objectif final de la numérisation.
Les clauses relatives à la confidentialité, énoncées clairement.
« L’application fonctionne dans votre navigateur » est exact, mais cela ne signifie pas qu’il n’y a aucune activité sur le réseau, et il est important de préciser la différence. Votre image ou votre fichier PDF n’est jamais envoyé : il est décodé, rendu et reconnu entièrement sur votre propre ordinateur, et aucun serveur ne le reçoit. Ce qui est transmis sur le réseau, c’est le logiciel. Lors de la première utilisation, l’outil télécharge le moteur d’OCR (le programme et son noyau WebAssembly, hébergés sur le CDN jsDelivr) et les données d’entraînement pour la langue que vous avez choisie (hébergées sur le serveur de données Tesseract standard). Il s’agit d’un téléchargement unique : quelques mégaoctets pour le moteur, plus le modèle linguistique, qui varie de quelques mégaoctets pour l’anglais à plusieurs dizaines de mégaoctets pour des langues comme le chinois ou le japonais, et votre navigateur le met en cache, de sorte que les utilisations ultérieures démarrent beaucoup plus rapidement.
En résumé : le code est téléchargé, mais votre fichier n’est jamais envoyé. Cette distinction est ce qui rend l’OCR intégrée au navigateur pertinente pour les documents sensibles, tels que les contrats, les pièces d’identité et les lettres médicales, car l’objectif est d’éviter d’envoyer le document lui-même au serveur d’un tiers. Un observateur du réseau pourrait constater que vous avez téléchargé un logiciel d’OCR, mais il ne pourrait pas voir sur quel document vous l’avez utilisé.
Améliorer le résultat obtenu par la technologie OCR.
Même un bon résultat nécessite une validation. La technologie OCR présente des erreurs classiques : la lettre minuscule « l », le chiffre « 1 » et la lettre majuscule « I »; les lettres « O » et le chiffre « 0 »; la séquence « rn » est souvent interprétée comme « m ». Relisez attentivement les chiffres, car une erreur dans un numéro de téléphone ou un montant de facture est à la fois probable et indétectable par un correcteur orthographique. Les particularités de la mise en page sont également courantes : vous constaterez souvent qu’un saut de ligne se produit à la fin de chaque ligne imprimée plutôt qu’à la fin de chaque paragraphe, et les mots coupés par un tiret entre les lignes restent coupés.
Puisque la zone de sortie est modifiable, effectuez ce nettoyage avant de copier ou de télécharger. Pour une lettre d'une page, cela prend une minute. Cette minute, combinée à une capture de bonne qualité, fait toute la différence entre un OCR qui n'est qu'un tour de passe-passe et la méthode la plus rapide pour intégrer des documents papier dans un fichier que vous pouvez réellement exploiter.