Skip to content

Two-Stage Authentification system based on CNN advances

Notifications You must be signed in to change notification settings

arthuremir/CVAuth

Repository files navigation

Отчет по заданию по двухфакторной аутентификации

Версия написана с использованием tkinter.
Есть возможность включения/отключения расчета позы, а также возможность регистрации пользователя (занесение его имени и жеста в базу и сохранение лица с последующим пересчетом эмбеддинга пользователя)

Пользователь вводит свой логин, в случае наличия такового в базе включается камера.
В случае успешного распознавания лица пользователя ему предлагается показать жест в специальную область.

Использованные алгоритмы:

  • распознавание лиц: MTCNN+ArcFace
  • анализ позы: ResNet-50_FPN_3x из detectron2
  • разспознавание жестов: сегментация вычитанием фона и классификация с помощью ResNet-18, предобученной на ImageNet и обученной на собственном датасете.

Датасет бинаризованных изображений семи жестов (+ шум) был собран с веб-камеры. Состоит из ~900 изображений:

Один палец - 98
Два пальца - 97
Три пальца - 225
Четыре пальца - 103
Пять пальцев - 99
Жест "Ок" - 102
Кулак - 100
Шум (нет жеста) - 102

Аугментации:

transforms.Compose([
    transforms.RandomAffine(25,
                           (0.15, 0.15),
                           (0.7, 1.1)),
    transforms.RandomHorizontalFlip(),
    transforms.ToTensor()
]) 

Точность классификации жестов порядка 95% (ошибки в основном в неочевидных случаях в классе "шум")

Работоспособность проверялась в боевых условиях (веб-камерой).

Использованные библиотеки:

About

Two-Stage Authentification system based on CNN advances

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published