Сервис идентификации, определения активности и вовлеченности пользователя в процессе дистанционного обучения
Отслеживание, распознавание лиц, а также подсчет времени присутствия на записи видеоконференции при помощи facenet_pytorch (MTCNN, InceptionResnetV1) и OpenCV
- Добавлено YoloV5_face для распознавания лиц
-
Клонирование репозитория:
git clone https://github.com/KirillTaE/facenet_pytorch.git
-
Установка необходимых библиотек:
#facenet-pytorch==2.5.2 #opencv-python==4.6.0.66 #pandas==1.5.1 #matplotlib==3.6.2 #yolov5facedetector==1.0.2 #gdown==4.7.1 pip install -r requirements.txt
-
Запуск программы с параметрами по умолчанию:
python main.py
Передаваемые параметры:
-h
или--help
Выводится описание всех передаваемых параметров-pcp
или--photo_catalog_path
Путь до каталога с фотографиями. Внутри данного каталога должны находиться подписанные именами папки с фотографиями людей, которые будут присутствовать на видео (default=photos
)-ud
или--update_data
Обновляет/Создает файл data.pt (вызывать при обновлении фотографий). В этом файле лежат закодированные лица людей (эмбеддинги) (default=True
)-dp
или--data_path
Путь до каталога, где находится файл data.pt (default=-wc
или--web_cam
Считывать видео с веб-камеры. Файлы с подсчетом времени создаваться не будут (default=False
)-ivp
или--input_video_path
Полный путь входного видео (default=video.mp4
)-dv
или--do_video
True - создать видео, в котором будут отмечены все найденные и распознанные лица. False - не создавать (default=False
)-ovp
или--output_video_path
Полный путь выходного видео с отмеченными лицами (default=new_video.mp4
)-m
или--model_name
Модель для детектирования лиц (default=mtcnn
)
Пример вызова программы с параметрами: python main.py -pcp photos -ud True -ivp video.mp4 -dv True -ovp new_video.mp4 -m mtcnn
При первом запуске создастся папка InceptionResnetV1_VGGFace2
и в нее будет загружена модель InceptionResnetV1-vggface2
В конце работы программы будет создано 4 файла:
- Time_{
--input_video_path
}.csv - файл с подсчитанным временем присутствия на видео
- Time_drop0_{
--input_video_path
}.csv - файл с подсчитанным временем присутствия на видео (отброшены значения с временем равным нулю)
- barh_{
--input_video_path
}.jpg - столбчатая диаграмма, на которой показано время присутствия каждого человека в процентах
- pie_{
--input_video_path
}.jpg - круговая диаграмма, на которой показано время присутствия участников видео относительно друг-друга
Также при --do_video True
будет создано видео с названием --output_video_path
(default=new_video.mp4
)