VOP: инструмент OCR для извлечения сложных диаграмм и математических формул

Общее введение

Versatile OCR Program - это инструмент оптического распознавания символов (OCR) с открытым исходным кодом, предназначенный для обработки сложных академических и образовательных документов. Он может извлекать текст, таблицы, математические формулы, графики и схемы из PDF, изображений и других документов, а также генерировать структурированные данные, пригодные для обучения машинному обучению. Поддерживает несколько языков, включая английский, японский и корейский, а выходной формат - JSON или Markdown, что удобно для разработчиков.

VOP:提取复杂图表与数学公式的OCR工具VOP:提取复杂图表与数学公式的OCR工具

 

Список функций

  • Извлечение многоязычного текста, поддержка английского, японского, корейского и т.д., может быть расширена до других языков.
  • Распознавать математические формулы и генерировать код LaTeX и описания на естественном языке.
  • Разбирает таблицы, сохраняет структуру строк и столбцов и выводит структурированные данные.
  • Анализируйте диаграммы и схемы для создания семантических аннотаций и описаний (например, "На этой диаграмме показаны четыре стадии деления клетки").
  • Работа со сложными макетами PDF, точное определение абзацев и визуальных элементов, содержащих формулы.
  • Выводит в формате JSON или Markdown семантический контекст для оптимизации обучения ИИ.
  • Используйте DocLayout-YOLO, Google Vision API, MathPix и другие технологии для повышения точности распознавания.
  • Обеспечивает высокую точность 90-95% для реальных академических наборов данных (например, EJU Biology, Eastern University Maths).
  • Поддержка пакетной обработки для работы с несколькими файлами.

 

Использование помощи

Процесс установки

Чтобы использовать Versatile OCR Program, необходимо клонировать репозиторий и настроить среду. Ниже приведены подробные шаги:

  1. склад клонов
    Запускается в терминале:

    git clone https://github.com/ses4255/Versatile-OCR-Program.git
    cd Versatile-OCR-Program
    
  2. Создание виртуальной среды
    Рекомендуется использовать Python 3.8 или выше. Создайте и активируйте виртуальную среду:

    python -m venv venv
    source venv/bin/activate  # Linux/Mac
    venv\Scripts\activate     # Windows
    
  3. Установка зависимостей
    Установите библиотеки, необходимые для проекта:

    pip install -r requirements.txt
    

    Зависимости включаютopencv-python, иgoogle-cloud-vision, иmathpix, иpillowи т. д. Убедитесь, что сетевое соединение стабильно.

  4. Настройка ключа API
    Проект опирается на внешние API (например, Google Vision, MathPix) для расширенной обработки OCR:

    • Google Vision API: вconfig/каталог, чтобы создатьgoogle_credentials.jsonВведите ключ учетной записи сервиса. Чтобы получить ключ, посетитеКонсоль облачных вычислений Google.
    • API MathPix: вconfig/каталог, чтобы создатьmathpix_config.jsonЗаполнитеapp_idответить пениемapp_key. Зарегистрируйте учетную запись MathPix, чтобы получить ключ.
    • Шаблоны файлов конфигурации доступны в проектеREADME.md.
  5. Проверка установки
    Запустите тестовый сценарий, чтобы убедиться в правильности среды:

    python test_setup.py
    

    Если ошибок нет, установка завершена.

рабочий процесс

Программа Versatile OCR работает в два этапа: первичное извлечение и семантическая обработка.

1. первоначальное извлечение OCR

быть в движенииocr_stage1.pyИзвлеките необработанные элементы (текст, таблицы, диаграммы и т. д.):

python ocr_stage1.py --input sample.pdf --output temp/
  • --inputУкажите входной файл (PDF или изображение, например PNG, JPEG).
  • --outputУказывает каталог промежуточных результатов, содержащий координаты, обрезанные изображения и т.д.
  • Поддержка пакетной обработки: используйте--input_dirУкажите папку.

2. Семантическая обработка и конечный результат

быть в движенииocr_stage2.pyПреобразование промежуточных данных в структурированный вывод:

python ocr_stage2.py --input temp/ --output final/ --format json
  • --inputУказывает выходной каталог для первого этапа.
  • --formatВыберите формат вывода (jsonвозможноmarkdown).
  • Вывод содержит текст, описания формул, табличные данные и семантическую маркировку графиков.

Основные функции

1. многоязычное извлечение текста

Извлечение текста из PDF или изображений с поддержкой нескольких языков:

python ocr_stage1.py --input document.pdf --lang eng+jpn+kor --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --langУкажите язык в форматеeng(на английском языке),jpn(японский),kor(Корейский), Мультиязычный+Соединения.
  • Выходной файл содержит текстовый контент и семантический контекст, сохраненный в формате Markdown или JSON.

2. идентификация математических формул

Определите формулы и создайте коды и описания в формате LaTeX. Например, формулаx^2 + y = 5На выходе получается "квадратное уравнение с переменными x и y". Операции:

python ocr_stage1.py --input math.pdf --mode math --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode mathРаспознавание формулы активации.
  • Выходные данные содержат код LaTeX и описания на естественном языке.

3. Анализ таблиц

Извлеките таблицу, сохранив структуру строк и столбцов:

python ocr_stage1.py --input table.pdf --mode table --output temp/
python ocr_stage2.py --input temp/ --output final/ --format json
  • --mode tableСпециализируется на обработке форм.
  • На выходе получается JSON с данными в строках и столбцах и кратким описанием.

4. графический и схематический анализ

Анализируйте графики или диаграммы для создания семантических аннотаций. Например, линейный график может вывести "Линейный график, показывающий изменение температуры с 2010 по 2020 год". Действия:

python ocr_stage1.py --input diagram.pdf --mode figure --output temp/
python ocr_stage2.py --input temp/ --output final/ --format markdown
  • --mode figureВключите анализ графиков.
  • Выходные данные содержат описание изображения, извлечение точек данных и контекст.

Советы и рекомендации

  • Повышенная точность: Ввод файлов высокого разрешения (рекомендуется 300 DPI). Добавить во время выполнения--dpi 300Оптимизация разбора изображений.
  • пакетный файл: Использование--input_dir data/Обрабатывает все файлы в папке.
  • пользовательский язык:: Редакцияconfig/languages.jsonЧтобы добавить язык, необходимо установить соответствующую модель OCR (например, языковой пакет Tesseract).
  • Журнал отладки: Добавить--verboseПросмотр подробной информации о работе.
  • сжатый выход: Использование--compressУменьшите размер файла JSON.

предостережение

  • Убедитесь, что входные документы четкие; низкое качество документов может снизить точность распознавания.
  • Для работы с внешним API требуется стабильная сеть, и рекомендуется настроить запасной ключ.
  • В выходной директории должно быть достаточно места на диске, большие PDF-файлы могут создавать большие файлы.
  • Согласно лицензии GNU AGPL-3.0, производные проекты должны делать исходный код общедоступным.
  • Проект планирует выпустить интеграцию AI pipeline в течение месяца, так что следите за новостями.

Выполнив эти шаги, пользователи смогут быстро приступить к работе, обрабатывать сложные документы и генерировать обучающие данные ИИ.

 

сценарий применения

  1. Извлечение данных из академических исследований
    Исследователи могут извлекать формулы, таблицы и графики из экзаменационных работ или сочинений, чтобы создавать наборы данных с семантическими аннотациями. Например, экзаменационные работы по математике Восточного университета были преобразованы в JSON для обучения геометрической модели.
  2. Оцифровка образовательных ресурсов
    Школы могут переводить бумажные учебники или экзаменационные работы в электронный формат, извлекать многоязычный текст и графику, а также создавать архивы с возможностью поиска. Подходит для многоязычной обработки международных программ.
  3. Создание массивов данных машинного обучения
    Разработчики могут извлекать структурированные данные из академических документов для создания высококачественных обучающих наборов. Например, извлечение схем деления клеток из экзаменационных работ по биологии, маркировка описаний этапов и обучение моделей распознавания образов.
  4. Обработка архивных документов
    Библиотеки могут переводить исторические научные документы в цифровой формат, сохраняя формулы и структуры таблиц для повышения эффективности поиска. Поддержка обработки сложных макетов в формате PDF.
  5. Инструменты для анализа экспертизы
    Учебные заведения могут анализировать содержание экзаменационных заданий, извлекать типы вопросов и диаграммы, составлять статистические отчеты и оптимизировать учебный процесс.

 

QA

  1. Какие форматы входных данных поддерживаются?
    Поддерживаются PDF и изображения (PNG, JPEG). Для обеспечения точности рекомендуется использовать PDF-файлы высокого разрешения.
  2. Как повысить точность распознавания форм?
    Используйте четкую документацию, чтобы--dpi 300. Для японских таблиц Google Vision API превосходит MathPix и может быть использован вconfig/Средняя регулировка.
  3. Должен ли я использовать платный API?
    API Google Vision и MathPix требуют платной учетной записи, но модули с открытым исходным кодом, такие как DocLayout-YOLO, бесплатны. Для достижения наилучших результатов рекомендуется настроить API.
  4. Как добавить новый язык?
    компиляторconfig/languages.jsonдобавьте код языка и модель OCR (например, языковой пакет Tesseract). Перезапустите программу, чтобы она вступила в силу.
  5. Что делать, если выходной файл слишком велик?
    расход или издержки--compressСжать JSON или выбрать формат Markdown. Также можно ограничить модуль вывода, например, извлечь только текст (--mode text).
  6. Как я могу принять участие в улучшении проекта?
    Pull Requests можно подавать через GitHub или связавшись с автором по адресу ses425500000@gmail.com. Не стесняйтесь вносить свой код или оставлять отзывы о проблемах.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...