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
| Aspekt | Tesseract | Vision-Modell |
|---|---|---|
| Was | Zeichenerkennung | Bildverständnis |
| Kontext | Nein | Ja |
| Tabellen | Schlecht | Gut |
| Handschrift | Begrenzt | Besser |
| Layout | Verliert Struktur | Versteht Struktur |
| Geschwindigkeit | Sehr schnell | Langsamer |
| VRAM | Keins | 2-6 GB |
| Best für | Einfacher Text | Komplexe 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.
Weiterführende Links
- Dokumentenanalyse - Dokumente verstehen.
- Vision-Modelle - Vision-Modelle im Vergleich.
- Ollama Vision - Vision in Ollama.
- Dokumente und PDF - Übersicht.
- PDF-Chatbot - Mit Dokumenten chatten.
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?
Tesseract oder Vision-Modell?
Kann KI Handschrift lesen?
Kann KI Tabellen extrahieren?
Welche Sprachen werden unterstützt?
Wie wichtig ist die Bildqualität?
Sind meine Bilder sicher?
Was kostet OCR?
Quellen und weiterführende Literatur
- Tesseract OCR - Klassische OCR.
- pytesseract - Python-Bibliothek.
- MiniCPM-V - Vision-Modell.
- Ollama - Modellserver.


