資源簡介
基于深度學習的表情識別,內含基于cv2的人臉檢測分類器,以及訓練好的模型,能識別檢測出七種人臉表情。

代碼片段和文件信息
from?statistics?import?mode
import?cv2
from?keras.models?import?load_model
import?numpy?as?np
from?src.utils.datasets?import?get_labels
from?src.utils.inference?import?detect_faces
from?src.utils.inference?import?draw_text
from?src.utils.inference?import?draw_bounding_box
from?src.utils.inference?import?apply_offsets
from?src.utils.inference?import?load_detection_model
from?src.utils.preprocessor?import?preprocess_input
#?面部表情識別分類
#?parameters?for?loading?data?and?images
detection_model_path?=?‘../trained_models/detection_models/haarcascade_frontalface_default.xml‘
emotion_model_path?=?‘../trained_models/emotion_models/fer2013_mini_XCEPTION.102-0.66.hdf5‘
emotion_labels?=?get_labels(‘fer2013‘)
#?hyper-parameters?for?bounding?boxes?shape
frame_window?=?10
emotion_offsets?=?(20?40)
#?loading?models
face_detection?=?load_detection_model(detection_model_path)
emotion_classifier?=?load_model(emotion_model_path?compile=False)
#?getting?input?model?shapes?for?inference
emotion_target_size?=?emotion_classifier.input_shape[1:3]
#?starting?lists?for?calculating?modes
emotion_window?=?[]
#?starting?video?streaming
cv2.namedWindow(‘window_frame‘)
video_capture?=?cv2.VideoCapture(0)
while?True:
????bgr_image?=?video_capture.read()[1]
????gray_image?=?cv2.cvtColor(bgr_image?cv2.COLOR_BGR2GRAY)
????rgb_image?=?cv2.cvtColor(bgr_image?cv2.COLOR_BGR2RGB)
????faces?=?detect_faces(face_detection?gray_image)
????for?face_coordinates?in?faces:
????????x1?x2?y1?y2?=?apply_offsets(face_coordinates?emotion_offsets)
????????gray_face?=?gray_image[y1:y2?x1:x2]
????????try:
????????????gray_face?=?cv2.resize(gray_face?(emotion_target_size))
????????except:
????????????continue
????????gray_face?=?preprocess_input(gray_face?True)
????????gray_face?=?np.expand_dims(gray_face?0)
????????gray_face?=?np.expand_dims(gray_face?-1)
????????emotion_prediction?=?emotion_classifier.predict(gray_face)
????????emotion_probability?=?np.max(emotion_prediction)
????????emotion_label_arg?=?np.argmax(emotion_prediction)
????????emotion_text?=?emotion_labels[emotion_label_arg]
????????emotion_window.append(emotion_text)
????????if?len(emotion_window)?>?frame_window:
????????????emotion_window.pop(0)
????????try:
????????????emotion_mode?=?mode(emotion_window)
????????except:
????????????continue
????????if?emotion_text?==?‘angry‘:
????????????color?=?emotion_probability?*?np.asarray((255?0?0))
????????elif?emotion_text?==?‘sad‘:
????????????color?=?emotion_probability?*?np.asarray((0?0?255))
????????elif?emotion_text?==?‘happy‘:
????????????color?=?emotion_probability?*?np.asarray((255?255?0))
????????elif?emotion_text?==?‘surprise‘:
????????????color?=?emotion_probability?*?np.asarray((0?255?255))
????????else:
????????????color?=?emotion_probability?*?np.asarray((0?255?0))
????????color?=?color.astype(int)
????????color?=?color.tolist()
????????draw_bounding_box(face_coordinates?rgb_image?color)
????????draw_text(face_coordinates?rgb_image?emotion_m
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????930127??2018-10-23?15:13??表情識別檢測\haarcascade_frontalface_default.xm
?????文件????????3218??2018-12-25?09:54??表情識別檢測\video_emotion_color_demo.py
?????文件????????3672??2018-12-25?09:54??表情識別檢測\video_emotion_gender_demo.py
?????目錄???????????0??2018-12-25?10:46??表情識別檢測\
- 上一篇:軟件學院第六次上機
- 下一篇:虛擬機linux和開發板網卡通信.pdf
評論
共有 條評論