Python中用于人脸识别的人脸反欺诈方法

5
我正在进行一个人脸识别项目,我可以先注册自己,然后启动一个识别脚本,它将启动我的网络摄像头并识别我。我正在遵循这个文章,它完全正常运行。
我注意到的是,如果我把我的照片展示给相机而不是站在相机前面,它仍然会检测和识别我的脸。它没有包含反欺诈功能。我想在代码中包含反欺诈方法,以便它可以检测检测/识别的脸是否真实或伪造。为此,我考虑以下方法: 1. 眨眼检测:最初我想实现一个眨眼检测算法,但它也有缺点。如果一个真实的人脸没有眨眼一段时间,那么我们的代码将把那张脸标记为假的。此外,眼睛也无法在距离相机1-1.5米的地方被检测到。

2. 使用温度传感器:我还连接了欧姆龙热敏传感器,以便获取面部的温度。在正常人脸中,温度总是高于一个阈值。对于照片中的脸,它将始终低于该阈值。我实现了这个功能,并且它运行良好。但后来意识到,如果有人在手机上展示照片,由于手机屏幕温度很高,温度总是高于阈值,因此被标记为真实照片。

上述方法对我没有用。我正在树莓派上进行这个项目,因此寻找与树莓派兼容的简单解决方案。请帮忙。谢谢。


由于温度传感器也可用且未用于面部识别,欺骗者是否可以将打火机靠近它,并在实际摄像头前拍摄您的面部照片? - Filip
@Filip 你说得对,这就是为什么我提到的方法对我没有起作用的原因。 - S Andrew
也许你可以实现手势检测,这样你就可以用手做出特定的形状,以获取访问权限。 - Filip
@Filip 是的,我认为我可以做到。但是这个应用程序就像一个访问控制或考勤系统,用户将站在摄像头前,他们的出勤将被标记。但感谢您的建议,我会考虑一下。 - S Andrew
1
没问题。我之所以建议这样做,是因为这个密码容易记住,并且如果不知道还需要用手势或者手势的具体形式,那么别人就很难猜测出来。只要保密工作做好了,应该会很安全。祝你的项目好运 :) - Filip
@Filip 这篇文章底部展示了一种活体检测的方法,通过脸部反射光线来检测真假。我不确定这个方法是如何实现的,但它看起来很有前途。你有什么想法吗? - S Andrew
3个回答

1

非常抱歉,由于我不是来自树莓派的背景,所以可能会有错误。但作为一个帮助人们的好人,我认为您应该尝试分辨率检查(如果可能的话),因为手机屏幕的分辨率总是比真实面孔低。然后,您可以使用眨眼方法来抓住手机,因为照片不会眨眼。平均每分钟人类眨眼12次,因此每5秒钟眨一次眼。这将有助于您抓住印刷的照片。希望这能帮到您。


你所说的分辨率检测,是指在手机上检测到的人脸大小与实际人脸大小之间的比较吗? - S Andrew
我认为这会有所帮助:https://www.pyimagesearch.com/2016/10/31/detecting-multiple-bright-spots-in-an-image-with-python-and-opencv/ - Dev
已经阅读了这篇文章,没有什么帮助。 - S Andrew
抱歉,因为只是进行了原始搜索,所以返回的结果可能不够准确。 - Dev
只是想知道我的想法是否有帮助? - Dev
显示剩余6条评论

0

我现在正在做一个人脸识别系统作为我的论文项目。你试过this article吗?Adrian说它可以在树莓派上使用,但这意味着我们需要安装TensorFlow和Keras才能实现。我认为这可能会有所帮助。


0

你应该在人脸检测器的基础上使用物体检测器。它肯定可以检测到手机。
你可以重新训练它来检测被举起的照片。

先运行物体检测器,保存手机的边界框坐标,然后查看人脸边界框坐标是否位于手机内部。


很棒的想法。你有没有任何可以检测手机的模型链接?我正在寻找它。 - S Andrew
我对此进行了一些研究,发现检测手机的这种方法也是不可行的。原因是,当欺骗者将手机放在相机前以识别面部时,手机可以被放置得非常靠近相机,使面部清晰可见,因此在这种情况下,手机将无法完全显示在相机中,因此很难检测到手机。 - S Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接