Данный проект представляет собой веб-приложение, которое позволяет пользователям загружать изображения элементов гардероба и получать предсказания с использованием заранее обученной модели машинного обучения.
Модель обучена предсказывать следующие элементы гардероба:
0: 'dress',
1: 'hat',
2: 'longsleeve',
3: 'outwear',
4: 'pants',
5: 'shirt',
6: 'shoes',
7: 'shorts',
8: 'skirt',
9: 't-shirt'
clothing-classification-app/
│
│── clothing-dataset-small/ # Скаченный датасет с картинками (см. clothing-traing.ipynb)
│── Deployment/ # Преобразование модели, подготовка Docker-образа, тестирование и развертывание
├── app.py # Главное приложение
├── model_service.py # Микросервис модели
├── log_model.py # Загрузка модели в MLFLOW
├── register_model_mlflow.py # Регистрация модели в MLFLOW
├── requirements.txt # Зависимости проекта
├── .env # Переменные окружения от СУБД (not committed)
├── templates/
│ ├── index.html # Темплейт главной страницы
│ └── result.html # Темплейт предсказания
├── static/
│ ├── uploads/ # Ваши загруженные изображения
│── clothing-train.ipynb # Пошаговая обработка данных, обчение и оценка моделей
│── clothing-test.ipynb # Пошаговое тестирование моделей на тестовом множестве
└── README.md # Описание проекта
- Основное приложение (app.py): Обрабатывает взаимодействие с пользователем, загрузку файлов и общается с микросервисом модели для получения предсказаний.
- Микросервис модели (model_service.py): Инкапсулирует модель машинного обучения и обрабатывает запросы на предсказание.
- Процесс обработки данных, обучения и оценки моделей в файлах: clothing-test.ipynb , clothing-train.ipynb
- Deployment: Процесс преобразования модели, подготовки Docker-образа, тестирования и развертывания
- DB_init.py: Инициализация БД с нужной структурой
- log_model.py: Загрузка модели в MLFLOW
- register_model_mlflow.py: Регистрация модели в MLFLOW
- Клонирование репозитория
git clone https://github.com/EgorSinitsyn/Clothing_classification
cd Clothing_classification/- Настройка виртуального окружения
python3 -m venv venv
source venv/bin/activate # Для Windows используйте `venv\Scripts\activate`- Установка зависимостей
pip install -r requirements.txt- Установка СУБД MySQL (см. документацию)
- Создайте файл .env в корне проекта, поместите туда креды от СУБД MySQL
DB_HOST=localhost
DB_PORT=3306
DB_USER=<ваш_пользователь>
DB_PASSWORD=<ваш_пароль>
DB_NAME=clothing_classification
- Инициализируйте БД с нужной структурой
python DB_init.pyP.S Отдэбажьте ошибки в случае их возникновения
- Запустите MLFLOw на 5005 порту
mlflow server \
--backend-store-uri sqlite:///mlflow.db \
--default-artifact-root ./mlruns \
--host 0.0.0.0 \
--port 5005Откройте http://127.0.0.1:5005 для проверки службы MLFLOW
- Загрузите модель в MLFLOW
python log_model.py- Зарегистрируйте модель в MLFLOW
python register_model_mlflow.py- Запустите приложение и микросервис модели (порты 5000 и 5001)
python model_serice.py
python app.py- Откройте http://127.0.0.1:5001 и пользуйтесь приложением