python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书

本文介绍了如何使用Python、Keras和OpenCV实现一种基于眨眼检测的人脸活体检测算法,以防止照片欺骗。通过检测眨眼行为来区分真实面部和照片,从而增强人脸识别系统的安全性。利用预训练的模型和OpenCV的Haar级联分类器进行人脸和眼睛检测,并训练LeNet-5模型来识别眼睛状态。最终,结合眼睛状态历史记录检测眨眼,实现活体检测功能。
摘要由CSDN通过智能技术生成

你在互联网上找到的大多数人脸识别算法和研究论文都会遭受照片***。这些方法在检测和识别来自网络摄像头的图像、视频和视频流中的人脸方面是很是有效,可是他们没法区分现实生活中的面孔和照片上的面孔。这种没法区别现实人脸的现象是因为这些算法是在二维帧上工做的。

如今让咱们去试想一下,咱们实现一我的脸识别系统,该系统能够很好地区分已知面孔和未知面孔,以便只有受权人员才能访问,尽管如此,一个心怀不轨的人只要出示受权人的照片也能访问。至此一个3D人脸的识别系统,相似于苹果的FaceID,应运而生了,但若是咱们没有3D探测器该怎么办呢?

本文的目标是实现一种基于眨眼检测的人脸活体检测算法,以抵抗照片***。该算法经过网络摄像头实时工做,经过检测眨眼来区分现实生活中的面孔和照片上的面孔。通俗地说,程序运行以下:html

在网络摄像头生成的每一个帧中检测人脸。

对于每一个检测到的脸,检测眼睛。

对于每一个检测到的眼睛,检测眼睛是否睁开或关闭。

若是在某个时候检测到眼睛是睁开的,而后是闭着的,而后是睁开的,咱们就判定此人已经眨了眼睛,而且程序显示他的名字(若是是人脸识别开门器,咱们将受权此人进入)。

对于人脸的检测和识别,你须要安装face_recognition库,它提供了很是有用的深度学习方法来查找和识别图像中的人脸,特别是,face_locations、face_encodings和compare_faces函数是最有用的3个函数。人脸定位方法能够用两种方法来检测人脸:方向梯度直方图(HoG)和卷积神经网络(CNN),因为时间限制,选择了HoG方法。

face_encodings函数是一个预先训练的卷积神经网络,可以将图像编码成128哥元素的一维特征向量,这个嵌入向量包含足够的特征信息来区分两个不一样的人,最后,compare_faces计算两个嵌入向量之间的距离。它将容许算法识别从摄像头帧中提取的人脸,并将其嵌入向量与咱们数据集中全部编码的人脸进行比较,距离最近的向量对应于同一我的。

1. 已知人脸数据集编码

在个人例子中,算法可以识别我和奥巴马,我为每一个人挑选了大约10张照片。下面是处理和编码已知人脸数据库的代码。

def process_and_encode(images):

known_encodings = []

known_names = []

print("[LOG] Encoding dataset ...")python

for image_path in tqdm(images):

# 加载图片

image = cv2.imread(image_path)

# 将其从BGR转换为RGB

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 检测图像中的脸并获取其位置(方框坐标)

boxes = face_recognition.face_locations(image, model='hog')

# 将人脸编码为128维嵌入向量

encoding = face_recognition.face_encodings(image, boxes)

# 人物名称是图像来源文件夹的名称

name = image_path.split(os.path.sep)[-2]

if len(encoding) > 0 :

known_encodings.append(encoding[0])

known_names.append(name)

return {"encodings": known_encodings, "name

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值