Skip to content
BotServBotServ
OCRTesseractVision-ModelleTextextraktionScans

OCR mit lokaler KI

OCR mit lokaler KI nutzen. Text aus Bildern und Scans extrahieren, Tesseract vs. Vision-Modelle und Praxisbeispiele.

S

schutzgeist

4 min read
OCR mit lokaler KI

OCR mit lokaler KI

Was dieser Artikel über OCR mit lokaler KI behandelt

  • Wie OCR funktioniert und warum KI hilft.
  • Tesseract (klassisch) vs. Vision-Modelle (modern).
  • Wie Du gescannte Dokumente, Fotos und Screenshots in Text umwandelst.
  • Praxisbeispiele für Dokumentenverarbeitung.
  • Best Practices für Genauigkeit und Performance.

Einleitung: OCR mit lokaler KI verständlich erklärt

OCR (Optical Character Recognition) extrahiert Text aus Bildern. Klassisches OCR (Tesseract) erkennt Zeichen, aber versteht nicht den Kontext. KI-basierte OCR (Vision-Modelle) versteht das Bild: „Das ist eine Tabelle mit Preisen” statt nur „A, B, 1, 2”. Lokal mit Ollama bleiben alle Bilder privat.

Dieser Artikel richtet sich an Anwender, die Text aus Bildern extrahieren wollen. Grundlagen findest Du in Vision-Modelle und Dokumentenanalyse.

Warum brauche ich OCR mit KI?

Stell Dir vor, Du hast ein Foto eines Dokuments. Tesseract extrahiert Text, aber ohne Kontext: „RE 2024 1234 15 03 1234 56”. Ein Vision-Modell versteht: „Rechnung RE-2024-1234, Datum 15.03., Betrag 1.234,56 €”. Die KI interpretiert das Bild, nicht nur die Zeichen.

OCR mit lokaler KI kurz erklärt

Bild → Vision-Modell (Ollama) → Text + Kontext. Oder: Bild → Tesseract → Rohtext → LLM → strukturierte Daten. Beide Ansätze lokal.

Der Kerngedanke lautet: Klassisches OCR extrahiert Zeichen, KI versteht den Inhalt.

Für wen ist dieser Artikel gedacht?

  • Dokumentenverarbeiter, die Scans digitalisieren.
  • Entwickler, die OCR-Pipelines bauen.
  • Archivare, die alte Dokumente erfassen.
  • Self-Hoster, die OCR lokal betreiben.

Wichtige Begriffe

  • OCR - Optical Character Recognition. Wann nützlich: für Text aus Bildern.
  • Tesseract - Klassische OCR-Engine. Wann nützlich: für einfache Extraktion.
  • Vision-Modelle - KI für Bilder. Wann nützlich: für kontextuelles OCR.
  • Ollama - Modellserver. Wann nützlich: für Vision-Modelle.
  • PDF/Textebene - Text in PDFs. Wann nützlich: für direkte Extraktion.

Tesseract vs. Vision-Modell

AspektTesseractVision-Modell
WasZeichenerkennungBildverständnis
KontextNeinJa
TabellenSchlechtGut
HandschriftBegrenztBesser
LayoutVerliert StrukturVersteht Struktur
GeschwindigkeitSehr schnellLangsamer
VRAMKeins2-6 GB
Best fürEinfacher TextKomplexe Dokumente

Setup: Tesseract

# Tesseract installieren
sudo apt install tesseract-ocr tesseract-ocr-deu

# Python-Bibliothek
pip install pytesseract pillow

# Testen
tesseract --version
from PIL import Image
import pytesseract

# Text aus Bild extrahieren
image = Image.open("scan.png")
text = pytesseract.image_to_string(image, lang="deu")
print(text)

Setup: Vision-Modell (Ollama)

# Vision-Modell laden
ollama pull minicpm-v:8b
import requests
import base64

def ocr_with_vision(image_path):
    """OCR mit Vision-Modell"""
    with open(image_path, "rb") as f:
        image_b64 = base64.b64encode(f.read()).decode()

    response = requests.post("http://ollama:11434/api/chat", json={
        "model": "minicpm-v:8b",
        "messages": [
            {
                "role": "user",
                "content": "Extrahiere allen Text aus diesem Bild. Gib den Text strukturiert zurück.",
                "images": [image_b64]
            }
        ],
        "stream": False
    })
    return response.json()["message"]["content"]

# Beispiel
text = ocr_with_vision("scan.png")

Praxisbeispiel 1: Rechnung scannen

# Tesseract für schnellen Text
raw_text = pytesseract.image_to_string(invoice_image, lang="deu")

# LLM für Strukturierung
def structure_invoice(raw_text):
    response = requests.post("http://ollama:11434/api/chat", json={
        "model": "llama3.1",
        "messages": [
            {"role": "system", "content": "Strukturiere den OCR-Text als JSON: rechnungsnummer, datum, betrag, positionen."},
            {"role": "user", "content": f"OCR-Text:\n{raw_text}"}
        ],
        "stream": False,
        "format": "json"
    })
    return json.loads(response.json()["message"]["content"])

Praxisbeispiel 2: Tabelle extrahieren

# Vision-Modell für Tabellen
def extract_table(image_path):
    response = requests.post("http://ollama:11434/api/chat", json={
        "model": "minicpm-v:8b",
        "messages": [
            {
                "role": "user",
                "content": "Extrahiere die Tabelle aus diesem Bild. Gib sie als Markdown-Tabelle zurück.",
                "images": [image_b64]
            }
        ],
        "stream": False
    })
    return response.json()["message"]["content"]

Praxisbeispiel 3: Handschrift

# Vision-Modell für Handschrift (besser als Tesseract)
def extract_handwriting(image_path):
    response = requests.post("http://ollama:11434/api/chat", json={
        "model": "minicpm-v:8b",
        "messages": [
            {
                "role": "user",
                "content": "Lies die Handschrift in diesem Bild. Gib den Text zurück.",
                "images": [image_b64]
            }
        ],
        "stream": False
    })
    return response.json()["message"]["content"]

Hybrid-Ansatz

def hybrid_ocr(image_path):
    """Tesseract + LLM für beste Ergebnisse"""
    # 1. Tesseract für schnellen Text
    raw_text = pytesseract.image_to_string(image_path, lang="deu")

    # 2. LLM für Strukturierung und Fehlerkorrektur
    response = requests.post("http://ollama:11434/api/chat", json={
        "model": "llama3.1",
        "messages": [
            {"role": "system", "content": "Korrigiere OCR-Fehler und strukturiere den Text."},
            {"role": "user", "content": f"OCR-Rohtext:\n{raw_text}"}
        ],
        "stream": False
    })
    return response.json()["message"]["content"]

Sicherheitshinweise

  • Bilder können sensible Daten enthalten: Lokale Verarbeitung schützt. Siehe Datenschutz.
  • OCR-Fehler: Schlechte Scans = schlechte Extraktion. Qualität prüfen.
  • Prompt Injection: Bilder können versteckte Anweisungen enthalten. Siehe Prompt Injection.

Typische Stolpersteine

  • Schlechte Bildqualität: Unscharfe Scans = schlechte OCR. Qualität verbessern.
  • Falsches Modell: Für einfache Texte ist Tesseract schneller. Für komplexe Dokumente Vision-Modell.
  • Kein Kontext: Tesseract versteht keinen Kontext. Für Struktur LLM nachschalten.
  • Mehrere Sprachen: Tesseract braucht Sprachpakete. Vision-Modelle sind mehrsprachig.
  • Handschrift: Tesseract ist schlecht für Handschrift. Vision-Modelle sind besser.

Key Takeaways:

  • Tesseract für schnelle, einfache Textextraktion.
  • Vision-Modelle für komplexe Dokumente, Tabellen, Handschrift.
  • Hybrid: Tesseract für Rohtext, LLM für Strukturierung.
  • Lokal mit Ollama: alle Bilder bleiben privat.
  • Für schlechte Scans: Bildqualität zuerst verbessern.

FAQ

Was ist OCR?

Optical Character Recognition: Text aus Bildern extrahieren. Klassisch mit Tesseract, modern mit Vision-Modellen die auch den Kontext verstehen.

Tesseract oder Vision-Modell?

Tesseract für schnelle, einfache Texte. Vision-Modell für komplexe Dokumente, Tabellen, Handschrift und Kontext-Verständnis. Hybrid für beste Ergebnisse.

Kann KI Handschrift lesen?

Ja, Vision-Modelle können Handschrift lesen, besser als Tesseract. Für sehr schlechte Handschrift ist es trotzdem schwierig.

Kann KI Tabellen extrahieren?

Ja, Vision-Modelle verstehen Tabellenstruktur und können sie als Markdown oder JSON zurückgeben. Tesseract verliert die Struktur.

Welche Sprachen werden unterstützt?

Tesseract braucht Sprachpakete (tesseract-ocr-deu für Deutsch). Vision-Modelle sind mehrsprachig und verstehen viele Sprachen automatisch.

Wie wichtig ist die Bildqualität?

Sehr wichtig. Unscharfe, schiefe oder dunkle Scans geben schlechte Ergebnisse. Für beste OCR: gute Auflösung, gerade Ausrichtung, guter Kontrast.

Sind meine Bilder sicher?

Ja, wenn Du lokale Tools nutzt (Tesseract, Ollama). Bei Cloud-OCR (Google, Azure) gehen Bilder raus, für sensible Dokumente lokal bleiben.

Was kostet OCR?

Tesseract: kostenlos. Ollama + Vision-Modell: kostenlos (nur Hardware). Cloud-OCR: pro Seite/Bild kostenpflichtig.

Quellen und weiterführende Literatur

Zurück zum KI Blog
Share:

Ähnliche Beiträge