Ako implementovať optické rozpoznávanie znakov v Pythone



Tento článok vám poskytne podrobné a komplexné vedomosti o tom, ako implementovať optické rozpoznávanie znakov v Pythone.

Optické rozpoznávanie znakov je životne dôležité a kľúčový aspekt a programovací jazyk. Aplikácia takýchto konceptov v skutočných scenároch je početná. V tomto článku si ukážeme, ako implementovať optické rozpoznávanie znakov v Pythone

Aplikácie optického rozpoznávania znakov

Počítadlá cestovných lístkov to vo veľkej miere využívajú na skenovanie a zisťovanie kľúčových informácií na lístku na sledovanie trás a podrobností dochádzajúcich. Konverzia papierového textu do digitálnych formátov, pri ktorých fotoaparáty snímajú fotografie vo vysokom rozlíšení a potom sa pomocou technológie OCR prevedú do formátu slova alebo PDF.





charachters

Zavedenie OCR s pythonom sa pripisuje pridaniu univerzálnych knižníc ako „Tesseract“ a „Orcad“. Tieto knižnice pomohli mnohým programátorom a vývojárom zjednodušiť návrh kódua umožniť im tráviť viac času inými aspektmi ich projektov. Pretože výhody sú obrovské, pozrime sa, čo to je a ako sa to robí.



Budovanie optického rozpoznávania znakov v Pythone

Najprv musíme vytvoriť triedu pomocou „pytesseract“. Táto trieda nám umožní importovať obrázky a skenovať ich. V procese bude výstup súborov s príponou „ocr.py“. Pozrime sa na nasledujúci kód. Funkčný blok „process_image“ sa používa na zaostrenie textu, ktorý dostaneme.

Nasledujúci obslužný program trasy a funkcia zobrazenia sú pridané do aplikácie (app.py).

Kód manipulátora smerovača



// ROUTE HANDLER @ app.route ('/ v {} / ocr'.format (_VERSION), methods = [' POST ']) def ocr (): try: url = request.json [' image_url '] if' jpg 'v url: output = process_image (url) return jsonify ({' output ': output}) else: return jsonify ({' error ':' only .jpg files, please '}) except: return jsonify ({' error ':' Chceli ste odoslať: {'image_url': 'some_jpeg_url'} '}))

Kód motora OCR

// OCR ENGINE import pytesseract požiadavky na import z PIL import Obrázok z PIL import ImageFilter z StringIO import StringIO def process_image (url): image = _get_image (url) image.filter (ImageFilter.SHARPEN) návrat pytesseract.image_to_string (obrázok) def _get_image ( url): return Image.open (StringIO (requests.get (url) .content)) //

Nezabudnite aktualizovať importy a pridať číslo verzie API.

import os import logovanie z logovania import formátovač, FileHandler z banky import banky, požiadavka, jsonify z ocr import process_image _VERSION = 1 # verzia API

Pridávame do reakcie JSON funkcie OCR Engine „process_image ()“. JSON sa používa na zhromažďovanie informácií prichádzajúcich a vystupujúcich z API. Odpoveď odovzdáme v súbore objektov pomocou knižnice „Image“ od PIL, aby sme ju nainštalovali.

nastaviť java classpath v linuxe

Upozorňujeme, že tento kód funguje najlepšie iba pri obrázkoch .jpg. Ak používame zložité knižnice, ktoré obsahujú viac obrazových formátov, je možné efektívne spracovať všetky obrázky. Tiež si všimnite, že ak máte záujem vyskúšať si tento kód sami, najskôr si nainštalujte PIL, ktorý je získaný z knižnice „Pillow“

& bull Začnite spustením aplikácie, ktorá je „app.py“:

spojenie dvoch zdrojov údajov
// $ cd ../home/flask_server/ $ python app.py //

& bull Potom v ďalšom spustení terminálu:

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

Napríklad:

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

Výhody a nevýhody OCR Engine

Z mnohých aplikácií využívajúcich OCR v pythone je populárnou rozpoznávanie rukopisu. Ľudia to používajú na opätovné vytvorenie písaného textu, ktorý sa potom dá vyplniť do mnohých kópií, a nie iba na kopírovanie pôvodného písma. To má zabezpečiť jednotnosť a čitateľnosť.

OCR je tiež užitočné pri konverzii súborov PDF na texty a ich ukladaní ako premenných. To je potom možné podrobiť ľubovoľnému množstvu predbežného spracovania pre ďalšie úlohy. Aj keď sa koncept OCR javí ako prospešná téma vo svete Pythonu, určite má spoločnú časť nevýhod.

OCR nemôže vždy zaručiť 100% presnosť. Je potrebné venovať veľa hodín tréningu pomocou konceptov umelej inteligencie, ktoré umožňujú motoru OCR učiť sa a rozpoznávať nekvalitné obrázky. Obrázky rukopisu je možné rozpoznať, ale závisia od niekoľkých faktorov, ako sú štýl písania, farba stránky, kontrast obrázka a rozlíšenie obrázka.

Týmto sa dostávame ku koncu tohto článku o optickom rozpoznávaní znakov v jazyku Python. Dúfam, že pochopíte, ako presne OCR funguje.

Ak chcete získať podrobné informácie o Pythone a jeho rôznych aplikáciách, môžete pre živé online školenie s nepretržitou podporou a doživotným prístupom.

Máte na nás otázku? Uveďte ich v sekcii komentárov „Optické rozpoznávanie znakov v Pythone“ a my sa vám ozveme.