Skip to main content

从图像中识别面部表情

项目描述

FER

面部表情识别。

图片

PyPI 版本 构建状态 下载

在 Colab 中打开

DOI

安装

目前 FER 仅支持 Python 3.6 及更高版本。可以通过pip安装:

$ pip install fer

要同时安装与 pandas 相关的功能,请使用pip install fer[all].

此实现需要在系统中安装 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 设备,则可以使用 tensorflow-gpu 版本,这将加速结果。可以用 pip 安装:

$ pip install tensorflow-gpu\>=1.7.0

用法

以下示例说明了此包的易用性:

from fer import FER
import cv2

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

样本输出:

[{'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}]

漂亮地打印它import pprint; pprint.pprint(result)

只想要顶级情感?尝试:

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

MTCNN 人脸识别

默认情况下,使用 OpenCV 的 Haar Cascade 分类器检测人脸。要使用更准确的 MTCNN 网络,请添加参数:

detector = FER(mtcnn=True)

视频

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

from fer import Video
from fer import FER

video_filename = "tests/woman2.mp4"
video = Video(video_filename)

# Analyze video, displaying the output
detector = FER(mtcnn=True)
raw_data = video.analyze(detector, display=True)
df = video.to_pandas(raw_data)

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

  • 边界框在“box”键下被格式化为 [x, y, width, height]。
  • 情绪被格式化为 JSON 对象,键为“愤怒”、“厌恶”、“恐惧”、“快乐”、“悲伤”、“惊讶”和“中性”。

其他很好的使用示例可以在 位于此存储库根目录的文件demo.py中找到。

要运行示例,请安装 click for command line withpip install click并输入python demo.py [image|video|webcam]--help。

TF服务

支持使用在线 TF Serving docker 镜像运行。

要使用:运行docker-compose up并使用 初始化 FER FER(..., tfserving=True)

模型

FER 捆绑了一个 Keras 模型。

该模型是一个卷积神经网络,其权重保存到data相对于模块路径的文件夹中的 HDF5 文件中。可以通过在使用参数FER()实例化期间将其注入构造函数来覆盖它。emotion_model

执照

麻省理工学院许可证

信用

此代码包括从 Iván de Paz Centeno 的 MTCNN实现 和 Octavio Arriaga 的面部表情识别 repo复制或派生的方法和包结构。

参考

由 Pierre Luc Carrier 和 Aaron Courville 策划的 FER 2013 数据集,描述于:

“表征学习中的挑战:关于三场机器学习竞赛的报告”,作者:Ian J. Goodfellow、Dumitru Erhan、Pierre Luc Carrier、Aaron Courville、Mehdi Mirza、Ben Hamner、Will Cukierski、Yichuan Tang、David Thaler、Dong-Hyun Lee , 周颖波, Chetan Ramaiah, 冯芳祥, 李瑞凡, 王小杰, Dimitris Athanasakis, John Shawe-Taylor, Maxim Milakov, John Park, Radu Ionescu, Marius Popescu, Cristian Grozea, James Bergstra, 谢晶晶, Lukasz Romaszko, 徐冰, Zhang Chuang, and Yoshua Bengio, arXiv:1307.0414

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

fer-22.4.0.tar.gz (3.5 MB 查看哈希

已上传 source

内置分布

fer-22.4.0-py3-none-any.whl (812.1 kB 查看哈希

已上传 py3