你在互联网上找到的大多数
本文的目标是实现一种基于眨眼检测的人脸活体检测算法,以抵抗照片攻击。该算法通过网络摄像头实时工作,通过检测眨眼来区分现实生活中的面孔和照片上的面孔。通俗地说,程序运行如下:在网络摄像头生成的每个帧中检测人脸。对于每个检测到的脸,检测眼睛。对于每个检测到的眼睛,检测眼睛是否睁开或关闭。如果在某个时候检测到眼睛是睁开的,然后是闭着的,然后是睁开的,我们就断定此人已经眨了眼睛,并且程序显示他的名字(如果是人脸识别开门器,我们将授权此人进入)。对于人脸的检测和识别,你需要安装face_recognition库,它提供了非常有用的深度学习方法来查找和识别图像中的人脸,特别是,face_locations、face_encodings和compare_faces函数是最有用的3个函数。人脸定位方法可以用两种方法来检测人脸:方向梯度直方图(HoG)和卷积神经网络(CNN),由于时间限制,选择了HoG方法。face_encodings函数是一个预先训练的卷积神经网络,能够将图像编码成128哥元素的一维特征向量,这个嵌入向量包含足够的特征信息来区分两个不同的人,最后,compare_faces计算两个嵌入向量之间的距离。它将允许算法识别从摄像头帧中提取的人脸,并将其嵌入向量与我们数据集中所有编码的人脸进行比较,距离最近的向量对应于同一个人。1. 已知人脸数据集编码在我的例子中,算法能够识别我和奥巴马,我为每个人挑选了大约10张照片。下面是