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模块学习 re 正则表达式
May 19 Python
wxPython窗口的继承机制实例分析
Sep 28 Python
几行Python代码爬取3000+上市公司的信息
Jan 24 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
Python向excel中写入数据的方法
May 05 Python
Python list运算操作代码实例解析
Jan 20 Python
python实现将中文日期转换为数字日期
Jul 14 Python
编写python程序的90条建议
Apr 14 Python
使用Django实现商城验证码模块的方法
Jun 01 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
Python数组变形的几种实现方法
May 30 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新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP优于Node.js的五大理由分享
2012/09/15 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JSON 学习之完全手册 图文
2007/05/29 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
小程序封装wx.request请求并创建接口管理文件的实现
2019/04/29 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
Vue computed 计算属性代码实例
2020/04/22 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
Python yield 使用浅析
2015/05/28 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python手机号码归属地查询代码
2016/05/04 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python for循环中的陷阱详解
2018/07/13 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
Urban Outfitters德国官网:美国跨国生活方式零售公司
2018/05/21 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
经费申请报告范文
2015/05/18 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
入党申请书怎么写?
2019/06/21 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL