Zugang aus Übersee: www.kdjingpai.com
Ctrl + D Lesezeichen für diese Seite

dots.ocr ist ein leistungsfähiges, mehrsprachiges Dokument-Parsing-Tool, das auf einem visuell-linguistischen Modell (VLM) mit 1,7 B Parametern basiert, das gleichzeitig Layout-Erkennung und Inhaltserkennung ermöglicht. dots.ocr unterstützt mehrere Sprachen, einschließlich ressourcenarmer Sprachen. In Benchmarks wie OmniDocBench zeigt es Spitzenleistungen, insbesondere beim Parsen von Text, Tabellen und Lesereihenfolge. dots.ocr unterstützt mehrere Sprachen, einschließlich Sprachen mit geringen Ressourcen, und eignet sich für die Verarbeitung komplexer Dokumente wie akademische Arbeiten, Finanzberichte usw. Im Vergleich zu herkömmlichen Pipelines mit mehreren Modellen verwendet dots.oc eine Ein-Modell-Architektur, die es ermöglicht, durch einfaches Ändern der Eingabeaufforderung zwischen den Aufgaben zu wechseln, was die Inferenz schnell und effizient macht. Benutzer können die Software schnell über den offenen Quellcode auf GitHub und das mitgelieferte Docker-Image einsetzen und verwenden.

 

Funktionsliste

  • Layout-ErkennungIdentifiziert Elemente in einem Dokument (z. B. Text, Tabellen, Formeln, Bilder usw.) und liefert präzise Bounding-Box-Koordinaten (bbox).
  • InhaltserkennungExtrahiert Text, Tabellen (Ausgabe im HTML-Format), Formeln (Ausgabe im LaTeX-Format), etc. aus Dokumenten.
  • Unterstützung mehrerer SprachenUnterstützung für das Parsen von Dokumenten in 100 Sprachen, insbesondere in Sprachen mit geringen Ressourcen.
  • Optimierung der LesereihenfolgeSortieren von Dokumentenelementen entsprechend den menschlichen Lesegewohnheiten, um eine logische Ausgabe zu gewährleisten.
  • schnelle InferenzCompact model based on 1.7B parameters with inference speed better than many large models.
  • Flexibles Umschalten von CuesMit Hilfe verschiedener Aufforderungen (z.B. prompt_layout_only_enundprompt_ocr), um ein aufgabenspezifisches Parsing zu erreichen.
  • Output-VielfaltGenerieren Sie strukturierte Layoutdaten im JSON-Format, Markdown-Dateien und Bounding-Box-Visualisierungen.

Hilfe verwenden

Einbauverfahren

Um dots.ocr zu verwenden, müssen Sie zunächst die erforderlichen Umgebungs- und Modellgewichte installieren. Nachstehend finden Sie die detaillierten Installationsschritte:

  1. Erstellen einer virtuellen Umgebung::
    conda create -n dots_ocr python=3.12
    conda activate dots_ocr
    

  1. Code-Repository klonen::
    git clone https://github.com/rednote-hilab/dots.ocr.git
    cd dots.ocr
    
  2. Installation von PyTorch und Abhängigkeiten::
    Je nach CUDA-Version installieren Sie die entsprechende Version von PyTorch, zum Beispiel:

    pip install torch==2.7.0 torchvision==0.22.0 torchaudio==2.7.0 --index-url https://download.pytorch.org/whl/cu128
    pip install -e .
    
  3. Download Modellgewichte::
    Verwenden Sie das mitgelieferte Skript, um die Modellgewichte herunterzuladen. Beachten Sie, dass der Ordnername des Modellspeicherpfads keine Punkte enthalten darf. DotsOCR::

    python3 tools/download_model.py
    
  4. Verwendung eines Docker-Images (optional)::
    Wenn Sie Probleme bei der Installation haben, können Sie das offiziell bereitgestellte Docker-Image verwenden:

    git clone https://github.com/rednote-hilab/dots.ocr.git
    cd dots.ocr
    pip install -e .
    

Methode des Einsatzes

dots.ocr Empfohlen vLLM Die Bereitstellung erfolgt für eine optimale Schlussfolgerungsleistung. Im Folgenden werden die Schritte für die vLLM-basierte Bereitstellung beschrieben:

  1. Registrierung von Modellen in vLLM::
    python3 tools/download_model.py
    export hf_model_path=./weights/DotsOCR
    export PYTHONPATH=$(dirname "$hf_model_path"):$PYTHONPATH
    sed -i '/^from vllm\.entrypoints\.cli\.main import main$/a\
    from DotsOCR import modeling_dots_ocr_vllm' `which vllm`
    
  2. Starten des vLLM-Dienstes::
    CUDA_VISIBLE_DEVICES=0 vllm serve ${hf_model_path} --tensor-parallel-size 1 --gpu-memory-utilization 0.95 --chat-template-content-format string --served-model-name model --trust-remote-code
    
  3. Ausführen des vLLM-API-Beispiels::
    python3 ./demo/demo_vllm.py --prompt_mode prompt_layout_all_en
    

Alternativ können Sie auch HuggingFace für die Inferenz verwenden:

python3 demo/demo_hf.py

Dokument-Parsing-Operationen

Nachdem der vLLM-Dienst gestartet wurde, können Sie eine Bild- oder PDF-Datei mit dem folgenden Befehl analysieren:

  1. Analysieren eines einzelnen Bildes::
    python3 dots_ocr/parser.py demo/demo_image1.jpg
    
  2. Parsing von PDF-Dateien::
    Bei mehrseitigen PDFs empfiehlt es sich, eine größere Anzahl von Threads festzulegen:

    python3 dots_ocr/parser.py demo/demo_pdf1.pdf --num_threads 64
    
  3. Nur Layout-Tests::
    python3 dots_ocr/parser.py demo/demo_image1.jpg --prompt prompt_layout_only_en
    
  4. Nur Text extrahieren (Kopf- und Fußzeilen ausschließen)::
    python3 dots_ocr/parser.py demo/demo_image1.jpg --prompt prompt_ocr
    
  5. Bounding-Box-basiertes Parsing::
    python3 dots_ocr/parser.py demo/demo_image1.jpg --prompt prompt_grounding_ocr --bbox 163 241 1536 705
    

Ausgabeergebnis

Nach dem Parsen erzeugt dots.ocr die folgende Datei:

  • JSON-Datei(z.B.. demo_image1.json): enthält den Begrenzungsrahmen, die Kategorie und den Textinhalt des Layout-Elements.
  • Markdown-Datei(z.B.. demo_image1.md): fügt alle erkannten Textinhalte in das Markdown-Format zusammen, mit einer zusätzlichen demo_image1_nohf.md Die Version schließt Kopf- und Fußzeilen aus.
  • Visualisierung(z.B.. demo_image1.jpg): Zeichnet den erkannten Begrenzungsrahmen auf das Originalbild.

Laufende Demo

Die interaktive Präsentationsoberfläche kann mit dem folgenden Befehl gestartet werden:

python demo/demo_gradio.py

oder eine Bounding-Box-basierte OCR-Demo ausführen:

python demo/demo_gradio_annotion.py

caveat

  • Modell SpeicherpfadVergewissern Sie sich, dass der Speicherpfad des Modells keine Punkte enthält (z. B. DotsOCR), da es sonst zu einem Fehler beim Laden des Moduls kommen kann.
  • BildauflösungEs wird empfohlen, dass die Bildauflösung 11289600 nicht überschreitet und dass die DPI für die PDF-Auflösung auf 200 eingestellt ist.
  • Behandlung von Sonderzeichen: Aufeinanderfolgende Sonderzeichen (z.B. ... vielleicht _) zu einer Ausgabe-Exception führen kann, wird empfohlen, die prompt_layout_only_en vielleicht prompt_ocr Tipp.

Anwendungsszenario

  1. Analyse von wissenschaftlichen Arbeiten
    dots.ocr analysiert effizient Text, Formeln und Tabellen in wissenschaftlichen Arbeiten, um strukturierte JSON-Daten und Markdown-Dokumente zu erzeugen, mit denen Forscher ihre Literatur organisieren können.
  2. Bearbeitung von Finanzberichten
    Für die Finanzberichterstattung extrahiert dots.ocr präzise Tabellen- und Textinhalte und generiert Tabellen im HTML-Format zur einfachen Datenanalyse und Archivierung.
  3. Mehrsprachige Dokumentation
    Unterstützt das Parsing in 100 Sprachen und eignet sich für die Verarbeitung mehrsprachiger Verträge, juristischer Dokumente usw., wobei eine genaue Extraktion von Inhalt und Layout gewährleistet ist.
  4. Zusammenstellung von Lehrmaterial
    Analysiert Lehrbücher, Prüfungsunterlagen und andere Unterrichtsmaterialien, um Formeln (im LaTeX-Format) und Text zu extrahieren, was Lehrern und Schülern die Organisation von Lernressourcen erleichtert.

QA

  1. Welche Sprachen werden von dots.ocr unterstützt?
    dots.ocr unterstützt 100 Sprachen, darunter Englisch, Chinesisch, Tibetisch, Russisch usw. Es ist besonders gut für Sprachen mit geringen Ressourcen geeignet.
  2. Wie behandelt man große PDF-Dateien?
    ausnutzen parser.py Skript und setzen Sie die --num_threads Parameter (z.B. 64), um das Parsen von mehrseitigen PDFs zu beschleunigen.
  3. Wie wird das Parsing-Ergebnis ausgegeben?
    Die Ergebnisse umfassen JSON-Dateien (strukturierte Daten), Markdown-Dateien (Textinhalte) und visuelle Bilder (mit Begrenzungsrahmen).
  4. Wie kann ich Fehler beim Laden von Modellen beheben?
    Stellen Sie sicher, dass der Speicherpfad des Modells keine Punkte enthält (z. B. durch Verwendung der Option DotsOCR) und überprüfen Sie, ob das vLLM-Registrierungsskript korrekt ausgeführt wird.
0Lesezeichen
0Gelobt

Empfohlen

Sie können keine AI-Tools finden? Versuchen Sie es hier!

Geben Sie einfach das Schlüsselwort Barrierefreiheit Bing-SucheDer Bereich KI-Tools auf dieser Website bietet eine schnelle und einfache Möglichkeit, alle KI-Tools auf dieser Website zu finden.

zurück zum Anfang

de_DEDeutsch