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中的静态方法与类成员方法
Feb 28 Python
python读取二进制mnist实例详解
May 31 Python
python3.6+django2.0开发一套学员管理系统
Mar 03 Python
Python 3.7新功能之dataclass装饰器详解
Apr 21 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
Feb 18 Python
基于多进程中APScheduler重复运行的解决方法
Jul 22 Python
Python安装selenium包详细过程
Jul 23 Python
在django admin中添加自定义视图的例子
Jul 26 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 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正确解析UTF-8字符串技巧应用
2012/11/07 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
php封装的smarty类完整实例
2016/10/19 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
JS的数组迭代方法
2015/02/05 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
JS实现太极旋转思路分析
2016/12/09 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
jenkins自动构建发布vue项目的方法步骤
2021/01/04 Vue.js
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
Python开发编码规范
2006/09/08 Python
python线程锁(thread)学习示例
2013/12/04 Python
Python下载指定页面上图片的方法
2016/05/12 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
技术副厂长岗位职责
2013/12/26 职场文书
产品包装策划方案
2014/05/18 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
学生自我评语
2015/01/04 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
用Python可视化新冠疫情数据
2022/01/18 Python