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 11 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
django实现前后台交互实例
Aug 07 Python
Python3中条件控制、循环与函数的简易教程
Nov 21 Python
Python实现批量压缩图片
Jan 25 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
May 18 Python
利用Python实现微信找房机器人实例教程
Mar 10 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
python Matplotlib基础--如何添加文本和标注
Jan 26 Python
python批量更改目录名/文件名的方法
Apr 18 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
2021年最新CPU天梯图
2021/03/04 数码科技
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
php判断目录存在的简单方法
2019/09/26 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
JavaScript中提前声明变量或函数例子
2014/11/12 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
window.onload使用指南
2015/09/13 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
Python之Numpy的超实用基础详细教程
2019/10/23 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
python和js交互调用的方法
2020/06/23 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
外贸销售员求职的自我评价
2013/11/23 职场文书
公司清洁工岗位职责
2013/12/14 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
教师节慰问信
2015/02/15 职场文书
个人年度总结报告
2015/03/09 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
开会通知
2015/04/20 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang