@robocop45

Хочу сделать регистрацию по лицу, правильно ли я создал алгоритм решения?

Идея такая:
- человек на странице регистрации. Там он вводит имя, возраст и т.п, далее сайт попросит доступ к камере и делает фото лица, это будет main_img. Т.е фото по которому будет сравнение в дальнейшем
- Спустя какое-то время человеку надо войти в аккаунт. Сайт сфоткает человека, сохранит фотографию (назовем new_img), сравнит new_img с main_img и если все ок, то пропускает человека, а так же удаляет new_img, т.к фото временное

вроде алгоритм прост

прототип models
class UserProfile(AbstractUser):
    name = charfield
    age = intfield
    main_img =imgfield 
    
class Login(models.Model):
    user = OneToOne(UserProfile)
    new_photo = imgfield
    is_correct = boolfield


Насчет библиотеки для сравнения лиц я еще не определился. Думаю или deepface или face-recognition

Хотел бы услышать ваше мнение, какую лучше использовать библиотеку, какие моменты я забыл учесть и т.п
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
@rPman
Как нарисовать сову - рисуем два кружочка, затем дорисовываем сову... это в двух словах то что ты описал.

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

Кстати сами алгоритмы обработки фото там делятся на собственно детектирование лица и удаление шумов (чтобы работать только с лицом размером на все изображение) и алгоритм вычисления параметров по лицу.

вот почитай к примеру

p.s. распознавание по лицу это худшая форма авторизации, потому что это биометрия, а по просто фото она еще и легко подделывается (просто показав фото на смартфоне/планшетнике/листке бумаги)

Если дополнить ее распознаванием речи и заставить к примеру пользователя делать какое то движение (на его выбор), то это просто увеличит стоимость атаки на этот способ авторизации, но не на столько значительно, как простое увеличение количества символов в простой парольной авторизации или введением двух факторной авторизации на основе аппаратного токена в виде карты например (или того же смартфона, но там безопасность просто перекладывается на него)
Ответ написан
1. Что делать, если окажется два достаточно похожих человека?
2. Скан лица - это биометрические ПД и они считаются как самые уязвимые по 152 фз, а значит требуют и соответствующих мер по защите
3. Что делать, если исходный чел станет неузнаваемым? Например из-за другой вебки, другого освещения, ракурса, косметики, защитной маски итд?
4. Как защищаться будешь от подделки лица при помощи фото, например?
5. Кто запретит загрузить при логине то же самое фото, что и при регистрации? Или хотябы реальное фото жертвы? Как определишь, что фото действительно новое?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы