0
点赞
收藏
分享

微信扫一扫

Facial Expression Recognition- Part1

::: hljs-right DATE: April 15, 2024 :::

应用

基本原理是通过提取人脸表情的特征并将其输入到分类器中进行情绪分类。 <br>

  1. 情感分析领域,表情识别可以用来分析个体的情感状态,如快乐、悲伤、愤怒等
  2. 在人机交互领域,表情识别可以用来改进人机交互的方式,例如根据用户的表情来调整智能设备的行为
  3. ++在智能驾驶领域,表情识别可以用来监测驾驶员的情绪状态,从而提高驾驶安全性++
  4. 安全和监控:在拥挤区域检测可疑或异常行为,分析公共事件中人群的反应,以确保安全
  5. 营销和市场研究:实时分析观众对广告的反应,根据观众的情绪状态定制广告内容,产品测试和反馈

Datasets:

  • FER-2013:由Kaggle举办的竞赛数据集,包含7类表情(快乐、悲伤、惊讶、生气、恐惧、厌恶、中性)的28,709张灰度图像
  • AffectNet:这是一个大规模的数据集,包含超过100万张图像,覆盖自然、标签化的人类面部表情。包括8类表情(快乐、悲伤、惊讶、生气、恐惧、厌恶、轻蔑、中性)
  • CK+ (Extended Cohn-Kanade):包含具有8种表情标签的序列图像。该数据集还提供了标记的面部关键点
  • JAFFE (Japanese Female Facial Expression):这是一个小型数据集,包含10名日本女性表现出的6种基本表情的213张图像。
  • MMI Facial Expression Database:这是一个包含人的表情视频序列数据集。它包括微笑、眉毛提升等动作。
  • EmotioNet:包含数十万张面部表情的静态图像。这个数据集包含12种表情类别。

更多数据集及Benchmarks见:https://paperswithcode.com/task/facial-expression-recognition#datasets

架构

改进的VGG-13

专为64×64灰度图像设计:它使用具有最大池化和dropout的卷积层将图像分类为八个情绪类别,以防止过拟合。该架构开始于两个具有64个卷积核的卷积层,然后是最大池化和25%的dropout。额外的卷积层捕捉复杂的特征,两个具有1024个节点的密集层聚合信息,然后是50%的dropout。一个softmax输出层预测情绪类别 image.png 图源:https://zhuanlan.zhihu.com/p/673375121

Others

数据预处理-扩大嘴唇区域

OpenCv人脸检测,Dlib关键点检测,将嘴唇区域裁剪并适当扩大区域image.png

扩大嘴唇区域的上下左右边界,通过在 x 和 y 方向上增加一定的像素距离(padding),扩大嘴唇区域的边界,使得检测到的嘴唇区域包含更多的像素。仅改变了区域的边界范围,并没有改变内部的像素点。扩大边界只是增加了提取区域的大小,而内部的像素值保持不变。 这种操作适用于希望包含更多嘴唇周围像素的场景,比如进一步分析嘴唇周围的皮肤特征,或者增加检测区域以提高检测准确性。

# 提取嘴唇区域的关键点
landmarks = get_landmarks(im)
lips_points = landmarks[48:68]

# 计算嘴唇区域的边界
x_min = lips_points[:, 0].min()
x_max = lips_points[:, 0].max()
y_min = lips_points[:, 1].min()
y_max = lips_points[:, 1].max()

# 扩大嘴唇区域
# 在 x 和 y 边界上增加一定的像素距离(例如10像素)
padding = 10
x_min = max(0, x_min - padding)
x_max = min(im.shape[1], x_max + padding)
y_min = max(0, y_min - padding)
y_max = min(im.shape[0], y_max + padding)

# 扩大的嘴唇区域
lips_region = im[y_min:y_max, x_min:x_max]

RFB-320

超轻量级人脸检测模型RFB-320,是一种针对++边缘计算++设备进行优化的人脸检测模型,采用了改进的++感受野++块(RFB)模块,在不增加计算负担的情况下有效地捕捉多尺度的上下文信息。

举报

相关推荐

0 条评论