-1

我使用了 OpenCV 的典型 haar-cascade。并在训练过程中设置阶段为 5,但在 xml & cascade 文件夹中仅找到 3 个阶段。

为什么我的阶段比预期的少?有什么解决办法吗?

4

2 回答 2

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

这有一个maxFalseAlarmRate0.5,当分类器达到这个值时,它将完成。

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

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

  1. 你的训练命令(如上)
  2. 上一个训练阶段的输出。
于 2015-04-07T07:25:21.557 回答
0

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

采取更多积极的态度。请记住,您可以以稍微倾斜的角度(10º-20º 左右)拍摄对象的多张图像。并确保提供至少数百个对象,特别是如果对象之间存在相当多的差异,例如面部。

如果您仍然卡住,请参阅我编写的本教程,希望对您和其他人有所帮助:http: //johnallen.github.io/opencv-object-detection-tutorial/

于 2016-04-06T00:21:57.980 回答