CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时性别&脸部表情检测

目录

输出结果

设计思路

核心代码


输出结果

设计思路

核心代码

from statistics import modeimport cv2
from keras.models import load_model
import numpy as npdetection_model_path = '../trained_models/detection_models/haarcascade_frontalface_default.xml'emotion_model_path = '../trained_models/emotion_models/fer2013_mini_XCEPTION.102-0.66.hdf5'
gender_model_path = '../trained_models/gender_models/simple_CNN.81-0.96.hdf5'
emotion_labels = get_labels('fer2013')
gender_labels = get_labels('imdb')
font = cv2.FONT_HERSHEY_SIMPLEXframe_window = 10
gender_offsets = (30, 60)
emotion_offsets = (20, 40)face_detection = load_detection_model(detection_model_path)
emotion_classifier = load_model(emotion_model_path, compile=False)
gender_classifier = load_model(gender_model_path, compile=False)emotion_target_size = emotion_classifier.input_shape[1:3]
gender_target_size = gender_classifier.input_shape[1:3]gender_window = []
emotion_window = []cv2.namedWindow('window_frame_by_Jason_Niu')
# video_capture = cv2.VideoCapture(0)
video_capture = cv2.VideoCapture("F:\File_Python\Python_example\YOLOv3_use_TF\RunMan5.mp4")
while True:bgr_image = video_capture.read()[1]gray_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2GRAY) #分别将读取的图像进行灰化、RGB化处理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, gender_offsets) rgb_face = rgb_image[y1:y2, x1:x2]  x1, x2, y1, y2 = apply_offsets(face_coordinates, emotion_offsets)gray_face = gray_image[y1:y2, x1:x2]try:rgb_face = cv2.resize(rgb_face, (gender_target_size))gray_face = cv2.resize(gray_face, (emotion_target_size))except:continuegray_face = preprocess_input(gray_face, False)  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_text = emotion_labels[emotion_label_arg] emotion_window.append(emotion_text)     rgb_face = np.expand_dims(rgb_face, 0)rgb_face = preprocess_input(rgb_face, False)gender_prediction = gender_classifier.predict(rgb_face) gender_label_arg = np.argmax(gender_prediction)gender_text = gender_labels[gender_label_arg]gender_window.append(gender_text)if len(gender_window) > frame_window: emotion_window.pop(0)         gender_window.pop(0)try:emotion_mode = mode(emotion_window)gender_mode = mode(gender_window)except:continueif gender_text == gender_labels[0]:color = (0, 0, 255)else:color = (255, 0, 0)draw_bounding_box(face_coordinates, rgb_image, color) draw_text(face_coordinates, rgb_image, gender_mode,   color, 0, -20, 1, 4)draw_text(face_coordinates, rgb_image, emotion_mode,color, 0, -45, 1, 4)bgr_image = cv2.cvtColor(rgb_image, cv2.COLOR_RGB2BGR)  cv2.namedWindow("window_frame_by_Jason_Niu",0);cv2.resizeWindow("window_frame_by_Jason_Niu", 640, 380);cv2.imshow('window_frame_by_Jason_Niu', bgr_image)if cv2.waitKey(1) & 0xFF == ord('q'):break

CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时性别脸部表情检测相关推荐

  1. CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测

    CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测 目录 输出结果 实现代码 输出结果 实现代码 @author: niu ''' import cv ...

  2. CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测

    CV:利用cv2自带两步法haarcascade_frontalface_default.xml._smile.xml实现对人脸.笑脸同时检测 目录 输出结果 实现代码 输出结果 实现代码 #CV:利 ...

  3. Keras之CNN:基于Keras利用cv2建立训练存储卷积神经网络模型(2+1)并调用摄像头进行实时人脸识别

    Keras之CNN:基于Keras利用cv2建立训练存储卷积神经网络模型(2+1)并调用摄像头进行实时人脸识别 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 # -*- codin ...

  4. CV:基于Keras利用训练好的hdf5模型进行目标检测实现输出模型中的脸部表情或性别的gradcam(可视化)

    CV:基于Keras利用训练好的hdf5模型进行目标检测实现输出模型中的脸部表情或性别的gradcam(可视化) 目录 设计思路 核心代码 设计思路 核心代码 #CV:基于keras利用训练好的hdf ...

  5. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...

  6. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...

  7. 基于路网和GeoPandas的高斯两步移动搜索法可达性分析

    import warnings warnings.filterwarnings("ignore") import geopandas as gpd import pandas as ...

  8. PS利用调整图层只需两步为偏黄肤色MM调出水嫩效果

    1.打开原图,在图层调板上-创建新的调整图层-可选颜色,红色(青-20,洋红+15,黄-15,黑+15,方法:绝对);黄色(青+100,洋红+15,黄-15,黑-15,方法:绝对). 2.按键盘,ct ...

  9. AAAI2021论文:一个高性能3-D目标两步检测法Voxel R-CNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨黄浴@知乎 来源丨https://zhuanlan.zhihu.com/p/3453649291 ...

最新文章

  1. 大众点评数据平台架构变迁
  2. 零基础入门学习Python(8)-了不起的分支和循环3
  3. Event delegate
  4. curl 慢 不稳定_慢病毒包装步骤及注意事项
  5. UA MATH571A R语言回归分析实践 一元回归2 NBA球员的工资
  6. 如何将 CSV 导入到 SqlServer 中 ?
  7. 「Azure」数据分析师有理由爱Azure之二-立即申请帐号开始学习之旅
  8. 重学java基础第十六课:jdk jre jvm
  9. python判断点在矩形内_判断平面内矩形和圆是否有交点的python实现
  10. Android线程池的简单使用
  11. 大道至简:微众银行区块链全栈技术体系纵览
  12. 95.不同的二叉搜索数II(力扣leetcode) 博主可答疑该问题
  13. onvif协议讲解(一)
  14. python输出闰年_python写闰年
  15. python计算方位角_利用python计算太阳天顶角、方位角、高度角
  16. 从零开始:微信小程序零基础入门宝典
  17. java集合中取最大值_Java后台通过Collections获取list集合中最大数,最小数代码
  18. java中继承的介绍
  19. 我们是创业团队,实习前两月没钱,全栈每月800块!
  20. drl 规则语言 语法_C语言基本语法规则

热门文章

  1. weka: backwards with delete
  2. 修改Ubuntu和XP双系统时的默认启动系统
  3. SAP Customer Data Cloud(Gigya)的用户搜索实现
  4. 【译】Facebook 开源 Detectron
  5. 开源IT从业者最受欢迎5大技能
  6. 关于40位MD5加密的破解
  7. 太逗了,面试官让我讲线程 WAITING 状态!
  8. 我肝了一个月,给你写出了这本Java开发手册。
  9. Etcd 架构与实现解析
  10. 对Java Inputstream的一次采访