Автоматизированная система для конвертации изображений блок-схем (преимущественно BPMN-диаграмм) в текстовое описание алгоритма.
Проект победил на МЕГАШКОЛЕ ИТМО+Nexign на треке ML System Design
В крупных компаниях накапливаются тысячи описаний бизнес-процессов в формате блок-схем. Их ручная интерпретация, поиск и перевод в текстовую документацию занимают сотни человеко-часов аналитиков.
Создать легковесное, локальное решение, способное:
- Детектировать элементы BPMN (дорожки/lanes, задачи/tasks) на изображениях.
- Работать на ограниченных ресурсах (GPU / <8GB RAM) без обращения к внешним облачным API.
Важно сделать акцент на скорости работы системы на CPU, но нельзя полностью забывать про качества описания текста алгоритма
Решение построено на микросервисной архитектуре с использованием ансамбля крупых моделей. Мы отказались от тяжелых VLM в пользу каскада специализированных моделей для скорости и точности.
- ML Core:
RF-DETR Nano: Детекция объектов (Tasks, Lanes). Выбрана за скорость и точность на мелких объектах.qwen2.5vl:3b-q4_K_M (на Ollama): LLM для постобработки OCR-вывода. Выбрана специально квантизированная модель в пользу оптимизации памяти.
- Backend:
FastAPI+Uvicorn(асинхронная обработка запросов). - Frontend:
Streamlit(Web UI для демонстрации и загрузки файлов). - Infrastructure:
Docker&Docker Compose(полная изоляция окружения).
- Аугментация Датасета: Собран и размечен собственный датасет BPMN-схем, что повысило уверенность модели в детекции дорожек (lanes) и действий (tasks) на +0.3.
- Hybrid Pipeline:
- Изображение -> RF-DETR (получение координат блоков).
- Кроп блоков -> OCR -> Текст.
- ✅ Производительность: Система запускается и стабильно работает на CPU с 8 ГБ RAM.
- ✅ Эффективность: Подтверждена гипотеза, что ансамбль легковесных моделей (Detection + Small LLM) работает быстрее и стабильнее, чем одна большая VLM на специфичных задачах.
- ✅ Масштабируемость: Реализована контейнеризация для быстрого развертывания в контуре.
- Docker & Docker Compose
- Ollama (с загруженной моделью
qwen2.5vl:3b-q4_K_M)
- Клонируйте репозиторий:
git clone https://github.com/neuezeldaa/BPMN-ToText.git cd BPMN-ToText - Запустите через docker-compose:
docker-compose up --build
- Доступ к сервисам:
- Frontend (Streamlit): http://localhost:8501
- API Documentation (Swagger): http://localhost:8000/docs
Проект разработан в рамках МЕГАШКОЛЫ ИТМО. Спасибо за внимание.