AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

VOP: OCR-Tool zum Extrahieren komplexer Diagramme und mathematischer Formeln

Allgemeine Einführung

Versatile OCR Program ist ein Open-Source-Tool für die optische Zeichenerkennung (OCR), das für die Verarbeitung komplexer akademischer und pädagogischer Dokumente entwickelt wurde. Es kann Text, Tabellen, mathematische Formeln, Diagramme und Schemata aus PDF-, Bild- und anderen Dokumenten extrahieren und strukturierte Daten erzeugen, die sich für das Training von maschinellem Lernen eignen. Es unterstützt mehrere Sprachen, darunter Englisch, Japanisch und Koreanisch, und das Ausgabeformat ist JSON oder Markdown für die Bequemlichkeit der Entwickler.

VOP: OCR-Tool zum Extrahieren komplexer Diagramme und mathematischer Formeln-1


VOP: OCR-Tool zum Extrahieren komplexer Diagramme und mathematischer Formeln-1

 

Funktionsliste

  • Extrahiert mehrsprachigen Text, unterstützt Englisch, Japanisch, Koreanisch usw., kann auf andere Sprachen erweitert werden.
  • Erkennen von mathematischen Formeln und Generieren von LaTeX-Code und natürlichsprachlichen Beschreibungen.
  • Analysiert Tabellen, behält die Zeilen- und Spaltenstruktur bei und gibt strukturierte Daten aus.
  • Analyse von Diagrammen und Schemata, um semantische Anmerkungen und Beschreibungen zu erstellen (z. B. "Dieses Diagramm zeigt die vier Phasen der Zellteilung").
  • Verarbeitung komplexer Layout-PDFs, genaue Identifizierung formelintensiver Absätze und visueller Elemente.
  • Gibt JSON- oder Markdown-Format mit semantischem Kontext aus, um das KI-Training zu optimieren.
  • Verwenden Sie DocLayout-YOLO, Google Vision API, MathPix und andere Technologien zur Verbesserung der Erkennungsgenauigkeit.
  • Bietet eine hohe Genauigkeit von 90-95% für echte akademische Datensätze (z. B. EJU Biology, Eastern University Maths).
  • Unterstützt die Stapelverarbeitung, um mehrere Dateieingaben zu verarbeiten.

 

Hilfe verwenden

Einbauverfahren

Um das Versatile OCR-Programm zu verwenden, müssen Sie das Repository klonen und die Umgebung konfigurieren. Nachfolgend finden Sie die detaillierten Schritte:

  1. Klon-Lager
    Läuft im Terminal:

    git clone https://github.com/ses4255/Versatile-OCR-Program.git
    cd Versatile-OCR-Program
    
  2. Erstellen einer virtuellen Umgebung
    Python 3.8 oder höher wird empfohlen. Erstellen und aktivieren Sie eine virtuelle Umgebung:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    
  3. Installation von Abhängigkeiten
    Installieren Sie die für das Projekt erforderlichen Bibliotheken:

    pip install -r requirements.txt
    

    Zu den Abhängigkeiten gehörenopencv-pythonundgoogle-cloud-visionundmathpixundpillowusw. Stellen Sie sicher, dass die Netzwerkverbindung stabil ist.

  4. Konfigurieren des API-Schlüssels
    Das Projekt stützt sich auf externe APIs (z. B. Google Vision, MathPix) für die erweiterte OCR-Verarbeitung:

    • Google Vision API: inconfig/Verzeichnis, um diegoogle_credentials.jsongeben Sie den Schlüssel für das Dienstkonto ein. Um den Schlüssel zu erhalten, besuchen Sie bitteGoogle Cloud-Konsole.
    • MathPix API: inconfig/Verzeichnis, um diemathpix_config.jsonAusfüllenapp_idim Gesang antwortenapp_key. Registrieren Sie sich für ein MathPix-Konto, um den Schlüssel zu erhalten.
    • Vorlagen für Konfigurationsdateien sind im Projekt verfügbarREADME.md.
  5. Überprüfen der Installation
    Führen Sie das Testskript aus, um sicherzustellen, dass die Umgebung korrekt ist:

    python test_setup.py
    

    Wenn es keine Fehler gibt, ist die Installation abgeschlossen.

Arbeitsablauf

Das Versatile OCR-Programm läuft in zwei Phasen ab: erste Extraktion und semantische Verarbeitung.

1. erste OCR-Extraktion

in Bewegung seinocr_stage1.pyExtrahieren von Rohelementen (Text, Tabellen, Diagramme usw.):

python ocr_stage1.py --input sample.pdf --output temp/
  • --inputGeben Sie die Eingabedatei an (PDF oder Bild, z. B. PNG, JPEG).
  • --outputGibt das Verzeichnis der Zwischenergebnisse an, das Koordinaten, beschnittene Bilder usw. enthält.
  • Unterstützung für die Stapelverarbeitung: Verwenden Sie--input_dirGeben Sie den Ordner an.

2. semantische Verarbeitung und endgültige Ausgabe

in Bewegung seinocr_stage2.pyKonvertierung von Zwischendaten in eine strukturierte Ausgabe:

python ocr_stage2.py --input temp/ --output final/ --format json
  • --inputGibt das Ausgabeverzeichnis für die erste Stufe an.
  • --formatWählen Sie das Ausgabeformat (jsonvielleichtmarkdown).
  • Die Ausgabe enthält Text, Formelbeschreibungen, tabellarische Daten und die semantische Kennzeichnung von Diagrammen.

Hauptfunktionen

1. mehrsprachige Textextraktion

Extrahieren Sie Text aus PDF oder Bildern mit Unterstützung für mehrere Sprachen:

python ocr_stage1.py --input document.pdf --lang eng+jpn+kor --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --langGeben Sie die Sprache in folgendem Format aneng(Englisch),jpn(Japanisch),kor(Koreanisch), Mehrsprachig+Verbindungen.
  • Die Ausgabedatei enthält Textinhalte und semantischen Kontext, gespeichert als Markdown oder JSON.

2. mathematische Formelidentifikation

Formeln identifizieren und LaTeX-Codes und Beschreibungen erzeugen. Zum Beispiel, die Formelx^2 + y = 5Die Ausgabe ist "eine quadratische Gleichung mit den Variablen x und y". Operation:

python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode mathErkennung der Aktivierungsformel.
  • Die Ausgabe enthält LaTeX-Code und Beschreibungen in natürlicher Sprache.

3. die Analyse der Tabellen

Extrahieren Sie die Tabelle unter Beibehaltung der Zeilen- und Spaltenstruktur:

python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode tableSpezialisiert auf die Bearbeitung von Formularen.
  • Die Ausgabe ist JSON mit Zeilen- und Spaltendaten und einer zusammenfassenden Beschreibung.

4. grafische und schematische Analyse

Analysieren Sie Diagramme oder Grafiken, um semantische Anmerkungen zu erzeugen. Ein Liniendiagramm könnte z. B. "Liniendiagramm mit Temperaturveränderung von 2010 bis 2020" ergeben. Aktion:

python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --mode figureAktivieren Sie die Chartanalyse.
  • Die Ausgabe enthält die Bildbeschreibung, die Extraktion der Datenpunkte und den Kontext.

Tipps und Tricks

  • Verbesserte GenauigkeitEingabe hochauflösender Dateien (300 DPI empfohlen). Zur Laufzeit hinzufügen--dpi 300Optimieren Sie das Parsen von Bildern.
  • Stapeldatei: Verwendung von--input_dir data/Verarbeitet alle Dateien im Ordner.
  • benutzerdefinierte Sprache:: Leitartikelconfig/languages.jsonUm eine Sprache hinzuzufügen, müssen Sie das entsprechende OCR-Modell (z.B. Tesseract language pack) installieren.
  • Debugging-Protokoll: Hinzufügen--verboseDetaillierte Betriebsinformationen anzeigen.
  • komprimierte Ausgabe: Verwendung von--compressVerringern Sie die Größe der JSON-Datei.

caveat

  • Vergewissern Sie sich, dass die Eingabedokumente eindeutig sind; Dokumente von schlechter Qualität können die Erkennungsgenauigkeit verringern.
  • Für die externe API ist ein stabiles Netzwerk erforderlich, und es wird empfohlen, einen Ersatzschlüssel zu konfigurieren.
  • Das Ausgabeverzeichnis muss über genügend Speicherplatz verfügen, da große PDFs größere Dateien erzeugen können.
  • Gemäß der GNU AGPL-3.0-Lizenz müssen abgeleitete Projekte den Quellcode öffentlich zugänglich machen.
  • Das Projekt plant, die KI-Pipeline-Integration innerhalb eines Monats zu veröffentlichen, bleiben Sie also dran.

Mit diesen Schritten können die Benutzer schnell loslegen, komplexe Dokumente verarbeiten und KI-Trainingsdaten generieren.

 

Anwendungsszenario

  1. Extraktion von Daten aus der akademischen Forschung
    Forscher können Formeln, Tabellen und Diagramme aus Prüfungsarbeiten oder Aufsätzen extrahieren, um Datensätze mit semantischen Anmerkungen zu erstellen. So wurden z. B. Mathematik-Prüfungsunterlagen der Eastern University für das Training von Geometriemodellen in JSON konvertiert.
  2. Digitalisierung von Bildungsressourcen
    Schulen können Papierlehrbücher oder Prüfungsunterlagen in ein elektronisches Format konvertieren, mehrsprachige Texte und Grafiken extrahieren und durchsuchbare Archive erstellen. Geeignet für die mehrsprachige Bearbeitung von internationalen Programmen.
  3. Konstruktion von Datensätzen für maschinelles Lernen
    Entwickler können strukturierte Daten aus akademischen Dokumenten extrahieren, um hochwertige Trainingssätze zu erstellen. So lassen sich beispielsweise Zellteilungsdiagramme aus biologischen Abhandlungen extrahieren, Beschreibungen von Stadien kennzeichnen und Bilderkennungsmodelle trainieren.
  4. Archivierung der Dokumentenverarbeitung
    Bibliotheken können historische wissenschaftliche Dokumente in ein digitales Format konvertieren und dabei Formeln und Tabellenstrukturen beibehalten, um die Effizienz der Suche zu verbessern. Unterstützung der PDF-Verarbeitung von komplexen Layouts.
  5. Instrumente zur Prüfungsanalyse
    Bildungseinrichtungen können den Inhalt von Fragebögen analysieren, Fragetypen und Diagramme extrahieren, statistische Berichte erstellen und die Unterrichtsgestaltung optimieren.

 

QA

  1. Welche Eingabeformate werden unterstützt?
    PDF und Bilder (PNG, JPEG) werden unterstützt. PDFs mit hoher Auflösung werden empfohlen, um die Genauigkeit zu gewährleisten.
  2. Wie kann ich die Genauigkeit meiner Formularerkennung verbessern?
    Verwenden Sie eine klare Dokumentation, damit--dpi 300. Für japanische Tabellen übertrifft die Google Vision API MathPix und kann in derconfig/Mittlere Einstellung.
  3. Muss ich eine kostenpflichtige API verwenden?
    Google Vision und MathPix APIs erfordern ein kostenpflichtiges Konto, aber Open-Source-Module wie DocLayout-YOLO sind kostenlos. Es wird empfohlen, die API für beste Ergebnisse zu konfigurieren.
  4. Wie kann ich eine neue Sprache hinzufügen?
    Compilerconfig/languages.jsonFügen Sie den Sprachcode und das OCR-Modell (z. B. Tesseract language pack) hinzu. Starten Sie das Programm neu, damit es wirksam wird.
  5. Was ist, wenn die Ausgabedatei zu groß ist?
    Kosten oder Aufwand--compressKomprimieren Sie JSON, oder wählen Sie das Markdown-Format. Es ist auch möglich, das Ausgabemodul einzuschränken, z. B. um nur Text zu extrahieren (--mode text).
  6. Wie kann ich mich an der Projektverbesserung beteiligen?
    Pull Requests können über GitHub oder durch Kontaktaufnahme mit dem Autor unter ses425500000@gmail.com eingereicht werden. Sie können gerne Code beitragen oder Feedback zu Problemen geben.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " VOP: OCR-Tool zum Extrahieren komplexer Diagramme und mathematischer Formeln
de_DEDeutsch