英語 | 簡體中文
PDF-Extract-Kit:高品質 PDF 提取工具包?
?透過 Discord 和微信加入我們
2024/10/31 0.9.0 發布。這是一個主要的新版本,進行了廣泛的程式碼重構,解決了許多問題,提高了效能,降低了硬體要求,並增強了可用性:
新增自主開發的doclayout_yolo
模型,在維持類似解析效果的同時,比原方案處理速度提升10倍以上,並且可以透過設定檔與layoutlmv3
自由切換。
公式解析升級至unimernet 0.2.1
,提高公式解析精度的同時大幅降低記憶體佔用。
由於PDF-Extract-Kit 1.0
的儲存庫發生更改,您需要重新下載模型。詳細步驟請參考如何下載模型。
重構排序模組程式碼,使用layoutreader進行閱讀順序排序,確保各種版面的高精度。
重構了段落拼接模組,在跨欄、跨頁、跨圖、跨表場景下取得了良好的效果。
重構了列表和目錄識別功能,顯著提高了列表塊和目錄塊以及對應文本段落的解析準確性。
重構了圖、表、描述性文字的匹配邏輯,大大提高了圖、表的標題、腳註匹配的準確性,將描述性文字的丟失率降低到接近零。
新增 OCR 多語言支持,支援 84 種語言偵測識別。
增加了記憶體回收邏輯等記憶體優化措施,顯著減少記憶體佔用。啟用表格加速(佈局/公式/OCR)之外的所有加速功能的記憶體需求已從 16GB 減少至 8GB,啟用所有加速功能的記憶體需求已從 24GB 減少至 10GB。
優化設定檔功能開關,增加獨立的公式偵測開關,在不需要公式偵測時,顯著提升速度和解析結果。
整合 PDF-Extract-Kit 1.0:
2024/09/27 0.8.1版本發布,修復了一些bug,並提供本地化部署版本的線上演示和前端介面。
2024/09/09:0.8.0版本發布,支援使用Dockerfile快速部署,並在Huggingface和Modelscope上啟動demo。
2024/08/30:0.7.1版本發布,增加paddle桌長桌辨識選項
2024/08/09:0.7.0b1版本發布,簡化安裝流程,增加表格辨識功能
2024/08/01:0.6.2b1版本發布,優化依賴衝突問題和安裝文檔
2024/07/05:初始開源版本
礦工U
命令列
應用程式介面
部署派生項目
開發指南
線上示範
快速 CPU 演示
使用GPU
項目介紹
主要特點
快速入門
用法
待辦事項
已知問題
常問問題
感謝我們的貢獻者
許可證資訊
致謝
引文
明星歷史
魔法文檔
Magic-html
連結
MinerU 是一款將 PDF 轉換為機器可讀格式(例如 markdown、JSON)的工具,可輕鬆提取為任何格式。 MinerU是在InternLM的預訓練過程中誕生的。我們專注於解決科學文獻中的符號轉換問題,希望為大模型時代的技術發展做出貢獻。與知名的商業產品相比,MinerU還很年輕。如果您遇到任何問題或結果不符合預期,請提交問題並附上相關 PDF 。
pdf_zh_cn.mp4
刪除頁首、頁尾、註腳、頁碼等,以確保語意連貫。
以人類可讀的順序輸出文本,適用於單列、多列和複雜佈局。
保留原始文件的結構,包括標題、段落、清單等。
提取圖像、圖像描述、表格、表格標題和腳註。
自動識別文件中的公式並將其轉換為 LaTeX 格式。
自動識別文件中的表格並將其轉換為 LaTeX 或 HTML 格式。
自動偵測掃描PDF和亂碼PDF並啟用OCR功能。
OCR支援84種語言的偵測和識別。
支援多種輸出格式,例如多模態和NLP Markdown、按閱讀順序排序的JSON以及豐富的中間格式。
支援佈局視覺化、跨度可視化等多種視覺化結果,高效確認輸出品質。
支援CPU和GPU環境。
相容於 Windows、Linux 和 Mac 平台。
如果您遇到任何安裝問題,請先查閱常見問題。
如果解析結果不符合預期,請參閱已知問題。
體驗 MinerU 的方式有以下三種:
線上示範(無需安裝)
快速 CPU 示範(Windows、Linux、Mac)
Linux/Windows + CUDA
為了確保專案的穩定性和可靠性,我們在開發過程中只針對特定的軟硬體環境進行最佳化和測試。這確保了在建議的系統配置上部署和運行專案的使用者將獲得最佳效能和最少的相容性問題。
透過將資源集中在主線環境上,我們的團隊可以更有效地解決潛在的錯誤並開發新功能。
在非主線環境中,由於軟硬體配置的多樣性,以及第三方依賴相容性問題,我們無法保證100%的專案可用性。因此,對於希望在非建議環境下使用該專案的用戶,我們建議先仔細閱讀文件和FAQ。大多數問題在FAQ中已經有相應的解決方案。我們也鼓勵社群回饋,以幫助我們逐步擴大支持。
作業系統 | |||||
Ubuntu 22.04 LTS | Windows 10 / 11 | macOS 11+ | |||
中央處理器 | x86_64(不支援 ARM Linux) | x86_64(不支援 ARM Windows) | x86_64/arm64 | ||
記憶 | 16GB以上,建議32GB+ | ||||
Python版本 | 3.10(請確保使用conda創建Python 3.10虛擬環境) | ||||
Nvidia 驅動程式版本 | 最新(專有驅動程式) | 最新的 | 沒有任何 | ||
CUDA環境 | 自動安裝【12.1(pytorch)+11.8(paddle)】 | 11.8(手動安裝)+cuDNN v8.7.0(手動安裝) | 沒有任何 | ||
GPU 硬體支援列表 | 最低要求 8G+ VRAM | 3060ti/3070/4060 8G VRAM 可實現佈局、公式識別加速和 OCR 加速 | 沒有任何 | ||
建議配置 10G+顯存 | 3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090 10G VRAM以上可同時實現佈局、公式識別、OCR加速和表格辨識加速 |
穩定版本(經過 QA 驗證的穩定版本):
測試版本(與dev分支更新同步,測試新功能):
conda 創建-n MinerU python=3.10 conda 激活 MinerU pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com
有關詳細說明,請參閱如何下載模型檔案。
完成2.下載模型權重文件步驟後,腳本會自動在使用者目錄下產生magic-pdf.json
文件,並配置預設模型路徑。您可以在【使用者目錄】中找到magic-pdf.json
檔案。
Windows 的使用者目錄是“C:Usersusername”,Linux 的使用者目錄是“/home/username”,macOS 的使用者目錄是“/Users/username”。
您可以修改此文件中的某些配置來啟用或停用功能,例如表識別:
如果 JSON 中不存在以下項目,請手動新增所需項目並刪除註釋內容(標準 JSON 不支援註解)。
{// 其他設定"layout-config": {"model": "layoutlmv3" // 使用doclayout_yolo時請改為"doclayout_yolo"。 ": "unimernet_small","enable": true // 公式辨識功能預設為開啟。如果需要停用,請將此處的值改為「false」。 false, // 預設會停用表格辨識功能。如果需要啟用,請將此處的值變更為「true」。 }
如果您的裝置支援CUDA並且符合主線環境的GPU要求,則可以使用GPU加速。請根據您的系統選擇合適的指南:
Ubuntu 22.04 LTS + GPU
Windows 10/11 + GPU
使用 Docker 快速部署
Docker 需要至少 16GB VRAM 的 GPU,並且預設啟用所有加速功能。
在執行此 Docker 之前,您可以使用下列命令檢查您的裝置是否支援 Docker 上的 CUDA 加速。
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 魔法pdf--幫助
魔法pdf--幫助 用法:magic-pdf [選項] 選項: -v, --version 顯示版本並退出 -p, --path PATH 本地 pdf 檔案路徑或目錄 [必要] -o, --output-dir PATH 輸出本地目錄 [必需] -m, --method [ocr|txt|auto] 解析pdf的方法。 OCR:使用OCR 從pdf中提取資訊的技術。 TXT: 僅適用於基於文字的 pdf 並且 優於 ocr。 auto:自動選擇 從ocr和txt解析pdf的最佳方法。 如果沒有指定方法,auto 將被使用 預設. -l, --lang TEXT 輸入 pdf 中的語言(如果已知) 提高 OCR 準確性。 選修的。你應該 輸入“縮寫”,語言形式為 url: ht tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_languages.html#5-support-languages- 和-縮寫 -d, --debug BOOLEAN 啟用詳細的偵錯訊息 CLI 指令的執行。 -s, --start INTEGER PDF解析的起始頁,開始 從 0 開始。 -e, --end INTEGER PDF解析的結束頁面,從 0。 --help 顯示此訊息並退出。
{some_pdf}
可以是單一 PDF 檔案或包含多個 PDF 的目錄。結果將保存在{some_output_dir}
目錄中。輸出文件列表如下:
├── 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
有關輸出文件的更多信息,請參閱輸出文件說明。
處理本機磁碟中的文件
image_writer = DiskReaderWriter(local_image_dir)image_dir = str(os.path.basename(local_image_dir))jso_useful_key = {"_pdf_type": "", "model_list": []}pipe = UNIPpter_pipep. )pipe.pipe_analyze()pipe.pipe_parse()md_content = pipeline.pipe_mk_markdown(image_dir,drop_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 = pipes_pipe_content = pipes_pipe_content = pipes_mdm_content = pipes_pipe_content = pipes_md; “沒有任何”)
具體實現可以參考:
demo.py 最簡單的處理方法
magic_pdf_parse_main.py 更詳細的處理工作流程
衍生項目包括項目開發者和社區開發者基於MinerU的二次開發項目,
例如基於Gradio的應用程式介面、基於llama的RAG、類似官網的web demo、輕量級多GPU負載平衡客戶端/伺服器端等。
具體部署方法請參考派生項目README
待辦事項
?根據模型的閱讀順序
?正文中index
和list
的識別
?表格識別
☐ 正文中的程式碼區塊識別
☐ 化學式識別
☐ 幾何形狀識別
閱讀順序是模型根據可讀內容的空間分佈來決定的,在佈局極為複雜的情況下,某些區域可能會出現亂序。
不支援豎排文字。
目錄和清單是透過規則來識別的,一些不常見的清單格式可能無法辨識。
僅支援一級標題;目前不支援分層標題。
佈局模型尚不支援程式碼區塊。
漫畫書、畫冊、小學課本、練習題都解析不了。
表格識別可能會導致複雜表格中的行/列識別錯誤。
OCR 辨識可能會在較不知名的語言的 PDF 中產生不準確的字元(例如,拉丁文字中的變音標記、阿拉伯文字中容易混淆的字元)。
某些公式可能無法在 Markdown 中正確呈現。
中文常見問題解答
英文常見問題解答
許可證.md
該專案目前使用 PyMuPDF 來實現高級功能。然而,由於它遵守 AGPL 許可證,因此可能會對某些使用情境施加限制。在未來的迭代中,我們計劃探索並用更寬鬆的 PDF 處理庫替換它,以增強用戶友善性和靈活性。
PDF 提取套件
結構方程式表
槳OCR
PyMuPDF
佈局閱讀器
快速語言偵測
pdfminer.6
@misc{wang2024mineruopensourcesolutionprecise, title={MinerU:精確文件內容擷取的開源解決方案}, 作者={王斌、徐超、趙小萌、歐陽林科、吳凡、趙志遠、徐瑞、劉凱文、屈媛、尚福凱、張波、魏立群、隋志浩、李偉、石波田、喬宇以及Dahua Lin和Conghui He},year={2024},eprint={2409.18839},archivePrefix={arXiv},primaryClass={cs.CV},url={https://arxiv.org/abs/2409.18839}, }@article{he2024opendatalab, title={Opendatalab:以開放資料集賦能通用人工智慧},author={何、從輝和李、魏和金、鎮江和徐、超和王、斌和林、大華}, journal= {arXiv 預印本 arXiv:2407.13773},年份={2024}}
Magic-Doc 極速ppt/pptx/doc/docx/pdf擷取工具
Magic-HTML混合網頁擷取工具
LabelU(輕量級多模態資料標註工具)
LabelLLM(開源LLM對話標註平台)
PDF-Extract-Kit(用於高品質 PDF 內容擷取的綜合工具包)