写一个人脸识别的python的代码
时间: 2024-03-26 19:35:27 浏览: 11
下面是一个基于Python的简单人脸识别代码,使用OpenCV和dlib库实现:
```python
import cv2
import dlib
# 加载人脸检测器和人脸关键点检测器
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat')
# 加载训练好的人脸识别模型
face_recognition_model = dlib.face_recognition_model_v1('dlib_face_recognition_resnet_model_v1.dat')
# 读取样本图片和待识别图片
img1 = cv2.imread('sample1.jpg')
img2 = cv2.imread('sample2.jpg')
# 对样本图片进行人脸特征提取
faces = detector(img1, 1)
face_descriptors = []
for face in faces:
shape = predictor(img1, face)
face_descriptor = face_recognition_model.compute_face_descriptor(img1, shape)
face_descriptors.append(face_descriptor)
# 对待识别图片进行人脸特征提取
faces = detector(img2, 1)
for face in faces:
shape = predictor(img2, face)
face_descriptor = face_recognition_model.compute_face_descriptor(img2, shape)
# 对待识别人脸特征与样本人脸特征进行比对
distances = []
for fd in face_descriptors:
distance = np.linalg.norm(np.array(face_descriptor) - np.array(fd))
distances.append(distance)
min_distance = min(distances)
# 判断是否为同一个人
if min_distance < 0.5:
print('Same person')
else:
print('Different person')
```
需要注意的是,上述代码仅作为人脸识别的简单示例,实际应用需要考虑更多的因素,例如人脸姿态、光照条件、图像质量等。同时,还需要注意保护用户隐私和数据安全。