Основная задача предобработки состоит в распознавании структуры документа, извлечении текста, таблиц, изображений, формул и их преобразования в понятный и легко редактируемый формат.
Процесс обработки файла состоит из нескольких ключевых этапов:
- Распознавание структуры документа (Layout Detection)
- Разрешение коллизий объектов (Collision Solver)
- Извлечение текста (Text Extraction)
- Аннотирование изображений, таблиц и графиков (Image/Table/Chart Annotation)
- Преобразование формул в LaTeX
- Тегирование и запись в markdown файл
Для распознавания структуры PDF-документа использовалась модель YOLO-10b, обученная на детекцию текстовых блоков, заголовков, таблиц и других объектов. Данная модель классифицирует различные элементы страницы и выделяет области с текстом, изображениями, таблицами, а также формулами.
- YOLO-10b: Это мощная сверточная нейронная сеть, оптимизированная для задач разметки и классификации объектов на изображениях. В данном случае она используется для распознавания макета PDF-документа и разбиения его на составные элементы.
SnIP.pdf
- Блоки документа с метками (заголовки, текст, таблицы, изображения)
После первичной разметки могут возникать ситуации, когда объекты перекрываются или модели ошибочно выделяют несколько элементов в одном месте. Специальный "Collision Solver" решает эти коллизии, корректируя разметку и распределяя пересекающиеся элементы (например, текст и таблицы) по отдельным областям.
- Результаты распознавания структуры документа (блоки текста, таблиц, заголовков и т.д.)
- Исправленные области без коллизий
Для извлечения текста из PDF-документов используется библиотека Tesseract, которая выполняет OCR-распознавание. Извлеченный текст сохраняется и отправляется на дальнейшую обработку.
- Tesseract: Это open-source система OCR (Optical Character Recognition), которая поддерживает множество языков и хорошо справляется с задачами распознавания текста.
- Исправленные области с текстом
- Извлеченный текст
Аннотирование изображений, таблиц и графиков выполняется с помощью ChatGPT-4o. Эта модель обучена на распознавание и аннотирование сложных объектов, таких как таблицы, графики, диаграммы и схемы, и автоматически добавляет их описание в MD-файл.
- Объекты (изображения, таблицы, графики)
- Аннотации с ссылками в markdown формате
Для преобразования математических формул в LaTeX используется модель LaTeX OCR. Модель автоматически распознает формулы на изображениях и преобразует их в корректный LaTeX-код, который можно вставить в MD-файл.
- Области с формулами
- Формулы в формате LaTeX
После обработки всех компонентов документа, текст, изображения, таблицы и формулы собираются вместе и автоматически тегируются в формате markdown. Этот этап включает:
- Структурирование заголовков (с использованием
#
,##
и т.д.) - Форматирование текста
- Вставку формул в LaTeX формате
- Вставку таблиц и изображений
- Формирование окончательного markdown файла.
- Извлеченные и аннотированные элементы
- Итоговый markdown файл:
SnIP.md
- YOLO-10b - модель для распознавания структуры документа.
- Tesseract - OCR для распознавания текста.
- ChatGPT-4o - для аннотаций изображений и таблиц.
- LaTeX OCR - для преобразования формул в LaTeX.
Этот проект позволяет автоматизировать обработку строительных нормативных документов, облегчая их дальнейший анализ и поиск с помощью RAG.