来自网络摄像头的面部表情识别[关闭]

Posted

技术标签:

【中文标题】来自网络摄像头的面部表情识别[关闭]【英文标题】:Facial expression recognition from webcam [closed] 【发布时间】:2013-07-05 00:07:35 【问题描述】:

我目前正在从事一个项目,我必须提取用户的面部表情(一次只能从网络摄像头中提取一个用户),比如悲伤或快乐。

有很多程序/API可以做人脸检测,但我没有找到任何一个可以做自动表情识别。

到目前为止我发现的最好的可能性:

我之前使用 OpenCV 进行人脸检测,效果很好,所以如果有人对如何使用 OpenCV 进行操作有一些提示,那就太好了!

OpenCV 板上的一些用户建议寻找 AAM(主动 apereance 模型)和 ASM(主动形状模型),但我找到的都是论文。

-所以我正在使用带有Stasm 的主动形状​​模型,这将使​​我能够访问面部内的 77 个不同点,因此我仍然需要手动将它们映射到表情。

欢迎任何编程语言。

【问题讨论】:

你的项目有进展吗? @NenadBulatovic ***.com/questions/18640804/… 【参考方案1】:

在 2.4 版本之后,opencv 自带了人脸识别 API。您可以将悲伤和快乐的面孔定义为两个不同的面孔,并使用the API 对它们进行分类。如果您正在寻找任何教程,您也可以查看opencv's tutorial page。

【讨论】:

如果我要使用这个 api,我必须为每个用户提供快乐和悲伤的脸!! 是的,这些是预定义的。也许您可以创建自己的人脸检测训练模式。在 2 个不同的 xml 文件中训练快乐的面孔和悲伤的面孔,并尝试使用它们。 我的目标是任何用户都会使用这个应用程序,并且这种方法可以快速用于网络摄像头视频! 您说您尝试使用opencv进行人脸检测(使用opencv包附带的.xml文件),速度还不够快吗?我也在皮肤检测器中尝试过,算法复杂度更高,但运行速度足够快。 好的,你能给我一个关于如何为opencv训练xml文件的教程【参考方案2】:

也许this的文章可以帮到你。

这是用于实现here显示结果的概念的解释:

另外,您可能想看看here。

上面提到的所有这些都是或多或少达到你想要的人的作品。

我也想做和你一样的——用 OpenCV 进行面部表情识别,所以我希望我们迟早可以交流我们的想法。

【讨论】:

【参考方案3】:

使用 OpenCV 为您解决了一半的问题。如果您使用示例构建 OpenCV,则可以运行一个名为 c-example-smiledetect 的示例,该示例可以检测不同级别的笑脸。

代码应该在 samples/c 下的 OpenCV 文件夹中。我记得您可以调整代码中的灵敏度,这样可能会有所帮助。您也可以找到代码here。

另一方面,可以在this book(第 7 章)中找到使用 OpenCV 的 AAM 实现。这不包括搜索和拟合部分,只是展示了如何从 ASM 和纹理创建 AAM。

【讨论】:

c-example-smiledetect 正在使用预先训练的 Haar 检测器。我认为 OP 必须训练自己的检测器(分类器)才能检测其他面部表情。如果我没记错的话,有必要使用数千张图像来做到这一点。我在一篇文章中说,在快速机器上,整个训练过程花费了不止 7 天不间断的时间来创建分类器。如果结果不好,就必须重新训练。

以上是关于来自网络摄像头的面部表情识别[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

实时面部表情分类(情绪)

从保存的图像中预测情绪(OpenCV 网络摄像头)

看下巴识心情,这个AI项链挂胸前也能识别面部表情

当我的 python 脚本在服务器上运行时,如何访问我的本地网络摄像头? (实时人脸识别)

带有面部检测和形状预测的 Dlib 网络摄像头捕获速度很慢

Google Colab:“有没有办法使用网络摄像头流式传输视频并进行处理?”