还记得我们之前写过一篇文章《手把手教你人脸识别自动开机》吗?里面用OpenCV对人脸进行简单的识别,让计算机训练认识到某个特定人物后识别对象。今天来做点高级的,识别出人脸的情绪。

本文分为两大部分:

1.面部检测:检测图像的脸部位置,输出边界框的坐标

2.情绪检测:将面部的情绪分为高兴、生气、悲伤、中性、惊讶、厌恶、恐惧。

一、面部检测

可以使用上次文章( 《手把手教你人脸识别自动开机》 )中讲到的方法—用openCV检测,也可以使用

这里我们尝试一下face_recognition项目, face_recognition 安装:

Face_recognition需要用到一个包叫dlib, 通过pip可能不一定装得上,因此这里推荐大家使用anaconda安装dlib:

conda install -c conda-forge dlib

然后再安装Face_recognition:

pip install face_recognition

用face_recognition三句代码就能识别图像中的脸部:

import face_recognition

image = face_recognition.load_image_file("1.png")

face_locations = face_recognition.face_locations(image)

二、情绪检测

人类习惯从面部表情中吸收非言语暗示,那么计算机可以吗?答案是肯定的,但是需要训练它学会识别情绪。今天我们不太可能讲收集数据、构建CNN模型等逻辑流程。我们直接用priya-dwivedi训练好的模型,他们用Kaggle开源数据集(人脸情感识别 FER)训练了一个六层卷积神经网络模型。

现在就调用模型识别一下孙哥在这张图里的情绪吧:

import face_recognition

import numpy as np

import cv2

from keras.models import load_model

emotion_dict= {'生气': 0, '悲伤': 5, '中性': 4, '厌恶': 1, '惊讶': 6, '恐惧': 2, '高兴': 3}

image = face_recognition.load_image_file("1.png")

# 载入图像

face_locations = face_recognition.face_locations(image)

# 寻找脸部

top, right, bottom, left = face_locations[0]

# 将脸部框起来

face_image = image[top:bottom, left:right]

face_image = cv2.resize(face_image, (48,48))

face_image = cv2.cvtColor(face_image, cv2.COLOR_BGR2GRAY)

face_image = np.reshape(face_image, [1, face_image.shape[0], face_image.shape[1], 1])

# 调整到可以进入该模型输入的大小

model = load_model("./model_v6_23.hdf5")

# 载入模型

predicted_class = np.argmax(model.predict(face_image))

# 分类情绪

label_map = dict((v,k) for k,v in emotion_dict.items())

predicted_label = label_map[predicted_class]

# 根据情绪映射表输出情绪

print(predicted_label)

结果:

$python emotion.py

高兴

从下面终端输出的结果我们可以看到孙哥现在是高兴的情绪,这个结果应该正确(毕竟孙哥还是表里如一的)。

虽然简单,但还是建议有兴趣的同学从头到尾做一遍试一下,过程中会遇到不少的坑,慢慢百度谷歌解决就好了。

文章到此就结束啦,如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看哦

有任何问题都可以在下方留言区留言,我们会耐心解答的!

​Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

原文来自Python实用宝典:Python 面部情绪识别

python图像人类检测_Python 超简单实现人类面部情绪的识别相关推荐

  1. python图像缺陷检测_python OpenCV 实现缺陷检测

    机器视觉第七次实验 一.实验目的 通过OpenCV第七次进行实验,对图片进行缺陷检测. 二.实验内容 对图片进行缺陷测量. 三.实验过程 我使用的是python语言+openCV对图片进行缺陷检测的功 ...

  2. python爬去新浪微博_Python 超简单爬取新浪微博数据 (高级版)

    新浪微博的数据可是非常有价值的,你可以拿来数据分析.拿来做网站.甚至是*.不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法.没关系,现在就教大家如何批量爬取微博的数据,大大加快数据迁 ...

  3. 视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT

    文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...

  4. python视觉识别_视觉显著性python_OpenCV—python 图像显著性检测算法—HC/RC/LC/FT

    文章目录 一.显著性检测研究现状 二.基于谱残差法的显著性检测 三.基于全局对比度图像显著性检测(LC) 2.1 基于直方图对比度的显著性检测(HC) 2.2 基于区域的对比度方法(region-ba ...

  5. 面试Python开发的这道题超简单,我却搞砸了!

    题图 | Shutterstock / studiostoks 这道算法题明明超简单-- 上午10点,在T公司的会议室里,小R正在参加一场他准备了好几天的技术面试. 整体来说,他在这场面试中的表现还不 ...

  6. 用python实现视频换脸_超简单使用Python换脸实例

    换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...

  7. python图像腐蚀处理_Python图像处理之膨胀与腐蚀的操作

    引言 膨胀与腐蚀是图像处理中两种最基本的形态学操作,膨胀将目标点融合到背景中,向外部扩展,腐蚀与膨胀意义相反,消除连通的边界,使边界向内收缩.在本文中我们将了解使用内核的图像膨胀与腐蚀的基本原理. 让 ...

  8. python打造excel神器_超简单:用Python让Excel飞起来

    前言 如何获取学习资源 章Python快速上手 1.1为什么要学习用Python控制Excel 1.2Python编程环境的搭建 1.2.1安装Python官方的编程环境IDLE 1.2.2安装与配置 ...

  9. python怎么编写在线excel_超简单:用Python让Excel飞起来(零基础学python,用python实现办公自动化)...

    王秀文,有超过6年的后端开发.运维开发经验,擅长Python.Node.js.Java.Go等主流编程语言.曾参与翻译Elasticsearch官方技术文档.有IoT系统开发经验和CRM系统设计开发经 ...

最新文章

  1. router-link标签学习
  2. oracle临时表读,Oracle之临时表详细解读
  3. android 图片变颜色代码,Android -对图片Drawable进行变色
  4. 酒鬼随机漫步(一个矢量类)
  5. 【渝粤教育】国家开放大学2018年秋季 0505-22T护理学基础 参考试题
  6. android学习的一点点网站资料
  7. Linux系统的启动过程(转)
  8. java processrequest_java-如何在camera2 API中使用reprocessCaptureRequest
  9. 拓端tecdat|【视频】R语言中的隐马尔可夫HMM模型实例
  10. 2021年,某云盘最新版不限速下载工具教程,亲测有效!
  11. 二阶系统响应指标图_频率响应介绍_二阶系统的频率响应
  12. 在JSP中使用CELL插件
  13. Android反射系统截图Api
  14. 计算机使用鼠标的课件,鼠标的基本操作ppt课件.ppt
  15. 对Dilated Convolution理解
  16. 配上新的pip源再来安装pytorch有如神助
  17. 编写程序,输入本金、年利率和年份,计算复利(结果保留2位小数)
  18. github优秀项目源码汇总---Android
  19. 高性能MySQL之 Chapter13
  20. struct page

热门文章

  1. DSGE笔记系列:Dynare基本应用(1)
  2. 【51汇编示例】 51汇编实现冒泡法;
  3. 微信代驾小程序的一些思考-去年的一个项目
  4. 市场数据统计与数据分析
  5. 基于jsp+mysql+ssm水果蔬菜销售系统-计算机毕业设计
  6. 分布式预约挂号平台(八) | 郑医宝の数据字典管理 后端 前端
  7. 订单中心表结构设计_SAP 常用表 MM PP SD FICO PM PS QM WM 等
  8. JavaScript相关图书推荐
  9. ACdream1072——Kill The Monster
  10. 【Android -- 开源库】SmartRefreshLayout 的基本使用