python表情识别程序_python 实现表情识别
表情識(shí)別
表情識(shí)別支持7種表情類型,生氣、厭惡、恐懼、開心、難過、驚喜、平靜等。
實(shí)現(xiàn)思路
使用OpenCV識(shí)別圖片中的臉,在使用keras進(jìn)行表情識(shí)別。
效果預(yù)覽
實(shí)現(xiàn)代碼
與《性別識(shí)別》相似,本文表情識(shí)別也是使用keras實(shí)現(xiàn)的,和性別識(shí)別相同,型數(shù)據(jù)使用的是oarriaga/face_classification的,代碼如下:
#coding=utf-8
#表情識(shí)別
import cv2
from keras.models import load_model
import numpy as np
import chineseText
import datetime
startTime = datetime.datetime.now()
emotion_classifier = load_model(
"classifier/emotion_models/simple_CNN.530-0.65.hdf5")
endTime = datetime.datetime.now()
print(endTime - startTime)
emotion_labels = {
0: "生氣",
1: "厭惡",
2: "恐懼",
3: "開心",
4: "難過",
5: "驚喜",
6: "平靜"
}
img = cv2.imread("img/emotion/emotion.png")
face_classifier = cv2.CascadeClassifier(
"C:Python36Libsite-packagesopencv-masterdatahaarcascadeshaarcascade_frontalface_default.xml"
)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_classifier.detectMultiScale(
gray, scaleFactor=1.2, minNeighbors=3, minSize=(40, 40))
color = (255, 0, 0)
for (x, y, w, h) in faces:
gray_face = gray[(y):(y + h), (x):(x + w)]
gray_face = cv2.resize(gray_face, (48, 48))
gray_face = gray_face / 255.0
gray_face = np.expand_dims(gray_face, 0)
gray_face = np.expand_dims(gray_face, -1)
emotion_label_arg = np.argmax(emotion_classifier.predict(gray_face))
emotion = emotion_labels[emotion_label_arg]
cv2.rectangle(img, (x + 10, y + 10), (x + h - 10, y + w - 10),
(255, 255, 255), 2)
img = chineseText.cv2ImgAddText(img, emotion, x + h * 0.3, y, color, 20)
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
以上就是python 實(shí)現(xiàn)表情識(shí)別的詳細(xì)內(nèi)容,更多關(guān)于python 表情識(shí)別的資料請(qǐng)關(guān)注云海天教程其它相關(guān)文章!
原文鏈接:https://github.com/vipstone/faceai/blob/master/doc/emotion.md
總結(jié)
以上是生活随笔為你收集整理的python表情识别程序_python 实现表情识别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java笔记05-Collection、
- 下一篇: win10易升_易升win10失败怎么办