Introdução geral
O PDF-Extract-Kit é um projeto de código aberto desenvolvido pela equipe do OpenDataLab, com foco na extração eficiente de conteúdo de alta qualidade de documentos PDF complexos e diversos. Ele integra tecnologia avançada de análise de documentos, suporte para detecção de layout, reconhecimento de fórmulas, extração de tabelas e OCR e outras funções, aplicáveis a trabalhos acadêmicos, relatórios de pesquisa, documentos financeiros e outros cenários. O PDF-Extract-Kit fornece benchmarks de avaliação abrangentes para ajudar os usuários a selecionar o modelo mais adequado, enquanto é constantemente atualizado e otimizado, como a recente adição de DocLayout-YOLO e StructTable mais rápidos. -Tanto os desenvolvedores quanto os pesquisadores podem obter uma extração eficiente do conteúdo de documentos por meio dele.
Lista de funções
- Detecção de layoutReconhecer layouts de página em PDF, incluindo áreas como cabeçalhos, parágrafos, imagens e tabelas, com suporte para modelos eficientes como o DocLayout-YOLO.
- reconhecimento de fórmulasExtrai e analisa fórmulas matemáticas de documentos e as converte para o formato LaTeX, com base em tecnologias avançadas, como a UniMERNet.
- Extração de formuláriosSuporte ao reconhecimento e à extração de conteúdo de tabelas complexas, com saída nos formatos LaTeX, HTML e Markdown.
- Processamento de OCRConverte texto de documentos ou imagens digitalizadas em texto editável por meio de tecnologias como a PaddleOCR.
- Configuração modularFornece perfis flexíveis que permitem aos usuários combinar diferentes modelos e criar aplicativos rapidamente.
- Avaliação de conteúdoAnálise de PDF: Diversos benchmarks de análise de PDF incorporados para ajudar os usuários a avaliar a eficácia de diferentes modelos.
- Extração de imagens e textosSuporte para extração de imagens de PDFs e reconhecimento de seu conteúdo textual.
Usando a Ajuda
Processo de instalação
O PDF-Extract-Kit é compatível com vários sistemas operacionais (por exemplo, Ubuntu, Windows ou macOS). Veja a seguir as etapas detalhadas de instalação (Ubuntu 20.04, por exemplo):
1. preparação ambiental
- Certifique-se de que o Python 3.10 esteja instalado em seu sistema:
sudo apt update sudo apt install python3.10 python3.10-dev python3-pip
- Criar e ativar um ambiente virtual:
conda create -n pdf-extract-kit python=3.10 conda activate pdf-extract-kit
2. instalação de dependências
- Clonar o repositório de código:
git clone https://github.com/opendatalab/PDF-Extract-Kit.git cd PDF-Extract-Kit
- Instale as dependências principais (disponíveis se não houver GPU)
requisitos-cpu.txt
):pip install -r requirements.txt
tomar nota deSe você encontrar
doclayout-yolo
A instalação falhou, você pode instalá-la manualmente:pip3 install doclayout-yolo==0.0.2 --extra-index-url=https://pypi.org/simple
3. download dos pesos do modelo
- Consulte o tutorial oficial para fazer o download dos arquivos de modelo (há suporte para download total ou parcial):
- Downloads automatizados usando scripts Python:
python scripts/download_models_hf.py
- Ou faça o download manualmente em Hugging Face:
git lfs install git clone https://huggingface.co/opendatalab/PDF-Extract-Kit-1.0
- Downloads automatizados usando scripts Python:
- Após a conclusão do download, coloque os arquivos de modelo no caminho especificado no diretório do projeto (consulte a seção
configs/model_configs.yaml
).
4. verificação da instalação
- Execute o script de amostra para testar se o ambiente está funcionando:
python pdf_extract.py --pdf assets/examples/example.pdf
A saída será salva no arquivo
saídas
pasta.
Função Fluxo de operação
Detecção de layout
- Preparação de arquivos PDFColoque o PDF a ser processado no diretório do projeto (por exemplo
ativos/exemplos/
). - Inspeção do layout de execução::
- modificações
configs/layout_detection.yaml
O caminho de entrada nopdf_path: "assets/examples/example.pdf" output_dir: "outputs/layout_detection"
- Execute o comando:
python scripts/layout_detection.py --config=configs/layout_detection.yaml
- modificações
- Exibir resultados: em
outputs/layout_detection
gerando imagens e arquivos JSON com as áreas de layout rotuladas.
reconhecimento de fórmulas
- Executar extração de fórmula::
- Use a configuração padrão:
python pdf_extract.py --pdf your_file.pdf --render
--render
renderiza a fórmula como uma imagem para facilitar a validação.
- Use a configuração padrão:
- Exibir saídaFórmulas: As fórmulas são armazenadas no JSON de saída no formato LaTeX e podem ser usadas diretamente na redação acadêmica ou no processamento posterior.
Extração de formulários
- Identificação do formulário de execução::
- Certifique-se de que o download foi feito
Tabela de estruturação-InternVL2-1B
Modelos. - Execute a extração completa:
python pdf_extract.py --pdf seu_arquivo.pdf
- Certifique-se de que o download foi feito
- Seleção do formato de saída::
- Modificar o arquivo de configuração
configs/model_configs.yaml
Configuraçõesformato_da_tabela
por causa delátex
ehtml
talvezremarcação para baixo
.
- Modificar o arquivo de configuração
- Visualização de resultadosFormato de saída: O conteúdo do formulário será salvo no diretório de saída no formato especificado.
Processamento de OCR
- Processamento de PDFs digitalizados::
- Para PDFs gráficos, verifique se o OCR está ativado:
python pdf_extract.py --pdf scan_file.pdf --vis
--vis
Os parâmetros geram resultados de visualização, anotando áreas de texto reconhecido.
- Para PDFs gráficos, verifique se o OCR está ativado:
- Verificar saídaO conteúdo do texto é salvo em um formato editável, e os resultados do reconhecimento de texto e imagem podem ser vistos rapidamente.
Operação da função em destaque
Configuração modular
- compilador
configs/model_configs.yaml
Ajustando os parâmetros:tamanho da imagem
Resolução da imagem.conf_thres
Limites de confiança.dispositivo
: Seleçãocuda
(GPU) oucpu (computador)
.
- Exemplo:
model_args. tamanho_img: 1024 conf_thres: 0,5 dispositivo: "cuda"
Otimização de alto desempenho
- O processamento em lote pode ser ativado para dispositivos de alta capacidade (≥16 GB de memória de vídeo):
python pdf_extract.py --pdf your_file.pdf --batch-size 128
- Aumento da velocidade de análise 50% ou superior, adequado para processamento em lote.
Suporte a vários idiomas
- configurar
lang
por causa deautomático
O modelo de OCR pode ser usado para reconhecer automaticamente o idioma do documento e selecionar o modelo de OCR apropriado:ocr_args. lang: "auto"
advertência
- Requisitos de hardwareGPUs (por exemplo, placas de vídeo NVIDIA) podem aumentar drasticamente as velocidades de processamento e recomenda-se que tenham ≥8 GB de memória de vídeo.
- problemas comuns::
- Se for exibida uma mensagem de falta de
cv2
Em execuçãopip install opencv-python
. - Se o download do modelo estiver incompleto, verifique a rede ou altere o método de download.
- Se for exibida uma mensagem de falta de
- Suporte à comunidadeSe você tiver dúvidas, faça-as nos quadros Discussões ou Problemas do GitHub.
Por meio das etapas acima, os usuários podem começar a usar facilmente o PDF-Extract-Kit e concluir com eficiência a extração de conteúdo complexo de PDF.