Opencv haar分类器:从haar级联获得的XML文件

Opencv haar分类器:从haar级联获得的XML文件,opencv,haar-classifier,cascade-classifier,Opencv,Haar Classifier,Cascade Classifier,我使用了OpenCV的典型haar级联。 在培训过程中将阶段设置为5个,但在xml和cascade文件夹中仅找到3个阶段 为什么我得到的阶段比预期的少? 有什么解决方案吗?以下面的培训命令为例: opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt\ -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000\ -numNe

我使用了OpenCV的典型haar级联。 在培训过程中将阶段设置为5个,但在xml和cascade文件夹中仅找到3个阶段

为什么我得到的阶段比预期的少?
有什么解决方案吗?

以下面的培训命令为例:

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
这具有0.5的
maxFalseArmRate
,当分类器达到此值时,它将完成

对于您的问题,我猜想您已将numStages设置为5,但经过3个阶段后,它已达到
maxFalseArmRate
,并完成了培训

为了确认/消除这一点,您需要提供:

  • 您的培训指挥部(如上所述)
  • 上一个训练阶段的输出

  • 您很可能没有提供足够的信息来学习。这很可能是因为我们人类非常懒惰,讨厌工作。如果它认为它可以从您指定的数据中学到更多,它就会继续运行

    采取积极的态度。请记住,您可以以稍微倾斜的角度(10º-20º左右)拍摄对象的多张图像。并且确保提供至少数百个对象,尤其是当对象之间存在相当多的变化时,比如面


    如果您仍处于困境,请参阅我编写的本教程,希望能对您和其他人有所帮助:

    您提供了多少培训数据?我在使用少量数据的情况下提前完成了培训过程。我第一次尝试使用了20个64*64的pos和60个neg的大尺寸,比如400*400。谢谢。我的命令是:opencv_traincascade-数据分类器-vec samples.vec-bg negatives.txt \-numStages 5-numPos 20 \-numNeg 60-w 64-h 64I没有保存上一阶段的输出。在我得到结果后,我尝试使用126个pos和405个neg,共8个阶段。我将在这里粘贴。谢谢,你能提供一些参数提示吗?例如,如何根据不同的样本编号调整这些参数?我建议遵循上述示例(不包括precalc值),并使用您的numPos/numNeg对其进行更改&报警率为0.8.U r。我将阶段设置为8,但得到了7个阶段。它表明达到了所需的叶虚警率。分支训练终止。所以我需要将MaxFalseArmRate更改为较小的值,对吗?