Sådan implementeres optisk karaktergenkendelse i Python



Denne artikel giver dig en detaljeret og omfattende viden om, hvordan du implementerer en optisk karaktergenkendelse i Python.

Optisk karaktergenkendelse er afgørende og et nøgleaspekt og programmeringssprog. Anvendelsen af ​​sådanne begreber i virkelige scenarier er mange. I denne artikel vil vi diskutere, hvordan man implementerer optisk karaktergenkendelse i Python

Anvendelser af optisk karaktergenkendelse

Tickettællere bruger dette i vid udstrækning til scanning og afsløring af nøgleoplysninger på billetten til at spore ruter og pendleroplysninger. Konvertering af papirtekst til digitale formater, hvor kameraer optager fotos i høj opløsning, og derefter bruges OCR til at bringe dem i et ord eller et PDF-format.





charachters

Introduktionen af ​​OCR med python krediteres tilføjelsen af ​​alsidige biblioteker som “Tesseract” og “Orcad”. Disse biblioteker har hjulpet mange kodere og udviklere med at forenkle deres kodedesignog lade dem bruge mere tid på andre aspekter af deres projekter. Da fordelene er enorme, lad os kigge ind i, hvad det er, og hvordan det gøres.



Opbygning af en optisk karaktergenkendelse i Python

Vi skal først lave en klasse ved hjælp af 'pytesseract'. Denne klasse giver os mulighed for at importere billeder og scanne dem. I processen udsender den filer med udvidelsen “ocr.py”. Lad os se nedenstående kode. Funktionsblokken “proces_billede” bruges til at skærpe den tekst, vi får.

Følgende rutehåndterer og visningsfunktion føjes til applikationen (app.py).

Routerhåndteringskode



hvordan man indstiller stien til java
// RUTEHANDLER @ app.route ('/ v {} / ocr'.format (_VERSION), metoder = [' POST ']) def ocr (): prøv: url = anmodning.json [' image_url '] hvis' jpg 'i url: output = process_image (url) returner jsonify ({' output ': output}) andet: returner jsonify ({' error ':' kun .jpg-filer, venligst '}) undtagen: returner jsonify ({' error ':' Mente du at sende: {'image_url': 'some_jpeg_url'} '})

OCR-motorkode

// OCR ENGINE import pytesseract importanmodninger fra PIL import Billede fra PIL import ImageFilter fra StringIO import StringIO def process_image (url): image = _get_image (url) image.filter (ImageFilter.SHARPEN) returner pytesseract.image_to_string (image) def _get_image ( url): returner Image.open (StringIO (anmodninger.get (url). indhold)) //

Sørg for at opdatere importen og tilføje API-versionsnummer.

import os import logging fra logging import Formater, FileHandler fra kolbe import Kolbe, anmodning, jsonify fra ocr import process_image _VERSION = 1 # API version

Vi tilføjer i JSON-svaret til OCR Engine's funktion, der er 'process_image ()'. JSON bruges til at indsamle information, der går ind og ud af API'en. Vi sender svaret i en objektfil ved hjælp af 'Image' -biblioteket fra PIL for at installere det.

Bemærk, at denne kode kun fungerer bedst med .jpg-billeder. Hvis vi bruger komplekse biblioteker, der kan have flere billedformater, kan alle billeder behandles effektivt. Bemærk også, hvis du er interesseret i at prøve denne kode selv, skal du først installere PIL, der er anskaffet ud af 'Pillow' -biblioteket først

& bull Start med at køre appen, som er 'app.py':

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

& bull Derefter i en anden terminalkørsel:

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

For eksempel:

// $ 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'} //

Fordele og ulemper ved OCR Engine

Ud af de mange applikationer til brug af OCR i python er den populære håndskriftgenkendelse. Folk anvender dette for at genskabe skrevet tekst, som derefter kan udfyldes i adskillige kopier i stedet for bare at kopiere det originale script. Dette er for at skabe ensartethed og læsbarhed.

OCR er også nyttig til at konvertere PDF'er til tekster og gemme dem som variabler. Dette kan senere blive udsat for enhver form for forbehandling til yderligere opgaver. Selvom begrebet OCR synes at være et gavnligt emne i Pythons verden, deler det helt sikkert sin del af ulemper.

OCR kan ikke altid garantere 100% nøjagtighed. Der kræves mange timers træning ved hjælp af kunstige intelligenskoncepter, der kan gøre det muligt for OCR-motoren at lære og genkende dårlige billeder. Håndskriftsbilleder kan genkendes, men de afhænger af flere faktorer som skrivestilen, sidens farve, billedets kontrast og billedets opløsning.

Med dette kommer vi til slutningen af ​​denne optiske karaktergenkendelse i Python-artiklen. Jeg håber, du får en forståelse af, hvordan OCR fungerer nøjagtigt.

For at få dybdegående viden om Python sammen med dens forskellige applikationer kan du til live online træning med support døgnet rundt og adgang til hele livet.

Har du et spørgsmål til os? Nævn dem i kommentarfeltet i “Optical Character Recognition in Python”, så vender vi tilbage til dig.