opencv - CNN面部表情识别数据准备

标签 opencv machine-learning computer-vision deep-learning face-recognition

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

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

注意:我的参与者表现出的表情强度很低(不是夸张的表情/微表情)

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

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

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

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

最佳答案

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

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

关于opencv - CNN面部表情识别数据准备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37452073/

相关文章:

python - 如何使用 OpenCV 同时从​​连接到 Raspberry Pi 3 的两个 USB 摄像头捕获和保存图像?

python - 使用Python在视频中进行人脸对齐

java - 在 Java Camera2 API 中使用 OpenCV

machine-learning - TensorFlow 中的批量标准化

python - fmin_cg : Desired error not necessarily achieved due to precision loss

machine-learning - 如何将预测概率限制为一类

computer-vision - 立体匹配中的视差图和视差图像有什么区别?

python - 如何解决在 Python 中合并 OpenCv channel 的问题?

opencv - 图像计算方差背后的理论是什么?

matlab - 如何在滑动窗口检测上实现积分图像?