Сервис идентификации, определения активности и вовлеченности пользователя в процессе дистанционного обучения

Отслеживание, распознавание лиц, а также подсчет времени присутствия на записи видеоконференции при помощи facenet_pytorch (MTCNN, InceptionResnetV1) и OpenCV

  • Добавлено YoloV5_face для распознавания лиц

Начало работы

  1. Клонирование репозитория:

    git clone https://github.com/KirillTaE/facenet_pytorch.git
    
  2. Установка необходимых библиотек:

    #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
    
  3. Запуск программы с параметрами по умолчанию:

    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 - файл с подсчитанным временем присутствия на видео

image

  • Time_drop0_{--input_video_path}.csv - файл с подсчитанным временем присутствия на видео (отброшены значения с временем равным нулю)

image

  • barh_{--input_video_path}.jpg - столбчатая диаграмма, на которой показано время присутствия каждого человека в процентах

image

  • pie_{--input_video_path}.jpg - круговая диаграмма, на которой показано время присутствия участников видео относительно друг-друга

image

Также при --do_video True будет создано видео с названием --output_video_path (default=new_video.mp4)