加载人脸检测模型和性别、年龄识别模型代码
时间: 2024-02-07 08:03:02 浏览: 89
以下是使用OpenCV加载基于Haar特征的级联分类器人脸检测模型和基于深度学习的性别、年龄识别模型的示例代码:
```python
import cv2
# 加载人脸检测模型
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 加载性别、年龄识别模型
age_net = cv2.dnn.readNetFromCaffe('age_deploy.prototxt', 'age_net.caffemodel')
gender_net = cv2.dnn.readNetFromCaffe('gender_deploy.prototxt', 'gender_net.caffemodel')
# 读取图像并进行人脸检测
img = cv2.imread('test.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 对检测到的人脸进行性别、年龄识别
for (x,y,w,h) in faces:
face_img = img[y:y+h, x:x+w].copy()
blob = cv2.dnn.blobFromImage(face_img, 1, (227, 227), MODEL_MEAN_VALUES, swapRB=False)
gender_net.setInput(blob)
gender_preds = gender_net.forward()
gender = GENDER_LIST[gender_preds[0].argmax()]
age_net.setInput(blob)
age_preds = age_net.forward()
age = int(age_preds[0][0])
# 在图像上绘制人脸框和性别、年龄信息
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
label = "{},{}".format(gender, age)
cv2.putText(img, label, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2, cv2.LINE_AA)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
需要注意的是,该代码中的`GENDER_LIST`和`MODEL_MEAN_VALUES`需要根据具体的模型文件进行修改。
阅读全文