我使用了此tutorial中使用的相同参数。
perl bin / createsamples.pl positives.txt negatives.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 -data classifier -vec samples.vec -bg negatives.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 请帮忙!!!
答案 0 :(得分:1)
使用参数-bgthresh 0
的原因是什么。据我所知,标准设置为80,如果你不知道他们做了什么,就没有理由改变参数。阅读它。
但是更改了numPos参数,因为它给了我一个错误 图像不足。
您是否检查过您确实有1500个阳性,请与positives.txt文件中的行一起验证。
-numPos 880 -numNeg 600
这里有不同意见,我建议使用neg = positives * 2。
你是什么意思?你定义为什么"正确"?从您提供的示例中,我可以看到正确的检测,可能存在误报(中间的矩形)。增加但仍未正确检测
minNeighbors
(在您的代码中) - 参数指定每个候选矩形应保留多少个邻居。