/samara_hack

Preparation for samara hackathon

Primary LanguagePython

Tigers Decetion Hackathon Solution

Данный репозиторий является решением "Кейс №1: Защита редких животных" от команды "ML Princess [Napoleon IT]"

Содержание

User guide

Структура репозитория

  • labels.csv - файл с ответами модели на папку TigVsLeo
  • labels_princess.csv - файл с ответами модели на папку PrincessVsNotPrincess
  • app - папка содержащая реализацию бэка, всю логику работы моделей, инициализацию моделей
  • telebot - папка содержащая реализацию бота, логику обработки ответов модели и их вывод пользователю
  • backend.py - вспомогательный файл для запуска сервиса
  • docker-compose.yml - конфиг докера для сборки и поднятия сервиса и бота с нужными портами и тд
  • Dockerfile - докер файл сервиса, отвечающий за окружение и установку нужных пакетов, библиотек
  • full_base_file.csv - csv таблица с усредненными эмбеддингами классов - нужна для подсчета близжайших классов для изображения
  • install_models.sh - скрипт для выгрузки моделей с облака
  • INFERENCE.md - документация по прогону ваших данных через модель
  • inference_model.py - скрипт для инференса моделей(прогон изображений через модели и составление csv таблицы с результатами работы)
  • test_requests.py - файл для инференса моделей через сервис(прогон изображений через сервис и составление csv таблицы с результатами работы). Для прогона ваших данных нужно использовать именно его
  • requirements.txt - файл со всеми необходимыми библиотеками для работы сервиса

Docker run

Для того чтобы поднять сервис на локальной/удаленной машине нужно:

  • убедиться, что указанные порты в docker-compose.yml доступны на вашей машине
  • запустить скрипт сборки docker контейнеров:
docker-compose build
  • запустить скрипт поднятия сервисов:
docker-compose up
  • Поздравляем, сервисы подняты

Объяснение решения

Для решения задачи мы использовали визуальные трансформеры. В сервисе используются 2 обученные модели:

  1. Визуальный трансформер для детекции животных
  2. Визуальный трансформер (metric learning) для классификации животных, найденных на предыдущем шаге