Comment implémenter la reconnaissance optique de caractères en Python



Cet article vous fournira une connaissance détaillée et complète de la mise en œuvre d'une reconnaissance optique de caractères en Python.

La reconnaissance optique de caractères est vitale et un aspect clé et langage de programmation. L'application de tels concepts dans des scénarios du monde réel est multiple. Dans cet article, nous verrons comment implémenter la reconnaissance optique de caractères en Python

Applications de la reconnaissance optique de caractères

Les compteurs de tickets l'utilisent largement pour scanner et détecter les informations clés sur le ticket afin de suivre les itinéraires et les détails des navetteurs. Conversion de texte papier en formats numériques où les caméras capturent des photographies haute résolution, puis l'OCR est utilisée pour les traduire en un format Word ou PDF.





charachters

L'introduction de l'OCR avec python est attribuée à l'ajout de bibliothèques polyvalentes telles que «Tesseract» et «Orcad». Ces bibliothèques ont aidé de nombreux codeurs et développeurs à simplifier la conception de leur codeet leur permettre de passer plus de temps sur d'autres aspects de leurs projets. Étant donné que les avantages sont énormes, examinons ce que c'est et comment cela se fait.



itératif fibonacci c ++

Construire une reconnaissance optique de caractères en Python

Nous devons d'abord créer une classe en utilisant «pytesseract». Cette classe nous permettra d'importer des images et de les scanner. Dans le processus, il produira des fichiers avec l'extension «ocr.py». Voyons le code ci-dessous. Le bloc fonction 'process_image' est utilisé pour affiner le texte que nous obtenons.

Le gestionnaire d'itinéraire et la fonction d'affichage suivants sont ajoutés à l'application (app.py).

Code du gestionnaire de routeur



// ROUTE HANDLER @ app.route ('/ v {} / ocr'.format (_VERSION), methods = [' POST ']) def ocr (): try: url = request.json [' image_url '] if' jpg 'dans url: output = process_image (url) return jsonify ({' output ': output}) else: return jsonify ({' error ':' uniquement les fichiers .jpg, s'il vous plaît '}) sauf: return jsonify ({' error ':' Vouliez-vous envoyer: {'image_url': 'some_jpeg_url'} '})

Code moteur OCR

// OCR ENGINE importation des demandes d'importation pytesseract depuis l'importation PIL Image depuis l'importation PIL ImageFilter depuis StringIO import StringIO def process_image (url): image = _get_image (url) image.filter (ImageFilter.SHARPEN) return pytesseract.image_to_string (image) def _get_image ( url): retourne Image.open (StringIO (requests.get (url) .content)) //

Veuillez vous assurer de mettre à jour les importations et d'ajouter le numéro de version de l'API.

import os import journalisation à partir de la journalisation import Formatter, FileHandler à partir de flask import Flask, request, jsonify à partir d'ocr import process_image _VERSION = 1 # version API

Nous ajoutons la réponse JSON de la fonction du moteur OCR qui est 'process_image ()'. JSON est utilisé pour collecter des informations entrant et sortant de l'API. Nous transmettons la réponse dans un fichier objet à l'aide de la bibliothèque «Image» de PIL pour l'installer.

Veuillez noter que ce code fonctionne uniquement avec des images .jpg uniquement. Si nous utilisons des bibliothèques complexes pouvant présenter plusieurs formats d'image, toutes les images peuvent être traitées efficacement. Notez également que si vous souhaitez essayer ce code par vous-même, veuillez d'abord installer PIL qui provient de la bibliothèque «Pillow»

& bull Commencez par exécuter l'application, qui est 'app.py':

// $ cd ../home/flask_server/ $ python app.py //

& bull Ensuite, dans une autre exécution de terminal:

// $ curl -X POST http: // localhost: 5000 / v1 / ocr -d '{' image_url ':' some_url '}' -H 'Content-Type: application / json'

Par exemple:

// $ curl -X POST http: // localhost: 5000 / v1 / ocr -d '{' C: UsersakashDownloadsPic1 ':' https://edureka.com/images/blog_images/ocr/ocr.jpg '}' - H 'Content-Type: application / json' {'sortie': 'ABCDEnFGH I JnKLMNOnPQRST'} //

Avantages et inconvénients du moteur OCR

Parmi les nombreuses applications d'utilisation de l'OCR en python, la plus populaire est la reconnaissance de l'écriture manuscrite. Les gens appliquent cela pour recréer un texte écrit qui peut ensuite être rempli en de nombreuses copies plutôt que de simplement photocopier le script original. Il s'agit d'assurer l'uniformité et la lisibilité.

La reconnaissance optique de caractères est également utile pour convertir des fichiers PDF en textes et les stocker sous forme de variables. Cela peut ensuite être soumis à n'importe quelle quantité de prétraitement pour des tâches supplémentaires. Bien que le concept d'OCR semble être un sujet bénéfique dans le monde de Python, il partage certainement sa part d'inconvénients.

L'OCR ne peut pas toujours garantir une précision à 100%. De nombreuses heures de formation doivent être appliquées à l'aide de concepts d'intelligence artificielle qui peuvent permettre au moteur OCR d'apprendre et de reconnaître des images médiocres. Les images manuscrites peuvent être reconnues mais elles dépendent de plusieurs facteurs comme le style de l'écriture, la couleur de la page, le contraste de l'image et la résolution de l'image.

fibonacci c ++ récursif

Avec cela, nous arrivons à la fin de cet article sur la reconnaissance optique de caractères en Python. J'espère que vous comprendrez comment fonctionne exactement l'OCR.

Pour acquérir des connaissances approfondies sur Python et ses différentes applications, vous pouvez pour une formation en ligne en direct avec une assistance 24/7 et un accès à vie.

Vous avez une question pour nous? Mentionnez-les dans la section commentaires de «Reconnaissance optique de caractères en Python» et nous vous répondrons.