基于图像的面部表情识别

fer的Python项目详细描述


FER

面部表情识别。

image

PyPI versionBuild StatusDownloads

安装

目前,fer只支持python 3.6以后的版本。可以安装 通过PIP:

$ pip install fer

此实现要求opencv>;=3.2和tensorflow>;=1.7.0 安装在系统中,具有python3的绑定。

它们可以通过PIP安装(如果PIP版本>;=9.0.1):

$ pip install tensorflow>=1.7 opencv-contrib-python==3.3.0.9

或直接从源代码编译 (OpenCV3Tensorflow)。

注意,如果GPU设备 在系统上可用,这将加速结果。可能是 与PIP一起安装:

$ pip install tensorflow-gpu\>=1.7.0

用法

下面的示例演示了此软件包的易用性:

fromferimportFERimportcv2img=cv2.imread("justin.jpg")detector=FER()detector.detect_emotions(img)

样本输出:

OrderedDict([{'box': [277, 90, 48, 63], 'emotions': {'angry': 0.02, 'disgust': 0.0, 'fear': 0.05, 'happy': 0.16, 'neutral': 0.09, 'sad': 0.27, 'surprise': 0.41}])

只想要最强烈的情感?尝试:

emotion,score=detector.top_emotion(img)# 'happy', 0.99

mtcnn面部识别

默认情况下,使用opencv的haar级联分类器检测面。为了使用更精确的MTCNN网络, 添加参数:

detector=FER(mtcnn=True)

视频

为了识别视频中的面部表情,Video类将视频分割成帧。它可以在后端使用本地keras模型(默认)或peltarion api:

fromferimportVideofromferimportFERvideo_filename="tests/woman2.mp4"video=Video(video_filename)# Analyze video, displaying the outputdetector=FER(mtcnn=True)raw_data=video.analyze(detector,display=True)df=video.to_pandas(raw_data)

检测器返回一个json对象列表。每个json对象都包含 两个键:“box”和“emotions”:

  • 边框的格式为键下的[X,Y,Width,Height] “盒子”。
  • 这些情绪被格式化为一个json对象,并带有“anger”键, “厌恶”、“恐惧”、“快乐”、“悲伤”、“惊讶”和“中立”。

其他好的用法示例可以在文件中找到 example.pyvideo-example.py 位于此存储库的根目录中。

Peltarion API

将api url作为emotion_model参数添加到FER()

detector = FER(emotion_model=MY_API_URL)

然后,fer将从环境中获取url和标记EMOTION_API_URLEMOTION_API_TOKEN

型号

fer捆绑了keras模型,以及对Peltarionapi的支持。

该模型是一个卷积神经网络,权值保存到hdf5。 与模块路径相关的data文件夹中的文件。可能是 在 使用emotion_model参数实例化。

许可证

MIT License

学分

此代码包括复制或派生自 伊万·德帕斯·森特诺的implementation MTCNN和Octavia Arriaga的facial expression recognition repo

参考

FER 2013数据集由Pierre Luc Carrier和Aaron Courville管理,如所述:

《表示学习的挑战:三机器学习竞赛的报告》,由Ian J. Goodfellow、Dumitru Erhan、Pierre Luc Carrier、Aaron Courville、Mehdi Mirza、Ben Hamner、Will Cukierski、So、Y、Y、Y、Y、Y、Y、Y、Y、Y、Y、John Shawe Taylor,Maxim Milakov,John Park,Radu Ionescu,Marius Popescu,Cristian Grozea,James Bergstra,Pig,Y,Y,γ,和,^ {A12}。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Oracle将休眠为ISO 8601日期格式   当有线程时,swing计时器不会停止。睡在Java里面   如何使用swing在java中清空密码字段值(字符串)   如何在编辑文本字段上设置单词java(安卓)   单独类中的java OkHttp请求   java Tomcat配置文件/上下文xml似乎已经崩溃了。请确保它是可分析和有效的。有关详细信息,请参阅服务器日志   java在科尔多瓦的ActivityResult上传递   java如何在映射中保持插入顺序。工厂?   “DataOutputStream”和“ObjectOutputStream”之间的java差异   java从FTP文件列表中获取项目的时间戳   java如何在spring security中为每个人忽略一些资源/URL?   模板类嵌套时新的Java泛型类构造函数问题   java读取并查找文件大小为1GB的行   java如何使用字符串say“stop”停止整数格式的while循环   java是否可以在应用程序启动之间将JVM保留在内存中?   java Springboot出现“出现意外错误(类型=内部服务器错误,状态=500)”的问题