Tutoriel

Reconnaissance optique de caractères (OCR) : quelle solution choisir ?

Reconnaissance optique de caractères (OCR) : quelle solution choisir ?
TABLE DES MATIÈRES

Dans cet article, nous testons plusieurs solutions de reconnaissance optique de caractères (OCR). Nous testons ces solutions sur un cas d'usage : la reconnaissance des informations figurant sur un chèque bancaire (nom, banque, montant, etc.). Bonne lecture !


Qu'est-ce que l'OCR ?

L'essor de l'intelligence artificielle ces dernières années est dû à un phénomène de digitalisation omniprésent dans tous les environnements professionnels. Cette transformation numérique a été initiée par la plupart des entreprises, grandes et petites, et l'un des principaux axes de transformation est la numérisation des données. C'est dans ce but qu'un service de vision par ordinateur a été développé : la reconnaissance optique de caractères (OCR), communément appelée OCR.

L'origine de l'OCR remonte aux années 1950, lorsque David Shepard a fondé Intelligent Machines Research Corporation (IMRC), le premier fournisseur mondial de systèmes OCR exploités par des entreprises privées pour convertir des messages imprimés en langage machine à des fins de traitement informatique.

Aujourd'hui, il n'est plus nécessaire de disposer d'un système conçu pour une police particulière. Les services d'OCR sont intelligents, et l'OCR est même l'une des branches les plus importantes de la vision par ordinateur, et plus généralement de l'intelligence artificielle. Grâce à l'OCR, il est possible d'obtenir un fichier texte à partir de nombreux supports numériques :

  • fichier PDF
  • Image PNG, JPG contenant des écritures
  • Documents manuscrits

L'utilisation de l'OCR pour des documents manuscrits, des images ou des documents PDF peut concerner les entreprises de tous les domaines et activités. Certaines entreprises peuvent avoir un besoin plus critique d'OCR pour la reconnaissance des caractères sur l'écriture manuscrite, combinée au traitement du langage naturel (NLP) : analyse de texte. Par exemple, le secteur bancaire utilise l'OCR pour approuver les chèques (détails, signature, nom, montant, etc.) ou pour vérifier les cartes de crédit (numéro de carte, nom, date d'expiration, etc.). De nombreux autres secteurs d'activité font un usage intensif de l'OCR, tels que la santé (numérisation des dossiers des patients), la police (reconnaissance des plaques d'immatriculation) ou les douanes (extraction des informations de passeport), etc.

Comment fonctionne l'OCR ?

La technologie OCR comprend 3 étapes :

  • Étape de prétraitement de l'image, qui consiste à traiter l'image afin qu'elle puisse être exploitée et optimisée pour reconnaître les caractères. Les manipulations de prétraitement incluent : le réalignement, la désinterférence, la binarisation, la suppression de lignes, le zonage, la détection de mots, la reconnaissance de scripts, la segmentation, la normalisation, etc.
  • Extraction des propriétés statistiques de l'image. Il s'agit de l'étape clé pour localiser et identifier les personnages de l'image, ainsi que leurs structures.
  • Étape de post-traitement, qui consiste à reformer l'image telle qu'elle était avant l'analyse, en mettant en évidence les « cadres de délimitation » (rectangles délimitant le texte de l'image) des séquences de caractères identifiées :

A text showing the use of OCR technology

Qui sont les fournisseurs d'OCR ?

Au cours de notre étude sur l'OCR, nous nous sommes projetés dans le rôle d'une entreprise qui souhaite utiliser l'OCR pour répondre à des problèmes de reconnaissance de caractères sur des supports PDF et images (JPG). Nous souhaitons obtenir un haut niveau de performance à moindre coût. Nous nous sommes donc posé la question suivante : « Quel fournisseur propose la solution OCR la plus adaptée à nos cas d'utilisation ? ».

Nous avons donc choisi 4 fournisseurs de solutions d'OCR :

Nous avons fait face à trois grands acteurs du marché de l'IA et à un plus petit fournisseur d'OCR.


Quelles sont les différentes API d'OCR ?


Espace OCR

Il est possible d'utiliser OCR Space gratuitement en ligne, pour « OCRiser » une image. Les formats suivants sont pris en charge : .jpg, .png, .webp, .pdf. Une grande variété de langages d'OCR sont également disponibles. OCR Space offre la possibilité d'importer l'image depuis votre ordinateur local ou depuis une URL Internet.

D'autres options sont également disponibles, telles que :

  • Rotation automatique de l'image si nécessaire
  • Numérisation de factures/reconnaissance de tableaux : dans le cas d'un document du type : reçu de paiement, tableau, etc., la facture est scannée.

Il est possible d'utiliser le moteur OCR classique ou d'utiliser un moteur différent, plus lent mais plus efficace pour le texte complexe, les caractères spéciaux, etc. Le résultat est composé du texte extrait ainsi que de la superposition (couche) avec les zones de délimitation du texte identifiées et le contenu correspondant. Il est également possible d'obtenir un fichier .pdf contenant le résultat et la couche de texte (projection du texte sur l'image).


Optical Character Recognition  (OCR) on OCR space
Eden AI et reconnaissance optique de caractères (OCR) : OCR Space

En ce qui concerne l'API, la mise en œuvre est très simple et rapide. Vous pouvez choisir d'afficher ou non les coordonnées du cadre de délimitation de chaque mot du résultat. Les formats suivants sont tolérés : PDF, GIF, PNG, JPG, TIF, BMP. Toutes les autres options présentes dans l'application en ligne OCR Space sont également configurables dans l'API.

OCR space coding
Eden AI et reconnaissance optique de caractères (OCR) : OCR Space

Google Cloud Vision

Pour Google, l'application de l'OCR est confuse dans le produit Google Cloud Vision. Ainsi, lorsque vous essayez le service de reconnaissance d'image, vous obtenez la détection d'objets, d'étiquettes et de textes. En ce qui concerne la détection de texte, aucun paramètre ne peut être modifié, vous pouvez simplement lire la réponse :

Optical Character Recognition (OCR) on Google Cloud
Eden AI et reconnaissance optique de caractères (OCR) : Google Cloud Platform

En ce qui concerne l'API, la mise en œuvre est légèrement plus complexe. Cela est principalement dû aux nombreux packages qui doivent être installés. Il est également nécessaire de créer un projet Vision sur la console Google Cloud, puis de suivre l'ensemble du processus pour créer une clé d'authentification Google. Cette clé permet d'utiliser l'API Google Vision. Le résultat est composé du texte, ainsi que des coordonnées des cadres de délimitation correspondant à chaque mot.

Google Cloud's OCR coding
Eden AI et reconnaissance optique de caractères (OCR) : Google Cloud Platform

Extrait d'Amazon AWS

L'interface de la console permet simplement d'importer une image, et de récupérer l'image avec les cadres de délimitation du texte reconnu. Ainsi que les mots correspondants affichés à droite (sur l'exemple, les résultats sont totalement faux). Aucun paramètre ne peut être modifié par l'utilisateur, mais celui-ci peut choisir la détection d'un formulaire ou d'un tableau, afin d'obtenir une meilleure clarté et précision.

Optical Character Recognition (OCR) on AWS Textract
Eden AI et reconnaissance optique de caractères : AWS Textract

L'utilisation de l'API Amazon Textract est fastidieuse. Plusieurs étapes doivent d'abord être effectuées avant que l'API puisse être correctement implémentée. Tout d'abord, un utilisateur IAM devra être créé et doté de droits d'accès complet pour AmazonS3 (stockage) et Amazon Textract. Ensuite, vous devez installer le SDK AWS que vous souhaitez utiliser (dans notre cas Python), créer une clé d'accès pour l'utilisateur IAM créé précédemment et enfin télécharger le fichier .csv contenant la clé d'accès et la clé secrète. Une fois ces étapes terminées, il est possible d'implémenter l'API en tant que telle :

AWS Texttrack's coding
Eden AI et reconnaissance optique de caractères : AWS Textract

Le résultat est un fichier json avec le cadre de délimitation associé pour chaque mot.


API OCR Microsoft Azure

Microsoft Azure Cognitive Services ne propose pas de plateforme permettant d'essayer la solution OCR en ligne. Cependant, ils proposent une API pour utiliser le service OCR. Cela implique de créer un projet dans Cognitive Services afin de récupérer une clé d'API. Ensuite, la mise en œuvre est relativement rapide :

Microsoft Azure's OCR coding
Eden AI et reconnaissance optique de caractères : Microsoft Azure

Grâce à ce code Python, il est possible d'afficher comme résultat chaque mot et son cadre de délimitation, ainsi que l'image traitée :

Optical Character Recognition (OCR) on Microsoft Azure
Eden AI et reconnaissance optique de caractères : Microsoft Azure

Quels sont les cas d'utilisation de l'OCR ?

Pour rendre cette phase beaucoup plus facile et plus rapide, nous avons utilisé la solution Eden AI pour utiliser les API de différents fournisseurs. Eden AI nous permet d'accéder à des solutions d'OCR (entre autres) de différents fournisseurs avec le même code, la même API et de générer une réponse .json dans le même format.

Il vous suffit de développer un code pour appeler l'IA Eden pour les 100 images, puis de récupérer le texte du résultat, ainsi que ceux des 4 fournisseurs disponibles : Google, AWS, Microsoft et OCR Space. Il est même possible d'exécuter les 4 API en un seul appel d'API Eden AI. Cela évite de devoir implémenter une méthode différente pour générer les appels pour les 100 images, et d'avoir à implémenter pour chaque fournisseur une méthode d'extraction des résultats (qui dépendra de la forme de chaque réponse).


Cas d'utilisation 1 : images

Nous testons d'abord l'API Eden AI sur des images aléatoires. La base de données contient une centaine d'images textuelles prises dans différents contextes.

A random image used to test Eden AI API on OCR
Eden AI et reconnaissance optique de caractères (OCR)

Les images proviennent de sources très différentes et sont au format .jpg, de petite taille (les images des jeux de données sont très souvent de petite taille pour limiter la taille du jeu de données). Une centaine d'images ont été sélectionnées aléatoirement à partir de cet ensemble de données. Le script python permet de vérifier si la réponse de chaque API correspond au libellé (texte) attribué à chaque image.

A table comparing the tags found average of different providers
Eden AI et reconnaissance optique de caractères (OCR)

Une découverte importante de cette base de données est que les performances de Microsoft, et dans une moindre mesure celles d'OCR Space, sont faussées par le fait que l'API Microsoft ne prenait pas en charge la plupart des images en raison de leur petite taille. L'API OCR Space prenait en charge les images, mais pour certaines d'entre elles, elle n'a détecté aucun texte.

Cependant, ce problème n'affecte pas les API Google OCR et AWS Textract qui prennent entièrement en charge ce format d'image.

Veuillez noter que les résultats représentent le pourcentage d'images dont le résultat est exact, une prédiction proche du texte réel sans être précise sera considérée comme une mauvaise prédiction.

Nous avons enfin pour ce jeu de données de différentes images ce classement :

Google > AWS > Espace OCR > Microsoft


Cas d'utilisation 2 : analyse des chèques

L'objectif de ce second cas d'utilisation est d'utiliser une base de données de 100 chèques, afin de tester les performances de 4 fournisseurs sur ce cas d'utilisation. Nous avons défini 4 éléments de texte à reconnaître : le nom, le prénom, le montant du chèque et le nom de la banque.

A photo of a cheque
Eden AI et reconnaissance optique de caractères (OCR)

A table of the different parameters found on the cheque for each providers
Eden AI et reconnaissance optique de caractères (OCR)

Les résultats représentent le pourcentage de « Nom », de « Prénom », de « Montant » et de « Banque » parfaitement prédits et reconnus. Une différence d'orthographe qualifie ici la prédiction d'échec. Les résultats des différents fournisseurs peuvent nous fournir de nombreux indicateurs sur les forces et les faiblesses de chaque API, sans pour autant considérer cela comme une conclusion universelle : chaque cas d'utilisation peut présenter des résultats différents. Il est donc impératif d'effectuer ces tests sur chaque ensemble de données spécifique.

Néanmoins, nous pouvons constater que Google affiche largement les meilleurs résultats pour la détection du prénom et du nom de famille sur le chèque et donc : du texte manuscrit. Cependant, c'est la solution Amazon qui affiche les meilleures performances pour la reconnaissance du montant : les chiffres manuscrits.

Enfin, nous observons que Google et OCR Space ont les meilleurs taux de reconnaissance du nom de la banque. Ainsi, nous pouvons en déduire que l'OCR Space est potentiellement plus adapté au texte numérique qu'au texte manuscrit.

Dans l'ensemble, sur ce cas d'utilisation, nous pouvons définir le classement comme tel :

Google > AWS > Espace OCR > Microsoft


Tarification

En ce qui concerne les coûts des API, ils sont définis en fonction de seuils avec des prix dégressifs :

Table of OCR API pricing for each providers
Eden AI : tarification de l'API OCR

Les prix sont ici affichés en dollars, et pour une photo (et donc pour le pdf : 1 page). On constate que dans la majorité des utilisations, les prix sont très similaires pour tous les fournisseurs, avec un plateau à 5 millions d'appels, au-delà duquel les prix baissent de plus de 60 %.

Veuillez noter que les prix affichés dans ce tableau peuvent avoir changé selon les fournisseurs au jour de la rédaction de cet article.

Cette étude a mis en évidence une tendance selon laquelle l'API OCR de Google affiche de meilleures performances. Cependant, nous avons constaté que Google n'avait pas obtenu les meilleurs résultats (AWS) pour prédire les montants émis sur les chèques.

Pourquoi choisir Eden AI?

Pour chaque cas d'utilisation, il est optimal de comparer les différentes solutions d'OCR afin de choisir la solution la plus adaptée. Comme observé, de nombreux paramètres impactent les performances des différentes solutions : qualité de l'image, format de l'image, écriture manuscrite/numérique, nature des caractères (lettres, chiffres, langue). Il est donc impossible de choisir le fournisseur d'API le plus adapté avant de procéder aux tests. Voici comment Eden AI a été très utile. Il permet, simplement en ayant un compte Eden AI et une clé API, de tester les API OCR de quatre fournisseurs sur nos données spécifiques.

De plus, Eden AI nous permet ensuite d'utiliser la solution sélectionnée à partir de l'API Eden AI : simplement en ayant un compte et une clé d'API Eden AI, nous pouvons accéder à un très large choix d'API d'IA provenant de différents fournisseurs (y compris des API OCR). Cela permet d'éviter une dépendance excessive à l'égard d'un seul fournisseur ou même la possibilité d'utiliser les résultats de plusieurs fournisseurs en même temps.

Vous êtes fournisseur de solutions et souhaitez intégrer Eden AI, contactez-nous à l'adresse suivante : contact@edenai.co


Commencez votre aventure avec l’IA dès aujourd’hui

  • Accédez à plus de 100 API d’IA sur une seule plateforme.
  • Comparez et déployez des modèles d’IA en toute simplicité.
  • Paiement à l’usage, sans frais initiaux.
Commencez à créer GRATUITEMENT

Articles connexes

Essayez Eden AI gratuitement.

Vous pouvez commencer à créer dès maintenant. Si vous avez des questions, n'hésitez pas à discuter avec nous !

CommencezContactez le service commercial
X

Commencez votre parcours IA dès aujourd'hui!

Inscrivez-vous dès maintenant avec des crédits gratuits pour explorer plus de 100 API d'IA.
Obtenir mes crédits maintenant