python 实现表情识别


Posted in Python onNovember 21, 2020

表情识别

表情识别支持7种表情类型,生气、厌恶、恐惧、开心、难过、惊喜、平静等。

实现思路

使用OpenCV识别图片中的脸,在使用keras进行表情识别。

效果预览

python 实现表情识别

实现代码

与《性别识别》相似,本文表情识别也是使用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 实现表情识别的详细内容,更多关于python 表情识别的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python 正则表达式 概述及常用字符
May 04 Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 Python
python 系统调用的实例详解
Jul 11 Python
Pycharm导入Python包,模块的图文教程
Jun 13 Python
关于python写入文件自动换行的问题
Jun 23 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
python属于解释语言吗
Jun 11 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
如何使用python自带IDLE的几种方法
Oct 10 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
python基于opencv 实现图像时钟
Jan 04 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 Python
python 实现性别识别
Nov 21 #Python
python遍历路径破解表单的示例
Nov 21 #Python
Python如何批量生成和调用变量
Nov 21 #Python
在终端启动Python时报错的解决方案
Nov 20 #Python
python 批量下载bilibili视频的gui程序
Nov 20 #Python
Python ellipsis 的用法详解
Nov 20 #Python
python 动态渲染 mysql 配置文件的示例
Nov 20 #Python
You might like
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
js获取窗口相对于屏幕左边和上边的位置坐标
2014/05/15 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
详解js正则表达式验证时间格式xxxx-xx-xx形式
2018/02/09 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
Python中使用中文的方法
2011/02/19 Python
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python+django实现文件上传
2016/01/17 Python
python实现二维插值的三维显示
2018/12/17 Python
详解Python中is和==的区别
2019/03/21 Python
python中append实例用法总结
2019/07/30 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
美国新兴城市生活方式零售商:VILLA
2017/12/06 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
试用期转正鉴定评语
2014/01/27 职场文书
中学生班主任评语
2014/01/30 职场文书
药店主任岗位责任制
2014/02/10 职场文书
护士自我鉴定总结
2014/03/24 职场文书
四风问题个人自查剖析材料思想汇报
2014/09/21 职场文书
新郎婚礼致辞
2015/07/27 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android