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.