영어 | 简体中文
PDF-Extract-Kit: 고품질 PDF 추출 툴킷???
? Discord와 WeChat에서 우리와 함께하세요
2024/10/31 0.9.0 출시. 이는 광범위한 코드 리팩터링을 통해 수많은 문제를 해결하고, 성능을 개선하고, 하드웨어 요구 사항을 줄이고, 유용성을 향상시키는 새로운 주요 버전입니다.
유사한 파싱 효과를 유지하면서 원래 솔루션에 비해 처리 속도를 10배 이상 향상시키고 구성 파일을 통해 layoutlmv3
로 자유롭게 전환할 수 있는 자체 개발 doclayout_yolo
모델을 추가했습니다.
수식 구문 분석을 unimernet 0.2.1
로 업그레이드하여 수식 구문 분석 정확도를 향상시키면서 메모리 사용량을 크게 줄였습니다.
PDF-Extract-Kit 1.0
의 저장소 변경으로 인해 모델을 다시 다운로드해야 합니다. 자세한 단계는 모델 다운로드 방법을 참조하세요.
읽기 순서 정렬을 위해 LayoutReader를 사용하도록 정렬 모듈 코드를 리팩터링하여 다양한 레이아웃에서 높은 정확성을 보장했습니다.
교차 열, 교차 페이지, 교차 그림 및 교차 테이블 시나리오에서 좋은 결과를 얻기 위해 단락 연결 모듈을 리팩터링했습니다.
목록 및 목차 인식 기능을 리팩토링하여 목록 블록 및 목차 블록의 정확성과 해당 텍스트 단락의 구문 분석을 크게 향상했습니다.
그림, 표, 설명 텍스트의 일치 논리를 리팩터링하여 캡션과 각주를 그림 및 표와 일치시키는 정확도를 크게 향상시키고 설명 텍스트의 손실률을 거의 0으로 줄였습니다.
OCR에 대한 다중 언어 지원이 추가되어 84개 언어의 감지 및 인식을 지원합니다. 지원되는 언어 목록은 OCR 언어 지원 목록을 참조하세요.
메모리 재활용 논리 및 기타 메모리 최적화 조치를 추가하여 메모리 사용량을 크게 줄였습니다. 테이블 가속(레이아웃/수식/OCR)을 제외한 모든 가속 기능을 활성화하기 위한 메모리 요구 사항이 16GB에서 8GB로 감소되었으며, 모든 가속 기능을 활성화하기 위한 메모리 요구 사항이 24GB에서 10GB로 감소되었습니다.
최적화된 구성 파일 기능 스위치, 독립적인 수식 감지 스위치를 추가하여 수식 감지가 필요하지 않을 때 속도와 구문 분석 결과를 크게 향상시킵니다.
통합 PDF 추출 키트 1.0:
2024/09/27 버전 0.8.1 출시, 일부 버그 수정, 온라인 데모 및 프런트엔드 인터페이스의 현지화된 배포 버전 제공.
2024/09/09: 버전 0.8.0 출시, Dockerfile을 통한 빠른 배포 지원, Huggingface 및 Modelscope 데모 출시.
2024/08/30 : 버전 0.7.1 출시, 패들 테이블마스터 테이블 인식 옵션 추가
2024/08/09: 버전 0.7.0b1 출시, 설치 과정 단순화, 테이블 인식 기능 추가
2024/08/01: 버전 0.6.2b1 출시, 종속성 충돌 문제 최적화 및 설치 문서
2024/07/05: 최초 오픈소스 릴리스
마이너U
명령줄
API
파생 프로젝트 배포
개발 가이드
온라인 데모
빠른 CPU 데모
GPU 사용
프로젝트 소개
주요 특징
빠른 시작
용법
TODO
알려진 문제
FAQ
모두 기여자들에게 감사드립니다
라이센스 정보
감사의 말
소환
스타의 역사
매직닥
매직 HTML
모래밭
MinerU는 PDF를 기계가 읽을 수 있는 형식(예: 마크다운, JSON)으로 변환하여 어떤 형식으로든 쉽게 추출할 수 있게 해주는 도구입니다. MinerU는 InternLM의 사전 교육 과정에서 탄생했습니다. 과학문헌의 기호변환 문제 해결에 중점을 두고 있으며, 대형모델 시대의 기술 발전에 기여하고자 합니다. 잘 알려진 상용 제품에 비해 MinerU는 아직 초기 단계입니다. 문제가 발생하거나 결과가 예상과 다른 경우 문제에 대한 문제를 제출하고 관련 PDF를 첨부해 주세요 .
pdf_zh_cn.mp4
의미론적 일관성을 보장하기 위해 머리글, 바닥글, 각주, 페이지 번호 등을 제거합니다.
단일 열, 다중 열 및 복잡한 레이아웃에 적합한 사람이 읽을 수 있는 순서로 텍스트를 출력합니다.
제목, 단락, 목록 등을 포함하여 원본 문서의 구조를 보존합니다.
이미지, 이미지 설명, 표, 표 제목, 각주를 추출합니다.
문서의 수식을 자동으로 인식하고 LaTeX 형식으로 변환합니다.
문서의 표를 자동으로 인식하고 LaTeX 또는 HTML 형식으로 변환합니다.
스캔한 PDF와 왜곡된 PDF를 자동으로 감지하고 OCR 기능을 활성화합니다.
OCR은 84개 언어의 감지 및 인식을 지원합니다.
멀티모달 및 NLP 마크다운, 읽기 순서로 정렬된 JSON, 풍부한 중간 형식 등 다양한 출력 형식을 지원합니다.
레이아웃 시각화, 스팬 시각화 등 다양한 시각화 결과를 지원하여 출력 품질을 효율적으로 확인할 수 있습니다.
CPU와 GPU 환경을 모두 지원합니다.
Windows, Linux 및 Mac 플랫폼과 호환됩니다.
설치 문제가 발생하면 먼저 FAQ를 참조하세요.
구문 분석 결과가 예상과 다른 경우 알려진 문제를 참조하세요.
MinerU를 경험하는 방법에는 세 가지가 있습니다:
온라인 데모(설치 필요 없음)
빠른 CPU 데모(Windows, Linux, Mac)
리눅스/윈도우 + CUDA
프로젝트의 안정성과 신뢰성을 보장하기 위해 개발 중에는 특정 하드웨어 및 소프트웨어 환경에 대해서만 최적화하고 테스트합니다. 이를 통해 권장 시스템 구성에서 프로젝트를 배포하고 실행하는 사용자는 호환성 문제를 최소화하면서 최고의 성능을 얻을 수 있습니다.
메인라인 환경에 리소스를 집중함으로써 우리 팀은 잠재적인 버그를 보다 효율적으로 해결하고 새로운 기능을 개발할 수 있습니다.
메인라인이 아닌 환경에서는 하드웨어 및 소프트웨어 구성의 다양성과 타사 종속성 호환성 문제로 인해 100% 프로젝트 가용성을 보장할 수 없습니다. 따라서 권장되지 않는 환경에서 이 프로젝트를 사용하려는 사용자의 경우 먼저 설명서와 FAQ를 주의 깊게 읽어 보시기 바랍니다. 대부분의 문제에는 이미 FAQ에 해당 솔루션이 있습니다. 또한 지원을 점진적으로 확대하는 데 도움이 되도록 커뮤니티 피드백을 권장합니다.
운영 체제 | |||||
우분투 22.04 LTS | 윈도우 10/11 | 맥OS 11+ | |||
CPU | x86_64(지원되지 않는 ARM Linux) | x86_64(지원되지 않는 ARM Windows) | x86_64 / arm64 | ||
메모리 | 16GB 이상, 32GB 이상 권장 | ||||
파이썬 버전 | 3.10(Python 3.10 가상환경은 반드시 conda를 이용하여 생성해주세요) | ||||
Nvidia 드라이버 버전 | 최신 (전용 드라이버) | 최신 | 없음 | ||
CUDA 환경 | 자동 설치 [12.1(pytorch) + 11.8(paddle)] | 11.8(수동 설치) + cuDNN v8.7.0(수동 설치) | 없음 | ||
GPU 하드웨어 지원 목록 | 최소 요구 사항 8G+ VRAM | 3060ti/3070/4060 8G VRAM으로 레이아웃, 수식 인식 가속 및 OCR 가속이 가능합니다. | 없음 | ||
권장 구성 10G+ VRAM | 3080/3080ti/3090/3090ti/4070/4070ti/4070ti슈퍼/4080/4090 10G VRAM 이상에서는 레이아웃, 수식 인식, OCR 가속 및 테이블 인식 가속을 동시에 지원할 수 있습니다. |
안정 버전(QA에서 검증한 안정 버전):
테스트 버전(개발 브랜치 업데이트와 동기화, 새로운 기능 테스트):
conda create -n MinerU python=3.10 Conda는 MinerU를 활성화합니다 pip install -U 매직-pdf[전체] --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은 댓글을 지원하지 않습니다.)
{// other config"layout-config": {"model": "layoutlmv3" // doclayout_yolo를 사용하는 경우 "doclayout_yolo"로 변경하세요.},"formula-config": {"mfd_model": "yolo_v8_mfd","mfr_model ": "unimernet_small","enable": true // 수식 인식 기능은 기본적으로 활성화되어 있습니다. 비활성화해야 하는 경우 여기 값을 "false"로 변경하세요.},"table-config": {"model": "tablemaster", // structEqTable 사용 시 "struct_eqtable"."enable"로 변경하세요. : false, // 테이블 인식 기능은 기본적으로 비활성화되어 있습니다. 활성화해야 하는 경우 여기 값을 "true"로 변경하세요."max_time": 400} }
장치가 CUDA를 지원하고 메인라인 환경의 GPU 요구 사항을 충족하는 경우 GPU 가속을 사용할 수 있습니다. 귀하의 시스템에 따라 적절한 가이드를 선택하십시오:
우분투 22.04 LTS + GPU
윈도우 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 --help
매직-pdf --help 사용법: Magic-pdf [옵션] 옵션: -v, --version 버전을 표시하고 종료합니다. -p, --path PATH 로컬 pdf 파일 경로 또는 디렉터리 [필수] -o, --output-dir PATH 출력 로컬 디렉터리 [필수] -m, --method [ocr|txt|auto] PDF를 구문 분석하는 방법입니다. ocr: ocr을 사용 PDF에서 정보를 추출하는 기술. txt: 텍스트 기반 PDF에만 적합하며 ocr보다 성능이 뛰어납니다. 자동: 자동으로 선택 ocr 및 txt에서 pdf를 구문 분석하는 가장 좋은 방법입니다. 메소드를 지정하지 않으면 자동이 사용됩니다. 기본. -l, --lang TEXT PDF의 언어(알려진 경우)를 입력하여 OCR 정확도를 향상시킵니다. 선택 과목. 당신은해야 언어 형식 url: ht로 "약어"를 입력하세요. tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_언어s.html#5-support-언어s- 및 약어 -d, --debug BOOLEAN 디버깅 중에 자세한 디버깅 정보를 활성화합니다. CLI 명령 실행. -s, --start INTEGER PDF 구문 분석을 위한 시작 페이지, 시작 0부터. -e, --end INTEGER PDF 구문 분석의 종료 페이지입니다. 0. --help 이 메시지를 표시하고 종료합니다.## show versionmagic-pdf -v## 명령줄 examplemagic-pdf -p {some_pdf} -o {some_output_dir} -m auto
{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 = UNIPipe(pdf_bytes, jso_useful_key, image_writer)pipe.pipe_classify( )pipe.pipe_analyze()pipe.pipe_parse()md_content = 파이프.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_analyze()pipe.pipe_parse()md_content =pipe.pipe_mk_markdown(image_dir, drop_mode= "없음")
자세한 구현 내용은 다음을 참조하세요.
데모.py 가장 간단한 처리 방법
Magic_pdf_parse_main.py 더 자세한 처리 작업 흐름
파생 프로젝트에는 프로젝트 개발자와 커뮤니티 개발자가 MinerU를 기반으로 한 2차 개발 프로젝트가 포함되며,
Gradio 기반 애플리케이션 인터페이스, llama 기반 RAG, 공식 웹사이트와 유사한 웹 데모, 경량 다중 GPU 로드 밸런싱 클라이언트/서버 엔드 등. 이러한 프로젝트는 더 많은 기능과 더 나은 사용자 경험을 제공할 수 있습니다.
구체적인 배포 방법은 파생 프로젝트 README를 참조하세요.
TODO
? 모델에 따른 읽기 순서
? 본문 내 index
및 list
인식
? 테이블 인식
☐ 본문 내 코드블록 인식
☐ 화학식 인식
☐ 기하학적 모양 인식
읽기 순서는 읽을 수 있는 콘텐츠의 공간적 분포를 기반으로 모델에 의해 결정되며, 매우 복잡한 레이아웃의 일부 영역에서는 순서가 맞지 않을 수 있습니다.
세로 텍스트는 지원되지 않습니다.
목차와 목록은 규칙을 통해 인식되며 일부 일반적이지 않은 목록 형식은 인식되지 않을 수 있습니다.
한 수준의 제목만 지원됩니다. 계층적 제목은 현재 지원되지 않습니다.
레이아웃 모델에서는 코드 블록이 아직 지원되지 않습니다.
만화책, 미술 앨범, 초등학교 교과서, 연습문제 등은 잘 분석할 수 없습니다.
복잡한 테이블에서는 테이블 인식으로 인해 행/열 인식 오류가 발생할 수 있습니다.
OCR 인식은 잘 알려지지 않은 언어의 PDF에서 부정확한 문자를 생성할 수 있습니다(예: 라틴어 스크립트의 발음 구별 부호, 아랍어 스크립트의 쉽게 혼동되는 문자).
일부 수식은 Markdown에서 올바르게 렌더링되지 않을 수 있습니다.
중국어로 자주 묻는 질문
FAQ(영어)
라이센스.md
이 프로젝트는 현재 PyMuPDF를 사용하여 고급 기능을 구현합니다. 그러나 AGPL 라이센스를 준수하므로 특정 사용 시나리오에 제한이 있을 수 있습니다. 향후 반복에서는 사용자 친화성과 유연성을 향상시키기 위해 보다 관대한 PDF 처리 라이브러리를 탐색하고 교체할 계획입니다.
PDF 추출 키트
StructEqTable
패들OCR
PyMuPDF
레이아웃 리더
빠른 언어 감지
pdfminer.six
@misc{wang2024mineruopensourcesolutionprecise, title={MinerU: 정확한 문서 콘텐츠 추출을 위한 오픈 소스 솔루션}, 저자={Bin Wang, Chao Xu, Xiaomeng Zhao, Linke Ouyang, Fan Wu, Zhiyuan Zhao, Rui Xu, Kaiwen Liu, Yuan Qu, Fukai Shang, Bo Zhang, Liqun Wei, Zhihao Sui, Wei Li, Botian Shi, Yu Qiao 및 Dahua Lin 및 Conghui He}, 연도={2024}, eprint={2409.18839}, archivePrefix={arXiv}, PrimaryClass={cs.CV}, url={https://arxiv.org/abs/2409.18839}, }@article{he2024opendatalab, title={Opendatalab: 공개 데이터 세트로 일반 인공 지능 강화}, 작성자={He, Conghui and Li, Wei and Jin, Zhenjiang and Xu, Chao and Wang, Bin and Lin, Dahua}, 저널= {arXiv 사전 인쇄 arXiv:2407.13773}, 연도={2024}}
Magic-Doc 빠른 속도의 ppt/pptx/doc/docx/pdf 추출 도구
Magic-HTML 혼합 웹 페이지 추출 도구
LabelU(경량 다중 모드 데이터 주석 도구)
LabelLLM(오픈 소스 LLM 대화 주석 플랫폼)
PDF-Extract-Kit(고품질 PDF 콘텐츠 추출을 위한 종합 툴킷)