Tesseract OCR — Open-Source-Engine zur optischen Zeichenerkennung
Tesseract OCR ist eine auf Deep Learning basierende Engine zur Textextraktion aus Bildern und PDF-Dokumenten. Nutzen Sie diese Dokumentation, um die Installation unter Windows, Linux und macOS zu meistern, KI-Modi zu konfigurieren und OCR nahtlos in Ihre Software-Pipelines zu integrieren.
Was ist Tesseract?
Tesseract ist eine Engine, die Bildpixel in strukturierte, durchsuchbare Textdaten umwandelt. Ursprünglich 1985 bei Hewlett-Packard entwickelt, wird es heute von der weltweiten Open-Source-Community gepflegt und unterstützt über 100 Sprachen nativ durch neuronale LSTM-Netzwerke (Long Short-Term Memory).
Installation
Da Tesseract eine optimierte C++ Bibliothek ist, empfiehlt sich die Installation über den Paketmanager Ihres Betriebssystems.
macOS
Homebrew ist die offiziell empfohlene Methode für macOS (Apple Silicon und Intel Chips).
brew install tesseract
brew install tesseract-lang
Ubuntu / Debian
Die Standard-Paketquellen von apt enthalten stabile Versionen von Tesseract.
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-deu tesseract-ocr-all
Windows
Vorkompilierte Windows-Installer werden durch das UB Mannheim Projekt bereitgestellt. Paketmanager wie scoop oder winget unterstützen Tesseract ebenfalls nativ.
scoop install tesseract
scoop install tesseract-languages
Schnellstart & Grundlegende CLI-Befehle
Tesseract ist primär ein Kommandozeilenwerkzeug. Die Textextraktion gelingt in einer einzigen Zeile.
tesseract bildname ausgabename [-l sprache] [-psm segmentierungsmodus] [konfigurationsdatei...]
Beispiel: Deutschen Text extrahieren
Um Text aus rechnung.png zu extrahieren und in ergebnis.txt zu speichern:
tesseract rechnung.png ergebnis -l deu
.txt im Ausgabenamen weg. Tesseract hängt .txt automatisch an.
Seitensegmentierungsmodi (PSM)
Seitensegmentierungsmodi (PSM) steuern, wie Tesseract das visuelle Layout eines Bildes analysiert, um Textblöcke zu finden. Standardmäßig erwartet Tesseract eine vollständige Textseite (PSM 3). Wenn Ihre Eingabe nur eine Zeile oder unzusammenhängenden Text enthält, setzen Sie das Flag --psm entsprechend.
- 0: Nur Erkennung von Orientierung und Schriftart (OSD).
- 1: Automatische Seitensegmentierung mit OSD.
- 3: Vollautomatische Seitensegmentierung ohne OSD. *(Standard)*
- 4: Einzelne Textspalte mit variablen Schriftgrößen.
- 6: Einzelner einheitlicher Textblock.
- 7: Bild als einzelne Textzeile behandeln.
- 11: Sparsamer Text. Findet so viel Text wie möglich ohne feste Ordnung.
- 13: Reine Zeile. Verarbeitet als Einzelzeile unter Umgehung interner Heuristiken.
Um die Erkennung als einzelne Zeile zu erzwingen:
tesseract barcode.png stdout --psm 7
OCR Engine Modi (OEM)
Die Engine-Modi (OEM) erlauben das Umschalten zwischen dem klassischen regelbasierten Erkennungsverfahren und dem modernen neuronalen LSTM-Netzwerk. Sie können die Modi über das Flag --oem steuern, um Geschwindigkeit und Präzision abzustimmen.
- 0: Nur klassische Legacy-Engine. (Traditionelle Computer-Vision-Methoden).
- 1: Nur neuronale LSTM-Engine. (Schnell und hochpräzise).
- 2: Legacy- und LSTM-Engine kombiniert.
- 3: Standard, basierend auf dem geladenen
.traineddataModell.
Ausgabeformate
Neben einfachem Text im Terminal oder in .txt-Dateien kann Tesseract durchsuchbare PDFs und präzise Layoutgeometrien generieren.
Durchsuchbare PDFs
Um ein gescanntes Bild in ein durchsuchbares PDF mit unsichtbarem, exakt ausgerichtetem Text über dem Originalbild umzuwandeln:
tesseract dokument.tif ausgabe_pdf pdf
PDF nur mit unsichtbarem Text
Nützlich, wenn Sie in einer Pipeline erkannten Text über bereits bestehende PDF-Seiten legen möchten:
tesseract scan.png ausgabe textonly_pdf
hOCR / TSV / ALTO
Wenn Sie exakte Pixelkoordinaten (Bounding Boxes) jedes Wortes und deren Konfidenzwerte benötigen:
tesseract bild.png ausgabe hocr
tesseract bild.png ausgabe tsv
Programmierschnittstellen & Wrapper
Möchten Sie Tesseract in eine Web-App oder einen Microservice einbinden? Die Community bietet Bibliotheken für nahezu jede moderne Programmiersprache.
Python (pytesseract)
Erfordert das installierte Tesseract-Kommandozeilentool auf dem System.
import pytesseract
from PIL import Image
img = Image.open('beleg.png')
text = pytesseract.image_to_string(img, lang='deu')
print(text)
pytesseract.
Node.js & JavaScript (tesseract.js)
Vollständige WebAssembly-Portierung der C++-API. Läuft direkt im Browser ohne serverseitige Binärinstallationen.
const Tesseract = require('tesseract.js');
Tesseract.recognize(
'https://tesseractocr.org/beispiel.png',
'deu',
{ logger: m => console.log(m) }
).then(({ data: { text } }) => {
console.log(text);
});
Eigene OCR-Modelle trainieren
Tesseract 5 nutzt die Infrastruktur des tesstrain Projekts zum Trainieren und Fine-Tunen von neuronalen LSTM-Modellen.
Das tesstrain Repository
Im Gegensatz zu Version 3 ist das Training in Version 5 durch Makefiles automatisiert, die die Generierung großer Mengen an Trainingsdaten steuern.
git clone https://github.com/tesseract-ocr/tesstrain
cd tesstrain
make tesseract-langdata
Ausführliche Anleitungen zur Erstellung von Ground Truth (GT) Daten und Trainingsepochen finden Sie direkt im offiziellen tesstrain GitHub Repository.
Verwandte Dokumenten-KI & Deep-Learning-Engines
Obwohl Tesseract der bewährte Open-Source-Standard ist, werden moderne Pipelines häufig durch spezialisierte Bibliotheken ergänzt:
- PaddleOCR: Deep-Learning-OCR-Framework (PP-OCR) mit hervorragender Tabellenerkennung und Unterstützung für mehrsprachige Dokumente.
- Docling: Dokumentenparser für Generative AI und RAG, der PDFs und Bilder in strukturiertes Markdown und JSON umwandelt.
- Python Pillow: Die Standardbibliothek zur Bildverarbeitung in Python (Kontrastanpassung, Schwellenwerte und Zuschnitt) vor dem OCR-Lauf.
Ende der Tesseract Kern-Dokumentation.
Haftungsausschluss: TesseractOCR.org ist ein unabhängiges Dokumentationsprojekt der Community und steht in keiner offiziellen Verbindung zum Projekt Tesseract OCR oder dessen Maintainern.