python - 张开嘴需要Haar Casscade xml

标签 python opencv detection haar-classifier

我需要使用 Opencv Haar 级联检测张开的嘴巴。
我发现 Haar Cascade 是嘴巴,但它通常会检测嘴巴。我需要区分闭合的嘴和张开的嘴。

最佳答案

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

  • 我总是考虑训练样本的来源

  • 尝试从 flickr 等免费资源中提取显示不同张嘴的阳性样本或 face databases .提取约 30-50 个阳性样本。使用 gimp 编辑它们以仅获得张开的嘴而不是孔的面。然后提取非嘴和闭嘴(约 100 个样本)。
    这足以构建一个弱分类器(稍后更多)
  • 克隆这个 Github Repo并按照 README.md 的说明进行操作。
    调整步骤 5 和 7 中的参数 -h -w(样本图像的大小)并减少 numStages、numPos、numNeg(每个阶段使用,因此应该非常小)

  • 现在您已经为张开的嘴构建了自己的弱分类器,但它会检测到太多或有时是闭合的嘴,因此您需要更多的训练样本。但是这次你可以使用你的弱分类器来创建它们。
  • 我用python写了一个非常简单的样本提取器。克隆this Github repo并替换 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/

    相关文章:

    python - 将字典插入到在 Python 中使用 JSON 创建的 SQL 数据库中

    python - 创建我的 python 脚本的可执行文件

    python - 如何用另一个数组创建或填充一个 numpy 数组?

    audio - 快速傅里叶变换 FFT 中的幅度值因恒定输入信号而异?

    python - 如何强制中文等亚洲语言的字符长度?

    opencv - 使用两个对象编译OpenCV程序时,pkg-config不起作用

    python - 我在 Pycharm 的解释器上遇到问题

    c++ - 如何使用opencv检测 dentry

    image - 图片中的笔划检测算法检测直线和曲线

    android - 使用 API14 中的方法无法进行人脸检测