Python写一个人脸识别
时间: 2024-03-06 09:19:41 浏览: 60
作为AI语言的Python,自然可以用来编写人脸识别程序。下面是一个使用OpenCV和Dlib库实现人脸识别的Python程序:
```python
import cv2
import dlib
# 加载人脸检测器
detector = dlib.get_frontal_face_detector()
# 加载人脸关键点检测器
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 加载人脸识别模型
facerec = dlib.face_recognition_model_v1("dlib_face_recognition_resnet_model_v1.dat")
# 加载测试图片
img = cv2.imread("test.jpg")
# 进行人脸检测
dets = detector(img, 1)
# 遍历检测到的人脸
for i, d in enumerate(dets):
# 提取人脸关键点
shape = predictor(img, d)
# 提取人脸特征向量
face_descriptor = facerec.compute_face_descriptor(img, shape)
# 在图像中绘制人脸框和关键点
cv2.rectangle(img, (d.left(), d.top()), (d.right(), d.bottom()), (0, 255, 0), 2)
for j in range(68):
x, y = shape.part(j).x, shape.part(j).y
cv2.circle(img, (x, y), 2, (0, 0, 255), -1)
# 在图像中显示人脸特征向量
for k in range(len(face_descriptor)):
cv2.putText(img, str(round(face_descriptor[k], 2)), (10, 20+k*20), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)
# 显示处理后的图像
cv2.imshow("image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这个程序可以进行人脸检测、人脸关键点检测和人脸识别,最终在图像中显示人脸框和关键点,并在图像中显示人脸特征向量。程序中用到了OpenCV和Dlib库,需要先安装这两个库才能运行程序。