【问题标题】:Improve face detection performances with OpenCV/EmguCV使用 OpenCV/EmguCV 提高人脸检测性能
【发布时间】:2011-10-06 06:49:00
【问题描述】:

我目前正在使用 EmguCV(OpenCV C# 包装器)成功地实时检测人脸(网络摄像头)。我得到大约 7 FPS。

现在我正在寻求提高性能(并节省 CPU 周期),并且正在寻找选项,以下是我的想法:

  • 检测人脸,提取人脸特征并尝试在下一帧中找到这些特征(使用SURF算法),所以这变成了“人脸检测+跟踪”。如果未找到,请再次使用人脸检测。

  • 检测人脸,在下一帧中,尝试在 ROI 中检测人脸先前所在的位置(即在图像的较小部分中查找人脸)。如果没有找到人脸,请尝试再次在整个图像中查找。

  • 附带的想法:如果在 2-3 帧内未检测到人脸,并且图像中没有移动,则在检测到移动之前不要尝试检测人脸。

你对我有什么建议吗?

谢谢。

【问题讨论】:

    标签: c# opencv computer-vision emgucv face-detection


    【解决方案1】:

    这不是一个完美的答案,只是一个建议。

    在 CS B.Tech 的最后一个学期的数字图像处理课程中,我了解了位位置切片,以及仅具有 MSB 平面信息的图像如何提供几乎 70% 的有用图像信息。因此,您将使用几乎原始图像,但尺寸仅为原始图像的八分之一。

    所以虽然我还没有在我自己的项目中实现它,但我想知道它,以加快人脸检测。因为后面的眼睛检测、瞳孔和眼角检测也会占用大量的计算时间,让整个程序变慢。

    【讨论】:

      【解决方案2】:
      • 对于 SURF 算法,您可以尝试,但我不确定它是否提供面部的相关特征,可能是眼睛周围,或者如果您靠近并且有皮肤不规则,或者再次可能在头发中如果分辨率足够。此外,SURF 并不是真的很快,如果你想节省 CPU 时间,我会避免做更多计算。

      • roi 是个好主意,你可以通过 camshift 算法来选择它,它不会节省很多 CPU,但是你可以尝试一下,因为 camshift 是一个非常轻量级的算法。同样,我不确定它是否真的相关,但您在第二篇文章中得到了一个好主意:最小化搜索区域...

      • 这个想法对我来说似乎很好,你可以尝试检测运动(例如全局运动),如果没有那么多,那么不要再尝试检测你已经检测到的东西......你可以尝试使用运动模板来做到这一点,因为您知道来自 meanshift 或面部检测的 silouhette... 与第 n-1 帧和第 n 帧匹配的一个非常简单、轻量级但不健壮的模板还可以为您提供衡量这两个帧之间某种相似性的系数,您可以说低于某个阈值时您会激活人脸检测。 ... 为什么不 ?如果 C# wrapper 有 matchTemplate() 等效函数,应该需要 5min 来实现...

      如果我有更好(更深入)的想法,我会回到这里,但现在,我刚下班回来,很难想更多......

      朱利安,

      【讨论】:

      • 太棒了!! Camshift是我曾经见过的(加上人脸检测),但我以为是SURF算法。谢谢你,camshift 似乎真的很合适,而且比全脸识别更快。此外,它可以帮助我识别和关注 1 个用户并跟踪他。
      • 我也会研究模板匹配,谢谢你的想法。如果你还有人来,我会很高兴来到这里。我会为你的回答 +1 并等待其他建议。
      • 呵呵没问题,能帮到另一个INSA小伙伴总是很开心,我再看看其他算法,希望能帮到你……
      【解决方案3】:

      您介绍的所有解决方案似乎都很聪明合理。但是,如果您使用 Haar 进行人脸检测,您可能会尝试创建具有较少阶段的级联。虽然建议使用 20 个阶段进行人脸检测,但 10-15 可能就足够了。这将显着提高性能。可以在Tutorial: OpenCV haartraining (Rapid Object Detection With A Cascade of Boosted Classifiers Based on Haar-like Features) 找到有关创建自己的级联的信息。

      同样,使用 SURF 是一个好主意。你也可以试试P-N learning: Bootstrapping binary classifiers by structural constraints。 YouTube上有一些有趣的视频介绍了这种方法,试着找到它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-25
        • 2014-03-16
        • 2011-02-20
        • 2012-02-04
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多