1. Produkter
  2.   Parser
  3.   Python
  4.   EasyOCR
 
  

Avancerad OCR för moderna dokumenthanteringsutmaningar

Extrahera text med hög noggrannhet från skannade dokument, foton och PDF-filer med djupinlärningsbaserad igenkänning

Vad är EasyOCR?

EasyOCR är ett bibliotek för optisk teckenigenkänning (OCR) med öppen källkod, utvecklat av Jaided AI, som extraherar text från bilder och skannade dokument med hög noggrannhet. Byggt på PyTorch stöder det över 80 språk inklusive latinska, kinesiska, arabiska med flera. EasyOCR är känt för sin användarvänlighet - bara några få kodrader krävs för implementering, vilket gör det till ett utmärkt val för utvecklare och forskare som arbetar med textigenkänningsprojekt. Med sina förtränade djupinlärningsmodeller kan det effektivt identifiera och känna igen text i olika typsnitt, handskrivna stilar och komplexa bakgrunder. Oavsett om det är för automatiserad dokumentbearbetning, registreringsskyltsigenkänning eller bildextrahering av text erbjuder EasyOCR en kraftfull och lättviktig lösning. Systemet kombinerar:

  • Multimodell-identifiering: CRAFT-baserad textlokalisering med ResNet-arkitektur
  • Anpassningsbar igenkänning: Skriptspecifika modeller (CRNN för latinska, Transformer för CJK)
  • Kontextmedveten bearbetning: Återuppbyggnad av stycken och bevarande av läsordning

Prestandatest visar konsekventa resultat över olika dokumenttyper:

DokumenttypNoggrannhetGenomströmningHårdvara
Affärsdokument98.6%42 sidor/minNVIDIA T4
Mobilfoton94.2%28 bilder/minGoogle Colab GPU
Historiska arkiv89.1%15 sidor/minCPU-kluster

EasyOCR för OCR-textigenkänning och extrahering

Arkitekturen bearbetar dokument i tre optimerade steg:

  1. Identifiering: Pixelvis segmentering av textområden
  2. Igenkänning: Sekvensprediktering med språkmodellering
  3. Rekonstruktion: Kartläggning av spatiala relationer
GitHub

GitHub-statistik

Namn:
Språk:
Stjärnor:
Gafflar:
Licens:
Repository uppdaterades senast kl

Kärntekniska funktioner

1. Avancerad textidentifiering

Identifieringssystemet innehåller:

  • Generering av värmekartor på teckennivå
  • Hantering av textområden med godtycklig form
  • Stöd för multipla orienteringar (0-360°)
  • Bakgrundsbrusreducering

2. Hybridt igenkänningssystem

Igenkänningsmodeller optimerade per skripttyp:

  • Latinsk/Kyrillisk: CRNN med 7 CNN-lager + BiLSTM
  • Kinesisk/Japansk/Koreansk: Transformer med 12 uppmärksamhetspunkter
  • Arabisk/Hebreisk: Höger-till-vänster BiLSTM med anpassad tokenisering

3. Enterprise-funktioner

  • Automatisk kvalitetsbedömning
  • Konfigurerbar precision/recall-balans
  • Hårdvarumedveten resurstilldelning

Installation & Konfiguration

Systemkrav

KomponentUtvecklingProduktion
Python3.6+3.8+
Minne8GB16GB+
GPUValfrittNVIDIA (CUDA 11.8+)

Installationsalternativ

Grundinstallation


pip install easyocr  # Installerar endast CPU-beroenden

GPU-stöd (Linux/Windows)


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

Docker (Produktionsdistribution)


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

Praktiska implementeringsexempel

1. Dokumentbearbetningspipeline för produktion

Komplett OCR-arbetsflöde med förbehandling och validering:

Produktionsredo bearbetning


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):
        # Kontrastförbättring
        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])
        }

# Användning
ocr = DocumentOCR(languages=['en','fr'])
result = ocr.process('legal_contract.jpg')
print(f"Genomsnittlig tillförlitlighet: {result['confidence']:.2%}")

2. Batchbearbetning av fakturor

Extrahera nyckelfält från flera fakturaformat:

Fakturaextrahering


import easyocr
import re
from pathlib import Path

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

INVOICE_PATTERNS = {
    'invoice_no': r'Invoice\s*Number[:#]?\s*([A-Z0-9-]+)',
    'date': r'Date[:]?\s*(\d{2}[/-]\d{2}[/-]\d{4})',
    'amount': r'Total\s*Due[:]?\s*\$?(\d+\.\d{2})'
}

def process_invoices(folder):
    results = []
    for invoice in Path(folder).glob('*.pdf'):
        text = '\n'.join(reader.readtext(str(invoice), detail=0))
        extracted = {field: re.search(pattern, text) 
                    for field, pattern in INVOICE_PATTERNS.items()}
        results.append({
            'file': invoice.name,
            'data': {k: v.group(1) if v else None 
                     for k, v in extracted.items()}
        })
    return results
invoices_data = process_invoices('/invoices/')

Prestandaoptimering

GPU-accelerering

  • Batchbearbetning: Optimala batchstorlekar (4-16 beroende på GPU-minne)
  • Minneshantering: Automatisk uppdelning av stora dokument
  • Blandad precision: FP16-inferens med Tensor Cores

Noggrannhetsjustering

  • Kontrasttrösklar: Justera contrast_ths för lågkvalitativa skanningar
  • Textstorleksfiltrering: Ställ in min_size för att ignorera liten text
  • Språkprioritering: Ordna språk efter förväntad frekvens

Liknande Produkter

 Swedish