Sobaken-ID
Цель проекта попробовать сделать Computer Vision сервис для поиска пропавших животных на просторах интернета.
Проблема
- На простом человеческом: "поиск животных по отличительным особенностям: размер, цвет, паттерн на шерсти, отрезано ухо, сломан хвост, ошейник и так далее. С поправкой на погоду/освещение/состояние животного/грязь на шерсти/лишние объекты на фотке."
- С технической точки зрения, так как это поиск то возможно подойдёт word2vec подход (или точнее img2vec). То есть, например, строим базу векторов доступных животных в БД (id животного -> вектор из последнего слоя модели + доп фичи) и для каждого нового животного генерируем тот же самый вектор от той же модели и ищем по базе.
Особенности
1. Ложно отрицательные результаты критичны. Плохо если из выборки пропадает целевое животное. С другой стороны если мы выдаём больше ложно положительных то человек может сам доискать животное (в разумных количествах и отсортированных по уменьшению схожести).
2. На первых этапах важнее сфокусироваться на собаках - их намного сложнее пристраивать, лечить, передерживать и так далее.
Первые результаты
На скринах в первой колонке фото-запрос, остальные 5 колонок это то что модель подобрала как наиболее подходящее из примерно 500 фоток животных которых модель не видела на тренировке (1000 фото - train, 500 - test). Фотографии автоматически сегментированны (вырезан весь фон).
1.
-
-
И это учитывая очень маленький датасет в 1000 фотографий! Сейчас мы готовим датасет из 60 тысяч фотографий.
Как это работает
- Как это устроенно внутри - пример карты температур показывает "куда смотрит модель" при генерации векторов схожести:
-
Как запустить локально
- установить Poetry
poetry shell
из рута проекта
- Скачать данные, настроить пути до них в нужном файле и запустить
Контакты
Мой Телеграм @kella18