我需要使用 Opencv Haar 级联检测张开的嘴巴。
我发现 Haar Cascade 是嘴巴,但它通常会检测嘴巴。我需要区分闭合的嘴和张开的嘴。
最佳答案
我有几个步骤可以快速构建自己的 haar 级联分类器:
尝试从 flickr 等免费资源中提取显示不同张嘴的阳性样本或 face databases .提取约 30-50 个阳性样本。使用 gimp 编辑它们以仅获得张开的嘴而不是孔的面。然后提取非嘴和闭嘴(约 100 个样本)。
这足以构建一个弱分类器(稍后更多)
调整步骤 5 和 7 中的参数 -h -w(样本图像的大小)并减少 numStages、numPos、numNeg(每个阶段使用,因此应该非常小)
现在您已经为张开的嘴构建了自己的弱分类器,但它会检测到太多或有时是闭合的嘴,因此您需要更多的训练样本。但是这次你可以使用你的弱分类器来创建它们。
cascade.xml
和你的。将大量照片或面孔(可能是 faces94 by Dr Libor Spacek )添加到 data
文件夹。并使用 python sample_extractor.py
开始提取.它将随机读取数据文件夹中的文件,并向您显示分类器发现“张嘴”的白色边界框。如果您左键单击框,它们将变为绿色,矩形将被裁剪并添加到 positives
文件夹。右键单击会将框添加到 negative
文件夹。单击中心 mouse button
将加载下一个随机数据图像。现在您可以非常快速地创建训练样本。我为各种细胞类型或有丝 split 检测训练了一个分类器,结果证明(我的个人经验),约 1000 个阳性样本和约 2000 个样本将是一个不错的选择。 关于python - 张开嘴需要Haar Casscade xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442984/