Aller au contenu

Un OCR qui ne garde jamais votre image

Six outils qui lisent le texte, les QR codes et les codes-barres de vos images. Les packs de langue viennent de ce site, et votre image n'est jamais conservée.

6 outils, sans inscription, sans filigrane

La plupart de ces outils font une seule chose sur une seule image. Pour copier les mots d'une photo, commencez par Image en texte ; pour récupérer un texte impossible à sélectionner à l'écran, OCR de capture d'écran ; pour rendre un scan interrogeable sans changer son apparence, OCR PDF. Les notes sous la liste abordent ce qui surprend — pourquoi la résolution compte plus que la taille du fichier, et quand un navigateur n'est pas le bon outil.

QR codes et codes-barres

2 outils

Voyez ce que dit un QR code avant de le suivre, et récupérez le numéro d'un code-barres avec sa clé de contrôle vérifiée.

Ce que fait vraiment l'OCR, et ce qu'il ne peut pas faire

L'OCR reconnaît des formes et renvoie des caractères. Il ne lit pas. Il ne comprend pas les mots qui se trouvent derrière : un « 1 » pris pour un « l » revient avec exactement la même assurance que tous les caractères justes qui l'entourent. C'est pourquoi ces pages affichent l'indice de confiance du moteur à côté du texte, au lieu de vous remettre un résultat d'apparence impeccable en vous laissant trouver les erreurs. Sur un texte imprimé net, photographié bien de face et au point, le taux d'erreur est de quelques caractères sur mille. Avec un reflet, une ombre ou une police inhabituelle, il peut être bien pire, et rien dans le résultat n'aura l'air différent.

Deux moteurs de lecture se trouvent derrière ces pages. Le premier repère le texte où qu'il soit sur la page sans savoir dans quelle écriture il est rédigé, et lit une cinquantaine de langues à partir d'un seul dictionnaire. Le second, entraîné séparément pour chaque langue, prend le relais et en couvre plus de 120. Laisser la langue en détection automatique permet au premier d'essayer, ce qui compte, car indiquer la mauvaise langue est le moyen classique de ne rien obtenir — un menu polonais identifié comme cyrillique et lu comme du russe renvoie une page vide, avec assurance. Choisir vous-même une langue attribue le travail au moteur de cette langue, ce qu'il vous faut quand vous savez exactement ce que vous avez.

C'est la résolution qui compte, pas la taille du fichier. Le moteur veut une certaine hauteur de lettre, et tout est mis à l'échelle pour la lui donner : les pages d'un PDF scanné sont rendues à 300 dpi pour la lecture, et une image est mesurée à partir de l'encre elle-même plutôt que de ses dimensions, puis agrandie ou réduite en conséquence. Le texte d'écran est le cas où l'on se trompe — en taille normale, une lettre mesure une dizaine de pixels de haut, environ un tiers de ce que veut le moteur, donc une capture d'écran est agrandie avant d'être lue. En dessous d'environ huit pixels par lettre, il ne reste aucun détail à agrandir, et aucun traitement ne l'invente. Dans l'autre sens, une photo de 48 mégapixels d'un menu n'est pas plus précise qu'une petite photo nette ; passé un certain point, davantage de pixels coûtent du temps sans rien apporter.

L'inclinaison et un éclairage inégal font plus de dégâts qu'il n'y paraît. Une page photographiée est inclinée d'un degré ou deux et éclairée d'un seul côté : Image en texte et Scanner un document mesurent donc cet angle sur toute la page et le corrigent, puis estiment par zones la luminosité du papier derrière l'encre et la ramènent à un blanc uniforme. Ce n'est pas cosmétique. Des lignes de tableau droites sont ce qui permet de reconnaître un tableau comme une grille, et un contraste homogène est ce qui empêche l'ombre de votre main d'être lue comme de l'encre. Une capture d'écran ne reçoit ni l'un ni l'autre traitement, délibérément : elle est déjà droite et uniformément éclairée, et la traiter comme une photo ne ferait qu'ajouter des erreurs.

Les tableaux et les mises en page en colonnes sont le cas vraiment difficile, et les chiffres méritent d'être connus. Lu comme de la prose sur toute la page, un formulaire quadrillé faisait déborder le texte des cellules sur la colonne voisine et perdait un tiers des libellés — quinze à vingt pour cent de caractères faux. Repérer d'abord les lignes du quadrillage et lire chaque cellule séparément a ramené ce taux à environ cinq pour cent. Un tableau aux lignes visibles est donc reconnu comme une grille et ressort en lignes séparées par des tabulations, qui se collent directement dans un tableur, et les colonnes de texte sont lues dans l'ordre de lecture plutôt qu'en travers de la page. Un tableau mis en forme uniquement par des espacements n'a aucune ligne à repérer, et survit au collage par chance plutôt que par conception.

Un PDF interrogeable et du texte extrait sont deux choses différentes. OCR PDF et Scanner un document laissent l'image exactement telle qu'elle était et posent par-dessus, de façon invisible, les mots reconnus : la page a exactement la même apparence, Ctrl+F se met à trouver des résultats, et vous pouvez sélectionner et copier. Rien n'est jamais peint sur la page — ce qui signifie aussi qu'une erreur de lecture se cache dans un document qui a l'air parfait. Image en texte et OCR de capture d'écran font l'inverse : vous obtenez les caractères et rien d'autre, sans polices, sans couleurs, sans gras et sans l'image. Une réserve sur la couche de texte, car elle passe facilement inaperçue : elle ne peut contenir que les caractères qu'une police intégrée sait écrire, donc les mots chinois, japonais et coréens sont comptés pour vous plutôt qu'écrits, jusqu'à ce qu'une police adaptée soit ajoutée.

Quand un navigateur n'est vraiment pas le bon outil

Que l'image ne quitte jamais votre appareil, c'est tout l'argument pour la lire ici, et cela se paie en précision sur les documents difficiles. Ce compromis est réel, et mérite d'être dit clairement plutôt qu'enfoui.

L'écriture cursive n'est pas reconnue — ni ici, ni par aucun outil d'OCR généraliste. Ce sont des moteurs pour texte imprimé : ils reconnaissent des formes de lettres, et l'écriture liée n'a pas de formes de lettres séparées à reconnaître. Les lettres tracées à la main à la manière de caractères d'imprimerie reviennent souvent assez bien pour être corrigées plutôt que ressaisies — capitales, formulaire rempli à la main, note soigneusement calligraphiée —, c'est pourquoi Reconnaissance d'écriture manuscrite existe et affiche l'indice de confiance à côté du texte. Lire correctement l'écriture cursive demande un moteur entraîné spécifiquement sur l'écriture manuscrite, et les bons fonctionnent sur un serveur plutôt que dans un onglet.

Un OCR dans le cloud fera mieux sur les documents difficiles. Google, Amazon et Microsoft font tourner des moteurs entraînés sur bien plus de données que ce que peut contenir un onglet de navigateur, et sur une mauvaise photo, une page dense en plusieurs colonnes, une police inhabituelle ou un formulaire rempli, ils seront nettement plus précis. Tout comme un logiciel de bureau payant tel qu'ABBYY FineReader. Si la précision sur un document difficile compte plus que le fait que ce document reste sur votre machine, utilisez l'un d'eux — c'est la comparaison honnête, et c'est sur ce critère qu'il faut choisir.

Le traitement par lots a sa place en ligne de commande. Ces outils lisent un document quand une personne clique. Deux mille scans à heure fixe, c'est un travail pour un outil d'OCR de bureau comme OCRmyPDF, qui ajoute une couche de texte à tout un dossier de PDF en une seule commande — gratuit, avec le même type de lecture et sans aucun clic.

Certaines choses ne sont tout simplement pas faites. La perspective n'est pas corrigée : une page photographiée de biais garde sa forme de trapèze, seule la rotation est corrigée, donc prendre la photo bien à la verticale vaut la seconde supplémentaire. Un pli marqué, ou la courbure près de la reliure d'un livre, reste courbe. Et il n'y a pas de caméra ici — les lecteurs de codes décodent une image que vous avez déjà, pas un flux en direct.

Un coût pratique du fonctionnement en local : le moteur et le pack de langue sont récupérés depuis ce site la première fois que vous utilisez une langue, soit quelques mégaoctets, ce qui rend la première utilisation plus lente que les suivantes. Rien ne vient du CDN de quelqu'un d'autre, et rien ne repart.

Choisir entre des outils aux noms proches

Image en texte ou OCR de capture d'écran. Le même moteur, préparé différemment, et la différence n'est pas cosmétique. Une photo est redressée et son éclairage égalisé ; une capture d'écran est agrandie et laissée telle quelle pour le reste, car elle n'a ni inclinaison ni éclairage inégal, et la traiter comme si c'était le cas l'abîme. OCR de capture d'écran accepte aussi le collage — Ctrl+V, ou Cmd+V sur Mac, directement depuis le presse-papiers, sans rien enregistrer sur le disque au préalable.

Image en texte ou Scanner un document. Image en texte vous donne les mots et jette l'image. Scanner un document garde l'image, la redresse, blanchit le papier derrière l'encre et vous donne un PDF qui a l'air scanné — avec, en option, le texte posé de façon invisible derrière. Si vous voulez coller le texte quelque part, le premier. Si vous voulez envoyer le document à quelqu'un, le second.

Scanner un document ou OCR PDF. Scanner un document part de photos et produit un PDF. OCR PDF part d'un PDF existant et lui ajoute une couche de texte. Aucun des deux ne change l'apparence des pages. Vous photographiez un contrat : il vous faut le premier ; vous recevez un scan par e-mail : il vous faut le second.

Reconnaissance d'écriture manuscrite ou Image en texte. Le même moteur, avec la détection de tableaux désactivée et l'indice de confiance mis en avant comme il le mérite, car avec l'écriture manuscrite, ce chiffre est la partie utile du résultat. Si l'écriture est liée, aucune des deux pages ne la lira, et la page d'écriture manuscrite le dit au lieu de renvoyer un charabia plausible.

Lecteur de QR code ou Lecteur de code-barres. Codes carrés contre codes à barres, et il vaut la peine de savoir lequel vous avez en main. La page QR lit les QR codes, Micro QR, Data Matrix, Aztec et PDF417 — ce qui couvre les cartes d'embarquement et les permis de conduire, dont les codes sont de format carré même quand ils ressemblent à une traînée de points. La page code-barres lit les formats à barres du commerce et de la logistique — EAN, UPC, Code 128, Code 39, ITF — et vérifie la clé de contrôle, le dernier chiffre calculé à partir des autres, ce qui fait la différence entre un numéro fiable et un numéro qui a seulement l'air juste. Aucun des deux n'est de l'OCR : un code est un symbole à la géométrie connue, le décoder relève donc du calcul et non d'une supposition sur des formes de lettres. Ils échouent aussi différemment. Les codes carrés intègrent une correction d'erreurs et résistent à une rayure ou à un logo imprimé au milieu ; les codes à barres n'en ont aucune, donc un reflet sur les barres signifie une absence de lecture plutôt qu'un numéro faux.

Sur quoi reposent ces outils

Les moteurs open source qui font le vrai travail, et les spécifications qu'ils mettent en œuvre.

  • TesseractApache-2.0 — reconnaît le texte dans plus de 120 langues, avec des packs de langue servis depuis ce site.
  • ZXingApache-2.0 — lit les QR codes et les codes-barres.
  • QR code specification (Denso Wave)Specification — publie les tailles de version et les niveaux de correction d'erreurs, de la part de l'inventeur du format.

Questions fréquentes

Mon image ou mon document est-il conservé quelque part ?

Non. Le moteur et le pack de langue sont fournis par ce site la première fois que vous utilisez une langue, et l'image elle-même n'est jamais envoyée nulle part — cela fonctionne donc même avec le Wi-Fi coupé après ce premier chargement, et rien n'est conservé nulle part. C'est sur les pages de codes que cela compte le plus, car un QR code peut contenir un mot de passe Wi-Fi, une demande de paiement ou un secret de double authentification.

Quelle est sa précision ?

Sur un texte imprimé net, photographié bien de face et au point, quelques caractères faux sur mille. La précision baisse avec le flou, les reflets, un faible contraste, les polices inhabituelles et tout ce qui est imprimé sur une image. L'indice de confiance est affiché à côté du texte au lieu de vous laisser deviner, et quand il est bas, c'est presque toujours l'image qui pose problème : plus de lumière, moins d'angle et un texte qui remplit le cadre règlent l'essentiel.

Peut-il lire l'écriture manuscrite ?

Les lettres séparées, tracées en caractères d'imprimerie, souvent ; l'écriture cursive, non. Ce n'est pas une limite propre à ce site : les outils d'OCR généralistes sont entraînés sur des caractères imprimés et reconnaissent des formes de lettres, et l'écriture liée n'a pas de formes de lettres séparées à reconnaître. Reconnaissance d'écriture manuscrite est la page qui le dit clairement et vous montre ce qu'elle a réussi à lire, ce qui est plus utile qu'une réponse fausse donnée avec assurance.

Quelles langues peut-il lire ?

Plus de 120, dont l'anglais, le bengali, le hindi, l'ourdou, l'arabe, l'espagnol, le français, l'allemand, le portugais, le russe, le chinois, le japonais et le coréen. L'écriture est déterminée à partir de l'image elle-même ; quand plusieurs langues partagent une écriture — latine, cyrillique, arabe, devanagari —, c'est la langue de votre navigateur qui tranche, et vous pouvez toujours la changer.

Utilise-t-il ma caméra ?

Non, et il n'y a aucune autorisation à accorder. Chaque outil ici lit une image que vous avez déjà — une photo de votre galerie, une capture d'écran, un fichier que quelqu'un vous a envoyé. Si le code ou la page est devant vous, photographiez-le d'abord et déposez la photo.

Un tableau ressortira-t-il sous forme de tableau ?

S'il a des lignes de quadrillage visibles, oui : la grille est repérée d'abord et chaque cellule est lue séparément, si bien qu'un libellé ne déborde pas sur sa valeur, et le résultat se compose de lignes séparées par des tabulations qui se collent directement dans un tableur. Un tableau mis en forme uniquement par des espacements, sans lignes, est lu comme des colonnes de texte dans l'ordre de lecture, ce qui survit généralement au collage, sans garantie.