Inglês | 简体中文
PDF-Extract-Kit: Kit de ferramentas de extração de PDF de alta qualidade???
? junte-se a nós no Discord e WeChat
31/10/2024 0.9.0 lançado. Esta é uma nova versão importante com extensa refatoração de código, abordando vários problemas, melhorando o desempenho, reduzindo os requisitos de hardware e melhorando a usabilidade:
Adicionado o modelo doclayout_yolo
autodesenvolvido, que acelera o processamento em mais de 10 vezes em comparação com a solução original, mantendo efeitos de análise semelhantes, e pode ser alternado livremente com layoutlmv3
por meio do arquivo de configuração.
Análise de fórmula atualizada para unimernet 0.2.1
, melhorando a precisão da análise de fórmula e reduzindo significativamente o uso de memória.
Devido à alteração do repositório do PDF-Extract-Kit 1.0
, você precisa baixar novamente o modelo. Consulte Como fazer download de modelos para etapas detalhadas.
Refatoração do código do módulo de classificação para usar o layoutreader para classificação da ordem de leitura, garantindo alta precisão em vários layouts.
Refatoração do módulo de concatenação de parágrafos para obter bons resultados em cenários de colunas cruzadas, páginas cruzadas, figuras cruzadas e tabelas cruzadas.
Refatoração das funções de reconhecimento de lista e índice, melhorando significativamente a precisão dos blocos de lista e blocos de índice, bem como a análise dos parágrafos de texto correspondentes.
Refatoração da lógica de correspondência para figuras, tabelas e texto descritivo, melhorando significativamente a precisão da correspondência de legendas e notas de rodapé com figuras e tabelas e reduzindo a taxa de perda de texto descritivo para quase zero.
Adicionado suporte multilíngue para OCR, suportando detecção e reconhecimento de 84 idiomas. Para obter a lista de idiomas suportados, consulte Lista de suporte a idiomas de OCR.
Adicionada lógica de reciclagem de memória e outras medidas de otimização de memória, reduzindo significativamente o uso de memória. O requisito de memória para ativar todos os recursos de aceleração, exceto a aceleração de tabela (layout/fórmula/OCR), foi reduzido de 16 GB para 8 GB, e o requisito de memória para ativar todos os recursos de aceleração foi reduzido de 24 GB para 10 GB.
Chaves de recurso de arquivo de configuração otimizadas, adicionando uma chave de detecção de fórmula independente para melhorar significativamente a velocidade e os resultados de análise quando a detecção de fórmula não é necessária.
Kit de extração de PDF integrado 1.0:
2024/09/27 Versão 0.8.1 lançada, corrigidos alguns bugs e fornecendo uma versão de implantação localizada da demonstração online e da interface front-end.
2024/09/09: Versão 0.8.0 lançada, com suporte para implantação rápida com Dockerfile e lançamento de demonstrações em Huggingface e Modelscope.
30/08/2024: Versão 0.7.1 lançada, adição da opção de reconhecimento de mesa paddle tablemaster
09/08/2024: Versão 0.7.0b1 lançada, processo de instalação simplificado, funcionalidade de reconhecimento de tabela adicionada
01/08/2024: Versão 0.6.2b1 lançada, problemas de conflito de dependência otimizados e documentação de instalação
05/07/2024: lançamento inicial de código aberto
MinerU
Linha de comando
API
Implantar projetos derivados
Guia de Desenvolvimento
Demonstração on-line
Demonstração rápida da CPU
Usando GPU
Introdução ao Projeto
Principais recursos
Início rápido
Uso
PENDÊNCIA
Problemas conhecidos
Perguntas frequentes
Tudo graças aos nossos colaboradores
Informações sobre licença
Agradecimentos
Citação
História das Estrelas
Documento mágico
Magia-html
Ligações
MinerU é uma ferramenta que converte PDFs em formatos legíveis por máquina (por exemplo, markdown, JSON), permitindo fácil extração para qualquer formato. A MinerU nasceu durante o processo de pré-formação do InternLM. Nosso foco é resolver problemas de conversão de símbolos na literatura científica e esperamos contribuir para o desenvolvimento tecnológico na era dos grandes modelos. Comparado com produtos comerciais bem conhecidos, o MinerU ainda é jovem. Se você encontrar algum problema ou se os resultados não forem os esperados, envie um problema sobre o problema e anexe o PDF relevante .
pdf_zh_cn.mp4
Remova cabeçalhos, rodapés, notas de rodapé, números de páginas, etc., para garantir a coerência semântica.
Produza o texto em ordem legível, adequado para layouts de coluna única, múltiplas colunas e complexos.
Preservar a estrutura do documento original, incluindo títulos, parágrafos, listas, etc.
Extraia imagens, descrições de imagens, tabelas, títulos de tabelas e notas de rodapé.
Reconheça e converta automaticamente fórmulas no documento para o formato LaTeX.
Reconheça e converta automaticamente tabelas no documento para o formato LaTeX ou HTML.
Detecte automaticamente PDFs digitalizados e PDFs distorcidos e ative a funcionalidade de OCR.
OCR suporta detecção e reconhecimento de 84 idiomas.
Suporta vários formatos de saída, como Markdown multimodal e PNL, JSON classificado por ordem de leitura e formatos intermediários avançados.
Suporta vários resultados de visualização, incluindo visualização de layout e visualização de extensão, para confirmação eficiente da qualidade da saída.
Suporta ambientes de CPU e GPU.
Compatível com plataformas Windows, Linux e Mac.
Se você encontrar algum problema de instalação, consulte primeiro o FAQ.
Se os resultados da análise não forem os esperados, consulte os Problemas Conhecidos.
Existem três maneiras diferentes de experimentar o MinerU:
Demonstração online (sem necessidade de instalação)
Demonstração rápida de CPU (Windows, Linux, Mac)
Linux/Windows +CUDA
Para garantir a estabilidade e confiabilidade do projeto, otimizamos e testamos apenas ambientes específicos de hardware e software durante o desenvolvimento. Isso garante que os usuários que implantarem e executarem o projeto nas configurações de sistema recomendadas obterão o melhor desempenho com o menor número de problemas de compatibilidade.
Ao concentrar recursos no ambiente principal, nossa equipe pode resolver possíveis bugs com mais eficiência e desenvolver novos recursos.
Em ambientes fora da linha principal, devido à diversidade de configurações de hardware e software, bem como a problemas de compatibilidade de dependências de terceiros, não podemos garantir 100% de disponibilidade do projeto. Portanto, para usuários que desejam utilizar este projeto em ambientes não recomendados, sugerimos primeiro a leitura cuidadosa da documentação e do FAQ. A maioria dos problemas já possui soluções correspondentes nas Perguntas frequentes. Também incentivamos o feedback da comunidade para nos ajudar a expandir gradualmente o suporte.
Sistema operacional | |||||
Ubuntu 22.04LTS | Janelas 10/11 | macOS 11+ | |||
CPU | x86_64 (ARM Linux não suportado) | x86_64 (Windows ARM não suportado) | x86_64/arm64 | ||
Memória | 16 GB ou mais, recomendado 32 GB+ | ||||
Versão Python | 3.10 (Certifique-se de criar um ambiente virtual Python 3.10 usando conda) | ||||
Versão do driver Nvidia | mais recente (driver proprietário) | mais recente | Nenhum | ||
Ambiente CUDA | Instalação automática [12.1 (pytorch) + 11.8 (remo)] | 11.8 (instalação manual) + cuDNN v8.7.0 (instalação manual) | Nenhum | ||
Lista de suporte de hardware GPU | Requisito mínimo 8G+ VRAM | 3060ti/3070/4060 8G VRAM permite layout, aceleração de reconhecimento de fórmula e aceleração de OCR | Nenhum | ||
Configuração recomendada 10G+ VRAM | 3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090 10G VRAM ou mais podem permitir layout, reconhecimento de fórmulas, aceleração de OCR e aceleração de reconhecimento de tabela simultaneamente |
Versão estável (versão estável verificada pelo controle de qualidade):
Versão de teste (sincronizada com atualizações do branch dev, testando novos recursos):
conda criar -n MinerU python=3.10 conda ativar MinerU pip install -U magic-pdf[completo] --extra-index-url https://wheels.myhloli.com
Consulte Como fazer download de arquivos de modelo para obter instruções detalhadas.
Depois de concluir a etapa 2. Baixar arquivos de peso do modelo, o script gerará automaticamente um arquivo magic-pdf.json
no diretório do usuário e configurará o caminho do modelo padrão. Você pode encontrar o arquivo magic-pdf.json
em seu 【diretório de usuário】.
O diretório de usuário para Windows é "C:Usersusername", para Linux é "/home/username" e para macOS é "/Users/username".
Você pode modificar determinadas configurações neste arquivo para ativar ou desativar recursos, como reconhecimento de tabela:
Se os itens a seguir não estiverem presentes no JSON, adicione manualmente os itens necessários e remova o conteúdo do comentário (o JSON padrão não oferece suporte a comentários).
{// outra configuração"layout-config": {"model": "layoutlmv3" // Mude para "doclayout_yolo" ao usar doclayout_yolo.},"formula-config": {"mfd_model": "yolo_v8_mfd","mfr_model ": "unimernet_small","enable": true // O recurso de reconhecimento de fórmula está habilitado por padrão. Se precisar desativá-lo, altere o valor aqui para "false".},"table-config": {"model": "tablemaster", // Ao usar structEqTable, altere para "struct_eqtable"."enable" : false, // O recurso de reconhecimento de tabela está desabilitado por padrão. Se precisar ativá-lo, altere o valor aqui para "true"."max_time": 400} }
Se o seu dispositivo suportar CUDA e atender aos requisitos de GPU do ambiente principal, você poderá usar a aceleração de GPU. Selecione o guia apropriado com base no seu sistema:
Ubuntu 22.04 LTS + GPU
Windows 10/11 + GPU
Implantação rápida com Docker
O Docker requer uma GPU com pelo menos 16 GB de VRAM e todos os recursos de aceleração estão habilitados por padrão.
Antes de executar este Docker, você pode usar o seguinte comando para verificar se o seu dispositivo suporta aceleração CUDA no Docker.
docker execute --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:mais recente .docker run --rm -it --gpus=all mineru:mais recente /bin/bash magia-pdf --ajuda
magia-pdf --ajuda Uso: magic-pdf [OPÇÕES] Opções: -v, --version exibe a versão e sai -p, --path PATH caminho do arquivo pdf local ou diretório [obrigatório] -o, --output-dir PATH diretório local de saída [obrigatório] -m, --method [ocr|txt|auto] o método para analisar pdf. ocr: usando ocr técnica para extrair informações de pdf. TXT: adequado apenas para PDF baseado em texto e superar o ocr. auto: escolhe automaticamente o melhor método para analisar pdf de ocr e txt. sem método especificado, auto será usado por padrão. -l, --lang TEXT Insira os idiomas no pdf (se conhecido) para melhorar a precisão do OCR. Opcional. Você deve insira "Abreviatura" com o URL do formulário do idioma: ht tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_languages.html#5-support-languages- e-abreviaturas -d, --debug BOOLEAN Habilita informações detalhadas de depuração durante a execução dos comandos CLI. -s, --start INTEGER A página inicial para análise de PDF, começando de 0. -e, --end INTEIRO A página final para análise de PDF, começando em 0. --help Mostre esta mensagem e saia.## show versionmagic-pdf -v## linha de comando examplemagic-pdf -p {some_pdf} -o {some_output_dir} -m auto
{some_pdf}
pode ser um único arquivo PDF ou um diretório contendo vários PDFs. Os resultados serão salvos no diretório {some_output_dir}
. A lista de arquivos de saída é a seguinte:
├── 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
Para obter mais informações sobre os arquivos de saída, consulte a Descrição do Arquivo de Saída.
Processando arquivos do disco local
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")
Processando arquivos do armazenamento de objetos
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")
Para implementação detalhada, consulte:
demo.py Método de processamento mais simples
magic_pdf_parse_main.py Fluxo de trabalho de processamento mais detalhado
Os projetos derivados incluem projetos de desenvolvimento secundário baseados no MinerU por desenvolvedores de projetos e desenvolvedores da comunidade,
como interfaces de aplicativos baseadas em Gradio, RAG baseado em lhama, demonstrações web semelhantes ao site oficial, balanceamento de carga multi-GPU leve, extremidades cliente/servidor, etc.
Para métodos de implantação específicos, consulte o README do projeto derivado
PENDÊNCIA
? Ordem de leitura com base no modelo
? Reconhecimento de index
e list
no texto principal
? Reconhecimento de tabela
☐ Reconhecimento de bloco de código no texto principal
☐ Reconhecimento de fórmula química
☐ Reconhecimento de formas geométricas
A ordem de leitura é determinada pelo modelo com base na distribuição espacial do conteúdo legível e pode estar fora de ordem em algumas áreas sob layouts extremamente complexos.
O texto vertical não é suportado.
Os índices e listas são reconhecidos por meio de regras, e alguns formatos de lista incomuns podem não ser reconhecidos.
Apenas um nível de títulos é suportado; cabeçalhos hierárquicos não são suportados atualmente.
Os blocos de código ainda não são suportados no modelo de layout.
Histórias em quadrinhos, álbuns de arte, livros didáticos do ensino fundamental e exercícios não podem ser bem analisados.
O reconhecimento de tabela pode resultar em erros de reconhecimento de linha/coluna em tabelas complexas.
O reconhecimento OCR pode produzir caracteres imprecisos em PDFs de idiomas menos conhecidos (por exemplo, marcas diacríticas na escrita latina, caracteres facilmente confundidos na escrita árabe).
Algumas fórmulas podem não ser renderizadas corretamente no Markdown.
Perguntas frequentes em chinês
Perguntas frequentes em inglês
LICENÇA.md
Este projeto atualmente usa PyMuPDF para obter funcionalidades avançadas. Porém, por aderir à licença AGPL, pode impor restrições em determinados cenários de utilização. Em iterações futuras, planejamos explorá-la e substituí-la por uma biblioteca de processamento de PDF mais permissiva para melhorar a facilidade de uso e a flexibilidade.
Kit de extração de PDF
EstruturaEqTable
PaddleOCR
PyMuPDF
leitor de layout
detecção rápida de lang
pdfminer.six
@misc{wang2024mineruopensourcesolutionprecise, title={MinerU: uma solução de código aberto para extração precisa de conteúdo de documentos}, autor = {Bin Wang e Chao Xu e Xiaomeng Zhao e Linke Ouyang e Fan Wu e Zhiyuan Zhao e Rui Xu e Kaiwen Liu e Yuan Qu e Fukai Shang e Bo Zhang e Liqun Wei e Zhihao Sui e Wei Li e Botian Shi e Yu Qiao e Dahua Lin e Conghui He}, ano={2024}, eprint={2409.18839}, archivePrefix={arXiv}, classe primária={cs.CV}, url={https://arxiv.org/abs/2409.18839}, }@artigo{he2024opendatalab, title={Opendatalab: Capacitando a inteligência artificial geral com conjuntos de dados abertos}, autor={He, Conghui e Li, Wei e Jin, Zhenjiang e Xu, Chao e Wang, Bin e Lin, Dahua}, diário= {pré-impressão arXiv arXiv:2407.13773}, ano={2024}}
Ferramenta de extração de ppt/pptx/doc/docx/pdf de alta velocidade Magic-Doc
Ferramenta de extração de páginas da web mista Magic-HTML
LabelU (uma ferramenta leve de anotação de dados multimodais)
LabelLLM (uma plataforma de anotação de diálogo LLM de código aberto)
PDF-Extract-Kit (um kit de ferramentas abrangente para extração de conteúdo PDF de alta qualidade)