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实现SMTP邮件发送功能
Jun 16 Python
python万年历实现代码 含运行结果
May 20 Python
Python解析并读取PDF文件内容的方法
May 08 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
使用Python实现画一个中国地图
Nov 23 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python如何使用内置库matplotlib绘制折线图
Feb 24 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
Python select及selectors模块概念用法详解
Jun 22 Python
python如何绘制疫情图
Sep 16 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
Oct 10 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
PHP写的资源下载防盗链类分享
2014/05/12 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
javawscript 三级菜单的实现原理
2009/07/01 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
Vue如何引入远程JS文件
2017/04/20 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
2020/11/05 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
粗加工管理制度
2014/02/04 职场文书
渔夫的故事教学反思
2014/02/14 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
庆祝教师节活动总结
2015/03/23 职场文书