Skip to content

Latest commit

 

History

History
40 lines (22 loc) · 5.49 KB

README.md

File metadata and controls

40 lines (22 loc) · 5.49 KB

avatar Face id + detection

Название файла/директории Содержание файла
main.ipynb Ноутбук формата .ipynb в котором происходит обучение двух нейронных сетей: face detection, face recognition
config.yaml Файл .yaml, содержащий все конфигурационные данные об обучении нейронных сетей и настраивания окружения обучения
inference.ipynb Файл .ipynb, содержащий интерфейс для работы с готовыми моделями, добавлением людей в базу данных и считывания потока фотографий с веб камеры
src/dataloaders.py Файл .py, содержащий классы датасетов, логику обработки этих датасетов, функции трансформации изображений( в том числе трансформации из библиотеки albumentations, которые позволяют трансформировать помимо изображения его bounding box). Также из него импортируются готовые для подачи в обучение нейронных сетей dataloaders
src/models.py Файл .py, содержащий все архитектуры нейронных сетей, которые мы тестировали во время проекта и которые используются конечном варианте проекта в inference.ipynb
src/utils.py Файл .py, содержащий все вспомогательные функции, такие как автоматическое скачивание датасетов, обработка изображений, функции считывания видео с веб камеры, умное обрезание фото по координатам bounding box

Описание

Цель: Создать и протестировать разные виды двух моделей глубокого обучения, а именно detection и face net. К ним можно будет добавлять людей для распознавания и с их помощью можно будет загружать фото или видео, и модели определят, где на фотографии находится человек(а именно - его лицо), нарисует рамку и подпишет ее именем этого человека.

Использование: для запуска обучения нейронных сетей потребуется фай kaggle.json - специальный ключ, который можно получить в личном кабинете kaggle. Он позволяет скачивать датасеты. Его нужно поместить в папку user/.kaggle/ . Если вы будете запускать код в google colab, нужно поменять флажок "use_colab" в файле config.yaml на True. при выполнении ячейки с импортами вылезет специальное окошко, куда можно будет загрузить файл kaggle.json . Далее датасеты автоматически скачаются и можно будет выбрать.

Далее можно обучать нейронные сети и сохранять их веса. Все прописано в коде, папка checkpoints создастся автоматически.

Путь к готовым весам модели указываем в файл config.yaml. Если поменяли модели для обучения, то их надо поменять в функции get_models_with_weights в файле src/utils.py

далее идем в файл inference.ipynb, где запускаем код, доходим до ячейки с добавлением в базу данных. (NOTE: фотографии одного человека должны храниться в отдельной папке, их может быть несколько, тогда будет считаться средний эмбединг по всем фоткам человека. Имя в базе данных должно быть уникальным). После добавления в базу данных можно запустить последнюю функцию и увидеть работу алгоритма.

Стек технологий: pytorch, albumentations, matplotlib, numpy, cv2, timm

ПРОЕКТ ДЕЛАЛИ

Сухов Андрей, Пелагея Пашинская, Дмитрий Аникин, София Николенко

🐾 Контакты

Telegram: @suhowandrew, @polyanka003, @sponkulusnodge, @sophi_nikol

VK: vk.com/suhowandrew, vk.com/pelagech, vk.com/id612881843, vk.com/nik_sophi,