Сервис идентификации, определения активности и вовлеченности пользователя в процессе дистанционного обучения
Отслеживание, распознавание лиц, а также подсчет времени присутствия на записи видеоконференции при помощи 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_videoTrue - создать видео, в котором будут отмечены все найденные и распознанные лица. 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)



