Communitygithub.com

real-offline-ocr

Lokale Texterkennung (OCR) auf Basis von RapidOCR + PP-OCRv6 für Chinesisch und Englisch – vollständig offline und ohne GPU.

Was ist real-offline-ocr?

Das Skill ‚real-offline-ocr‘ ermöglicht die lokale Texterkennung (OCR) direkt auf dem Rechner, ohne Internetzugang, API-Schlüssel oder Grafikbeschleunigung. Es nutzt die bewährten Modelle RapidOCR und PP-OCRv6 (drei Stufen: tiny, small, medium) und erkennt sowohl chinesische als auch englische Schriftzeichen. Der Skill ist ideal für Szenarien, in denen ein KI-Assistent wie Claude Code oder Cursor selbst keine Bilder verarbeiten kann – er extrahiert den Text aus Screenshots, Fotos, Belegen, gescannten Dokumenten oder Captchas und reicht ihn als reinen Text an das Modell weiter. Die Installation erfolgt einmalig über ein Setup-Skript, das eine isolierte Python-Umgebung mit allen Abhängigkeiten erstellt. Der Benutzer kann zwischen den Inferenz-Engines ONNX Runtime (Standard) und OpenVINO (für Intel‑CPUs, ca. 1,8x schneller) wählen und die Modellgröße je nach Genauigkeits- und Geschwindigkeitsanforderung anpassen. Die Ausgabe erfolgt als strukturierter Text mit Konfidenzwerten, sodass unsichere Erkennungen gekennzeichnet werden können.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add uglymie/real-offline-ocr

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Offline OCR — Lokale Bild-Text-Erkennung

Basiert auf RapidOCR + PP-OCRv6 für die lokale Texterkennung in Bildern. Läuft vollständig offline, benötigt keine Internetverbindung, keinen API-Key und keine GPU. Unterstützt Chinesisch und Englisch.

Wann verwenden

  • Der Benutzer stellt Bilddateien bereit (Screenshots, Fotos, Belege, Scans, Dokumentbilder, Captchas usw.) und bittet um das Auslesen des darin enthaltenen Texts.
  • Textinhalte aus Bildern sollen extrahiert werden, z. B. zum Kopieren von Belegdaten, Erkennen von Code/Text in Screenshots oder Extrahieren von Tabellentext.
  • Als Alternative zum „Bildlesen“ wenn das Modell selbst keine multimodale Fähigkeit besitzt.
  • Kombinierbar mit DeepSeek-V4 oder anderen großen Modellen ohne multimodale Fähigkeiten: Wenn die Schnittstelle des Modells selbst „keine Bilder sehen kann“, extrahiert dieser Skill zuerst den Text aus dem Bild, den das Modell dann verstehen, beantworten und verarbeiten kann.

Ersteinrichtung (nur einmal erforderlich)

Das Skript benötigt eine separate Python-Virtual-Umgebung. Überprüfen Sie vor der ersten Nutzung dieses Skills, ob die Umgebung bereits bereit ist:

# Falls <SKILL_DIR>/.venv nicht existiert oder rapidocr nicht importiert werden kann, führen Sie aus:
python <SKILL_DIR>/scripts/setup.py

# Intel-CPU-Benutzer, die höhere Leistung (ca. 1,8x) wünschen, können zusätzlich OpenVINO installieren:
python <SKILL_DIR>/scripts/setup.py --with-openvino

Der Befehl funktioniert plattformübergreifend (Windows/macOS/Linux, kein bash erforderlich). Sollte python nicht gefunden werden, kann unter Linux/macOS python3 verwendet werden.

setup.py ist idempotent und kann mehrfach ausgeführt werden; bereits installierte Komponenten werden übersprungen. Es führt folgende Schritte aus:

  • Überprüft, ob Python ≥ 3.9 installiert ist (falls nicht, werden plattformspezifische Installationsanleitungen ausgegeben).
  • Erstellt <SKILL_DIR>/.venv und installiert rapidocr + onnxruntime (Standard) oder + openvino (optional).
  • Falls eine Intel-CPU erkannt wird und OpenVINO noch nicht installiert ist, wird ein Hinweis auf die optionale 1,8x-Beschleunigung gegeben (ohne automatische Installation).

<SKILL_DIR> bezeichnet das Verzeichnis dieses Skills. Die Modelle sind im rapidocr-Paket enthalten (PP-OCRv6 mit drei Stufen det/rec) und müssen nicht separat heruntergeladen werden.

Vollständiger Ablauf von der ersten Installation bis zur Nutzung: python <SKILL_DIR>/scripts/setup.py → automatische Installation abwarten (ca. 1–3 Minuten) → dann können Bilder mit dem untenstehenden Befehl erkannt werden.

Verwendung

# Einzelnes Bild
python <SKILL_DIR>/scripts/ocr.py <Bildpfad>

# Mehrere Bilder
python <SKILL_DIR>/scripts/ocr.py <Bild1> <Bild2> ...

# Wichtige Parameter
--model tiny|small|medium      Modellstufe (Standard: small)
--engine onnxruntime|openvino  Inferenz-Engine (Standard: onnxruntime)
--use_cls                      Textausrichtungs-Klassifikation aktivieren (für gedrehte oder vertikale Texte, etwas langsamer)
--save_vis                     Visualisierungsergebnisse in output/ speichern

Beispiele:

python <SKILL_DIR>/scripts/ocr.py /pfad/zu/screenshot.png
python <SKILL_DIR>/scripts/ocr.py --model tiny --save_vis /pfad/zu/rechnung.jpg
python <SKILL_DIR>/scripts/ocr.py --engine openvino /pfad/zu/foto.png

Hinweis: ocr.py verwendet automatisch die Abhängigkeiten aus .venv (unter Windows .venv\Scripts\python.exe), sodass Sie sich nicht um den Interpreter-Pfad kümmern müssen.

Ausgabeformat

Das Skript gibt die Erkennungsergebnisse auf stdout aus, im folgenden Format:

===== dateiname.png =====
Insgesamt N Textblöcke erkannt:
[1] Erster erkannter Text  (Konfidenz: 0.98)
[2] Zweiter erkannter Text  (Konfidenz: 0.95)

Nach Abschluss der Erkennung werden die reinen Textinhalte (ohne [Nummer]) zusammengefasst an den Benutzer zurückgegeben, zusammen mit einem Hinweis auf niedrige Konfidenz (z. B. Erkennungen mit < 0.6 könnten ungenau sein).

Inferenz-Engine-Auswahl

EngineGrößeEigenschaften
onnxruntime (Standard)klein (~52 MB)Plattformübergreifend konsistent, saubere Installation, allgemein empfohlen
openvinogroß (~+123 MB)Nur auf Intel-CPUs schneller (ca. 1,8x); bei AMD/Apple Silicon kein Vorteil

Modellstufen-Auswahl

StufeGröße det/rec-ModellGeschwindigkeitGenauigkeitAnwendungsszenario
tiny1,8 MB / 4,5 MBam schnellstenniedrigerEinfache Szenen, schnelle Vorschau
small (Standard)9,9 MB / 21 MBausgewogengutAllgemeine Szenen
medium62 MB / 77 MBam langsamstenam höchstenKomplexe, unscharfe, dichte Texte

Verwenden Sie bei klaren, gut lesbaren Texten bevorzugt small. Bei ungenauen Erkennungen wechseln Sie zu medium.

Hinweise

  • Je klarer das Bild und je lesbarer der Text, desto besser die Erkennung. Kursivschrift, künstlerische Schriftarten und komplexe Hintergründe können die Genauigkeit verringern.
  • Bei um 180° gedrehten oder vertikalen Texten kann der Parameter --use_cls verwendet werden.
  • Die Verarbeitungszeit pro Bild beträgt ca. 0,1–1 s (CPU), abhängig von Bildgröße, Modellstufe und Engine.
  • Erfordert lediglich Python 3.9+. Falls keine Python-Umgebung vorhanden ist, gibt setup.py plattformspezifische Installationsanleitungen aus.

Verwandte Skills