Архитектура
Архитектура
Архитектура
Схема компонентов
Клиент -> schemion-api -> PostgreSQL
Клиент -> schemion-api -> MinIO
schemion-api -> Bobber -> schemion-inference -> PostgreSQL
schemion-api -> Bobber -> schemion-training -> PostgreSQL
schemion-inference -> MinIO
schemion-training -> MinIOПоток инференса
- Клиент вызывает
POST /tasks/create/inferenceи передаетmodel_idи файл. - API загружает файл в MinIO и создает задачу в БД.
- API публикует сообщение в очередь inference_queue.
schemion-inferenceполучает задачу и загружает веса модели и изображение.- Изображение режется на тайлы
640×640с перекрытием100 px. - Детектор предсказывает объекты по каждому тайлу.
- Координаты предсказаний сдвигаются и объединяются.
- Результат сохраняется в MinIO как
JSON, задача помечается succeeded или failed.
Поток обучения
- Клиент вызывает
POST /tasks/create/trainingи передаетmodel_idиdataset_id. - API создает задачу и публикует сообщение в очередь
training_queue. schemion-trainingзагружает базовые веса и архив датасета из MinIO.- Датасет распаковывается, YAML приводится к локальному пути.
- Запускается обучение через
Ultralytics YOLO. - Метрики сохраняются в MinIO как
metrics_{task_id}.json. - Экспортированный
.ptфайл загружается в MinIO. - Создается новая модель
*_fine_tuned, задача обновляется.
Поддерживаемые архитектуры
yoloдля обучения и инференса.faster_rcnnдля инференса. (дообучение в процессе)- Профили Faster R-CNN:
resnet50_fpn,resnet50_fpn_v2,mobilenet_v3_large_fpn,mobilenet_v3_large_320_fpn. - Алиасы профилей:
resnet50,resnet50v2,mobilenet,mobilenet_320,fpn,fpnv2.
Бакеты MinIO
schemas-imagesдля входных изображений.datasetsдля архивов датасетов.modelsдля весов моделей.metricsдля метрик обучения.inference-resultsдля JSON результатов инференса.
Кэш и лимиты
- API использует in-memory кэш для сущностей и списков.
- TTL по умолчанию: датасеты 1 час, модели 2 часа, задачи 30 минут, пользователь 30 минут.
- Глобальный лимит запросов: 100 в минуту.
Безопасность
- JWT авторизация с ролями и правами.
- Админ‑панель скрыта middleware и возвращает
404без валидного токена.