python人脸识别代码
时间: 2023-09-02 09:15:54 浏览: 90
以下是使用Python进行人脸识别的代码示例:
首先,需要安装OpenCV和face_recognition库。
```python
# 导入所需的库
import cv2
import face_recognition
# 加载已知的人脸图像和相应的标签
known_face_encodings = []
known_face_names = []
# 加载已知图像
image1 = face_recognition.load_image_file("person1.jpg")
image2 = face_recognition.load_image_file("person2.jpg")
# 获取已知图像的面部编码
face_encoding1 = face_recognition.face_encodings(image1)[0]
face_encoding2 = face_recognition.face_encodings(image2)[0]
# 将已知图像的面部编码和相应的标签添加到已知列表中
known_face_encodings.append(face_encoding1)
known_face_encodings.append(face_encoding2)
known_face_names.append("Person 1")
known_face_names.append("Person 2")
# 使用摄像头捕获图像并进行人脸识别
video_capture = cv2.VideoCapture(0)
while True:
# 获取一帧图像
ret, frame = video_capture.read()
# 转换图像颜色空间
rgb_frame = frame[:, :, ::-1]
# 找到该帧图像中的面部特征点和面部编码
face_locations = face_recognition.face_locations(rgb_frame)
face_encodings = face_recognition.face_encodings(rgb_frame, face_locations)
# 遍历每个面部编码
for face_encoding in face_encodings:
# 比较该面部编码是否与已知的面部编码匹配
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
# 如果找到匹配项,则使用标签进行识别
if True in matches:
first_match_index = matches.index(True)
name = known_face_names[first_match_index]
else:
name = "Unknown"
# 在该帧图像中绘制面部边框和标签
top, right, bottom, left = face_locations[0]
cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)
cv2.putText(frame, name, (left + 6, bottom - 6), cv2.FONT_HERSHEY_DUPLEX, 1.0, (255, 255, 255), 1)
# 显示输出图像
cv2.imshow('Video', frame)
# 按“q”键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源并关闭窗口
video_capture.release()
cv2.destroyAllWindows()
```
在此示例中,我们首先加载已知的人脸图像并获取它们的面部编码。然后,我们使用摄像头捕获图像并使用face_recognition库查找每个图像中的面部特征点和面部编码。然后,我们将每个面部编码与已知的面部编码进行比较,并使用相应的标签进行识别。最后,我们在每个已识别的面部周围绘制边框并显示输出图像。
阅读全文