我使用了OpenCV的典型haar-cascade。 并且在训练过程中设置为5,但是在xml&级联文件夹只发现了3个阶段。
为什么我的阶段少于预期? 任何解决方案?
答案 0 :(得分:0)
以此示例训练命令:
opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\
-numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\
-numNeg 600 -w 80 -h 40 -mode ALL -precalcValBufSize 1024\
-precalcIdxBufSize 1024
这个maxFalseAlarmRate
为0.5,当分类器达到此值时,它将完成。
对于您的问题,我想您已将numStages设置为5,但经过3个阶段后,它已达到maxFalseAlarmRate
并完成了培训。
为了确认/消除这一点,您需要提供:
答案 1 :(得分:0)
您很可能没有提供足够的traincascade
信息来学习。这很可能是因为我们人类非常懒惰而且讨厌工作。如果它认为可以从你指定的数据中学到更多东西,那就会继续前进。
采取更积极的态度。请记住,您可以拍摄物体的多个图像略微倾斜的角度(10º-20º左右)。并且一定要提供至少数百个对象,特别是如果对象之间存在相当多的变化,就像有面孔一样。
如果您仍然遇到困难,请参阅我编写的本教程,希望可以帮助您和其他人:http://johnallen.github.io/opencv-object-detection-tutorial/