人脸识别:Python 实现

人脸识别是人工智能(AI)的一项重要功能,它可以让电脑识别一个人是谁。在这篇文章中,我们将介绍如何使用Python来实现人脸识别功能。

使用openCV实现

OpenCV是一个开源库,它支持图像处理,计算机视觉和机器学习等多种应用,包括人脸识别。下面我们就以OpenCV来实现一个简单的人脸识别功能。

准备工作

首先,我们需要安装OpenCV库和Python的各种相关的包,如下:

pip install opencv-python
pip install opencv-contrib-python
pip install numpy

然后,我们需要准备一些样本照片,它们将用于训练模型,并且最终检测出谁是谁。只有在样本照片中出现的人,才能被识别出来。

训练模型

下一步,我们就需要训练模型来实现人脸识别了,我们使用OpenCV的face_recognition模块来训练模型。如下:

import cv2

# 读取样本照片,存入列表
images = []

for i in range(1, 5):
  image = cv2.imread('sample' + str(i) + '.jpg')
  images.append(image)

# 训练模型
model = cv2.face.createFisherFaceRecognizer()
model.train(images, labels)

人脸识别

在完成模型训练之后,我们就可以开始对摄像头读取到的图像进行人脸识别了。我们可以使用OpenCV的detectMultiScale来找出图像中的人脸,并且使用predict函数来预测出此人的身份。

import cv2

# 读取图片
image = cv2.imread('input.jpg')

# 找出图片中的人脸
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

# 预测每一张脸的身份
for (x, y, w, h) in faces:
  roi = gray[y:y + h, x:x + w]
  label = model.predict(roi)
  print(label)

结论

本文介绍了如何使用Python来实现人脸识别功能。我们使用OpenCV模块来训练模型,并使用detectMultiScale来找出人脸,最后使用predict来预测出每一张脸的身份。