1. Termékek
  2.   Elemző
  3.   Python
  4.   EasyOCR
 
  

Fejlett OCR modern dokumentumkihívásokhoz

Pontosan nyerjen ki szöveget szkennelt dokumentumokból, fényképekből és PDF-ekből mélytanulás-alapú felismeréssel

Mi az EasyOCR?

Az EasyOCR egy nyílt forráskódú Optikai Karakterfelismerő (OCR) könyvtár, amelyet a Jaided AI fejlesztett, és amely képekből, szkennelt dokumentumokból nyer ki szöveget nagy pontossággal. A PyTorch-ra épülve több mint 80 nyelvet támogat, köztük a latint, kínai, arab és más nyelveket. Az EasyOCR könnyű használatáról ismert - mindössze néhány kódsorral implementálható, ami kiváló választássá teszi fejlesztők és kutatók számára szövegfelismerési projektekhez. Előre betanított mélytanulási modelljeivel hatékonyan képes felismerni a szöveget különböző betűtípusokban, kézírásban és összetett hátterekben. Legyen szó automatizált dokumentumfeldolgozásról, rendszámtábla-felismerésről vagy képalapú szövegkinyerésről, az EasyOCR hatékony és könnyű megoldást kínál. A rendszer a következőket egyesíti:

  • Többmodelles észlelés: CRAFT-alapú szöveghelymeghatározás ResNet háttérrel fokozva
  • Adaptív felismerés: Írásrendszer-specifikus modellek (CRNN latinhoz, Transformer CJK-hoz)
  • Kontextusérzékeny feldolgozás: Bekezdés-rekonstrukció és olvasási sorrend megőrzése

A teljesítménytesztek konzisztenes eredményeket mutatnak különböző dokumentumtípusokon:

DokumentumtípusPontosságTeljesítményHardver
Üzleti dokumentumok98,6%42 oldal/percNVIDIA T4
Mobilról készült képek94,2%28 kép/percGoogle Colab GPU
Történelmi archívumok89,1%15 oldal/percCPU klaszter

EasyOCR OCR szövegfelismeréshez és -kinyeréshez

Az architektúra három optimalizált lépésben dolgozza fel a dokumentumokat:

  1. Észlelés: Pixelszintű szövegterület-szegmentálás
  2. Felismerés: Sorozat-előrejelzés nyelvi modellezéssel
  3. Rekonstrukció: Térbeli kapcsolatok leképezése
GitHub

GitHub statisztika

Név:
Nyelv:
Csillagok:
Villák:
Engedély:
Az adattár legutóbbi frissítése:

Alapvető műszaki képességek

1. Fejlett szövegészlelés

Az észlelő alrendszer a következőket tartalmazza:

  • Karakter-szintű hőtérkép-generálás
  • Tetszőleges alakú szövegterületek kezelése
  • Többirányú támogatás (0-360°)
  • Háttérzaj szűrése

2. Hibrid felismerő rendszer

A felismerő modellek írásrendszerenként vannak optimalizálva:

  • Latin/Cirill: CRNN 7 CNN réteggel + BiLSTM
  • Kínai/Japán/Koreai: Transformer 12 figyelemfejjel
  • Arab/Héber: Jobbról-balra BiLSTM egyedi tokenizálással

3. Vállalati szintű funkciók

  • Automatikus minőségbecslés
  • Testreszabható pontosság/visszahívás kompromisszumok
  • Hardver-tudatos erőforrás-allokáció

Telepítés és konfigurálás

Rendszerkövetelmények

ÖsszetevőFejlesztésTermelés
Python3.6+3.8+
Memória8GB16GB+
GPUOpcionálisNVIDIA (CUDA 11.8+)

Telepítési lehetőségek

Alap telepítés


pip install easyocr  # Csak CPU-függőségeket telepít

GPU támogatás (Linux/Windows)


pip install easyocr torch torchvision --index-url https://download.pytorch.org/whl/cu118

Docker (Termelési környezet)


docker run -it --gpus all -v $(pwd):/data \
  -e LANG_LIST="en,hu,de" \
  jaidedai/easyocr

Gyakorlati implementációs példák

1. Dokumentumfeldolgozó folyamat

Teljes OCR munkafolyamat előfeldolgozással és érvényesítéssel:

Termelésre kész feldolgozás


from easyocr import Reader
import cv2
import numpy as np

class DocumentOCR:
    def __init__(self, languages=['en']):
        self.reader = Reader(languages, gpu=True)
        
    def preprocess(self, image):
        # Kontrasztjavítás
        lab = cv2.cvtColor(image, cv2.COLOR_BGR2LAB)
        l, a, b = cv2.split(lab)
        clahe = cv2.createCLAHE(clipLimit=3.0, tileGridSize=(8,8))
        limg = cv2.merge([clahe.apply(l), a, b])
        return cv2.cvtColor(limg, cv2.COLOR_LAB2BGR)
    
    def process(self, image_path):
        img = cv2.imread(image_path)
        processed = self.preprocess(img)
        results = self.reader.readtext(processed,
                                    batch_size=4,
                                    paragraph=True,
                                    min_size=50,
                                    text_threshold=0.8)
        return {
            'text': [r[1] for r in results],
            'confidence': np.mean([r[2] for r in results])
        }

# Használat
ocr = DocumentOCR(languages=['en','hu'])
result = ocr.process('jogiszoveg.jpg')
print(f"Átlagos pontosság: {result['confidence']:.2%}")

2. Tömeges számlafeldolgozás

Kulcsmezők kinyerése különböző számlaformátumokból:

Számlaadatok kinyerése


import easyocr
import re
from pathlib import Path

reader = easyocr.Reader(['hu'])

SZÁMLA_MINTÁK = {
    'számlaszám': r'Számla\s*szám[:#]?\s*([A-Z0-9-]+)',
    'dátum': r'Dátum[:]?\s*(\d{4}\.\d{2}\.\d{2})',
    'összeg': r'Fizetendő\s*összeg[:]?\s*\$?(\d+\.\d{2})'
}

def számlák_feldolgozása(mappa):
    eredmények = []
    for számla in Path(mappa).glob('*.pdf'):
        szöveg = '\n'.join(reader.readtext(str(számla), detail=0))
        kinyert = {mező: re.search(minta, szöveg) 
                    for mező, minta in SZÁMLA_MINTÁK.items()}
        eredmények.append({
            'fájl': számla.name,
            'adatok': {k: v.group(1) if v else None 
                     for k, v in kinyert.items()}
        })
    return eredmények
számla_adatok = számlák_feldolgozása('/számlák/')

Teljesítményoptimalizálás

GPU gyorsítás

  • Kötegelt feldolgozás: Optimális kötegméretek (4-16 a GPU memóriától függően)
  • Memóriakezelés: Automatikus felosztás nagy dokumentumokhoz
  • Vegyes pontosság: FP16 következtetés Tensor magokkal

Pontosság finomhangolása

  • Kontrasztküszöbök: Állítsa be a contrast_ths értékét gyenge minőségű szkennerekhez
  • Szövegméret-szűrés: Állítsa be a min_size értékét kis szöveg figyelmen kívül hagyásához
  • Nyelvi priorizálás: Rendezze a nyelveket várható gyakoriság szerint

Hasonló Termékek

 Hungarian