首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 超简单实现人类面部情绪的识别

本文分为两大部分:

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

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

一、面部检测

可以使用上次文章(《手把手教你人脸识别自动开机》)中讲到的方法—用openCV检测,也可以使用face_recognition项目非常简单地实现面部检测。

face_recognition项目地址:https://github.com/ageitgey/face_recognition

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

conda install -c conda-forge dlib

然后再安装Face_recognition:

pip install face_recognition

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

二、情绪检测

人类习惯从面部表情中吸收非言语暗示,那么计算机可以吗?答案是肯定的,但是需要训练它学会识别情绪。今天我们不太可能讲收集数据、构建CNN模型等逻辑流程,事实上,这个流程其实和我们上次《手把手教你人脸识别自动开机》中做的方法类似,只不过需要收集一个情绪数据集。

由于时间关系,我们直接用priya-dwivedi训练好的模型,他们用Kaggle开源数据集(人脸情感识别 FER)训练了一个六层卷积神经网络模型。他们的项目源代码:

github.com/priya-dwivedi/face_and_emotion_detection

现在就调用模型识别一下孙哥在这张图里的情绪吧,调用方法如下代码所示,如果有读不懂的地方建议留言提问,代码中的 1.png 即这张孙哥图片。

emoiton.py :

结果:

$python emotion.py

高兴

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

如果你喜欢今天的Python 教程,请持续关注Python实用宝典,如果对你有帮助,麻烦在下面点一个赞/在看,有任何问题都可以在下方留言,我们会耐心解答的!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191017A0QZQM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券