CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时性别脸部表情检测
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自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时性别脸部表情检测相关推荐
- CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测
CV:利用cv2自带两步法haarcascade_frontalcatface.xml实现对猫脸检测 目录 输出结果 实现代码 输出结果 实现代码 @author: niu ''' import cv ...
- CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测
CV:利用cv2自带两步法haarcascade_frontalface_default.xml._smile.xml实现对人脸.笑脸同时检测 目录 输出结果 实现代码 输出结果 实现代码 #CV:利 ...
- Keras之CNN:基于Keras利用cv2建立训练存储卷积神经网络模型(2+1)并调用摄像头进行实时人脸识别
Keras之CNN:基于Keras利用cv2建立训练存储卷积神经网络模型(2+1)并调用摄像头进行实时人脸识别 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 # -*- codin ...
- CV:基于Keras利用训练好的hdf5模型进行目标检测实现输出模型中的脸部表情或性别的gradcam(可视化)
CV:基于Keras利用训练好的hdf5模型进行目标检测实现输出模型中的脸部表情或性别的gradcam(可视化) 目录 设计思路 核心代码 设计思路 核心代码 #CV:基于keras利用训练好的hdf ...
- CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下
CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...
- CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下
CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...
- 基于路网和GeoPandas的高斯两步移动搜索法可达性分析
import warnings warnings.filterwarnings("ignore") import geopandas as gpd import pandas as ...
- PS利用调整图层只需两步为偏黄肤色MM调出水嫩效果
1.打开原图,在图层调板上-创建新的调整图层-可选颜色,红色(青-20,洋红+15,黄-15,黑+15,方法:绝对);黄色(青+100,洋红+15,黄-15,黑-15,方法:绝对). 2.按键盘,ct ...
- AAAI2021论文:一个高性能3-D目标两步检测法Voxel R-CNN
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨黄浴@知乎 来源丨https://zhuanlan.zhihu.com/p/3453649291 ...
最新文章
- 大众点评数据平台架构变迁
- 零基础入门学习Python(8)-了不起的分支和循环3
- Event delegate
- curl 慢 不稳定_慢病毒包装步骤及注意事项
- UA MATH571A R语言回归分析实践 一元回归2 NBA球员的工资
- 如何将 CSV 导入到 SqlServer 中 ?
- 「Azure」数据分析师有理由爱Azure之二-立即申请帐号开始学习之旅
- 重学java基础第十六课:jdk jre jvm
- python判断点在矩形内_判断平面内矩形和圆是否有交点的python实现
- Android线程池的简单使用
- 大道至简:微众银行区块链全栈技术体系纵览
- 95.不同的二叉搜索数II(力扣leetcode) 博主可答疑该问题
- onvif协议讲解(一)
- python输出闰年_python写闰年
- python计算方位角_利用python计算太阳天顶角、方位角、高度角
- 从零开始:微信小程序零基础入门宝典
- java集合中取最大值_Java后台通过Collections获取list集合中最大数,最小数代码
- java中继承的介绍
- 我们是创业团队,实习前两月没钱,全栈每月800块!
- drl 规则语言 语法_C语言基本语法规则