5 Punkte von GN⁺ 2024-08-10 | 1 Kommentare | Auf WhatsApp teilen
  • Entwickelt, um die Qualität der Ausgabe optischer Zeichenerkennung (OCR) deutlich zu verbessern
  • Nutzt moderne Natural-Language-Processing-Techniken und große Sprachmodelle (LLMs), um rohen OCR-Text in sehr präzise, gut formatierte und leicht lesbare Dokumente umzuwandeln

Funktionen

  • Konvertierung von PDFs in Bilder
  • OCR mit Tesseract
  • Erweiterte Fehlerkorrektur mit einem LLM (lokal oder API-basiert)
  • Intelligentes Text-Chunking für effiziente Verarbeitung
  • Markdown-Formatierungsoptionen
  • Unterdrückung von Kopfzeilen und Seitenzahlen (optional)
  • Qualitätsbewertung der finalen Ausgabe
  • Unterstützung für lokale LLMs und Cloud-basierte API-Anbieter (OpenAI, Anthropic)
  • Asynchrone Verarbeitung zur Leistungssteigerung
  • Detailliertes Logging für Prozessverfolgung und Debugging
  • GPU-Beschleunigung für lokale LLM-Inferenz

Anforderungen

  • Python 3.12+
  • Tesseract-OCR-Engine
  • PDF2Image-Bibliothek
  • PyTesseract
  • OpenAI API (optional)
  • Anthropic API (optional)
  • Unterstützung für lokale LLMs (optional, kompatibles GGUF-Modell erforderlich)

Verwendung

  1. PDF-Datei im Projektverzeichnis ablegen
  2. Die Variable input_pdf_file_path in der Funktion main() mit dem Namen der PDF-Datei aktualisieren
  3. Skript ausführen:
    python llm_aided_ocr.py  
    
  4. Das Skript erzeugt mehrere Ausgabedateien, darunter den final nachbearbeiteten Text

Funktionsweise

Das Projekt LLM-Aided OCR verwendet einen mehrstufigen Prozess, um rohe OCR-Ausgaben in hochwertige, gut lesbare Texte umzuwandeln:

  1. PDF-Konvertierung: Das Eingabe-PDF wird mit pdf2image in Bilder umgewandelt
  2. OCR: Tesseract OCR wird angewendet, um Text aus den Bildern zu extrahieren
  3. Text-Chunking: Die rohe OCR-Ausgabe wird in handhabbare Chunks aufgeteilt
  4. Fehlerkorrektur: Jeder Chunk wird durch LLM-basierte Verarbeitung geschickt, um OCR-Fehler zu korrigieren und die Lesbarkeit zu verbessern
  5. Markdown-Formatierung (optional): Der korrigierte Text wird in sauberes, konsistentes Markdown umformatiert
  6. Qualitätsbewertung: Eine LLM-basierte Bewertung vergleicht die Qualität der finalen Ausgabe mit dem ursprünglichen OCR-Text

Zusammenfassung von GN⁺

  • Das Projekt LLM-Aided OCR ist ein System, das moderne Natural-Language-Processing-Techniken und große Sprachmodelle nutzt, um die Qualität von OCR-Ausgaben deutlich zu verbessern
  • PDFs werden in Bilder umgewandelt, Text wird mit Tesseract extrahiert und anschließend mit einem LLM korrigiert und in Markdown neu strukturiert
  • Es unterstützt sowohl lokale als auch Cloud-basierte LLMs und optimiert die Leistung durch asynchrone Verarbeitung
  • Das Projekt bietet verschiedene fortgeschrittene Funktionen zur Verbesserung von Genauigkeit und Lesbarkeit von OCR-Ausgaben und ist besonders für die Verarbeitung großer Dokumente nützlich
  • Ähnliche Projekte mit vergleichbarer Funktionalität sind unter anderem ABBYY FineReader und Adobe Acrobat OCR

1 Kommentare

 
GN⁺ 2024-08-10
Hacker-News-Kommentare
  • Mit der Veröffentlichung des neuen schnell-Modells könnte es möglich werden, Datensätze zu gewinnen, mit denen sich SOTA-Visionsmodelle erstellen lassen

    • Derzeit basieren die meisten Visionsmodelle auf alten CLIP/BLIP-Captions
    • Auch Modelle wie LLAVA oder phi-llava sind weiterhin durch vortrainierte visuelle Komponenten begrenzt
    • Die Pipeline aus Tessy und LLM ist effektiv und eröffnet die Möglichkeit, dass mehrsprachige Modelle digitalisierte Arbeiten lesen und übersetzen können
    • LLAVA-PHI3 kann Hebräisch konsistent transkribieren, hat aber Halluzinationsprobleme
    • Es wird erwartet, dass sich die Qualität deutlich verbessert, sobald neue SOTA-Visionsmodelle erscheinen
  • Für wissenschaftliche Arbeiten ist metas nougat-Modell am besten geeignet

    • Für Rechnungen und Aufzeichnungen ist das donut-Modell besser
    • Beide Modelle können in einigen Fällen scheitern, und man muss LLMs einsetzen, um die Probleme zu lösen
    • Im OCR-Prozess gehen Details verloren, daher ist es schwierig, Tabellen und Diagramme präzise zu verarbeiten
    • Google Gemini bietet Fine-Tuning für Bilder an, wurde aber noch nicht ausprobiert
    • Few-Shot-Prompts helfen dabei, Halluzinationen von LLMs zu vermeiden und sie auf das gewünschte Format auszurichten
  • Nach früheren Versuchen funktioniert es in 90 % der Fälle gut

    • Bei Dokumenten wie Mietverträgen gibt es Schwierigkeiten mit Zahlen und Namen (von Personen oder Orten sowie Adressen)
    • Ein LLM kann die exakte Miethöhe oder den Namen einer bestimmten Person nicht wissen
  • Wenn man PDF-Seiten in PNG konvertiert und gpt4 bittet, die Bilder zu transkribieren, ist das sehr präzise

    • Genauer als Tesseract oder klassische OCR
  • Vor 10 Jahren wurde versucht, Tesseract für OCR auf Chinesisch zu verwenden

    • Englischen Text zu erkennen und anschließend zu bereinigen ist einfach
    • Bei Chinesisch ist es schwer, Fehler zu erkennen, wenn auch nur ein einziges Zeichen falsch erkannt wird
    • Mit Image-Magie wurde das Bild transformiert und an Tesseract geschickt; anschließend wurde anhand der statistischen Häufigkeit der erkannten Sätze ein Gewinner gewählt
    • Die Genauigkeit wurde stark verbessert
  • Mit PaddlePaddle wurden bessere Ergebnisse erzielt

    • Es wurde eine Python-Implementierung geschrieben, die mit PPOCRv3 Bücher auf Wortebene zuschneidet
    • PPOCRv4 hat keine Begrenzung der Pixelgröße und kann daher „out of the box“ verwendet werden
    • Das PPOCRv3-Erkennungsmodell funktionierte besser
  • Es wurde gefragt, ob andere OCR-Pakete ausprobiert wurden

    • Es gab das Problem, dass Tesseract „77“ als „7“ gelesen hat
  • Es ist wichtig, den Prompt so anzupassen, dass das Modell klarer versteht

    • Es wurde viel über LLMs und Dokumente nachgedacht
    • OCR wird vermutlich bald als vollständig gelöst gelten
    • Die Herausforderung besteht darin, Mehrdeutigkeiten und Details komplexer Dokumente wirksam gegenüber KI-Modellen zu beschreiben
  • Es wird an einer ähnlichen Aufgabe gearbeitet, bei der Rubrics und Einreichungen von Studierenden geparst werden

    • Es besteht Interesse an einer Integration mit GPT-4V
    • Kontakt per E-Mail ist erwünscht
  • Es wurde nach dem Ansatz gefragt, OCR-Fehler mit dem Prompt "fix this text" zu korrigieren

    • Es wurde vorgeschlagen, statt eines Chat-Modells ein Completion-Modell zu verwenden, die Eingabe tokenweise einzuspeisen und Wahrscheinlichkeiten für das nächste Token zu erhalten
    • Es wird angenommen, dass diese Methode Halluzinationen deutlich reduzieren könnte