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中apply函数的用法实例教程
Jul 31 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
python自动化之Ansible的安装教程
Jun 13 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python3如何对urllib和urllib2进行重构
Nov 25 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
python如何设置静态变量
Sep 07 Python
python两种注释用法的示例
Oct 09 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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求小于1000的所有水仙花数的代码
2012/01/10 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
web 页面分页打印的实现
2009/06/22 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
Python实现数据库编程方法详解
2015/06/09 Python
Python heapq使用详解及实例代码
2017/01/25 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
Python爬虫防封ip的一些技巧
2020/08/06 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
ORACLE十问
2015/04/20 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
计算机应用职专应届生求职信
2013/11/12 职场文书
基督教婚礼主持词
2014/03/14 职场文书
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
入股合作协议书
2014/10/12 职场文书
党委工作总结2015
2015/04/27 职场文书
电工生产实习心得体会
2016/01/22 职场文书
nginx基于域名,端口,不同IP的虚拟主机设置的实现
2021/03/31 Servers
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
python中 .npy文件的读写操作实例
2022/04/14 Python