CNN面部表情识别数据准备

Facial Expression Recognition Data Preparation for CNN

我对面部表情识别领域还很陌生,目前我正在通过深度学习特别是 CNN 对此进行研究。我对准备 and/or 预处理我的数据有一些疑问。

我分割了正面面部表情的视频(例如,根据 his/her 注释,一个人表达快乐情绪的 2-3 秒视频)。

注意:我的参与者表现出的表情强度很低(没有夸张expressions/micro-expressions)

一般问题:现在,我应该如何准备我的数据以使用 CNN 进行训练(我有点倾向于使用深度学习库 TensorFlow)?

问题 1:我读过一些基于深度学习的面部表情识别 (FER) 论文,这些论文建议采用该表情的峰值(很可能是单个图像)并且使用该图像作为训练数据的一部分。我怎么知道表达式的峰值?我的依据是什么?如果我要拍摄单张照片,我的参与者表现出的微妙表情的一些重要帧是否会丢失?

问题 2:或者在 OpenCV 中执行分段视频以检测(例如 Viola-Jones)、裁剪和保存每帧的人脸是否也正确,并使用这些图像作为我的训练数据的一部分并带有适当的标签?我猜某些人脸帧是多余的。然而,由于我们知道数据中的参与者表现出低强度的表情(微表情),因此面部的一些动作也可能很重要。

非常感谢任何能回答的人,非常感谢!

回答1:一般我们总是靠人的感官来决定哪个表情是表情的巅峰(我想你可以区分笑和笑的区别)

回答2:如果你想得到好的结果,我建议你不要像这种方法那样粗暴对待数据

正如@unique monkey 已经指出的,这通常是一项监督学习任务。如果你想提取一个独立的 "peak" 点,我建议你扫描输入图像并在每个序列中找到参考点与主体静止状态偏离最大的那个。

如果你没有得到静止状态,那么视频片段是如何裁剪的?例如,是否要求受试者做出表情并保持住?剪辑涵盖了整个表达的哪一部分(之前、表达、之后)?取视频剪辑的一个或两个端点;绘制参考点从每一端的移动,并寻找差异最大的帧,然后转向另一个端点。