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 文件分类器未正确检测的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器
OpenCV-Python实战(番外篇)——基于 Haar 级联的猫脸检测器
Open CV 计算机视觉中的 haar 级联分类器里面有啥?