CNN vs SVM 用于微笑强度检测训练?

Posted

技术标签:

【中文标题】CNN vs SVM 用于微笑强度检测训练?【英文标题】:CNN vs SVM for smile intensity detection training? 【发布时间】:2020-08-16 08:25:53 【问题描述】:

我有一个由面部图像组成的数据集,以及构成嘴巴的相应地标。 这些地标是一组 2D 点(x,y 像素位置)。 每个图像-地标集数据对都被标记为微笑或中性。

我想做的是训练一个深度学习模型来返回一个新的图像-地标数据对的微笑强度。

我应该寻找什么来帮助我完成下一步? 这是我需要的 CNN 吗?在我有限的理解中,通常的训练输入只是一张图像,我将在其中传递地标集进行训练。或者 SVM 方法会更准确吗?

我正在寻找尽可能高的准确性。

我需要调用的方法是什么?

我很高兴使用 PyTorch、Dlib 或任何框架,我只是有点卡在搜索词上以帮助我前进。

谢谢。

【问题讨论】:

【参考方案1】:

如果不查看数据集并进行实验,很难判断。但希望以下研究材料能够引导您朝着正确的方向前进。

基于机器学习的方法: https://www.researchgate.net/publication/266672947_Estimating_smile_intensity_A_better_way

深度学习 (CNN):https://arxiv.org/pdf/1602.00172.pdf

用于微笑和微笑强度检测的精彩论文列表: https://github.com/EvelynFan/AWESOME-FER/blob/master/README.md

SmileNet 项目:https://sites.google.com/view/sensingfeeling/

现在,我假设您没有任何实际微笑强度的标签。

在这种情况下,可以直接使用现有的微笑检测方法,您将使用最后的激活输出(sigmoid)作为微笑的置信度分数。如果置信度越高,强度应该越高。

现在,您可以将面部标志点用作单独的特征(通过 LSTM 块传递它们)并在早期/或稍后阶段连接到 CNN,以提高模型的性能。

如果你有微笑强度的标签,你可以将它作为一个回归问题来解决,CNN 将有一个输出,将尝试回归微笑强度(在这种情况下是使用 sigmoid 的标准化微笑强度)。

【讨论】:

谢谢!你是对的,我没有强度标签。所以我可以将图像和地标传递给 CNN?还是只是地标? 首先,只尝试图像,按照我提到的项目,你会找到一些代码,例如:github.com/meng1994412/Smile_Detection 并使用 sigmoid 输出作为强度,一旦你想改进你可以设计具有地标的复杂模型,设计此类模型需要了解不同的层。 这里还有一些项目:github.com/topics/smile-detection

以上是关于CNN vs SVM 用于微笑强度检测训练?的主要内容,如果未能解决你的问题,请参考以下文章

两阶段目标检测R-CNN论文精读与学习总结

用于行李检测的 OpenCV 和 SVM 训练

用于对象检测和分割的 Mask R-CNN [训练自定义数据集]

如何存储 CNN 提取的特征来训练 SVM 分类器

如何训练用于对象检测的潜在 SVM 模型?它使用 Matlab 2012b、Windows 64 位操作系统崩溃

OpenCV - 使用 SVM 和 HOG 进行人员检测