"1. Реализовать решение задачи верификации лица (сравнение 1 к 1)\n",
"2. 2 на кого из МИЭМ вы похожи + 2 GUI\n",
"2. Протестировать работу различных методов трекинга объектов в различных задачах.\n",
"\n",
"Примерное время выполнения - 8-10 часов.\n",
"\n",
"Дедлайн: 1 февраля в 23:59\n",
"\n",
"Штрафные коэффициенты оценивания при просрочке:\n",
"\n",
"-|-\n",
"----|---\n",
"Просрочка меньше 12 часов | без штрафа\n",
"От 12 часов до 7 дней после дедлайна | 0.8\n",
"От 7 до 14 дней | 0.6\n",
"Более 14 дней и до начала сессии | 0.4\n",
"\n",
"## Оценивание\n",
"\n",
"Задание:\n",
"\n",
"Часть работы | Стоимость в баллах\n",
"-------------|--------------------\n",
"Детекция + Верификация **Можно сдать без защиты**.| 3\n",
"Поисковик \"MIEM Lookalikes\" **Можно сдать без защиты**.| 2\n",
"MIEM Lookalike Web-GUI **Можно сдать без защиты**.| 1\n",
"Исследование устойчивости методов распознавания | 4\n",
"Итого | 10 баллов\n",
"\n",
"Формула оценивания всей работы:\n",
"\n",
"О = Задание * 0.9 + Тест на лекции * 0.1\n",
"\n"
],
"metadata": {
"id": "0wRYyp1mM2NV"
}
},
{
"cell_type": "markdown",
"source": [
"# 1 Детекция + верификация (3 балла)"
],
"metadata": {
"id": "V1EHcMnf0YCM"
}
},
{
"cell_type": "markdown",
"source": [
"Часть 1: Обнаружение лиц в реальном времени или на видео (3 балла)\n",
"Задача:\n",
"\n",
"Используя библиотеку OpenCV и метод [YuNET](https://docs.opencv.org/4.x/d0/dd4/tutorial_dnn_face.html) (или другой нейросетевой метод обнаружения лиц на ваше усмотрение), реализуйте обнаружение лиц на видео (или веб-камере).\n",
"Программа должна обрабатывать кадры с вебкамеры и корректно распознавать ваше лицо. Ваше лицо должно быть выделено зелёным прямоугольником, а чужие - красными."
],
"metadata": {
"id": "86yB1xI5-8ng"
}
},
{
"cell_type": "markdown",
"source": [
"# 2 MIEM Lookalike (2 балла)"
],
"metadata": {
"id": "MjhODhxJ0kGJ"
}
},
{
"cell_type": "markdown",
"source": [
"Реализовать задачу поиска лиц с использованием эмбеддингов и FAISS\n",
"\n",
"Задача:\n",
"Используйте предобученную модель распознавания лиц (например, FaceNet из библиотеки DeepFace) для создания эмбеддингов (векторных представлений) для всех изображений лиц из [выгрузки фотографий](https://drive.google.com/drive/folders/1I7EzyoJYYiLuOiPyjAHeSdTgzmDUAp2X?usp=sharing) сотрудников МИЭМ.\n",
"Создайте [FAISS](https://habr.com/ru/companies/okkamgroup/articles/509204/)-базу данных для хранения эмбеддингов лиц.\n",
"Реализуйте функцию поиска:\n",
"* Загрузите изображение нового лица.\n",
"* Извлеките эмбеддинг и найдите ближайший эмбеддинг в FAISS.\n",
"* Реализуйте выдачу имени человека с наиболее похожим лицом и его расстояние до текущего лица.\n",
"\n",
"По-умолчанию предполагается выполнение решения в виде консольного скрипта или внутри блокнота Jupyter. Дополнительно можно реализовать веб-интерфейс с помощью библиотеки streamlit или другого веб-фреймворка на ваше усмотрение (+1 балл).\n"
],
"metadata": {
"id": "knOMSWM60mKg"
}
},
{
"cell_type": "markdown",
"source": [
"# 3 Анализ устойчивости распознавания лиц (4 балла)\n",
"\n"
],
"metadata": {
"id": "BdzH5yGw--rt"
}
},
{
"cell_type": "markdown",
"source": [
"## Часть 1. Оценить точность работы методов из DeepFace на тестовом видео (2 балла)."
],
"metadata": {
"id": "G_RL2wOgfAUe"
}
},
{
"cell_type": "markdown",
"source": [
"В данном задании предлагается рассмотреть задачу распознавания лиц как задачу классификации для оценки точности.\n",
"Вам даны [видео](https://drive.google.com/drive/folders/1z_YCdJF2Rf9WzlNSY3BpNFiakNisq5VB?usp=sharing), для которых представлена разметка в виде тайм-кодов и база фотографий людей с этих видео.\n",
"Необходимо взять каждый 50-й кадр видео (способ разбиения на кадры с учётом разметки - на ваше усмотрение) и для полученного набора изображений оценить метрику Precision на данном наборе изображений для всех лиц, присутствующих на видео и в разметке.\n",
"\n"
],
"metadata": {
"id": "5UsJb8VkPzd0"
}
},
{
"cell_type": "markdown",
"source": [
"## Часть 2. Оценить точность работы методов из DeepFace на аугментированных данных (2 балла)."
],
"metadata": {
"id": "2iRrc6SRg4-d"
}
},
{
"cell_type": "markdown",
"source": [
"Необходимо собрать собственный набор данных из **различных** изображений Вашего лица с разных ракурсов, желательно настоящие фотографии из личного архива (20 штук)\\\n",
"Возьмите эталонное изображение (как в паспорте) и при помощи библиотеки [DeepFace](https://github.com/serengil/deepface) проверьте его на соответствие всему датасету. Посчитайте метрику Precision. \\\n",
"\\\n",
"Примените каждую из перечисленных ниже аугментаций (**по-отдельности**) ко всему датасету и измерьте метрику Precision для измененнного датасета:\n",
"* Поворот изображения на 45° и 90°.\n",
"* Добавление шума (Gaussian Noise).\n",
"* Изменение яркости (увеличение и уменьшение на 50%).\n",
"* Размытие с различными параметрами.\n",
"\\\n",
"Реузультаты соберите в таблицу вида:\n",
"\n",
"Метод | Исходный датасет | Поворот на 45° | Поворот на 90° | Изображение с шумом |\n",
"--- | ----|--- | --- | --- |\n",
"VGG-Face | 0 | 0 | 0 | 0 |\n",
"Facenet | 0 | 0 | 0 | 0 |\n",
"Facenet512 | 0 | 0 | 0 | 0 |\n",
"OpenFace | 0 | 0 | 0 | 0 |\n",
"DeepFace | 0 | 0 | 0 | 0 |\n",
"DeepID | 0 | 0 | 0 | 0 |\n",
"ArcFace | 0 | 0 | 0 | 0 |\n",
"Dlib | 0 | 0 | 0 | 0 |\n",
"SFace | 0 | 0 | 0 | 0 |\n",
"GhostFaceNet | 0 | 0 | 0 | 0 |"
],
"metadata": {
"id": "aFA9PwlwjeDV"
}
},
{
"cell_type": "markdown",
"source": [],
"metadata": {
"id": "SibiLplgP2bC"
}
},
{
"cell_type": "markdown",
"source": [
"# Итоговая проверка и отчётность\n",
"\n"
],
"metadata": {
"id": "bMzGSyoKQUgV"
}
},
{
"cell_type": "markdown",
"source": [
"## Задание 1\n",
"* Ссылка на исходный код приложения в GitHub\n",
"* Ссылка на видеозапись экрана ПК во время работы приложения\n",
"\n",
"## Задание 2\n",
"* Ссылка на исходный код приложения в GitHub\n",
"* Ссылка на видеозапись экрана ПК во время работы приложения\n",
"\n",
"## Задание 3\n",
"* Ссылка на Jupyter Notebook с кодом подсчёта метрики по кадрам с видео в GitHub\n",
"* Ссылка на архив в формате ZIP или 7z с вашими фото\n",
"* Ссылка на Jupyter Notebook с кодом наложения аугментаций и подсчёта метрики в GitHub"
],
"metadata": {
"id": "oJY1a_RAjivD"
}
},
{
"cell_type": "markdown",
"source": [
"# Контрольные вопросы\n"
],
"metadata": {
"id": "ny14-XnN8QVM"
}
}
]
}
\ No newline at end of file
%% Cell type:markdown id: tags:
# Суть задания
1. Реализовать решение задачи верификации лица (сравнение 1 к 1)
2. 2 на кого из МИЭМ вы похожи + 2 GUI
2. Протестировать работу различных методов трекинга объектов в различных задачах.
Примерное время выполнения - 8-10 часов.
Дедлайн: 1 февраля в 23:59
Штрафные коэффициенты оценивания при просрочке:
-|-
----|---
Просрочка меньше 12 часов | без штрафа
От 12 часов до 7 дней после дедлайна | 0.8
От 7 до 14 дней | 0.6
Более 14 дней и до начала сессии | 0.4
## Оценивание
Задание:
Часть работы | Стоимость в баллах
-------------|--------------------
Детекция + Верификация **Можно сдать без защиты**.| 3
Поисковик "MIEM Lookalikes" **Можно сдать без защиты**.| 2
MIEM Lookalike Web-GUI **Можно сдать без защиты**.| 1
Исследование устойчивости методов распознавания | 4
Итого | 10 баллов
Формула оценивания всей работы:
О = Задание * 0.9 + Тест на лекции * 0.1
%% Cell type:markdown id: tags:
# 1 Детекция + верификация (3 балла)
%% Cell type:markdown id: tags:
Часть 1: Обнаружение лиц в реальном времени или на видео (3 балла)
Задача:
Используя библиотеку OpenCV и метод [YuNET](https://docs.opencv.org/4.x/d0/dd4/tutorial_dnn_face.html)(или другой нейросетевой метод обнаружения лиц на ваше усмотрение), реализуйте обнаружение лиц на видео (или веб-камере).
Программа должна обрабатывать кадры с вебкамеры и корректно распознавать ваше лицо. Ваше лицо должно быть выделено зелёным прямоугольником, а чужие - красными.
%% Cell type:markdown id: tags:
# 2 MIEM Lookalike (2 балла)
%% Cell type:markdown id: tags:
Реализовать задачу поиска лиц с использованием эмбеддингов и FAISS
Задача:
Используйте предобученную модель распознавания лиц (например, FaceNet из библиотеки DeepFace) для создания эмбеддингов (векторных представлений) для всех изображений лиц из [выгрузки фотографий](https://drive.google.com/drive/folders/1I7EzyoJYYiLuOiPyjAHeSdTgzmDUAp2X?usp=sharing) сотрудников МИЭМ.
Создайте [FAISS](https://habr.com/ru/companies/okkamgroup/articles/509204/)-базу данных для хранения эмбеддингов лиц.
Реализуйте функцию поиска:
* Загрузите изображение нового лица.
* Извлеките эмбеддинг и найдите ближайший эмбеддинг в FAISS.
* Реализуйте выдачу имени человека с наиболее похожим лицом и его расстояние до текущего лица.
По-умолчанию предполагается выполнение решения в виде консольного скрипта или внутри блокнота Jupyter. Дополнительно можно реализовать веб-интерфейс с помощью библиотеки streamlit или другого веб-фреймворка на ваше усмотрение (+1 балл).
%% Cell type:markdown id: tags:
# 3 Анализ устойчивости распознавания лиц (4 балла)
%% Cell type:markdown id: tags:
## Часть 1. Оценить точность работы методов из DeepFace на тестовом видео (2 балла).
%% Cell type:markdown id: tags:
В данном задании предлагается рассмотреть задачу распознавания лиц как задачу классификации для оценки точности.
Вам даны [видео](https://drive.google.com/drive/folders/1z_YCdJF2Rf9WzlNSY3BpNFiakNisq5VB?usp=sharing), для которых представлена разметка в виде тайм-кодов и база фотографий людей с этих видео.
Необходимо взять каждый 50-й кадр видео (способ разбиения на кадры с учётом разметки - на ваше усмотрение) и для полученного набора изображений оценить метрику Precision на данном наборе изображений для всех лиц, присутствующих на видео и в разметке.
%% Cell type:markdown id: tags:
## Часть 2. Оценить точность работы методов из DeepFace на аугментированных данных (2 балла).
%% Cell type:markdown id: tags:
Необходимо собрать собственный набор данных из **различных** изображений Вашего лица с разных ракурсов, желательно настоящие фотографии из личного архива (20 штук)\
Возьмите эталонное изображение (как в паспорте) и при помощи библиотеки [DeepFace](https://github.com/serengil/deepface) проверьте его на соответствие всему датасету. Посчитайте метрику Precision. \
\
Примените каждую из перечисленных ниже аугментаций (**по-отдельности**) ко всему датасету и измерьте метрику Precision для измененнного датасета:
* Поворот изображения на 45° и 90°.
* Добавление шума (Gaussian Noise).
* Изменение яркости (увеличение и уменьшение на 50%).
* Размытие с различными параметрами.
\
Реузультаты соберите в таблицу вида:
Метод | Исходный датасет | Поворот на 45° | Поворот на 90° | Изображение с шумом |
--- | ----|--- | --- | --- |
VGG-Face | 0 | 0 | 0 | 0 |
Facenet | 0 | 0 | 0 | 0 |
Facenet512 | 0 | 0 | 0 | 0 |
OpenFace | 0 | 0 | 0 | 0 |
DeepFace | 0 | 0 | 0 | 0 |
DeepID | 0 | 0 | 0 | 0 |
ArcFace | 0 | 0 | 0 | 0 |
Dlib | 0 | 0 | 0 | 0 |
SFace | 0 | 0 | 0 | 0 |
GhostFaceNet | 0 | 0 | 0 | 0 |
%% Cell type:markdown id: tags:
%% Cell type:markdown id: tags:
# Итоговая проверка и отчётность
%% Cell type:markdown id: tags:
## Задание 1
* Ссылка на исходный код приложения в GitHub
* Ссылка на видеозапись экрана ПК во время работы приложения
## Задание 2
* Ссылка на исходный код приложения в GitHub
* Ссылка на видеозапись экрана ПК во время работы приложения
## Задание 3
* Ссылка на Jupyter Notebook с кодом подсчёта метрики по кадрам с видео в GitHub
* Ссылка на архив в формате ZIP или 7z с вашими фото
* Ссылка на Jupyter Notebook с кодом наложения аугментаций и подсчёта метрики в GitHub