Domů/Blog/Vytěžování dat z PDF faktur: co AI opravdu umí a co je hype
OCR & Dokumenty10 min

Vytěžování dat z PDF faktur: co AI opravdu umí a co je hype

Realistický pohled na OCR a AI extrakci dat z faktur. Kdy to funguje skvěle, kdy to selhává a jak se vyhnout nástrahám.

Reality check: PDF faktury jsou problém

PDF není strukturovaný formát. Je to "obrázek s textem". Pro člověka easy, pro počítač noční můra.

Typy PDF faktur

1. Born-digital PDF (70% případů)

✅ Text je v PDF jako text
✅ Vysoká kvalita
✅ Konzistentní formát
→ OCR přesnost: 95-99%

2. Skenované PDF (25% případů)

⚠️ Text je obrázek
⚠️ Různá kvalita skenu
⚠️ Možné zkreslení, šum
→ OCR přesnost: 85-95%

3. Problémové PDF (5% případů)

❌ Ručně psané
❌ Vícesloupcový layout
❌ Přímo z foťáku
❌ Poškozené, rozmazané
→ OCR přesnost: 40-80%

Co AI opravdu umí (a co ne)

✅ CO FUNGUJE SKVĚLE

1. Extrakce základních údajů

• Číslo faktury: 99% přesnost
• Datum vystavení: 98%
• Datum splatnosti: 97%
• Variabilní symbol: 99%
• Celková částka: 96%
• DPH: 95%

Příklad:

INPUT PDF:
┌────────────────────────────┐
│ FAKTURA č. 2024/156        │
│ Datum vystavení: 15.1.2025 │
│ Splatnost: 15.2.2025       │
│ VS: 2024156                │
│ ─────────────────────────  │
│ Celkem: 12 450 Kč          │
│ DPH 21%: 2 152 Kč          │
└────────────────────────────┘

OUTPUT JSON:
{
  "invoice_number": "2024/156",
  "date_issued": "2025-01-15",
  "date_due": "2025-02-15",
  "variable_symbol": "2024156",
  "total": 12450,
  "vat": 2152,
  "vat_rate": 21,
  "confidence": 0.98
}

2. Identifikace dodavatele

INPUT: "ALGOTECH s.r.o., IČO: 12345678"

AI dokáže:
• Extrahovat IČO
• Najít v databázi dodavatelů
• Auto-doplnit bankovní spojení
• Přiřadit správný účet nákladů
→ Přesnost: 94%

3. Rozpoznání typu faktury

AI klasifikátor umí:
• Faktura přijatá vs. vystavená
• Daňový doklad vs. zálohová faktura
• Dobropis
• Proforma
→ Přesnost: 96%

⚠️ CO FUNGUJE S OMEZENÍMI

1. Položky faktury (line items)

Problém: Různé formáty tabulek

Jednoduchá faktura (3 položky):
→ Přesnost: 90%

Komplexní faktura (50+ položek):
→ Přesnost: 70-80%

Multi-page faktura:
→ Přesnost: 65-75%

Příklad selhání:

INPUT PDF:
┌─────────────────────────────────┐
│ Položka    Množství  Cena  Celkem│
│ Notebook     10 ks  15000  150000│
│ + prodloužená záruka         2500│  ← ⚠️ Může selhat
│ - sleva věrným zákazníkům   -5000│  ← ⚠️ Může selhat
└─────────────────────────────────┘

2. Ručně psané faktury

Tištěný text: 95% přesnost
Psací stroj: 90%
Hezké ručně psané: 70-80%
Škrabopis: 40-60% ❌
→ Často lepší je manuální přepis

3. Nestandardní formáty

✅ Invoice od velkých firem (standardy)
⚠️ Faktury od malých OSVČ (kreativita)
❌ "Faktury" z excelu (různorodost)

❌ CO NEFUNGUJE (NEBO VELMI ŠPATNĚ)

1. Sémantické porozumění

AI NEPOZNÁ:
"Faktura za prosinec 2024, uhradit do konce ledna"
→ Nesystematické vyjádření

POTŘEBUJE:
"Splatnost: 31.1.2025"
→ Strukturovaná data

2. Kontext a výjimky

PŘÍKLAD:
"Částka k úhradě: 10 000 Kč
 Z toho již uhrazeno: 3 000 Kč"

Mnoho OCR systémů vezme: 10 000 Kč ❌
Správně je: 7 000 Kč ✓

→ Potřeba human review

3. Obrázky a grafy

Faktura s fotkami produktů: ❌
Grafy spotřeby: ❌
Technické výkresy: ❌

→ OCR vidí jen text, grafy ignoruje

Reálná přesnost: Benchmark test

Test setup:

  • 1000 reálných PDF faktur
  • Mix dodavatelů (50 různých)
  • Různé kvality a formáty

Výsledky po kategorií

Born-digital PDF (700 faktur):

• Všechna pole správně: 92%
• 1-2 chyby: 7%
• Nepoužitelné: 1%
→ Průměrná přesnost: 97.8%

Skenované PDF (250 faktur):

• Všechna pole správně: 76%
• 1-2 chyby: 18%
• Nepoužitelné: 6%
→ Průměrná přesnost: 89.4%

Problémové PDF (50 faktur):

• Všechna pole správně: 34%
• 1-2 chyby: 28%
• Nepoužitelné: 38%
→ Průměrná přesnost: 62.1%

Breakdown chyb

Typ chybyFrekvence
Špatná suma (OCR chyba v číslici)35%
Chybějící datum splatnosti22%
Nerozpoznaný dodavatel18%
Špatné přiřazení položek15%
Nedetekovaná multi-page faktura10%

Technologie: Co běží v pozadí

1. OCR Engine

Open-source (zdarma):

  • Tesseract (Google)
    • Pros: Zdarma, dobrý na tištěný text
    • Cons: Horší na ručně psané, pomalý
    • Přesnost: 85-92%

Commercial (placené):

  • ABBYY FineReader

    • Pros: Vynikající přesnost
    • Cons: Drahé (€5k-20k/rok)
    • Přesnost: 94-98%
  • Amazon Textract

    • Pros: AI-powered, dobré na tabulky
    • Cons: Pay-per-use (může být drahé)
    • Přesnost: 92-96%

2. Layout Analysis

Detekce struktury dokumentu:

1. Page segmentation
   → Kde je hlavička, tabulka, patička

2. Table detection
   → Identifikace tabulek s položkami

3. Reading order
   → Správné pořadí textu (zleva, shora)

Technologie:

  • LayoutLM (Microsoft)
  • Donut (Transformer model)
  • Custom CNN models

3. Named Entity Recognition (NER)

Extrakce specifických entit:

Text: "Fa​ktura č. 2024/156 ze dne 15.1.2025"

NER extrahuje:
- [INVOICE_NUMBER: 2024/156]
- [DATE: 15.1.2025]

Modely:

  • spaCy (open-source)
  • Custom BERT/RoBERTa
  • GPT-based extraction

4. Post-processing & Validation

Automatické kontroly:

def validate_invoice(data):
    errors = []

    # Check: Datum splatnosti > datum vystavení
    if data.date_due <= data.date_issued:
        errors.append("Invalid due date")

    # Check: Součet položek = celková částka
    if sum(items.total) != data.total:
        errors.append("Sum mismatch")

    # Check: DPH výpočet
    expected_vat = data.total * data.vat_rate / 100
    if abs(expected_vat - data.vat) > 1:  # tolerance 1 Kč
        errors.append("VAT calculation error")

    return errors

Best practices: Jak dosáhnout 95%+ přesnosti

1. Quality input = Quality output

Požadavky na PDF:

  • Minimální rozlišení: 300 DPI
  • Formát: ne rotovaný, ne zrcadlený
  • Osvětlení: rovnoměrné (pokud sken)
  • Kontrast: černý text na bílém pozadí

Preprocessing:

1. Deskew (narovnání)
2. Denoising (odstranění šumu)
3. Binarization (převod na čb)
4. Contrast enhancement

2. Training na vašich datech

Generic model:

  • Přesnost: 85-90%
  • Funguje hned

Custom trained model:

  • Přesnost: 93-98%
  • Potřeba: 200-500 sample faktur
  • Čas: 2-4 týdny

Co to dá:

  • Rozpozná vaše specifické dodavatele
  • Naučí se vaše formáty
  • Lepší handling výjimek

3. Human-in-the-loop

Confidence threshold:

if confidence > 95%:
    auto_process()
elif confidence > 80%:
    flag_for_review()  # Rychlá kontrola
else:
    manual_entry()  # Manuální přepis

Reálné rozdělení:

  • Auto (>95%): 75% faktur
  • Review (80-95%): 20% faktur
  • Manual (<80%): 5% faktur

Čas ušetřený:

  • Před: 10 min/faktura × 1000 = 167 hodin/měsíc
  • Po: 1 min review × 200 + 5 min × 50 = 7,5 hodin/měsíc
  • Úspora: 95%

4. Continuous learning

Proces:
1. AI extrahuje data (confidence 92%)
2. Účetní zkontroluje a opraví 2 pole
3. Korekce se uloží jako training data
4. Model se přetrénuje (weekly)
5. Příště podobná faktura: confidence 97%

Případová studie: Od 80% k 97%

Firma: Velkoobchod, 800 faktur/měsíc

Fáze 1: Generic OCR (měsíc 1)

Přesnost: 82%
Manual review: 50% faktur
Čas: 80 hodin/měsíc

Fáze 2: Fine-tuning (měsíc 2-3)

• Sběr 300 sample faktur
• Manuální anotace
• Training custom modelu
• A/B testing

Přesnost: 91%
Manual review: 25%
Čas: 40 hodin/měsíc

Fáze 3: Production + learning (měsíc 4-6)

• Deployment
• Continuous learning z korekcí
• Feedback loop

Přesnost: 96%
Manual review: 10%
Čas: 15 hodin/měsíc

Fáze 4: Optimalizace (měsíc 6+)

• Optimalizace worst cases
• Automatické flagování anomálií
• Integrace validačních pravidel

Přesnost: 97.5%
Manual review: 5%
Čas: 8 hodin/měsíc

ÚSPORA: 170 hodin → 8 hodin (95%)
         85k Kč/měsíc = 1M Kč/rok

Common pitfalls (a jak se jim vyhnout)

❌ Pitfall #1: "AI vyřeší všechno"

Realita: Vždy bude 5-10% outlierů Řešení: Hybrid approach (AI + human review)

❌ Pitfall #2: "Stáhneme open-source a jsme ready"

Realita: Generic model = 80-85% přesnost Řešení: Training na vašich datech

❌ Pitfall #3: "Nefunguje to, je to špatné"

Realita: Špatný input → špatný output Řešení: Quality check incoming PDFs

❌ Pitfall #4: "Nasadíme naráz na 100%"

Realita: Chaos, chyby, frustrace Řešení: Gradual rollout (10% → 50% → 100%)

❌ Pitfall #5: "Set & forget"

Realita: Model degraduje bez údržby Řešení: Continuous learning & monitoring


ROI Calculator: Vytěžování faktur

Vaše čísla:

  • Faktury/měsíc: 500
  • Čas/faktura: 8 min
  • Hodinová sazba: 500 Kč

Před AI:

500 × 8 min = 4000 min = 67 hodin
67 hodin × 500 Kč = 33 500 Kč/měsíc

Po AI (95% automatizace):

500 × 0,4 min review = 200 min = 3,3 hodin
3,3 hodin × 500 Kč = 1 650 Kč/měsíc

ÚSPORA: 31 850 Kč/měsíc = 382k Kč/rok

Investice:

  • OCR engine (license): 80k Kč/rok
  • Custom training: 250k Kč (jednoráz)
  • Integrace: 150k Kč
  • CELKEM: 480k Kč

ROI: 15 měsíců NPV (3 roky): 790k Kč


Závěr: Kdy se to vyplatí

AI vytěžování faktur má smysl, když:

  • ✅ >200 faktur měsíčně
  • ✅ Většina faktur born-digital PDF
  • ✅ Standardní dodavatelé (ne moc variability)
  • ✅ Týden na training není problém

Nevyplatí se, když:

  • ❌ <50 faktur měsíčně
  • ❌ Většina faktur ručně psané
  • ❌ Každý dodavatel jiný formát
  • ❌ Potřeba 100% přesnost (medicína, legal)

Hybrid přístup je king: AI dělá 90% rutiny, člověk kontroluje výjimky a kritické případy.

Chcete vyzkoušet na vašich fakturách? Pošlete nám 20 sample PDF faktur, my vám ukážeme reálnou přesnost a ROI kalkulaci.

Zajímá vás implementace AI ve vaší firmě?

Nabízíme bezplatnou konzultaci a analýzu vašich procesů. Pojďme společně najít, kde AI přinese největší přidanou hodnotu.

Kontaktujte nás