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实现扫描端口示例
Mar 29 Python
Python常见数据结构详解
Jul 24 Python
python实现的简单猜数字游戏
Apr 04 Python
Python实现KNN邻近算法
Jan 28 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
深入浅析Python传值与传址
Jul 10 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
通过python实现弹窗广告拦截过程详解
Jul 10 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
解决在keras中使用model.save()函数保存模型失败的问题
May 21 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 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中Date获取时间不正确怎么办
2008/06/05 PHP
PHP Include文件实例讲解
2019/02/15 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
JavaScript使用FileReader实现图片上传预览效果
2020/03/27 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
haskell实现多线程服务器实例代码
2013/11/26 Python
python删除过期文件的方法
2015/05/29 Python
python编程开发之类型转换convert实例分析
2015/11/13 Python
Form表单及django的form表单的补充
2019/07/25 Python
Python学习笔记之Break和Continue用法分析
2019/08/14 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
班组长的岗位职责
2013/12/09 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
2015毕业设计工作总结
2015/07/24 职场文书
高中政治教学反思
2016/02/23 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP