我在哪里可以找到检测正面的最佳哈尔级联xml?

问题描述 投票:3回答:2

我正在使用OpenCV来检测相机拍摄的照片中的脸部。但是我意识到有些脸不是正面的,眼睛也不会聚焦在相机上。我在哪里可以找到仅用于正面且没有任何倾斜的haar瀑布xml文件,并且眼睛必须将注意力集中在相机上。有人有这样的xml文件吗?请帮助我。

也许我的英语不好。因此,如果您不明白我在这里提到的内容。请让我知道,我将对其进行更改以使其更清楚地理解。希望你能帮助我。非常感谢。

opencv haar-classifier
2个回答
4
投票

所以我的答案是这样的:默认情况下,OpenCV提供了两个用于检测人脸的分类器:正面和轮廓。因此,如果我对您的理解正确,那么您将希望发现以下情况:

  1. 不一定是正面和
  2. 眼睛不对准相机。

条件2使用额叶哈尔分类器很容易实现,这意味着您可以默认使用opencv中提供的一个。对于条件1,您可以尝试使用配置文件检测器。

其他可能性是将检测器用于面部其他部位,例如耳部检测器。如果检测到耳朵,则很有可能暗示该耳朵属于您要检测的轮廓脸。

还有我最后(但至少是机器人)的建议是,当您尝试的所有解决方案均失败时,您可以尝试学习自己的haar分类器。这不是一项艰巨的任务,您可以在线(尤其是在stackoverflow上)找到有关它的很多信息,例如there

编辑:(在澄清问题之后:)>

首先让我更多地说明您的要求,因为我不知道额头

对您的头部姿势有何意义。如果您是说正面的话,比如说倾斜和平移角度属于区间[-15; 15]度,这样就可以解决opencv正面人脸分类器(这些数字大约是我到目前为止所做的所有经验测试给出的)。我的意思是,如果脸部不是正面的(即,双眼或嘴巴不可见/部分可见),分类器将不会检测到它。换句话说,如果我给您的那些角度都可以,请使用默认分类器。如果没有,请参见下面的段落。

关于您要求人看摄像机的第二个要求。这就是默认分类器无法区分的东西-它是在各种人的面孔上学到的,不仅是您想要实现的。而且我敢肯定,您很难在Internet上找到这样的分类器,因为它是如此具体。但我可以向您保证,您可以尝试学习自己的面孔分类器,效果可能会很好。如果您取得良好的效果,请告诉我们。

EDIT2:

(关于仅检测头部且仅当倾斜和平移为零度时的分类器)

我不认为存在这种分类器。根据我的经验,即使确实存在,也确实出于个人目的准备了此类分类器的人并未与所有人共享该分类器,因为它是如此具体。并且需要花费一些时间来准备好的哈尔分类器(您需要数百个正面带有手动裁剪的平移和倾斜零值的正面示例),所以我认为这是解决问题,训练自己的探测器的一种方法。

让我建议另一种方法,它与头部姿势估计

有关。这是一种从面部图像确定所有姿势角度的方法。存在许多适合您要求的算法-运行时,独立于人,可以回答倾斜和平移角度是否接近0的问题。它们不需要任何学习,可以从算法描述中直接编码。但是,您需要进行某种愿意加入本文的研究,但是我认为实现头部姿势估计而不是学习您自己的哈尔分类器可能是更好的主意。

EDIT3:

(关于头部姿势估计)

这不是那么复杂的任务。在我的硕士论文here中,我证明了仅使用关于面部界标位置(眼睛,嘴巴和鼻尖)的几何假设,就可以构建实时的人不变且鲁棒的头部姿势估计跟踪器。这样可以立即进行头部姿势估计。您也可以开始with this articlethere's文章摘要。


0
投票

在官方的opencv github页面上的链接在这里:

© www.soinside.com 2019 - 2024. All rights reserved.