английский | 简体中文
PDF-Extract-Kit: высококачественный набор инструментов для извлечения PDF-файлов???
? присоединяйтесь к нам в Discord и WeChat
31.10.2024 выпущена версия 0.9.0. Это крупная новая версия с обширным рефакторингом кода, устраняющая многочисленные проблемы, улучшающая производительность, снижающая требования к оборудованию и повышающая удобство использования:
Добавлена самостоятельно разработанная модель doclayout_yolo
, которая ускоряет обработку более чем в 10 раз по сравнению с исходным решением, сохраняя при этом аналогичные эффекты синтаксического анализа, и может свободно переключаться с помощью layoutlmv3
через файл конфигурации.
Синтаксический анализ формул обновлен до unimernet 0.2.1
, что повышает точность анализа формул и значительно снижает использование памяти.
В связи с изменением репозитория для PDF-Extract-Kit 1.0
вам необходимо повторно загрузить модель. Подробные инструкции см. в разделе «Как загрузить модели».
Переработан код модуля сортировки, чтобы использовать LayoutReader для сортировки порядка чтения, обеспечивая высокую точность в различных макетах.
Переработан модуль конкатенации абзацев для достижения хороших результатов в сценариях с несколькими столбцами, страницами, рисунками и таблицами.
Переработаны функции распознавания списка и оглавления, значительно улучшена точность блоков списка и блоков оглавления, а также синтаксический анализ соответствующих абзацев текста.
Переработана логика сопоставления рисунков, таблиц и описательного текста, что значительно повысило точность сопоставления подписей и сносок с рисунками и таблицами, а также снизило уровень потерь описательного текста почти до нуля.
Добавлена многоязычная поддержка OCR, поддерживающая обнаружение и распознавание 84 языков. Список поддерживаемых языков см. в списке поддержки языков OCR.
Добавлена логика повторного использования памяти и другие меры по оптимизации памяти, что значительно снижает использование памяти. Требование к памяти для включения всех функций ускорения, за исключением ускорения таблиц (макет/формула/распознавание текста), уменьшено с 16 ГБ до 8 ГБ, а требование к памяти для включения всех функций ускорения снижено с 24 ГБ до 10 ГБ.
Оптимизированы переключатели функций файла конфигурации, добавлен независимый переключатель обнаружения формул для значительного повышения скорости и результатов анализа, когда обнаружение формул не требуется.
Встроенный PDF-Extract-Kit 1.0:
27.09.2024 Выпущена версия 0.8.1. Исправлены некоторые ошибки и предоставлена локализованная версия развертывания онлайн-демоверсии и внешнего интерфейса.
09.09.2024: выпущена версия 0.8.0, поддерживающая быстрое развертывание с помощью Dockerfile и запускающая демоверсии на Huggingface и Modelscope.
30 августа 2024 г.: выпущена версия 0.7.1, добавлена опция распознавания таблицы Paddle tablemaster.
08.08.2024: выпущена версия 0.7.0b1, упрощен процесс установки, добавлена функция распознавания таблиц.
01.08.2024: выпущена версия 0.6.2b1, оптимизированы проблемы конфликтов зависимостей и документация по установке.
05.07.2024: Первый выпуск с открытым исходным кодом.
МайнерУ
Командная строка
API
Развертывание производных проектов
Руководство по разработке
Онлайн-демо
Быстрая демонстрация процессора
Использование графического процессора
Введение проекта
Ключевые особенности
Быстрый старт
Использование
TODO
Известные проблемы
Часто задаваемые вопросы
Все благодаря нашим участникам
Информация о лицензии
Благодарности
Цитирование
Звездная история
Волшебный док
Magic-html
Ссылки
MinerU — это инструмент, который конвертирует PDF-файлы в машиночитаемые форматы (например, Markdown, JSON), что позволяет легко извлекать их в любой формат. MinerU родился во время предварительного обучения в InternLM. Мы сосредоточены на решении проблем преобразования символов в научной литературе и надеемся внести свой вклад в технологическое развитие в эпоху больших моделей. По сравнению с известными коммерческими продуктами MinerU еще молод. Если у вас возникли какие-либо проблемы или если результаты не соответствуют ожиданиям, отправьте сообщение о проблеме и прикрепите соответствующий PDF-файл .
pdf_zh_cn.mp4
Удалите верхние и нижние колонтитулы, сноски, номера страниц и т. д., чтобы обеспечить семантическую связность.
Вывод текста в удобочитаемом порядке, подходящем для одноколоночных, многоколоночных и сложных макетов.
Сохраните структуру исходного документа, включая заголовки, абзацы, списки и т. д.
Извлекайте изображения, описания изображений, таблицы, заголовки таблиц и сноски.
Автоматически распознавайте и преобразуйте формулы в документе в формат LaTeX.
Автоматически распознавайте и конвертируйте таблицы в документе в формат LaTeX или HTML.
Автоматически обнаруживайте отсканированные и искаженные PDF-файлы и включайте функцию оптического распознавания символов.
OCR поддерживает обнаружение и распознавание 84 языков.
Поддерживает несколько форматов вывода, таких как мультимодальный и NLP Markdown, JSON, отсортированный по порядку чтения, а также расширенные промежуточные форматы.
Поддерживает различные результаты визуализации, включая визуализацию макета и визуализацию диапазона, для эффективного подтверждения качества вывода.
Поддерживает среды как процессора, так и графического процессора.
Совместимость с платформами Windows, Linux и Mac.
Если у вас возникнут какие-либо проблемы с установкой, сначала обратитесь к часто задаваемым вопросам.
Если результаты анализа не соответствуют ожиданиям, обратитесь к разделу «Известные проблемы».
Есть три разных способа познакомиться с MinerU:
Онлайн-демо (установка не требуется)
Быстрая демонстрация процессора (Windows, Linux, Mac)
Linux/Windows + CUDA
Чтобы обеспечить стабильность и надежность проекта, во время разработки мы оптимизируем и тестируем только для конкретных аппаратных и программных сред. Это гарантирует, что пользователи, развертывающие и запускающие проект в рекомендуемых конфигурациях системы, получат максимальную производительность с наименьшим количеством проблем совместимости.
Сосредотачивая ресурсы на основной среде, наша команда может более эффективно устранять потенциальные ошибки и разрабатывать новые функции.
В неосновных средах из-за разнообразия конфигураций оборудования и программного обеспечения, а также проблем совместимости сторонних зависимостей мы не можем гарантировать 100% доступность проекта. Поэтому пользователям, желающим использовать этот проект в нерекомендуемых средах, мы предлагаем сначала внимательно прочитать документацию и часто задаваемые вопросы. Для большинства проблем уже есть соответствующие решения в FAQ. Мы также поощряем обратную связь от сообщества, чтобы помочь нам постепенно расширять поддержку.
Операционная система | |||||
Убунту 22.04 ЛТС | Windows 10/11 | macOS 11+ | |||
Процессор | x86_64 (неподдерживаемый ARM Linux) | x86_64 (неподдерживаемая ARM Windows) | x86_64/arm64 | ||
Память | 16 ГБ или более, рекомендуется 32 ГБ+ | ||||
Версия Python | 3.10 (обязательно создайте виртуальную среду Python 3.10 с помощью conda) | ||||
Версия драйвера NVIDIA | последняя версия (собственный драйвер) | последний | Никто | ||
Среда CUDA | Автоматическая установка [12.1 (pytorch) + 11.8 (лопатка)] | 11.8 (ручная установка) + cuDNN v8.7.0 (ручная установка) | Никто | ||
Список поддерживаемого оборудования графического процессора | Минимальные требования: 8 ГБ+ видеопамяти | 3060ти/3070/4060 8G VRAM обеспечивает макетирование, ускорение распознавания формул и ускорение оптического распознавания символов. | Никто | ||
Рекомендуемая конфигурация: 10 ГБ+ видеопамяти | 3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090 10 ГБ видеопамяти или более могут одновременно обеспечивать макетирование, распознавание формул, ускорение оптического распознавания символов и ускорение распознавания таблиц. |
Стабильная версия (Стабильная версия проверена QA):
Тестовая версия (синхронизирована с обновлениями ветки разработки, тестирование новых функций):
conda create -n MinerU python=3.10 Конда активирует 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.},"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 и соответствует требованиям основной среды к графическому процессору, вы можете использовать ускорение графического процессора. Пожалуйста, выберите подходящее руководство в зависимости от вашей системы:
Ubuntu 22.04 LTS + графический процессор
Windows 10/11 + графический процессор
Быстрое развертывание с помощью Docker
Для Docker требуется графический процессор с объемом видеопамяти не менее 16 ГБ, а все функции ускорения включены по умолчанию.
Перед запуском этого Docker вы можете использовать следующую команду, чтобы проверить, поддерживает ли ваше устройство ускорение CUDA в Docker.
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. текст: подходит только для текстового PDF-файла и превосходить окр. авто: автоматически выбирает лучший метод для анализа PDF из OCR и TXT. без указания метода auto будет использоваться по умолчанию. -l, --lang ТЕКСТ Введите языки в PDF-файле (если известны), чтобы повысить точность распознавания. Необязательный. Вам следует введите «Сокращение» с URL-адресом языковой формы: ht tps://paddlepaddle.github.io/PaddleOCR/latest/en /ppocr/blog/multi_languages.html#5-support-languages- и-аббревиатуры -d, --debug BOOLEAN Включает подробную информацию об отладке во время выполнение команд CLI. -s, --start ЦЕЛОЕ ЧИСЛО Стартовая страница для анализа PDF, начало от 0. -e, --end ЦЕЛОЕ ЧИСЛО Конечная страница анализа PDF, начиная с 0. --help Показать это сообщение и выйти.## show versionmagic-pdf -v## пример командной строкиmagic-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.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, родительский_путь=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")
Подробную реализацию см.:
demo.py Простейший метод обработки
Magic_pdf_parse_main.py Более подробный процесс обработки
Производные проекты включают вторичные проекты разработки на основе MinerU разработчиками проектов и разработчиками сообщества.
такие как интерфейсы приложений на основе Gradio, RAG на основе llama, веб-демоверсии, аналогичные официальному веб-сайту, облегченные клиентские/серверные компоненты балансировки нагрузки с несколькими графическими процессорами и т. д. Эти проекты могут предлагать больше функций и лучший пользовательский опыт.
Конкретные методы развертывания см. в README производного проекта.
TODO
? Порядок чтения на основе модели
? Распознавание index
и list
в основном тексте
? Распознавание таблиц
☐ Распознавание блоков кода в основном тексте
☐ Распознавание химической формулы
☐ Распознавание геометрических форм
Порядок чтения определяется моделью, основанной на пространственном распределении читаемого контента, и может быть нарушен в некоторых областях при чрезвычайно сложных макетах.
Вертикальный текст не поддерживается.
Оглавления и списки распознаются с помощью правил, а некоторые необычные форматы списков могут быть не распознаны.
Поддерживается только один уровень заголовков; иерархические заголовки в настоящее время не поддерживаются.
Блоки кода пока не поддерживаются в модели макета.
Комиксы, художественные альбомы, учебники для начальной школы и упражнения не поддаются хорошему анализу.
Распознавание таблиц может привести к ошибкам распознавания строк/столбцов в сложных таблицах.
Распознавание OCR может привести к появлению неточных символов в PDF-файлах на менее известных языках (например, диакритических знаков в латинском алфавите, легко спутанных символов в арабском алфавите).
Некоторые формулы могут отображаться неправильно в Markdown.
Часто задаваемые вопросы на китайском
Часто задаваемые вопросы на английском языке
ЛИЦЕНЗИЯ.md
В настоящее время этот проект использует PyMuPDF для достижения расширенной функциональности. Однако, поскольку он соответствует лицензии AGPL, он может налагать ограничения на определенные сценарии использования. В будущих итерациях мы планируем изучить и заменить ее более гибкой библиотекой обработки PDF-файлов, чтобы повысить удобство и гибкость.
PDF-Extract-Kit
Структэктабле
ВеслоOCR
ПиМуPDF
средство чтения макетов
быстрое обнаружение
pdfminer.six
@misc{wang2024mineruopensourcesolutionprecision, title={MinerU: решение с открытым исходным кодом для точного извлечения содержимого документов}, автор={Бин Ван и Чао Сюй и Сяомэн Чжао и Линке Оуян и Фань Ву и Чжиюань Чжао и Руй Сюй и Кайвэнь Лю и Юань Цюй и Фукай Шан и Бо Чжан и Лицюнь Вэй и Чжихао Суй и Вэй Ли и Ботян Ши и Юй Цяо и Дахуа Линь и Цунхуэй Хэ}, год={2024}, eprint={2409.18839}, archivePrefix={arXiv}, PrimaryClass={cs.CV}, url={https://arxiv.org/abs/2409.18839}, }@article{he2024opendatalab, title={Opendatalab: Расширение возможностей общего искусственного интеллекта с помощью открытых наборов данных}, автор={Хе, Цунхуэй и Ли, Вэй и Цзинь, Чжэньцзян и Сюй, Чао и Ван, Бинь и Линь, Дахуа}, журнал= {препринт arXiv arXiv:2407.13773}, год={2024}}
Magic-Doc Быстродействующий инструмент для извлечения файлов ppt/pptx/doc/docx/pdf
Magic-HTML Инструмент для извлечения смешанных веб-страниц
LabelU (облегченный мультимодальный инструмент аннотации данных)
LabelLLM (платформа диалоговых аннотаций LLM с открытым исходным кодом)
PDF-Extract-Kit (Комплексный набор инструментов для высококачественного извлечения PDF-контента)