Πώς να εφαρμόσετε την αναγνώριση οπτικών χαρακτήρων στην Python



Αυτό το άρθρο θα σας παράσχει μια λεπτομερή και περιεκτική γνώση του πώς να εφαρμόσετε μια οπτική αναγνώριση χαρακτήρων στο Python.

Η οπτική αναγνώριση χαρακτήρων είναι ζωτικής σημασίας και βασική πτυχή και γλώσσα προγραμματισμού. Η εφαρμογή τέτοιων εννοιών σε πραγματικά σενάρια είναι πολυάριθμη. Σε αυτό το άρθρο, θα συζητήσουμε πώς να εφαρμόσουμε την αναγνώριση οπτικών χαρακτήρων στην Python

άθροισμα ψηφίων ενός αριθμού σε java χρησιμοποιώντας για βρόχο

Εφαρμογές αναγνώρισης οπτικού χαρακτήρα

Οι μετρητές εισιτηρίων το χρησιμοποιούν εκτενώς για σάρωση και ανίχνευση βασικών πληροφοριών στο εισιτήριο για την παρακολούθηση διαδρομών και λεπτομερειών μετακινούμενων. Μετατροπή έντυπου κειμένου σε ψηφιακές μορφές όπου οι κάμερες τραβούν φωτογραφίες υψηλής ανάλυσης και στη συνέχεια χρησιμοποιείται OCR για να τις μεταφέρει σε μορφή λέξης ή PDF.





charachters

Η εισαγωγή του OCR με το python πιστώνεται στην προσθήκη ευπροσάρμοστων βιβλιοθηκών όπως 'Tesseract' και 'Orcad'. Αυτές οι βιβλιοθήκες βοήθησαν πολλούς κωδικοποιητές και προγραμματιστές να απλοποιήσουν τον σχεδιασμό κώδικακαι τους επιτρέπουν να περνούν περισσότερο χρόνο σε άλλες πτυχές των έργων τους. Επειδή τα οφέλη είναι τεράστια, ας ρίξουμε μια ματιά στο τι είναι και πώς γίνεται.



Χτίζοντας μια οπτική αναγνώριση χαρακτήρων στο Python

Πρέπει πρώτα να κάνουμε μια τάξη χρησιμοποιώντας το 'pytesseract'. Αυτή η τάξη θα μας επιτρέψει να εισάγουμε εικόνες και να τις σαρώσουμε. Στη διαδικασία θα εξάγει αρχεία με την επέκταση 'ocr.py'. Ας δούμε τον παρακάτω κώδικα. Το μπλοκ συναρτήσεων 'process_image' χρησιμοποιείται για να ακονίσει το κείμενο που λαμβάνουμε.

Η εφαρμογή χειρισμού διαδρομής και προβολής προστίθεται στην εφαρμογή (app.py).

Κωδικός χειριστή δρομολογητή



// ROUTE HANDLER @ app.route ('/ v {} / ocr'.format (_VERSION), Methods = [' POST ']) def ocr (): try: url = request.json [' image_url '] if' jpg 'in url: output = process_image (url) return jsonify ({' output ': output}) other: return jsonify ({' error ':' only .jpg files, please '}) εκτός: return jsonify ({' error ':' Εννοούσατε να στείλετε: {'image_url': 'some_jpeg_url'} '})

Κωδικός κινητήρα OCR

// OCR ENGINE εισαγωγή pytesseract εισαγωγικά αιτήματα από PIL εισαγωγή Image από PIL import ImageFilter from 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): επιστροφή Image.open (StringIO (request.get (url) .content)) //

Βεβαιωθείτε ότι έχετε ενημερώσει τις εισαγωγές και προσθέστε τον αριθμό έκδοσης API.

import os import logging from logging import Formatter, FileHandler from flask import Flask, request, jsonify from ocr import process_image _VERSION = 1 # Έκδοση API

Προσθέτουμε στην απόκριση JSON της λειτουργίας OCR Engine που είναι 'process_image ()'. Το JSON χρησιμοποιείται για τη συλλογή πληροφοριών που εισέρχονται και εξέρχονται από το API. Περνάμε την απόκριση σε ένα αρχείο αντικειμένου χρησιμοποιώντας τη βιβλιοθήκη 'Image' από το PIL για να την εγκαταστήσουμε.

Λάβετε υπόψη ότι αυτός ο κώδικας έχει την καλύτερη απόδοση μόνο με εικόνες .jpg. Εάν χρησιμοποιούμε σύνθετες βιβλιοθήκες που μπορούν να διαθέτουν πολλές μορφές εικόνας, τότε όλες οι εικόνες μπορούν να επεξεργαστούν αποτελεσματικά. Σημειώστε επίσης, σε περίπτωση που σας ενδιαφέρει να δοκιμάσετε αυτόν τον κωδικό μόνοι σας, τότε εγκαταστήστε πρώτα το PIL που προέρχεται από τη βιβλιοθήκη 'Pillow'

& bull Ξεκινήστε εκτελώντας την εφαρμογή, η οποία είναι 'app.py':

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

& bull Στη συνέχεια, σε άλλο τερματικό εκτελέστε:

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

Για παράδειγμα:

// $ 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' {'output': 'ABCDEnFGH I JnKLMNOnPQRST'} //

Πλεονεκτήματα και μειονεκτήματα του OCR Engine

Από τις πολλές εφαρμογές της χρήσης OCR στο python, η δημοφιλής είναι η αναγνώριση χειρογράφου. Οι άνθρωποι το εφαρμόζουν για την αναδημιουργία γραπτού κειμένου το οποίο μπορεί στη συνέχεια να συμπληρωθεί σε πολλά αντίγραφα και όχι μόνο να φωτοτυπώσει το αρχικό σενάριο. Αυτό είναι για να επιτευχθεί ομοιομορφία και αναγνωσιμότητα.

Το OCR είναι επίσης χρήσιμο στη μετατροπή PDF σε κείμενα και την αποθήκευσή τους ως μεταβλητών. Αυτό αργότερα μπορεί να υποβληθεί σε οποιοδήποτε ποσό προεπεξεργασίας για επιπλέον εργασίες. Αν και η έννοια του OCR φαίνεται να είναι ένα ευεργετικό θέμα στον κόσμο της Python, σίγουρα μοιράζεται το μέρος των μειονεκτημάτων της.

Το OCR δεν μπορεί πάντα να εγγυηθεί ακρίβεια 100%. Πρέπει να εφαρμοστούν πολλές ώρες εκπαίδευσης με τη βοήθεια εννοιών Τεχνητής Νοημοσύνης που μπορούν να επιτρέψουν στον κινητήρα OCR να μάθει και να αναγνωρίσει κακές εικόνες. Οι εικόνες χειρογράφου μπορούν να αναγνωριστούν, αλλά εξαρτώνται από διάφορους παράγοντες όπως το στυλ της γραφής, το χρώμα της σελίδας, την αντίθεση της εικόνας και την ανάλυση της εικόνας.

Με αυτό, καταλήγουμε στο τέλος αυτής της αναγνώρισης οπτικού χαρακτήρα στο άρθρο της Python. Ελπίζω να κατανοήσετε πώς ακριβώς λειτουργεί το OCR.

Για να αποκτήσετε σε βάθος γνώσεις σχετικά με την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε για ζωντανή διαδικτυακή εκπαίδευση με 24ωρη υποστήριξη και πρόσβαση σε όλη τη διάρκεια ζωής.

Έχετε μια ερώτηση για εμάς; Αναφέρετέ τα στην ενότητα σχολίων του 'Optical Character Recognition in Python' και θα επικοινωνήσουμε μαζί σας.