Skip to content

neuezeldaa/BPMN-ToText

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BPMN-ToText: Converting a flowchart (BPMN) to text

Python FastAPI Docker Ollama License

Автоматизированная система для конвертации изображений блок-схем (преимущественно BPMN-диаграмм) в текстовое описание алгоритма.

Проект победил на МЕГАШКОЛЕ ИТМО+Nexign на треке ML System Design


Проблема

В крупных компаниях накапливаются тысячи описаний бизнес-процессов в формате блок-схем. Их ручная интерпретация, поиск и перевод в текстовую документацию занимают сотни человеко-часов аналитиков.


Задачи проекта

Создать легковесное, локальное решение, способное:

  1. Детектировать элементы BPMN (дорожки/lanes, задачи/tasks) на изображениях.
  2. Работать на ограниченных ресурсах (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:
    1. Изображение -> RF-DETR (получение координат блоков).
    2. Кроп блоков -> OCR -> Текст.

Ключевые метрики

  • Производительность: Система запускается и стабильно работает на CPU с 8 ГБ RAM.
  • Эффективность: Подтверждена гипотеза, что ансамбль легковесных моделей (Detection + Small LLM) работает быстрее и стабильнее, чем одна большая VLM на специфичных задачах.
  • Масштабируемость: Реализована контейнеризация для быстрого развертывания в контуре.

Запуск проекта

Предварительные требования

  • Docker & Docker Compose
  • Ollama (с загруженной моделью qwen2.5vl:3b-q4_K_M)

Установка и запуск

  1. Клонируйте репозиторий:
    git clone https://github.com/neuezeldaa/BPMN-ToText.git
    cd BPMN-ToText
  2. Запустите через docker-compose:
    docker-compose up --build
  3. Доступ к сервисам:

Проект разработан в рамках МЕГАШКОЛЫ ИТМО. Спасибо за внимание.

About

A case study from MEGASCHOOL ITMO + NEXIGN on ML System Design. The goal is to build a system that can describe flowcharts (specifically BPMN) in text format, maximizing time, memory, and quality.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors