matlab中的人脸检测(viola-jones)

Posted

技术标签:

【中文标题】matlab中的人脸检测(viola-jones)【英文标题】:Face detection (viola-jones) in matlab 【发布时间】:2016-01-20 03:00:18 【问题描述】:

所以我在 matlab 中找到了级联对象检测器,它使用 Viola-Jones 算法来检测人脸。非常容易使用,效果很好!

但是有几个问题。

viola-jones 方法有四个阶段:

    Haar 特征选择 创建完整图像 Adaboost 训练 级联分类器

在 matlab 中,我可以使用 FrontalFace(CART) 和 FrontalFace(LBP)。这些是经过训练的级联分类模型,所以它们将成为第 4 阶段的一部分,对吧? 但是如果我使用 FrontalFace(CART),第 1 阶段和第 4 阶段有什么区别?两者都使用它所说的 Haaar 功能。

我们可以说 FrontalFace(CART) 和 FrontalFace(LBP) 是两种不同的人脸检测方式吗?我可以将这两个相互比较,看看哪个更好吗? 或者我应该找到另一种方法来与 viola-jones 进行比较?

还有其他在matlab中容易实现的人脸检测方法吗? 在互联网上找到了一些(使用肤色等),但 Matlab 对我来说很新。所以我觉得那些代码对我来说有点复杂。

【问题讨论】:

【参考方案1】:

主要区别在于 FrontalFace(CART) 和 FrontalFace(LBP) 在不同的数据集上进行了训练。另外,从名字上,我猜 FrontalFace(LBP) 使用的是 LBP 特征而不是 Haar。

最初的 Viola-Jones 算法使用 Haar 特征。但是,它后来被扩展为使用其他类型的功能。 vision.CascadeObjectDetector 支持 Haar、LBP 和 HOG 功能。

要比较哪个更好,您需要一些真实图像,这些图像是带有手工标记的人脸的图像。我相信你可以在网上找到一个基准数据集。或者,您可以使用 trainingImageLabeler 应用程序标记您拥有的图像。

另外,如果您对 vision.CascadeObjectDetctor 附带的分类器的准确性不满意,您可以使用 trainCascadeObjectDetector 函数训练自己的分类器。

【讨论】:

以上是关于matlab中的人脸检测(viola-jones)的主要内容,如果未能解决你的问题,请参考以下文章

Viola-Jones(人脸检测)

Viola-Jones 人脸检测:像素之间的高对比度

Viola-Jones 的人脸检测声称拥有 18 万个特征

有没有办法在不使用 viola-jones 算法的情况下用 opencv 检测人脸? [关闭]

如果在 Viola-jones 人脸检测方法中,每一轮 boosting 都选择相同的 Haar 特征怎么办?

当帧中没有人脸时,OpenCV 中的人脸检测器会变慢