Система для автоматического распознавания таблиц в документах и изображениях. Объединяет детекцию таблиц (YOLOv8), OCR (Tesseract/EasyOCR) и постобработку текста (ruT5-ASR) в единый пайплайн, пригодный для интеграции и мониторинга.
Архитектура состоит из нескольких независимых сервисов:
- DetectionService — обнаружение таблиц на изображениях (YOLOv8)
- PreprocessService — извлечение страниц из PDF и подготовка изображений
- RecognitionService — распознавание структуры таблиц и извлечение текста
- Monitoring — Prometheus + Grafana для отслеживания состояния компонентов
- Принимает изображения и возвращает координаты таблиц (bbox)
- Поддерживает модели в формате .pt
- REST API: POST /detect
Обучение модели производилось на датасете TableBank (в режиме Detection).
- Используется ultralyticsдля обучения и инференса
- Поддерживается дообучение и экспорт моделей в другие форматы
Компонент, отвечающий за распознавание структуры таблицы и содержимого ячеек.
- OCR через Tesseract или EasyOCR
- Геометрический анализ таблицы на основе OpenCV
- Постобработка текста с помощью модели ruT5-ASR-large
- Вывод в формате List[List[str]](можно сериализовать в CSV/JSON/HTML)
Для удобства развертывания и масштабирования система была полностью контейнеризирована с использованием Docker. Каждый компонент работает в отдельном изолированном контейнере.
Для мониторинга компонентов системы используется стек Prometheus + Grafana. Каждый микросервис (например, DetectionService и RecognitionService) содержит встроенный экспорт метрик через Prometheus FastAPI Instrumentator.





