#java #.net #authentication #login #opencv
#java #.net #аутентификация #opencv
Вопрос:
Я разрабатываю приложение facelogin. Я мог бы определить, кто этот человек, с точностью 80%. Мне нужно различать
- Человек, стоящий перед камерой и
- Плакат с изображением того же человека, который находился перед камерой.
Возможно ли это?
Я выполнил вход в систему с помощью opencv
Приветствуется помощь с любого языка программирования.
Спасибо
Комментарии:
1. Я очень сомневаюсь, что это возможно, но мне были бы интересны любые ответы
2. Ну, я думаю, вы могли бы каким-то образом прошить пользователя (изменить количество света, излучаемого в глаза пользователя) и проверить реакцию зрачков пользователя. 🙂
3. Требуйте, чтобы пользователь оставался неподвижным, проанализируйте его лицо для авторизации, затем попросите его повернуть голову влево, а затем вправо и провести отдельный анализ каждой стороны головы. Поскольку они не могут сделать это с помощью плоского плаката, это должно остановить любую фальсификацию. В случае, если у них есть доступ к изображению всех 3 сторон человека (спереди, слева, справа), просто определите, сильно ли изменилось изображение между каждым представлением (т. Е. Они удалили плакат и повесили другой? Если это так, отклоните их вход в систему)
4. как сказал м.Эдмондсон, прямо сейчас это практически невозможно, поскольку камера не имеет глубины (например, это 2D-представление 3D-мира). Вы можете попробовать использовать 2 или более камер, как это делается при создании 3D-фильмов, но технология вам не поможет…
5. @Tom Glenn что помешало бы им показывать 3 разные картинки?
Ответ №1:
Сделайте несколько снимков в короткой последовательности. Выражение лица на фотографии не меняется, лицо на фотографии не моргает веками, а экстраполяция относительной глубины элементов лица посредством незначительных изменений угла между снимками дает отличный результат для фотографий.
Если вы можете использовать 2 камеры, вычислите преобразование между снимками, сделанными обеими камерами одновременно. Это преобразование должно отличаться для плоских поверхностей и граней (даже если вы, возможно, не сможете экстраполировать фактическую трехмерную структуру).
Комментарии:
1. Это наносит ущерб людям, находящимся в коме и «испытанным жизнью», ожидайте услышать от юристов первого и медиумов второго. 😉
Ответ №2:
Любой подобный метод можно обмануть несколькими видеозаписями, показывающими одного и того же человека в разных позах. Например, вы можете попросить человека повернуться, и это может быть записано и передано в вашу программу. Таким же образом вы можете решить, например, выделить лицо человека внешними источниками света, но это также может быть записано и воспроизведено.
Мой совет — выполните несколько серий аутентификационных движений (например, кивок, покачивание головой, закрытие глаз и т.д.) — чем больше, тем лучше, затем попросите пользователя выполнить одно или несколько из них в некотором случайном порядке довольно быстро. Вы также можете регистрировать и подсчитывать неудачные попытки аутентификации. Затем вы будете уведомлены, когда кто-то несколько раз нарушал порядок записей.
Комментарии:
1. Это все еще можно обмануть с помощью предварительно записанных видеозаписей пользователя и какого-нибудь умного программного обеспечения, которое определяет, что страница просит пользователя сделать (простая очистка экрана?), и автоматически воспроизводит правильные видеозаписи. Дело в том, что невозможно полностью обезопасить систему, которая полагается на простую веб-камеру и некоторую обработку 2D-изображений.