ML/CV система контроля качества блюд

Описание задачи

Требуется разработать MVP (Minimum Viable Product) автоматической системы контроля качества подаваемых блюд в ресторане. Система должна анализировать фото блюда и выдавать заключение без участия человека.

Цель MVP

На основе фотографии блюда система должна выполнить три проверки:

  • Определить тип блюда (что за блюдо перед камерой)
  • Проверить правильность сборки и полноту состава (наличие всех компонентов)
  • Оценить визуальное соответствие эталонному образцу (эстетика)

Масштабирование

MVP разрабатывается для 3 тестовых блюд, архитектура должна позволять легко расширять меню в будущем.

Подход к идентификации блюда

Система не использует прямую классификацию блюда как целого класса. Вместо этого применяется компонентный (ингредиентный) подход:

  1. Модель CV детектирует на изображении базовые элементы: ингредиенты, компоненты, тип тарелки и т.д.
  2. Специальный rule engine сопоставляет найденые компоненты со списком из шаблонов блюд
  3. После привязки к блюду производит проверку на соответствие эталону

Технологический стек (обсуждаемый)

  • Трекинг и детекция компонентов: нейросеть YOLOv8 или аналог
  • Фреймворк для обучения: PyTorch
  • Проверка сходства с эталоном и эстетики: вычисление Embeddings (с помощью ResNet/MobileNet/CLIP - вся опенсорс-библиотеки)
  • API для передачи изображений и получения ответа в реальном времени: FastAPI + Uvicorn
  • Упаковка и деплой: Docker контейнеризация
  • Архитектура: асинхронная обработка изображений, без блокируещего ожидания
  • Вывод и логи: результат проверки по каждому блюду выводится в Telegram-бот для менеджера или повара