python 人脸识别
时间: 2023-08-29 08:12:25 浏览: 83
Python 中有很多优秀的人脸识别库,比如 OpenCV、dlib、face_recognition 等等。这里介绍一下使用 face_recognition 库实现人脸识别的方法。
1. 安装 face_recognition 库
可以使用 pip 直接安装 face_recognition 库。
```
pip install face_recognition
```
2. 准备训练数据
将需要识别的人脸图片放在同一个文件夹中,并将文件夹命名为该人的名字。例如,将张三的人脸图片放在名为“zhangsan”的文件夹中。
3. 训练模型
使用 face_recognition 库提供的 `face_encodings()` 方法,将训练数据转换为特征向量。特征向量是一个 128 维的向量,可以用于比较两张人脸的相似度。
```python
import face_recognition
# 加载训练数据
image = face_recognition.load_image_file("zhangsan.jpg")
# 获取特征向量
encoding = face_recognition.face_encodings(image)[0]
```
将所有人的训练数据特征向量保存起来,以便后续使用。
4. 识别人脸
使用 face_recognition 库提供的 `compare_faces()` 方法,比较两个人脸特征向量的相似度,从而判断是否为同一个人。
```python
import face_recognition
# 加载需要识别的人脸图片
unknown_image = face_recognition.load_image_file("unknown.jpg")
# 获取特征向量
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
# 加载训练数据
known_encodings = []
known_names = []
for name in ["zhangsan", "lisi", "wangwu"]:
image = face_recognition.load_image_file(name + ".jpg")
encoding = face_recognition.face_encodings(image)[0]
known_encodings.append(encoding)
known_names.append(name)
# 比较人脸相似度
results = face_recognition.compare_faces(known_encodings, unknown_encoding)
# 获取最相似的人脸
for i in range(len(results)):
if results[i]:
print("This is " + known_names[i])
break
```
以上就是使用 face_recognition 库实现人脸识别的基本流程。
阅读全文