Introduction à la reconnaissance optique de caractères [OCR] pour les débutants

Publié: 2021-02-08

L'OCR ou la reconnaissance optique de caractères (OCR) est utilisée pour extraire des informations à partir d'images de factures et de reçus, ou de tout ce qui a un contenu écrit dessus. Pour développer cette solution, OpenCV peut être utilisé pour traiter les images qui peuvent ensuite être introduites dans un moteur OCR Tesseract qui peut extraire le texte de ces images.

Cependant, le processus de suppression de texte ne peut être efficace que si l'image est claire et que les textes sont suffisamment visibles. Dans les applications de vente au détail, pour extraire des textes de factures, la facture peut être inondée de filigranes, ou il peut y avoir une ombre sur la facture qui empêche la capture des informations.

Capturer des informations à partir de pages de texte plus longues peut également être une tâche ardue. Pour résoudre ces problèmes, il est prudent que dans le pipeline d'extraction d'informations, il y ait une place du module de traitement d'image qui traite les difficultés susmentionnées.

Il comprend plusieurs sous-processus, à savoir la localisation des textes, la segmentation des caractères et la reconnaissance de ces caractères. Bien que peu de systèmes fonctionnent sans segmentation. De telles méthodes sont produites en utilisant plusieurs procédures, telles que l'application de la méthode des moindres carrés pour réduire le taux d'erreur et prendre en charge les machines vectorielles pour faire correspondre les caractères.

Pourtant, souvent pour identifier l'occupation d'un personnage dans une image, les réseaux de neurones convolutifs (CNN) sont utilisés. Les textes peuvent être considérés comme une séquence cohérente de caractères. La détection et l'identification de ces caractères avec une plus grande précision est une difficulté qui peut être résolue en utilisant un type spécial de réseau de neurones, à savoir les réseaux de neurones récurrents (RNN) et la mémoire à long court terme (LSTM).

Les mots sont collectés en ajustant les textes en blobs. Ces lignes et régions sont en outre examinées pour un texte équivalent. Les lignes de texte sont divisées en mots uniquement en fonction du type d'espacement entre eux. La méthode d'identification est divisée en deux étapes. Tout d'abord, chaque mot est identifié. Chaque mot parfait ou correctement identifié est en outre transmis à un classificateur adaptatif en tant que données d'apprentissage.

L'image reçue en entrée est examinée et traitée par parties. Le texte est introduit ligne par ligne dans le modèle LSTM. Tesseract, qui est un moteur de reconnaissance optique de caractères, est disponible pour divers systèmes d'exploitation. Il utilise une combinaison d'architecture CNN et LSTM pour identifier et dériver précisément des textes à partir de données d'image. Cependant, les images avec du bruit ou des ombres entravent la précision de la récupération.

Pour minimiser le bruit ou améliorer la qualité de l'image, le prétraitement de l'image peut être effectué à l'aide de la bibliothèque OpenCV. Ces étapes de prétraitement peuvent comprendre la découverte de la ROI ou de la région d'intérêt, le recadrage de l'image, la suppression du bruit (ou des régions indésirables), le seuillage, la dilatation et l'érosion, la détection de contours ou de bords. Une fois ces étapes terminées, les moteurs OCR peuvent lire l'image et en extraire parfaitement les textes pertinents.

Table des matières

Les outils utilisés

1. OpenCV

OpenCV est une bibliothèque compatible à l'origine avec les langages C/C++ et python. Il est couramment utilisé pour le traitement de données avec des échantillons d'image. Une pléthore de fonctions utiles prédéfinies sont présentes dans la bibliothèque qui implémente les transformations nécessaires sur les échantillons d'image. Toutes les fonctions susmentionnées telles que la dilatation, l'érosion, le tranchage, la détection des bords et bien d'autres peuvent facilement être effectuées à l'aide de cette bibliothèque.

2. Moteur OCR Tesseract

Publié par Google, il s'agit d'une bibliothèque open source largement utilisée pour la reconnaissance de texte. Il peut être utilisé pour détecter et identifier des textes dans différentes langues. Le traitement est assez rapide et donne la sortie textuelle d'une image presque immédiatement. De nombreuses applications de numérisation exploitent cette bibliothèque et s'appuient sur ses techniques d'extraction.

Étapes impliquées dans le processus d'extraction de texte

(1) Tout d'abord, des techniques de traitement d'image possibles telles que la détection de contour, la suppression du bruit et les fonctions d'érosion et de dilatation sont appliquées à l'échantillon d'image bruitée entrant.

(2) Après cette étape, la suppression des filigranes et des ombres du projet de loi est effectuée.

(3) De plus, le projet de loi est segmenté en parties.

(4) Les parties segmentées passent par le moteur Tesseract OCR pour obtenir le texte complet.

(5) Enfin, en utilisant Regex, nous obtenons toutes les informations vitales telles que le montant total, la date d'achat et les dépenses par article.

permettez-moi de parler d'une image spécifique avec des textes - factures et factures. Ils ont généralement des filigranes dessus, la plupart de la société qui émet les factures. Comme mentionné précédemment, ces filigranes sont des obstacles à l'extraction efficace du texte. Souvent, ces filigranes eux-mêmes contiennent le texte.

Ceux-ci peuvent être considérés comme du bruit car le moteur Tesseract reconnaît les textes de toutes tailles sur une ligne. Comme les filigranes, les ombres inhibent également la précision du moteur pour extraire efficacement les textes. Les ombres sont supprimées en améliorant le contraste et la luminosité de l'image.

Pour les images comportant des autocollants ou des filigranes, un processus en plusieurs étapes est effectué. Le processus consiste à convertir une image en niveaux de gris, à appliquer des transformations morphologiques, à appliquer un seuillage (il peut s'agir d'une inversion binaire ou d'une transformation otsu), à extraire les pixels les plus sombres dans la région la plus sombre et enfin à coller les pixels les plus sombres dans la région du filigrane. Revenons au processus de suppression des ombres.

Tout d'abord, la dilatation est appliquée à l'image en niveaux de gris. Au-dessus, un bleu moyen avec un noyau approprié supprime le texte. Le résultat de cette étape est une image qui contient des parties d'ombres et toute autre décoloration présente. Maintenant, une simple opération de différence est calculée entre l'image originale et l'image obtenue. Enfin, après avoir appliqué le seuillage, nous obtenons une image sans ombres.

Reconnaissance et extraction de texte

Un modèle de réseau neuronal convolutif peut être construit et formé sur le texte imprimé trouvé dans les images. Le modèle peut en outre être utilisé pour détecter du texte à partir d'autres images similaires avec la même police. Un moteur Tesseract OCR est utilisé pour récupérer le texte des images qui ont été traitées à l'aide des algorithmes de vision par ordinateur.

Pour la reconnaissance optique de caractères, nous devons effectuer la localisation du texte, suivie de la segmentation des caractères, puis de la reconnaissance des caractères. Toutes ces étapes sont réalisées par l'OCR Tesseract. Le moteur Tesseract OCR s'avère très précis lorsqu'il est utilisé sur du texte imprimé plutôt que sur du texte manuscrit.

Obtenir des informations pertinentes

Parlant spécifiquement des factures, parmi tout le texte extrait, des informations vitales telles que la date d'achat, le montant total, etc. peuvent être facilement obtenues à l'aide de plusieurs expressions régulières. Le montant total imprimé sur la facture peut être extrait en appliquant des expressions régulières du fait qu'il apparaît généralement à la fin de la facture. Beaucoup de ces informations utiles peuvent être stockées en fonction de leurs dates afin qu'elles soient facilement accessibles.

Précision

La précision de la récupération de texte peut être définie comme le rapport du nombre correct d'informations obtenues par l'OCR Tesseract et qui sont déjà dans la facture au nombre cumulé de mots réellement présents dans l'image textuelle. Une plus grande précision signifie une plus grande efficacité des techniques de prétraitement et la capacité de l'OCR Tesseract à extraire des informations.

Et ensuite ?

Si vous souhaitez en savoir plus sur l'apprentissage automatique, consultez le diplôme PG en apprentissage automatique et IA de IIIT-B & upGrad, conçu pour les professionnels en activité et offrant plus de 450 heures de formation rigoureuse, plus de 30 études de cas et missions, IIIT- Statut B Alumni, plus de 5 projets de synthèse pratiques et aide à l'emploi avec les meilleures entreprises.

Apprenez le cours ML des meilleures universités du monde. Gagnez des programmes de maîtrise, Executive PGP ou Advanced Certificate pour accélérer votre carrière.

Menez la révolution technologique basée sur l'IA

Postuler pour un programme de certificat avancé en apprentissage automatique et PNL