python - Python中人脸识别的Face Anti-Spoofing方法

标签 python face-recognition

我正在从事一个人脸识别项目,我可以首先注册自己,然后启动一个识别脚本,该脚本将启动我的网络摄像头,它会识别我自己。我正在关注这个 article它的工作非常好。
我注意到的是,如果我将我的照片展示给相机而不是自己在相机前展示,它仍然会检测并识别我的脸。其中不涉及反欺骗。我想在代码中包含反欺骗方法,以便它可以检测检测/识别出的人脸是真的还是假的天气。为此,我想到了以下方法:
1.眨眼检测:最初我想我会实现一个眨眼检测算法,但它也有它的缺点。如果真脸人一段时间不眨眼怎么办,在这种情况下,我们的代码会将这张脸标记为假脸。此外,在距相机 1-1.5 米的距离处也没有检测到眼睛。
2.使用温度传感器:我还连接了欧姆龙热传感器,以便我可以获得脸部的温度。在正常人脸中,温度总是高于阈值。如果照片中有人脸,它将始终低于该阈值。我实现了这个,它运行良好。但后来发现,如果有人在手机上显示照片,在这种情况下,由于手机屏幕温度高,它总是超过阈值,因此它被标记为真实照片。
上述方法对我不起作用。我正在寻找一个可以在所有场景中工作的简单解决方案。我正在树莓派上做这个项目,所以正在寻找与树莓派兼容的解决方案。请帮忙。谢谢

最佳答案

抱歉有任何错误,因为我不是来自 raspberry pi 的背景,但作为一个帮助人们的体面人,我认为您应该尝试分辨率检查(如果可能),因为手机屏幕的分辨率总是低于真人脸。然后您可以使用它和眨眼方法来捕获手机,因为照片不会眨眼。人类平均每分钟眨眼 12 次,所以每 5 秒眨眼 1 次。这将帮助您掌握打印的照片。希望这会有所帮助。

关于python - Python中人脸识别的Face Anti-Spoofing方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63627072/

相关文章:

python - 可以在 python 2.5 中做有序字典(由于 GAE)?

python - 如何在Google CloudBuild步骤中保留变量?

python - 权限错误 : [WinError 32] The process cannot access the file because it is being used by another process

java - JNI2OpenCV 中缺少库?

python - 属性错误: module 'cv2.cv2' has no attribute 'faces' in OpenCV

python - dlib(setup.py)循环的构建轮

python - 如何将 Spyder 设置为默认程序/应用程序以打开 (.py) Python 文件?

python - 如何在云上运行python代码

python - 尽管 CNN 在训练和测试方面具有非常好的准确性,但在随机图像上表现不佳

.net - 使用 OpenCV 的感兴趣区域