【问题标题】:Head (and shoulder) detection using OpenCV使用 OpenCV 进行头部(和肩部)检测
【发布时间】:2011-08-09 06:05:40
【问题描述】:

(如果我问一个太新奇的问题,请提前申请。我是 OpenCV 的初学者。我已经完成了一些教程,但我对它的概念没有很好的掌握。)

问题:如何使用 OpenCV 进行头部检测(不是面部检测) - 例如在公共汽车或房间内的照片中?

注意:我不想做人脸检测;只需进行头部检测即可确定照片中的人数。不幸的是——对我来说——我发现的那些教程和文档是关于人脸检测而不是头部检测的。

谢谢

【问题讨论】:

  • 这些人脸检测算法不都是先检测人头,然后再分析这些可能是人头的形状的内部内容,判断是不是人脸吗?
  • 感谢您的回复。我查看了 samples 目录中 facedetect 示例中的 facedetect.cpp。我 detectAndDraw 函数 - 我对 OpenCV 和 C 或 C++ 并不流利,但是 - 它似乎在面部本身而不是头部上使用了一些点。
  • @KavehShahbazian,你好。你找到头部检测的解决方案了吗?我正在寻找与我目前看到的相同且唯一的方法是训练 haar。
  • 那是将近五年前的事了,这个项目很快就被解雇了。我后来使用过 OpenCV,但不是为了这个目的。所以我不太记得了。但请记住这里错误使用的Head & Shoulder 短语。这句话指的是某种图表 - 很高兴知道。

标签: opencv


【解决方案1】:

查看所有可用于 OpenCV 的 Haar 增强分类器和专用类 CascadeClassifier 以使用它。以下是分类器在本地拥有的列表:

  • haarcascade_eye.xml
  • haarcascade_lefteye_2splits.xml
  • haarcascade_mcs_righteye.xml
  • haarcascade_eye_tree_eyeglasses.xml
  • haarcascade_lowerbody.xml
  • haarcascade_mcs_upperbody.xml
  • haarcascade_frontalface_alt.xml
  • haarcascade_mcs_eyepair_big.xml
  • haarcascade_profileface.xml
  • haarcascade_frontalface_alt2.xml
  • haarcascade_mcs_eyepair_small.xml
  • haarcascade_righteye_2splits.xml
  • haarcascade_frontalface_alt_tree.xml
  • haarcascade_mcs_lefteye.xml
  • haarcascade_upperbody.xml
  • haarcascade_frontalface_default.xml
  • haarcascade_mcs_mouth.xml
  • haarcascade_fullbody.xml
  • haarcascade_mcs_nose.xml

我加粗的那两个可能你特别感兴趣。尝试这些作为您项目的开始。正如Alessandro Vermeulen 评论的那样,头部检测分类器也可能很有趣,因为它们发现的东西通常与肩膀有关:-)

【讨论】:

  • 非常感谢!但我找不到头部检测分类器:(
  • @Kaveh Shahbazian :头部检测分类器是那些名称中包含 frontalface 的分类器。其中有 4 个。你找不到没有脸的头(比如从后面看),因为这是一个更复杂的问题,因为头发。
  • 谢谢;找到一个头——即使没有脸——正是我想要的。所以我认为我应该学习如何使用 HAAR 分类器训练 OpenCV 来检测头部(如果可能的话)。
  • @Kaveh Shahbazian : 我知道的最接近的是this
  • @StéphanePéchard 链接已损坏 404
【解决方案2】:

您也可以创建自己的级联分类器来检测人头。上半身根本不是头部,只是头部并不那么准确。您需要裁剪多个正样本和负样本。在 text.txt 中准备这些示例的列表,opencv_createsamples.exe(为训练准备输入向量)并使用 opencv_traincascade.exe 命令行实用程序创建用于级联检测多尺度的 opencv 分类器。 这很容易,但创建数据集非常耗时。我的头部 LBP 级联可以在这里免费下载 link to my blog for head, car and people cascade 。它与 detectMultiscale 兼容,但不是那么准确。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 2012-02-28
    • 2012-12-24
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2011-08-21
    • 2011-12-26
    相关资源
    最近更新 更多