Python 3.x 人脸识别系统如何区分真实人脸和人脸照片?

Python 3.x 人脸识别系统如何区分真实人脸和人脸照片?,python-3.x,opencv,tensorflow,keras,face-recognition,Python 3.x,Opencv,Tensorflow,Keras,Face Recognition,我正在用python和OpenCV进行人脸识别项目,我检测人脸,但我有这个问题 我不知道如何让系统用2D图像区分真假脸 如果有人有什么想法,请帮助我。 谢谢。你可以使用多种方法解决这个问题,我在这里列出了其中的一些方法,你可以参考一些研究论文找到更多的方法 运动方法:您可以让用户眨眼或移动,从而让用户确信它们是真实的(最有可能处理视频数据集或连续图像) 特征方法:从图像中提取有用的特征,并使用它们来做出二值分类决策,比如说真实与否 频率分析:检查面部的傅里叶域 光流算法:即检查3D对象和2D平

我正在用python和OpenCV进行人脸识别项目,我检测人脸,但我有这个问题 我不知道如何让系统用2D图像区分真假脸 如果有人有什么想法,请帮助我。
谢谢。

你可以使用多种方法解决这个问题,我在这里列出了其中的一些方法,你可以参考一些研究论文找到更多的方法

  • 运动方法:您可以让用户眨眼或移动,从而让用户确信它们是真实的(最有可能处理视频数据集或连续图像)
  • 特征方法:从图像中提取有用的特征,并使用它们来做出二值分类决策,比如说真实与否
  • 频率分析:检查面部的傅里叶域
  • 光流算法:即检查3D对象和2D平面生成的光流的差异和特性
  • 纹理分析:您还可以使用OpenCV进行局部二进制模式分类,以区分图像是否伪造,有关此方法的详细信息,请参阅此
    • pyimagesearch的Adrian提供了一个非常好的(包括代码)解决了活性检测器的同样问题。 下面是那篇文章的摘录

      活性检测有多种方法,包括:

      • 纹理分析,包括计算人脸区域上的局部二进制模式(LBP),并使用SVM将人脸分类为真实或伪造
      • 频率分析,例如检查面部的傅里叶域
      • 可变聚焦分析,例如检查两个连续帧之间像素值的变化
      • 基于启发式的算法,包括眼球运动、嘴唇运动和眨眼检测。这组算法试图跟踪眼球运动和眨眼,以确保用户没有拿着另一个人的照片(因为照片不会眨眼或移动嘴唇)
      • 光流算法,即检查3D对象和2D平面生成的光流的差异和特性。 -3D人脸形状,类似于苹果iPhone人脸识别系统上使用的形状,使人脸识别系统能够区分真实人脸和其他人的打印输出/照片/图像
      • 上述组合,使人脸识别系统工程师能够选择适合其特定应用的活性检测模型

      我首先想到的是如何使用3d立体相机。这不是一个编程问题,更多的是一个理论问题,这个问题太广泛/模糊,我们只能帮助您解决具体的编程问题,而不是一般的机器学习问题。这本身就是一个研究项目。在任何情况下,一方面问题是不适定的,例如,照片扫描在某种意义上是“照片的照片”,但您很可能无法将其与数字照片区分开来。如果你有RGB-D数据或立体/多透视图像,那么你可以尝试确定面部是否“平坦”,但在一般情况下,你必须依靠并尝试检测眩光、帧等。谢谢你,所以我需要一个3d stéréo caméraIf你可以将图像的眼睛状态分为打开或关闭,你应该在视频中遵循这个模式:打开,关闭,打开。这可以处理网络摄像头捕获的活动检测,但如果您将视频显示给网络摄像头,它仍然会失败。非常感谢