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 文件和路径操作函数小结
Nov 23 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 Python
Python的SQLAlchemy框架使用入门
Apr 29 Python
Python中字典映射类型的学习教程
Aug 20 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
python处理csv中的空值方法
Jun 22 Python
六行python代码的爱心曲线详解
May 17 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
keras 自定义loss model.add_loss的使用详解
Jun 22 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
如何使用PyCharm及常用配置详解
Jun 03 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
php实现的AES加密类定义与用法示例
2018/01/29 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
js 内存释放问题
2010/04/25 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
使用python实现strcmp函数功能示例
2014/03/25 Python
python获取图片颜色信息的方法
2015/03/18 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python for循环生成列表的实例
2018/06/15 Python
python实现停车管理系统
2018/11/30 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
python中的列表与元组的使用
2019/08/08 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
np.random.seed() 的使用详解
2020/01/14 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
使用canvas一步步实现图片打码功能的方法
2019/06/17 HTML / CSS
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
高三自我鉴定
2013/10/23 职场文书
培训班主持词
2014/03/28 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
就业协议书范本
2014/10/08 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
nginx rewrite功能使用场景分析
2022/05/30 Servers