Haar-级联对象检测 OpenCV - .xml 文件分类器未正确检测

Posted

技术标签:

【中文标题】Haar-级联对象检测 OpenCV - .xml 文件分类器未正确检测【英文标题】:Haar- Cascade object detection OpenCV - .xml file classifier not detecting properly 【发布时间】:2016-11-21 22:28:58 【问题描述】:

我使用了与tutorial 中相同的参数。

perl bin/createsamples.pl positives.txtnegatives.txt 样本 1500\ “opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1\ -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40"

但是更改了 numPos 参数,因为它给了我一个正面图像不足的错误。

ALSO 减少了阶段,因为它低于所需的准确率(应该小于 0.0004),而我的准确率是 0.0002。 使用了这些参数。

opencv_traincascade -数据分类器 -vec samples.vec -bgnegatives.txt -numStages 16 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 880 -numNeg 600 -w 80 -h 40 -mode ALL -precalcValBufSize 1024 -precalcIdxBufSize 1024

获取了我的 cascade.xml 文件,但仍无法正确检测。 cascade.xml 文件处理时间为 3 天。(附图片) 用过Opencv3.1.0 请帮忙!!!

IMAGE detected by classifier(Click to see)

【问题讨论】:

【参考方案1】:

使用参数-bgthresh 0的原因是什么。据我所知,标准设置是 80,如果您不知道它们的作用,就没有理由更改参数。仔细阅读。

但是改变了 numPos 参数,因为它给了我一个错误 正面图像不足。

您是否检查过您确实有 1500 个阳性结果,请与您的 positives.txt 文件中的行一起验证这一点。

-numPos 880 -numNeg 600

这里有不同的意见,我推荐数量 neg = positives*2。

但仍然无法正确检测

什么意思?您如何定义“正确”?从您提供的示例中,我可以看到可能存在误报的正确检测(中间的矩形)。增加minNeighbors(在您的代码中)– 指定每个候选矩形应保留多少个邻居的参数。

【讨论】:

以上是关于Haar-级联对象检测 OpenCV - .xml 文件分类器未正确检测的主要内容,如果未能解决你的问题,请参考以下文章

使用Python,OpenCV和Haar级联进行人脸检测

OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器

OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器

Open CV 计算机视觉中的 haar 级联分类器里面有啥?

Open CV 计算机视觉中的 haar 级联分类器里面有啥?

使用OpenCV,Haar级联检测器进行面部眼睛嘴部检测