Inglés | 简体中文
PDF-Extract-Kit: ¿Kit de herramientas de extracción de PDF de alta calidad?
? Únase a nosotros en Discord y WeChat
2024/10/31 0.9.0 lanzado. Esta es una nueva versión importante con una extensa refactorización de código, que aborda numerosos problemas, mejora el rendimiento, reduce los requisitos de hardware y mejora la usabilidad:
Se agregó el modelo doclayout_yolo
de desarrollo propio, que acelera el procesamiento más de 10 veces en comparación con la solución original mientras mantiene efectos de análisis similares, y se puede cambiar libremente con layoutlmv3
a través del archivo de configuración.
Se actualizó el análisis de fórmulas a unimernet 0.2.1
, lo que mejora la precisión del análisis de fórmulas y reduce significativamente el uso de memoria.
Debido al cambio en el repositorio de PDF-Extract-Kit 1.0
, es necesario volver a descargar el modelo. Consulte Cómo descargar modelos para conocer los pasos detallados.
Se refactorizó el código del módulo de clasificación para utilizar el lector de diseño para leer la clasificación de pedidos, lo que garantiza una alta precisión en varios diseños.
Se refactorizó el módulo de concatenación de párrafos para lograr buenos resultados en escenarios entre columnas, entre páginas, entre figuras y entre tablas.
Se refactorizaron las funciones de reconocimiento de listas y tablas de contenido, mejorando significativamente la precisión de los bloques de listas y tablas de contenidos, así como el análisis de los párrafos de texto correspondientes.
Se refactorizó la lógica de coincidencia para figuras, tablas y texto descriptivo, lo que mejoró en gran medida la precisión de hacer coincidir títulos y notas al pie con figuras y tablas, y redujo la tasa de pérdida de texto descriptivo a casi cero.
Se agregó compatibilidad con varios idiomas para OCR, lo que admite la detección y el reconocimiento de 84 idiomas. Para obtener la lista de idiomas admitidos, consulte Lista de compatibilidad de idiomas de OCR.
Se agregó lógica de reciclaje de memoria y otras medidas de optimización de la memoria, lo que redujo significativamente el uso de la memoria. El requisito de memoria para habilitar todas las funciones de aceleración excepto la aceleración de tablas (diseño/fórmula/OCR) se redujo de 16 GB a 8 GB, y el requisito de memoria para habilitar todas las funciones de aceleración se redujo de 24 GB a 10 GB.
Cambios de funciones de archivo de configuración optimizados, agregando un interruptor de detección de fórmula independiente para mejorar significativamente la velocidad y los resultados del análisis cuando no es necesaria la detección de fórmula.
Kit de extracción de PDF integrado 1.0:
2024/09/27 Lanzamiento de la versión 0.8.1. Se corrigieron algunos errores y se proporcionó una versión de implementación localizada de la demostración en línea y la interfaz de usuario.
09/09/2024: Lanzamiento de la versión 0.8.0, que admite una implementación rápida con Dockerfile y lanza demostraciones en Huggingface y Modelscope.
30/08/2024: Versión 0.7.1 lanzada, agrega la opción de reconocimiento de mesa paddle tablemaster
09/08/2024: Versión 0.7.0b1 lanzada, proceso de instalación simplificado, funcionalidad agregada de reconocimiento de tablas
01/08/2024: Versión 0.6.2b1 lanzada, problemas de conflictos de dependencia optimizados y documentación de instalación
05/07/2024: lanzamiento inicial de código abierto
MineroU
Línea de comando
API
Implementar proyectos derivados
Guía de desarrollo
Demostración en línea
Demostración rápida de CPU
Usando GPU
Introducción al proyecto
Características clave
Inicio rápido
Uso
HACER
Problemas conocidos
Preguntas frecuentes
Todo gracias a nuestros colaboradores
Información de licencia
Expresiones de gratitud
Citación
Historia de las estrellas
Magia-doc
Magia-html
Campo de golf
MinerU es una herramienta que convierte archivos PDF a formatos legibles por máquina (por ejemplo, Markdown, JSON), lo que permite una fácil extracción a cualquier formato. MinerU nació durante el proceso de preformación de InternLM. Nos centramos en resolver problemas de conversión de símbolos en la literatura científica y esperamos contribuir al desarrollo tecnológico en la era de los grandes modelos. En comparación con productos comerciales conocidos, MinerU es todavía joven. Si encuentra algún problema o si los resultados no son los esperados, envíe un problema sobre el problema y adjunte el PDF correspondiente .
pdf_zh_cn.mp4
Elimine encabezados, pies de página, notas al pie, números de página, etc., para garantizar la coherencia semántica.
Genere texto en un orden legible por humanos, adecuado para diseños complejos, de una o varias columnas.
Preservar la estructura del documento original, incluidos títulos, párrafos, listas, etc.
Extraiga imágenes, descripciones de imágenes, tablas, títulos de tablas y notas a pie de página.
Reconozca y convierta automáticamente fórmulas en el documento al formato LaTeX.
Reconozca y convierta automáticamente tablas en el documento a formato LaTeX o HTML.
Detecte automáticamente archivos PDF escaneados y archivos PDF confusos y habilite la funcionalidad OCR.
OCR admite la detección y el reconocimiento de 84 idiomas.
Admite múltiples formatos de salida, como multimodal y NLP Markdown, JSON ordenado por orden de lectura y formatos intermedios enriquecidos.
Admite varios resultados de visualización, incluida la visualización del diseño y la visualización del intervalo, para una confirmación eficiente de la calidad de la salida.
Admite entornos de CPU y GPU.
Compatible con plataformas Windows, Linux y Mac.
Si encuentra algún problema de instalación, consulte primero las preguntas frecuentes.
Si los resultados del análisis no son los esperados, consulte Problemas conocidos.
Hay tres formas diferentes de experimentar MinerU:
Demostración en línea (no requiere instalación)
Demostración rápida de CPU (Windows, Linux, Mac)
Linux/Windows + CUDA
Para garantizar la estabilidad y confiabilidad del proyecto, solo optimizamos y probamos entornos de hardware y software específicos durante el desarrollo. Esto garantiza que los usuarios que implementen y ejecuten el proyecto en las configuraciones de sistema recomendadas obtengan el mejor rendimiento con la menor cantidad de problemas de compatibilidad.
Al centrar los recursos en el entorno principal, nuestro equipo puede resolver errores potenciales y desarrollar nuevas funciones de manera más eficiente.
En entornos no principales, debido a la diversidad de configuraciones de hardware y software, así como a problemas de compatibilidad de dependencias de terceros, no podemos garantizar el 100% de disponibilidad del proyecto. Por lo tanto, para los usuarios que deseen utilizar este proyecto en entornos no recomendados, sugerimos leer detenidamente primero la documentación y las preguntas frecuentes. La mayoría de los problemas ya tienen las soluciones correspondientes en las preguntas frecuentes. También alentamos los comentarios de la comunidad para ayudarnos a ampliar gradualmente el soporte.
Sistema operativo | |||||
Ubuntu 22.04 LTS | Ventanas 10/11 | macOS 11+ | |||
UPC | x86_64 (ARM Linux no compatible) | x86_64 (Windows ARM no compatible) | x86_64 / brazo64 | ||
Memoria | 16 GB o más, recomendado 32 GB+ | ||||
Versión de Python | 3.10 (Asegúrese de crear un entorno virtual Python 3.10 usando conda) | ||||
Versión del controlador Nvidia | último (controlador propietario) | el último | Ninguno | ||
Entorno CUDA | Instalación automática [12.1 (pytorch) + 11.8 (paleta)] | 11.8 (instalación manual) + cuDNN v8.7.0 (instalación manual) | Ninguno | ||
Lista de soporte de hardware de GPU | Requisito mínimo 8G+ VRAM | 3060ti/3070/4060 8G VRAM permite el diseño, la aceleración del reconocimiento de fórmulas y la aceleración de OCR | Ninguno | ||
Configuración recomendada 10G+ VRAM | 3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090 10G VRAM o más pueden habilitar el diseño, el reconocimiento de fórmulas, la aceleración de OCR y la aceleración del reconocimiento de tablas simultáneamente |
Versión estable (Versión estable verificada por control de calidad):
Versión de prueba (sincronizada con actualizaciones de la rama de desarrollo, probando nuevas funciones):
conda crear -n MinerU python = 3.10 conda activar MinerU instalación de pip -U magic-pdf[completo] --extra-index-url https://wheels.myhloli.com
Consulte Cómo descargar archivos de modelo para obtener instrucciones detalladas.
Después de completar el paso 2. Descargar archivos de peso del modelo, el script generará automáticamente un archivo magic-pdf.json
en el directorio del usuario y configurará la ruta del modelo predeterminada. Puede encontrar el archivo magic-pdf.json
en su 【directorio de usuario】.
El directorio de usuarios para Windows es "C:Usersusername", para Linux es "/home/username" y para macOS es "/Users/username".
Puede modificar ciertas configuraciones en este archivo para habilitar o deshabilitar funciones, como el reconocimiento de tablas:
Si los siguientes elementos no están presentes en el JSON, agregue manualmente los elementos requeridos y elimine el contenido del comentario (el JSON estándar no admite comentarios).
{// otra configuración"layout-config": {"model": "layoutlmv3" // Cambie a "doclayout_yolo" cuando utilice doclayout_yolo.},"formula-config": {"mfd_model": "yolo_v8_mfd","mfr_model ": "unimernet_small","enable": true // La función de reconocimiento de fórmulas está habilitada de forma predeterminada. Si necesita deshabilitarlo, cambie el valor aquí a "false".},"table-config": {"model": "tablemaster", // Cuando use structEqTable, cámbielo a "struct_eqtable"."enable" : false, // La función de reconocimiento de tablas está deshabilitada de forma predeterminada. Si necesita habilitarlo, cambie el valor aquí a "true"."max_time": 400} }
Si su dispositivo es compatible con CUDA y cumple con los requisitos de GPU del entorno principal, puede utilizar la aceleración de GPU. Seleccione la guía adecuada según su sistema:
Ubuntu 22.04 LTS + GPU
Windows 10/11 + GPU
Implementación rápida con Docker
Docker requiere una GPU con al menos 16 GB de VRAM y todas las funciones de aceleración están habilitadas de forma predeterminada.
Antes de ejecutar este Docker, puede usar el siguiente comando para verificar si su dispositivo admite la aceleración CUDA en Docker.
ejecución de la ventana acoplable --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:último .docker run --rm -it --gpus=all mineru:último /bin/bash magia-pdf --ayuda
magia-pdf --ayuda Uso: magic-pdf [OPCIONES] Opciones: -v, --version muestra la versión y sale -p, --path PATH ruta o directorio del archivo pdf local [obligatorio] -o, --output-dir PATH directorio local de salida [obligatorio] -m, --method [ocr|txt|auto] el método para analizar pdf. ocr: usando ocr Técnica para extraer información de un pdf. TXT: Adecuado solo para PDF basado en texto y supera a ocr. auto: elige automáticamente el El mejor método para analizar PDF desde OCR y TXT. sin método especificado, auto será utilizado por por defecto. -l, --lang TEXT Ingrese los idiomas en el pdf (si los conoce) para mejorar la precisión del OCR. Opcional. Debería ingrese "Abreviatura" con la URL del formulario de idioma: ht tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_languages.html#5-support-languages- y-abreviaturas -d, --debug BOOLEAN Habilita información detallada de depuración durante la ejecución de los comandos CLI. -s, --start INTEGER La página de inicio para el análisis de PDF, comenzando desde 0. -e, --end INTEGER La página final para el análisis de PDF, comenzando desde 0. --help Muestra este mensaje y sale.## show versionmagic-pdf -v## línea de comando examplemagic-pdf -p {some_pdf} -o {some_output_dir} -m auto
{some_pdf}
puede ser un único archivo PDF o un directorio que contenga varios archivos PDF. Los resultados se guardarán en el directorio {some_output_dir}
. La lista de archivos de salida es la siguiente:
├── 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 obtener más información sobre los archivos de salida, consulte la Descripción del archivo de salida.
Procesar archivos desde el 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="ninguno")
Procesar archivos desde el almacenamiento 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 _clave = {"_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= "ninguno")
Para una implementación detallada, consulte:
demo.py Método de procesamiento más simple
magic_pdf_parse_main.py Flujo de trabajo de procesamiento más detallado
Los proyectos derivados incluyen proyectos de desarrollo secundario basados en MinerU por parte de desarrolladores de proyectos y desarrolladores comunitarios,
como interfaces de aplicaciones basadas en Gradio, RAG basado en llama, demostraciones web similares al sitio web oficial, extremos cliente/servidor de equilibrio de carga multi-GPU livianos, etc. Estos proyectos pueden ofrecer más funciones y una mejor experiencia de usuario.
Para conocer métodos de implementación específicos, consulte el archivo README del proyecto derivado.
HACER
? Orden de lectura según el modelo.
? Reconocimiento de index
y list
en el texto principal.
? Reconocimiento de mesa
☐ Reconocimiento de bloques de código en el texto principal
☐ Reconocimiento de fórmulas químicas
☐ Reconocimiento de formas geométricas
El orden de lectura está determinado por el modelo basado en la distribución espacial del contenido legible y puede estar desordenado en algunas áreas bajo diseños extremadamente complejos.
No se admite texto vertical.
Las tablas de contenido y las listas se reconocen mediante reglas y es posible que algunos formatos de lista poco comunes no se reconozcan.
Sólo se admite un nivel de títulos; Actualmente no se admiten encabezados jerárquicos.
Los bloques de código aún no son compatibles con el modelo de diseño.
Los cómics, los álbumes de arte, los libros de texto de la escuela primaria y los ejercicios no se pueden analizar bien.
El reconocimiento de tablas puede provocar errores de reconocimiento de filas/columnas en tablas complejas.
El reconocimiento OCR puede producir caracteres inexactos en archivos PDF de idiomas menos conocidos (por ejemplo, signos diacríticos en escritura latina, caracteres que se confunden fácilmente en escritura árabe).
Es posible que algunas fórmulas no se representen correctamente en Markdown.
Preguntas frecuentes en chino
Preguntas frecuentes en inglés
LICENCIA.md
Este proyecto actualmente utiliza PyMuPDF para lograr una funcionalidad avanzada. Sin embargo, dado que cumple con la licencia AGPL, puede imponer restricciones en ciertos escenarios de uso. En futuras iteraciones, planeamos explorarla y reemplazarla con una biblioteca de procesamiento de PDF más permisiva para mejorar la facilidad de uso y la flexibilidad.
Kit de extracción de PDF
EstructuraEqTable
PaddleOCR
PyMuPDF
lector de diseño
detección rápida de idioma
pdfminer.seis
@misc{wang2024mineruopensourcesolutionprecise, title={MinerU: una solución de código abierto para la extracción precisa del contenido de documentos}, autor = {Bin Wang y Chao Xu y Xiaomeng Zhao y Linke Ouyang y Fan Wu y Zhiyuan Zhao y Rui Xu y Kaiwen Liu y Yuan Qu y Fukai Shang y Bo Zhang y Liqun Wei y Zhihao Sui y Wei Li y Botian Shi y Yu Qiao y Dahua Lin y Conghui He}, año={2024}, eprint={2409.18839}, archivePrefix={arXiv}, PrimaryClass={cs.CV}, url={https://arxiv.org/abs/2409.18839}, }@article{he2024opendatalab, title={Opendatalab: Potenciar la inteligencia artificial general con conjuntos de datos abiertos}, autor={He, Conghui y Li, Wei y Jin, Zhenjiang y Xu, Chao y Wang, Bin y Lin, Dahua}, diario= {arXiv preimpresión arXiv:2407.13773}, año={2024}}
Magic-Doc Herramienta de extracción de ppt/pptx/doc/docx/pdf de alta velocidad
Herramienta de extracción de páginas web mixta Magic-HTML
LabelU (una herramienta ligera de anotación de datos multimodal)
LabelLLM (una plataforma de anotación de diálogo LLM de código abierto)
PDF-Extract-Kit (un conjunto de herramientas completo para la extracción de contenido PDF de alta calidad)