#python #face-recognition
#python #распознавание лиц
Вопрос:
Я работаю над проектом распознавания лиц, в котором я могу сначала зарегистрироваться, а затем запустить скрипт распознавания, который запустит мою веб-камеру и распознает меня. Я следую этой статье, и она работает отлично.
Я заметил, что если я покажу свою фотографию на камеру вместо себя перед камерой, она все равно обнаружит и распознает мое лицо. В этом нет никакой защиты от подмены. Я хочу включить метод защиты от подделки в код, чтобы он мог определять, является ли обнаруженное / распознанное лицо реальным или поддельным. Для этого я подумал о следующих подходах:
1. Обнаружение моргания глаз: Изначально я думал, что внедрю алгоритм обнаружения моргания глаз, но у него также есть свой недостаток. Что, если человек с реальным лицом какое-то время не моргал глазами, в этом случае наш код пометит это лицо как поддельное. Кроме того, глаза также не были обнаружены на расстоянии 1-1,5 метра от камеры.
2. Использование датчика температуры: я также подключил термодатчик omron, чтобы я мог получать температуру лица. На обычном человеческом лице температура всегда выше порогового значения. В случае лица на фотографии оно всегда будет ниже этого порога. Я реализовал это, и это работало нормально. Но позже понял, что если кто-то показывает фотографию в телефоне, в этом случае из-за высокой температуры экрана телефона она всегда превышает пороговое значение и, следовательно, помечается как настоящая фотография.
Вышеупомянутые методы у меня не сработали. Я ищу простое решение, которое может работать во всех сценариях. Я делаю этот проект на raspberry pi, поэтому ищу решение, совместимое с raspberry pi. Пожалуйста, помогите. Спасибо
Комментарии:
1. Поскольку датчик температуры также доступен и не используется для распознавания лиц, не мог бы спуфер просто поднести к нему зажигалку и получить изображение вашего лица перед реальной камерой?
2. @Filip Вы правы, и именно поэтому методы, которые я упомянул, у меня не сработали.
3. Возможно, вы могли бы реализовать обнаружение сигнала руки, чтобы вы могли создавать определенную форму рукой, и это также было бы необходимо для получения доступа.
4. @Filip Да, я думаю, что смогу это сделать. Но это приложение похоже на систему контроля доступа или посещаемости, в которой пользователи будут появляться перед камерой, и их посещаемость будет отмечаться. Но спасибо за ваше предложение, я подумаю об этом.
5. Нет проблем. Я предложил это, потому что это было бы легко запомнить, и кому-то было бы трудно догадаться, не зная, что жест рукой также необходим, или что именно вы делаете своей рукой. Пока это секретно, это должно быть хорошо. Удачи с вашим проектом 🙂
Ответ №1:
Извините за любую ошибку, потому что я не из raspberry pi, но как порядочный парень, помогающий людям, я думаю, что вам следует попробовать проверку разрешения (если это возможно), потому что экран телефона всегда будет иметь меньшее разрешение, чем реальное лицо. И затем вы можете использовать его с помощью метода eye blink, чтобы поймать телефон, поскольку на фотографиях не мигают глаза. Средний человек моргает 12 раз в минуту, то есть 1 раз каждые 5 секунд. Это поможет вам сохранить распечатанные фотографии. Надеюсь, это поможет.
Комментарии:
1. Под проверкой разрешения вы подразумеваете размер лица, обнаруженного в телефоне, по сравнению с размером реального лица.?
2. Разрешение здесь означает два способа = 1) Вы, должно быть, заметили, что экран телефона кажется немного сине-черным (как на старом телевизоре с черными точками) и ярче, чем реальное лицо. Также разрешение означает то, что вы сказали.
3. Хорошо, вы имеете в виду проверку интенсивности света на захваченных фотографиях. Если это выше обычного порога, в этом должен быть экран телефона.?
4. да, также оно выглядит немного синеватым, чем обычное лицо
5. Я проверил много статей в Интернете, но я не могу понять, как я могу это сделать в opencv. Есть ли у вас какая-либо ссылка, на которую я могу сослаться.?
Ответ №2:
Вы должны использовать детектор объектов поверх детектора лиц. Он определенно может обнаружить телефон.
Вы также можете переобучить его для обнаружения удерживаемой фотографии.
Сначала запустите детектор объектов, сохраните координаты ограничивающей рамки телефона, затем посмотрите, находятся ли координаты ограничивающей рамки лица внутри телефона.
Комментарии:
1. Отличная идея. Есть ли у вас какая-либо ссылка на модель, которая может обнаруживать телефон. Я ищу это
2. Я провел некоторое исследование по этому поводу и понял, что этот метод обнаружения телефона также невозможен. Причина в том, что, когда спуфер помещает телефон перед камерой для распознавания лица, телефон может быть размещен очень близко к камере, чтобы лицо было хорошо видно, поэтому в этом случае телефон не будет полностью виден в камере, и, следовательно, его трудно обнаружить.
Ответ №3:
Прямо сейчас я работаю над системой распознавания лиц в качестве своего дипломного проекта. Вы пробовали эту статью? Адриан говорит, что это можно использовать в Raspberry Pi, но это означает, что для этого мы должны установить TensorFlow amp; Keras. Я думаю, это могло бы помочь.