Цель данного проекта - построить систему поиска похожих кроссовок по изображениям (задача-CV). В проекте планируется реализовать парсинг данных, а именно картинок и дополнительных метаданных. Далее следует этап чистки, обработки и объединения данных. ML часть проекта будет заключатся в обучении классификаторов изображений кроссовок по брендам. В DL части будет улучшено качество классификации с помощью продвинутных моделей, а так же решены другие задачи, такие как similarity search и text2image. В результате полученные модели будут обернуты в Telegram Bot.
- Презентации чекпоинтов
- Структура проекта
- Описание данных
- Объединение данных и eda
- Описание моделей и эмбеддингов
- Инструкции по запуску
- Поиск и сбор данных
- Парсинг 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
Установите необходимое окружение:
- Poetry: https://python-poetry.org/docs/#installation
- Pre-commit: https://pre-commit.com/#install
- DVC: https://dvc.org/doc/install
- AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
- Docker [Compose]: https://docs.docker.com/get-docker/
Важно: Перед началом работы получите нужные секреты скопировав
.env.example
в.env
и заполнив его.$ cp .env.example .env
Одна команда поднимает весь сервис, включая API и бота:
docker-compose up
Сервис будет доступен по адресу http://localhost:8000
.
Бот будет запущен в телеграме с указанным токеном.
Подробные альтернативные варианты запуска можно найти в инструкции по запуску.
- Литвинов Вячеслав @searayeah
- Моисеев Даниил @ksusonic