给我写一个python人脸表情识别代码
时间: 2023-06-05 19:08:55 浏览: 185
python人脸表情识别
5星 · 资源好评率100%
好的,以下是一个简单的 Python 人脸表情识别代码实现,使用了 OpenCV 和 Keras:
```python
import cv2
import numpy as np
from keras.models import load_model
# 加载已经训练好的神经网络模型
model = load_model('model.h5')
# 定义人脸和表情分类器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
emotions = ['Angry', 'Disgust', 'Fear', 'Happy', 'Sad', 'Surprise', 'Neutral']
# 打开摄像头进行实时人脸表情识别
cap = cv2.VideoCapture(0)
while True:
ret, img = cap.read()
if not ret:
break
# 进行人脸检测
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 对每个检测到的人脸进行表情识别
for (x,y,w,h) in faces:
face_img = gray[y:y+h, x:x+w]
face_img = cv2.resize(face_img, (48, 48))
face_img = np.reshape(face_img, [1, 48, 48, 1])
face_img = face_img/255.0
emotion = model.predict(face_img)
emotion_label = emotions[np.argmax(emotion)]
# 在图片上绘制人脸检测框和表情标签
cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
cv2.putText(img, emotion_label, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 1, (255,0,0), 2, cv2.LINE_AA)
# 显示实时视频流
cv2.imshow('img', img)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
```
请注意,这只是一个简单的实现,实际的人脸表情识别系统需要更复杂的算法和数据集,才能获得更准确的结果。
阅读全文