您好,登錄后才能下訂單哦!
這篇文章給大家介紹利用python 如何識別圖片中人物的表情,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
實現思路
使用OpenCV識別圖片中的臉,在使用keras進行表情識別。
效果預覽
實現代碼
使用keras實現的,和性別識別相同,型數據使用的是oarriaga/face_classification的,代碼如下:
#coding=utf-8 #表情識別 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:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_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 如何識別圖片中人物的表情就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。