Skip to content
/ sneakers-ml Public archive

Sneakers recommendation system and object-detection project

License

Notifications You must be signed in to change notification settings

miem-refugees/sneakers-ml

Repository files navigation

Платформа для поиска похожих кроссовок

pre-commit.ci status API docker BOT docker

Цель данного проекта - построить систему поиска похожих кроссовок по изображениям (задача-CV). В проекте планируется реализовать парсинг данных, а именно картинок и дополнительных метаданных. Далее следует этап чистки, обработки и объединения данных. ML часть проекта будет заключатся в обучении классификаторов изображений кроссовок по брендам. В DL части будет улучшено качество классификации с помощью продвинутных моделей, а так же решены другие задачи, такие как similarity search и text2image. В результате полученные модели будут обернуты в Telegram Bot.

Документация проекта

Пример работы телеграм бота

ezgif-1-e48f2978e8

Roadmap

  • Поиск и сбор данных
    • Парсинг sneakerbaas
    • Парсинг superkicks
    • Парсинг highsnobiety
    • Парсинг kickscrew
    • Парсинг footshop
    • Выгрузка данных на s3 с помощью DVC
    • Очистка данных
    • Объединение данных в один датасет, готовый для тренировки моделей
    • Документация и описание данных
  • Настройка проекта
    • Настроить poetry
    • Добавление линтеров и форматеров
    • Добавление pre-commit
    • CI/CD
    • Docker
  • Получение эмбеддингов
    • SIFT
    • HOG
    • ResNet152
    • Сохранение в npy формате
  • Классификация по брендам
    • Модели классического машинного обучения на полученных эмбеддингах
      • LogReg
      • DecisionTree
      • RandomForest
      • SVM
      • SGD
      • CatBoost
      • Сохранение в onnx формате
    • Модели глубинного обучения
      • ResNet
      • Vision transformer
  • Обёртка моделей
    • FastAPI
    • Telegram bot
  • Image similarity search (ResNet152)
  • Image similarity search (CLIP)
  • text2image (CLIP)
  • Saving embeddings in Qdrant vector db

Начало работы

Установите необходимое окружение:

Важно: Перед началом работы получите нужные секреты скопировав .env.example в .env и заполнив его.

$ cp .env.example .env

Docker Compose

Одна команда поднимает весь сервис, включая API и бота:

docker-compose up

Сервис будет доступен по адресу http://localhost:8000. Бот будет запущен в телеграме с указанным токеном.

Подробные альтернативные варианты запуска можно найти в инструкции по запуску.

Список членов команды