MinerU: PDF-Extract-Kitに基づくエンドツーエンドのPDF解析ツールで、PDFからMarkdownへの変換をサポートします。🚀🚀🚀
PDF-Extract-Kit: 高品質なPDFコンテンツ抽出のための包括的なツールキット🔥🔥🔥
MinerUは、ワンストップのオープンソースで高品質なデータ抽出ツールであり、以下の主要な機能を含みます:
Magic-PDFは、PDFドキュメントをMarkdown形式に変換するためのツールであり、ローカルに保存されたファイルやS3プロトコルをサポートするオブジェクトストレージ上のファイルを処理することができます。
主な機能は以下の通りです:
- 複数のフロントエンドモデル入力をサポート
- ヘッダー、フッター、脚注、ページ番号の削除
- 人間が読みやすいレイアウトフォーマット
- 見出し、段落、リストなど、元のドキュメントの構造とフォーマットを保持
- 画像や表を抽出してmarkdown内に表示
- 数式をLaTeX形式に変換
- 文字化けしたPDFの自動検出と変換
- CPUおよびGPU環境に対応
- Windows、Linux、macOSプラットフォームに対応
pdf_zh_cn.mp4
- Python >= 3.9
依存関係の競合を避けるために、仮想環境の使用をお勧めします。venvとcondaの両方が適しています。 例:
conda create -n MinerU python=3.10
conda activate MinerU
1.依存パッケージのインストール
フル機能パッケージはdetectron2に依存しており、コンパイルインストールが必要です。
自分でコンパイルする必要がある場合は、facebookresearch/detectron2#5114 を参照してください。
または、私たちの事前コンパイルされたwhlパッケージを直接使用できます(Python 3.10に限定):
pip install detectron2 --extra-index-url https://wheels.myhloli.com
2.pipを使用してフル機能パッケージをインストールします
注意:pipでインストールされたパッケージはCPUのみをサポートし、クイックテストに最適です。
CUDA/MPSによる加速については、CUDAまたはMPSによる加速を参照してください。
pip install -U magic-pdf[full]
❗️❗️❗️ 私たちは0.6.2 ベータ版を事前にリリースし、私たちのログに記載されている多くの問題に対処しました。しかし、このビルドはまだ完全なQAテストを経ておらず、最終的なリリース品質を表していません。問題に遭遇した場合は、問題を通じて速やかに報告するか、0.6.1バージョンに戻ることをお願いします。
pip install -U magic-pdf[full]
詳細については、how_to_download_modelsを参照してください。
モデルの重みをダウンロードした後、'models'ディレクトリを大きなディスクスペースのあるディレクトリに移動します。できればSSDに移動してください。
リポジトリのルートディレクトリにmagic-pdf.template.jsonファイルがあります。
cp magic-pdf.template.json ~/magic-pdf.json
magic-pdf.jsonで、"models-dir"をモデルの重みファイルがあるディレクトリに設定します。
{
"models-dir": "/tmp/models"
}
利用可能なNvidia GPUを持っている場合や、Apple Siliconを搭載したMacを使用している場合は、それぞれCUDAまたはMPSによる加速を利用できます。
CUDAバージョンに応じたPyTorchバージョンをインストールする必要があります。
この例では、CUDA 11.8バージョンをインストールします。詳細はhttps://pytorch.org/get-started/locally/ を参照してください。
pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118
また、設定ファイルmagic-pdf.jsonの"device-mode"の値を変更する必要があります。
{
"device-mode":"cuda"
}
Mシリーズチップデバイスを搭載したmacOSユーザーは、推論加速のためにMPSを使用できます。
設定ファイルmagic-pdf.jsonの"device-mode"の値を変更する必要があります。
{
"device-mode":"mps"
}
magic-pdf pdf-command --pdf "pdf_path" --inside_model true
プログラムが終了した後、"/tmp/magic-pdf"ディレクトリに生成されたmarkdownファイルが見つかります。
markdownディレクトリには対応するxxx_model.jsonファイルがあります。
ポストプロセッシングパイプラインの二次開発を行う場合は、次のコマンドを使用できます:
magic-pdf pdf-command --pdf "pdf_path" --model "model_json_path"
この方法では、モデルデータを再実行する必要がなくなり、デバッグが便利になります。
magic-pdf --help
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_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
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_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
デモはdemo.pyを参照してください
Magic-Docは、ウェブページや多形式の電子書籍をmarkdown形式に変換するためのツールです。
主な機能は以下の通りです:
-
ウェブページ抽出
- テキスト、画像、表、数式情報のクロスモーダルな正確な解析。
-
電子書籍ドキュメント抽出
- epub、mobiなどのさまざまなドキュメント形式をサポートし、テキストと画像に完全対応。
-
言語タイプの識別
- 176の言語を正確に認識。
extract1.mp4
extract2.mp4
extract3.mp4
- Magic-Doc 優れたウェブページと電子書籍の抽出ツール
このプロジェクトは現在、PyMuPDFを利用して高度な機能を提供していますが、AGPLライセンスに準拠しているため、特定の使用ケースに制限を課す可能性があります。今後のバージョンでは、より寛容なライセンスのPDF処理ライブラリへの移行を検討し、ユーザーフレンドリーさと柔軟性を向上させる予定です。
@misc{wang2024mineruopensourcesolutionprecise,
title={MinerU: An Open-Source Solution for Precise Document Content Extraction},
author={Bin Wang and Chao Xu and Xiaomeng Zhao and Linke Ouyang and Fan Wu and Zhiyuan Zhao and Rui Xu and Kaiwen Liu and Yuan Qu and Fukai Shang and Bo Zhang and Liqun Wei and Zhihao Sui and Wei Li and Botian Shi and Yu Qiao and Dahua Lin and Conghui He},
year={2024},
eprint={2409.18839},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2409.18839},
}
@article{he2024opendatalab,
title={Opendatalab: Empowering general artificial intelligence with open datasets},
author={He, Conghui and Li, Wei and Jin, Zhenjiang and Xu, Chao and Wang, Bin and Lin, Dahua},
journal={arXiv preprint arXiv:2407.13773},
year={2024}
}