需要Haar Casscade xml张开嘴

时间:2016-09-12 03:31:14

标签: python opencv detection haar-classifier

我需要使用Opencv Haar级联来检测张开嘴。

我找到哈尔卡斯卡德的嘴巴,但它一般会检测到嘴巴。我需要区分闭嘴和张嘴。

1 个答案:

答案 0 :(得分:1)

我有几个步骤可以快速构建我自己的haar级联分类器:

  1. 我一直在考虑训练样本的来源
  2. 尝试从flickrface databases等免费来源提取显示不同张口的阳性样本。提取~30-50个阳性样品。使用gimp编辑它们只得到张开的嘴而不是孔面。然后提取非嘴和闭合的mouthes(约100个样本)。 这足以构建一个弱分类器(稍后)

    1. 克隆此Github Repo并按照README.md的说明进行操作 在步骤5&中调整params -h -w; 7(样本图像的大小)和减少numStages,numPos,numNeg(每个阶段使用所以应该非常小)
    2. 现在你已经为开口建立了自己的弱分类器,但是它会检测到太多或有时闭口,所以你需要更多的训练样本。但是这次你可以用你的弱分类器来创建它们。

      1. 我在python中编写了一个非常简单的示例提取器。克隆this Github repo并将cascade.xml替换为您的data。将大量照片或面孔(可能faces94 by Dr Libor Spacek)添加到python sample_extractor.py文件夹。然后使用positives开始提取。它会随机读取数据文件夹中的文件,并显示分类器找到“开口”的白色边框。如果您左键单击框,它们将变为绿色,并且矩形将被裁剪并添加到negative文件夹中。 右键单击会将该框添加到mouse button文件夹中。点击中心{{1}}将加载下一个随机数据图像。现在,您可以非常快速地为您创建训练样本。我训练了一种用于各种细胞类型或有丝分裂检测的分类器,结果证明(我的个人经验),~1000个阳性和~2000个样本将是一个不错的选择。