Englisch | 简体中文
PDF-Extract-Kit: Hochwertiges PDF-Extraktions-Toolkit???
? Begleiten Sie uns auf Discord und WeChat
31.10.2024 0.9.0 veröffentlicht. Dies ist eine wichtige neue Version mit umfassender Code-Umgestaltung, die zahlreiche Probleme behebt, die Leistung verbessert, die Hardwareanforderungen reduziert und die Benutzerfreundlichkeit verbessert:
Das selbst entwickelte doclayout_yolo
-Modell wurde hinzugefügt, das die Verarbeitung im Vergleich zur ursprünglichen Lösung um mehr als das Zehnfache beschleunigt und gleichzeitig ähnliche Parsing-Effekte beibehält und über die Konfigurationsdatei frei mit layoutlmv3
umgeschaltet werden kann.
Die Formelanalyse wurde auf unimernet 0.2.1
aktualisiert, um die Genauigkeit der Formelanalyse zu verbessern und gleichzeitig die Speichernutzung deutlich zu reduzieren.
Aufgrund der Repository-Änderung für PDF-Extract-Kit 1.0
müssen Sie das Modell erneut herunterladen. Detaillierte Schritte finden Sie unter „So laden Sie Modelle herunter“.
Der Code des Sortiermoduls wurde überarbeitet, um den Layoutreader zum Sortieren der Lesereihenfolge zu verwenden und so eine hohe Genauigkeit in verschiedenen Layouts sicherzustellen.
Das Absatzverkettungsmodul wurde überarbeitet, um gute Ergebnisse in spalten-, seiten-, figuren- und tabellenübergreifenden Szenarios zu erzielen.
Die Erkennungsfunktionen für Listen und Inhaltsverzeichnisse wurden überarbeitet, wodurch die Genauigkeit von Listenblöcken und Inhaltsverzeichnisblöcken sowie das Parsen entsprechender Textabsätze erheblich verbessert wurde.
Die Abgleichslogik für Abbildungen, Tabellen und beschreibenden Text wurde überarbeitet, wodurch die Genauigkeit der Zuordnung von Bildunterschriften und Fußnoten zu Abbildungen und Tabellen erheblich verbessert und die Verlustrate von beschreibendem Text auf nahezu Null reduziert wurde.
Mehrsprachige Unterstützung für OCR hinzugefügt, die die Erkennung und Erkennung von 84 Sprachen unterstützt. Eine Liste der unterstützten Sprachen finden Sie in der Liste der unterstützten OCR-Sprachen.
Speicherrecyclinglogik und andere Maßnahmen zur Speicheroptimierung hinzugefügt, wodurch die Speichernutzung erheblich reduziert wird. Der Speicherbedarf für die Aktivierung aller Beschleunigungsfunktionen außer Tabellenbeschleunigung (Layout/Formel/OCR) wurde von 16 GB auf 8 GB reduziert, und der Speicherbedarf für die Aktivierung aller Beschleunigungsfunktionen wurde von 24 GB auf 10 GB reduziert.
Optimierte Konfigurationsdatei-Funktionsschalter, Hinzufügen eines unabhängigen Formelerkennungsschalters zur deutlichen Verbesserung der Geschwindigkeit und der Parsing-Ergebnisse, wenn die Formelerkennung nicht erforderlich ist.
Integriertes PDF-Extract-Kit 1.0:
27.09.2024 Version 0.8.1 veröffentlicht, einige Fehler behoben und eine lokalisierte Bereitstellungsversion der Online-Demo und der Front-End-Schnittstelle bereitgestellt.
09.09.2024: Version 0.8.0 veröffentlicht, unterstützt schnelle Bereitstellung mit Dockerfile und startet Demos auf Huggingface und Modelscope.
30.08.2024: Version 0.7.1 veröffentlicht, hinzugefügte Paddle-Tablemaster-Tabellenerkennungsoption
09.08.2024: Version 0.7.0b1 veröffentlicht, vereinfachter Installationsprozess, zusätzliche Tabellenerkennungsfunktionalität
01.08.2024: Version 0.6.2b1 veröffentlicht, Abhängigkeitskonfliktprobleme und Installationsdokumentation optimiert
05.07.2024: Erste Open-Source-Veröffentlichung
MinerU
Befehlszeile
API
Abgeleitete Projekte bereitstellen
Entwicklungshandbuch
Online-Demo
Schnelle CPU-Demo
GPU verwenden
Projekteinführung
Hauptmerkmale
Schnellstart
Verwendung
TODO
Bekannte Probleme
FAQ
Vielen Dank an unsere Mitwirkenden
Lizenzinformationen
Danksagungen
Zitat
Sternengeschichte
Magic-doc
Magic-html
Links
MinerU ist ein Tool, das PDFs in maschinenlesbare Formate (z. B. Markdown, JSON) konvertiert und so eine einfache Extraktion in jedes beliebige Format ermöglicht. MinerU wurde während des Vorschulungsprozesses von InternLM geboren. Wir konzentrieren uns auf die Lösung von Symbolkonvertierungsproblemen in der wissenschaftlichen Literatur und hoffen, zur technologischen Entwicklung im Zeitalter großer Modelle beizutragen. Im Vergleich zu bekannten kommerziellen Produkten ist MinerU noch jung. Wenn Sie auf Probleme stoßen oder die Ergebnisse nicht Ihren Erwartungen entsprechen, reichen Sie bitte ein Problem nach dem anderen ein und fügen Sie das entsprechende PDF bei .
pdf_zh_cn.mp4
Entfernen Sie Kopf- und Fußzeilen, Fußnoten, Seitenzahlen usw., um die semantische Kohärenz sicherzustellen.
Geben Sie Text in einer für Menschen lesbaren Reihenfolge aus, geeignet für einspaltige, mehrspaltige und komplexe Layouts.
Behalten Sie die Struktur des Originaldokuments bei, einschließlich Überschriften, Absätzen, Listen usw.
Extrahieren Sie Bilder, Bildbeschreibungen, Tabellen, Tabellentitel und Fußnoten.
Formeln im Dokument automatisch erkennen und in das LaTeX-Format konvertieren.
Tabellen im Dokument automatisch erkennen und in das LaTeX- oder HTML-Format konvertieren.
Erkennen Sie gescannte PDFs und verstümmelte PDFs automatisch und aktivieren Sie die OCR-Funktionalität.
OCR unterstützt die Erkennung und Erkennung von 84 Sprachen.
Unterstützt mehrere Ausgabeformate, wie multimodales und NLP-Markdown, nach Lesereihenfolge sortiertes JSON und umfangreiche Zwischenformate.
Unterstützt verschiedene Visualisierungsergebnisse, einschließlich Layout-Visualisierung und Span-Visualisierung, für eine effiziente Bestätigung der Ausgabequalität.
Unterstützt sowohl CPU- als auch GPU-Umgebungen.
Kompatibel mit Windows-, Linux- und Mac-Plattformen.
Sollten bei der Installation Probleme auftreten, konsultieren Sie bitte zunächst die FAQ.
Wenn die Parsing-Ergebnisse nicht wie erwartet ausfallen, lesen Sie den Abschnitt „Bekannte Probleme“.
Es gibt drei verschiedene Möglichkeiten, MinerU zu erleben:
Online-Demo (keine Installation erforderlich)
Schnelle CPU-Demo (Windows, Linux, Mac)
Linux/Windows + CUDA
Um die Stabilität und Zuverlässigkeit des Projekts sicherzustellen, optimieren und testen wir während der Entwicklung nur für bestimmte Hardware- und Softwareumgebungen. Dadurch wird sichergestellt, dass Benutzer, die das Projekt auf empfohlenen Systemkonfigurationen bereitstellen und ausführen, die beste Leistung bei den geringsten Kompatibilitätsproblemen erhalten.
Durch die Konzentration der Ressourcen auf die Hauptumgebung kann unser Team potenzielle Fehler effizienter beheben und neue Funktionen entwickeln.
In Nicht-Mainline-Umgebungen können wir aufgrund der Vielfalt der Hardware- und Softwarekonfigurationen sowie Kompatibilitätsproblemen mit Abhängigkeiten von Drittanbietern keine 100-prozentige Projektverfügbarkeit garantieren. Daher empfehlen wir Benutzern, die dieses Projekt in nicht empfohlenen Umgebungen verwenden möchten, zunächst die Dokumentation und die FAQ sorgfältig zu lesen. Für die meisten Probleme gibt es bereits entsprechende Lösungen in den FAQ. Wir freuen uns auch über das Feedback der Community, um den Support schrittweise auszubauen.
Betriebssystem | |||||
Ubuntu 22.04 LTS | Windows 10/11 | macOS 11+ | |||
CPU | x86_64 (nicht unterstütztes ARM-Linux) | x86_64 (nicht unterstütztes ARM-Windows) | x86_64 / arm64 | ||
Erinnerung | 16 GB oder mehr, empfohlen 32 GB+ | ||||
Python-Version | 3.10 (Bitte stellen Sie sicher, dass Sie mit Conda eine virtuelle Python 3.10-Umgebung erstellen.) | ||||
Nvidia-Treiberversion | aktuell (proprietärer Treiber) | letzte | Keiner | ||
CUDA-Umgebung | Automatische Installation [12.1 (Pytorch) + 11.8 (Paddel)] | 11.8 (manuelle Installation) + cuDNN v8.7.0 (manuelle Installation) | Keiner | ||
Liste der GPU-Hardware-Unterstützung | Mindestanforderung 8G+ VRAM | 3060ti/3070/4060 8G VRAM ermöglicht Layout, Formelerkennungsbeschleunigung und OCR-Beschleunigung | Keiner | ||
Empfohlene Konfiguration 10G+ VRAM | 3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090 10 GB VRAM oder mehr ermöglichen gleichzeitig Layout, Formelerkennung, OCR-Beschleunigung und Beschleunigung der Tabellenerkennung |
Stabile Version (von der Qualitätssicherung verifizierte stabile Version):
Testversion (synchronisiert mit Entwicklungszweig-Updates, Testen neuer Funktionen):
conda create -n MinerU python=3.10 Conda aktiviert MinerU pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com
Detaillierte Anweisungen finden Sie unter So laden Sie Modelldateien herunter.
Nach Abschluss des Schritts 2. Modellgewichtsdateien herunterladen generiert das Skript automatisch eine magic-pdf.json
Datei im Benutzerverzeichnis und konfiguriert den Standardmodellpfad. Sie finden die Datei magic-pdf.json
in Ihrem 【Benutzerverzeichnis】.
Das Benutzerverzeichnis für Windows ist „C:BenutzerBenutzername“, für Linux ist es „/home/Benutzername“ und für macOS ist es „/Benutzer/Benutzername“.
Sie können bestimmte Konfigurationen in dieser Datei ändern, um Funktionen wie die Tabellenerkennung zu aktivieren oder zu deaktivieren:
Wenn die folgenden Elemente nicht im JSON vorhanden sind, fügen Sie bitte die erforderlichen Elemente manuell hinzu und entfernen Sie den Kommentarinhalt (Standard-JSON unterstützt keine Kommentare).
{// other config"layout-config": {"model": "layoutlmv3" // Bitte ändern Sie zu "doclayout_yolo", wenn Sie doclayout_yolo verwenden.},"formula-config": {"mfd_model": "yolo_v8_mfd", "mfr_model ": "unimernet_small", "enable": true // Die Formelerkennungsfunktion ist standardmäßig aktiviert. Wenn Sie es deaktivieren müssen, ändern Sie bitte den Wert hier in „false“.},“table-config“: {“model“: „tablemaster“, // Bei Verwendung von structEqTable ändern Sie bitte in „struct_eqtable“.“enable“ : false, // Die Tabellenerkennungsfunktion ist standardmäßig deaktiviert. Wenn Sie es aktivieren müssen, ändern Sie bitte den Wert hier auf „true“. „max_time“: 400} }
Wenn Ihr Gerät CUDA unterstützt und die GPU-Anforderungen der Mainline-Umgebung erfüllt, können Sie die GPU-Beschleunigung verwenden. Bitte wählen Sie die passende Anleitung basierend auf Ihrem System aus:
Ubuntu 22.04 LTS + GPU
Windows 10/11 + GPU
Schnelle Bereitstellung mit Docker
Docker erfordert eine GPU mit mindestens 16 GB VRAM und alle Beschleunigungsfunktionen sind standardmäßig aktiviert.
Bevor Sie diesen Docker ausführen, können Sie mit dem folgenden Befehl prüfen, ob Ihr Gerät die CUDA-Beschleunigung auf Docker unterstützt.
docker run --rm --gpus=all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi
wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker run --rm -it --gpus=all mineru:latest /bin/bash magic-pdf --help
magic-pdf --help Verwendung: magic-pdf [OPTIONEN] Optionen: -v, --version zeigt die Version an und beendet den Vorgang -p, --path PATH lokaler PDF-Dateipfad oder Verzeichnis [erforderlich] -o, --output-dir PATH lokales Ausgabeverzeichnis [erforderlich] -m, --method [ocr|txt|auto] die Methode zum Parsen von PDF. ocr: Verwenden von ocr Technik zum Extrahieren von Informationen aus PDF. txt: Nur für das textbasierte PDF geeignet und übertreffen ocr. Auto: Automatisch auswählen Beste Methode zum Parsen von PDFs aus OCR und TXT. Ohne angegebene Methode wird auto verwendet von Standard. -l, --lang TEXT Geben Sie die Sprachen im PDF ein (falls bekannt). Verbessern Sie die OCR-Genauigkeit. Optional. Du solltest Geben Sie „Abkürzung“ mit der Sprachform URL ein: ht tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_Languages.html#5-Support-Sprachen- Und-Abkürzungen -d, --debug BOOLEAN Aktiviert detaillierte Debugging-Informationen während die Ausführung der CLI-Befehle. -s, --start INTEGER Die Startseite für die PDF-Analyse, Anfang ab 0. -e, --end INTEGER Die Endseite für die PDF-Analyse, beginnend mit 0. --help Diese Meldung anzeigen und beenden.## show versionmagic-pdf -v## Befehlszeilenbeispielmagic-pdf -p {some_pdf} -o {some_output_dir} -m auto
{some_pdf}
kann eine einzelne PDF-Datei oder ein Verzeichnis sein, das mehrere PDFs enthält. Die Ergebnisse werden im Verzeichnis {some_output_dir}
gespeichert. Die Liste der Ausgabedateien lautet wie folgt:
├── some_pdf.md # markdown file
├── images # directory for storing images
├── some_pdf_layout.pdf # layout diagram (Include layout reading order)
├── some_pdf_middle.json # MinerU intermediate processing result
├── some_pdf_model.json # model inference result
├── some_pdf_origin.pdf # original PDF file
├── some_pdf_spans.pdf # smallest granularity bbox position information diagram
└── some_pdf_content_list.json # Rich text JSON arranged in reading order
Weitere Informationen zu den Ausgabedateien finden Sie in der Beschreibung der Ausgabedatei.
Verarbeiten von Dateien von der lokalen Festplatte
image_writer = DiskReaderWriter(local_image_dir)image_dir = str(os.path.basename(local_image_dir))jso_useful_key = {"_pdf_type": "", "model_list": []}pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer)pipe.pipe_classify()pipe.pipe_analyze()pipe.pipe_parse()md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
Verarbeiten von Dateien aus dem Objektspeicher
s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint)image_dir = "s3://img_bucket/"s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir)pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN)jso_useful_key = {"_pdf_type": "", "model_list": []}pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli)pipe.pipe_classify()pipe.pipe_analyze()pipe.pipe_parse()md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
Eine detaillierte Implementierung finden Sie unter:
demo.py Einfachste Verarbeitungsmethode
magic_pdf_parse_main.py Detaillierterer Verarbeitungsworkflow
Abgeleitete Projekte umfassen sekundäre Entwicklungsprojekte auf Basis von MinerU durch Projektentwickler und Community-Entwickler.
B. Anwendungsschnittstellen auf Basis von Gradio, RAG auf Basis von Lama, Web-Demos ähnlich der offiziellen Website, leichte Multi-GPU-Lastausgleichs-Client/Server-Enden usw. Diese Projekte bieten möglicherweise mehr Funktionen und eine bessere Benutzererfahrung.
Informationen zu bestimmten Bereitstellungsmethoden finden Sie in der README-Datei zum abgeleiteten Projekt
TODO
? Lesereihenfolge basierend auf dem Modell
? Erkennung von index
und list
im Haupttext
? Tischerkennung
☐ Codeblockerkennung im Haupttext
☐ Erkennung chemischer Formeln
☐ Geometrische Formerkennung
Die Lesereihenfolge wird vom Modell anhand der räumlichen Verteilung des lesbaren Inhalts bestimmt und kann bei extrem komplexen Layouts in einigen Bereichen nicht korrekt sein.
Vertikaler Text wird nicht unterstützt.
Inhaltsverzeichnisse und Listen werden durch Regeln erkannt, einige ungewöhnliche Listenformate werden jedoch möglicherweise nicht erkannt.
Es wird nur eine Überschriftenebene unterstützt. Hierarchische Überschriften werden derzeit nicht unterstützt.
Codeblöcke werden im Layoutmodell noch nicht unterstützt.
Comics, Kunstalben, Grundschulbücher und Übungen können nicht gut analysiert werden.
Die Tabellenerkennung kann in komplexen Tabellen zu Fehlern bei der Zeilen-/Spaltenerkennung führen.
Die OCR-Erkennung kann in PDFs weniger bekannter Sprachen zu ungenauen Zeichen führen (z. B. diakritische Zeichen in lateinischer Schrift, leicht verwechselbare Zeichen in arabischer Schrift).
Einige Formeln werden in Markdown möglicherweise nicht korrekt dargestellt.
FAQ auf Chinesisch
FAQ auf Englisch
LIZENZ.md
Dieses Projekt verwendet derzeit PyMuPDF, um erweiterte Funktionen zu erreichen. Da es sich jedoch an die AGPL-Lizenz hält, kann es bei bestimmten Nutzungsszenarien zu Einschränkungen kommen. In zukünftigen Iterationen planen wir, sie zu erkunden und durch eine freizügigere PDF-Verarbeitungsbibliothek zu ersetzen, um die Benutzerfreundlichkeit und Flexibilität zu verbessern.
PDF-Extract-Kit
StructEqTable
PaddleOCR
PyMuPDF
Layoutreader
schnell-langdetect
pdfminer.six
@misc{wang2024mineruopensourcesolutionprecise, title={MinerU: Eine Open-Source-Lösung für die präzise Extraktion von Dokumentinhalten}, Autor={Bin Wang und Chao Xu und Xiaomeng Zhao und Linke Ouyang und Fan Wu und Zhiyuan Zhao und Rui und Dahua Lin und Conghui He}, Jahr={2024}, eprint={2409.18839}, archivePrefix={arXiv}, PrimaryClass={cs.CV}, url={https://arxiv.org/abs/2409.18839}, }@article{he2024opendatalab, title={Opendatalab: Stärkung allgemeiner künstlicher Intelligenz mit offenen Datensätzen}, Autor={He, Conghui und Li, Wei und Jin, Zhenjiang und Xu, Chao und Wang, Bin und Lin, Dahua}, Journal= {arXiv preprint arXiv:2407.13773}, Jahr={2024}}
Magic-Doc Schnelles Extraktionstool für ppt/pptx/doc/docx/pdf
Magic-HTML Mixed-Webseiten-Extraktionstool
LabelU (ein leichtes multimodales Datenanmerkungstool)
LabelLLM (Eine Open-Source-LLM-Dialogannotationsplattform)
PDF-Extract-Kit (Ein umfassendes Toolkit für die Extraktion hochwertiger PDF-Inhalte)