Aller au contenu
FileTinker

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.

Questions fréquentes

Est-il possible d’extraire le texte d’un fichier PDF numérisé sans avoir à le télécharger sur un serveur ?

Oui. Les outils d’OCR intégrés au navigateur, comme « Image to Text » de FileTinker, utilisent le moteur Tesseract en mode WebAssembly localement : chaque page du fichier PDF est convertie en image dans votre navigateur, puis est traitée sur votre propre ordinateur, et le fichier n’est jamais envoyé à un serveur. Les fichiers PDF numérisés comportant plusieurs pages sont traités page par page et renvoyés sous la forme d’un seul fichier texte.

Pourquoi le résultat de ma reconnaissance optique de caractères (OCR) est-il illisible ?

La cause la plus fréquente est une mauvaise configuration de la langue : les modèles d’OCR sont spécifiques à chaque langue. Ainsi, un modèle anglais utilisé pour traiter du chinois (ou inversement) produira des résultats incohérents plutôt que simplement un texte de qualité légèrement inférieure. Ensuite, vérifiez la qualité de l’image : un texte dont la hauteur est inférieure à environ 20 pixels, un flou, une inclinaison ou un faible contraste peuvent tous entraîner une performance inférieure au seuil à partir duquel le moteur est capable de distinguer les lettres.

L'OCR fonctionne-t-il sur l'écriture manuscrite ?

En général, non. Les moteurs d’OCR classiques, y compris Tesseract, sont entraînés sur des textes imprimés. Par conséquent, l’écriture cursive est interprétée comme du bruit, et même les lettres majuscules bien formées entraînent de nombreuses erreurs. Pour les notes manuscrites, il est préférable de les transcrire manuellement ou d’utiliser un service spécialisé de reconnaissance de l’écriture plutôt qu’un logiciel d’OCR classique.

Quelle résolution est nécessaire pour une reconnaissance optique de caractères (OCR) précise ?

Numérisez les documents à une résolution de 300 DPI, ou assurez-vous que les lettres d’une photo ou d’une capture d’écran mesurent environ 20 pixels de haut, voire plus. En dessous de cette valeur, les traits qui permettent de distinguer les caractères similaires ne font qu’un ou deux pixels de large, et l’information est tout simplement perdue. Agrandir une image de faible résolution par la suite ne permet pas de restaurer ces détails.

Est-ce que des fichiers sont téléchargés lorsque j’utilise la fonction OCR intégrée au navigateur ?

Oui, mais c’est le logiciel qui est téléchargé, et non votre fichier. Lors de la première utilisation, le moteur d’OCR et les données linguistiques que vous avez sélectionnées sont téléchargés à partir de serveurs CDN. Cela représente quelques mégaoctets pour le moteur, plus un modèle linguistique qui varie de quelques mégaoctets (pour l’anglais) à plusieurs dizaines de mégaoctets (pour le chinois, le japonais et le coréen). L’ensemble est mis en cache par votre navigateur pour les utilisations ultérieures. Votre image ou votre fichier PDF n’est jamais envoyé ; la reconnaissance s’effectue entièrement sur votre appareil.

Quelles langues sont prises en charge par la fonction OCR de FileTinker ?

Dix-sept langues : anglais, chinois traditionnel, chinois 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 multilingues. Les données d’entraînement de chaque langue sont téléchargées lors de la première utilisation, puis mises en cache.