python人脸识别示例
时间: 2023-08-27 07:07:07 浏览: 104
以下是一个基于Python OpenCV和face_recognition库的人脸识别示例:
1. 安装OpenCV和face_recognition库
在命令行中输入以下命令:
```
pip install opencv-python
pip install face_recognition
```
2. 下载示例图片和模型文件
下载示例图片和模型文件,保存在同一个文件夹中。示例图片包括两张人脸照片,分别为“Obama.jpg”和“Trump.jpg”。模型文件为“face_recognition_model.dat”。
3. 编写代码
```python
import cv2
import face_recognition
# 加载示例图片和模型文件
obama_image = face_recognition.load_image_file("Obama.jpg")
trump_image = face_recognition.load_image_file("Trump.jpg")
face_encodings = []
face_encodings.append(face_recognition.face_encodings(obama_image)[0])
face_encodings.append(face_recognition.face_encodings(trump_image)[0])
# 打开摄像头
video_capture = cv2.VideoCapture(0)
while True:
# 读取一帧图像
ret, frame = video_capture.read()
# 将图像从BGR转换为RGB
rgb_frame = frame[:, :, ::-1]
# 检测人脸
face_locations = face_recognition.face_locations(rgb_frame)
# 对于每个检测到的人脸,进行人脸识别
for face_location in face_locations:
# 提取人脸特征
face_encoding = face_recognition.face_encodings(rgb_frame, [face_location])[0]
# 将人脸特征与已知人脸进行比对
matches = face_recognition.compare_faces(face_encodings, face_encoding)
# 找到最佳匹配的人脸
best_match_index = matches.index(True)
# 标注人脸
top, right, bottom, left = face_location
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
cv2.putText(frame, "Unknown" if best_match_index == -1 else ["Obama", "Trump"][best_match_index], (left, top - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
# 显示图像
cv2.imshow('Video', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放摄像头
video_capture.release()
# 关闭窗口
cv2.destroyAllWindows()
```
4. 运行程序
在命令行中输入以下命令:
```
python face_recognition_example.py
```
程序将打开摄像头,检测人脸并进行人脸识别。在图像中,已知的人脸将被标注为“Obama”或“Trump”,未知的人脸将被标注为“Unknown”。按下q键退出程序。
阅读全文