如何使用 OpenCV 和 IntraFace 检测微笑?

计算科学 机器学习 计算机视觉 模式识别
2021-12-03 13:32:58

我已经安装了 OpenCV 和 IntraFace,现在代码可以检测面部的地标,如下所示:

在此处输入图像描述

现在如何将其转换为微笑检测器?

我将地标点作为一个数组,所以我可能应该首先找到哪些属于嘴巴。我怎样才能做到这一点?有 IntraFace 的教程吗?我找不到任何东西。

任何帮助,将不胜感激。谢谢 !

1个回答

IntraFace 内置了一个表情检测器。但是,如果您想做一个自定义的微笑检测器,那么您应该做的是将您的空间面部基准点转换为某种特征向量,该向量可以输入到非线性分类器,例如 SVM 或 MLP。

一个简单的方法是使用角度关系(如果面部是正面平行的),或者您可以使用投影不变量(例如交叉比率)来找出几何关系。

可以训练两种类型的分类器:

二类:您将首先准备一组微笑和不微笑的人的训练集。然后用这个输入训练你的学习机。

Novelty-D​​etection:如果您使用 GMM 或 SVM 的变体,您可以仅对微笑特征建模(围绕这些特征构建超包络)。然后在运行时,您可以查询测试功能是否属于这个超信封。

最后,关于嘴部分:你是对的,它可以帮助你,IntraFace 会内置它。在最坏的情况下,你可能不需要分离任何东西。如果你有一个好的训练集,你也可以对你的特征进行降维。

当然,还有更高级的方法可以完成你喜欢做的事情。就像这里的一个例子。