Haar级联分类器卡在无限循环中,在两种状态之间交替。使用OpenCV(C+;+;)

Haar级联分类器卡在无限循环中,在两种状态之间交替。使用OpenCV(C+;+;),opencv,infinite-loop,training-data,haar-classifier,Opencv,Infinite Loop,Training Data,Haar Classifier,stackoverflow中发布的问题都没有提到这种情况,因此发布了此问题。我正在训练一个用于人脸检测的haar级联分类器。fae数据是由我生成的。参数如下所示 NUmber of positive samples = 2500 Num pos: 2000 Num neg: 2580 Num stages: 14 Num splits: 2 (tree as weak classifier) Mem: 1024 MB Symmetric: FALSE Min hit rate: 0.995000

stackoverflow中发布的问题都没有提到这种情况,因此发布了此问题。我正在训练一个用于人脸检测的haar级联分类器。fae数据是由我生成的。参数如下所示

NUmber of positive samples = 2500
Num pos: 2000
Num neg: 2580
Num stages: 14
Num splits: 2 (tree as weak classifier)
Mem: 1024 MB
Symmetric: FALSE
Min hit rate: 0.995000
Max false alarm rate: 0.500000
Weight trimming: 0.950000
Equal weights: FALSE
Mode: ALL
Width: 25
Height: 25
Applied boosting algorithm: RAB
Error (valid only for Discrete and Real AdaBoost): misclass
Max number of splits in tree cascade: 3
Min number of positive samples per cluster: 100
Required leaf false alarm rate: 1.52588e-05


Tree Classifier
Stage
+---+---+---+---+---+---+---+---+---+---+---+---+
|  0|  1|  2|  3|  4|  5|  6|  7|  8|  9| 10| 11|
+---+---+---+---+---+---+---+---+---+---+---+---+

   0---1---2---3---4---5---6---7---8--10--12--14
                                   |           |
                                   |          15
                                   |           |
                                   |          16
                                   |
                                   9--11--13--17
Parent node: 14

*** 1 cluster ***
POS: 669 2500 0.267600
NEG: 863 5.50567e-05of 863 required, 15674000 images tested
BACKGROUND PROCESSING TIME: 297.00
Precalculation time: 0.00
+----+----+-+---------+---------+---------+---------+
|  N |%SMP|F|  ST.THR |    HR   |    FA   | EXP. ERR|
+----+----+-+---------+---------+---------+---------+
|   1|100%|-|-1.590536| 1.000000| 1.000000| 0.161227|
+----+----+-+---------+---------+---------+---------+
|   2|100%|-|-3.158675| 1.000000| 1.000000| 0.180157|
+----+----+-+---------+---------+---------+---------+
.
.
.
.
+----+----+-+---------+---------+---------+---------+
|  16|  6%|-|-13.162083| 0.995516| 0.805330| 0.353133|
+----+----+-+---------+---------+---------+---------+
|  17| 14%|-|-24.674999| 0.997010| 0.877173| 0.266971|
+----+----+-+---------+---------+---------+---------+
|  18|  0%|-|-13.163441| 0.995516| 0.805330| 0.353133|
+----+----+-+---------+---------+---------+---------+
|  19| 14%|-|-24.676357| 0.997010| 0.877173| 0.266971|
+----+----+-+---------+---------+---------+---------+
.
.
.
.

+----+----+-+---------+---------+---------+---------+
| 760|  0%|-|-13.667271| 0.995516| 0.805330| 0.341384|
+----+----+-+---------+---------+---------+---------+
| 761| 14%|-|-25.180187| 0.997010| 0.877173| 0.267624|
+----+----+-+---------+---------+---------+---------+
| 762|  0%|-|-13.668629| 0.995516| 0.805330| 0.341384|
+----+----+-+---------+---------+---------+---------+
| 763| 14%|-|-25.181545| 0.997010| 0.877173| 0.267624|
+----+----+-+---------+---------+---------+---------+
| 764|  0%|-|-13.669987| 0.995516| 0.805330| 0.341384|
+----+----+-+---------+---------+---------+---------+
| 765| 14%|-|-25.182903| 0.997010| 0.877173| 0.267624|
+----+----+-+---------+---------+---------+---------+
| 766|  0%|-|-13.671345| 0.995516| 0.805330| 0.341384|
+----+----+-+---------+---------+---------+---------+

我们可以看到,它在两种状态之间交替。最后,我不得不终止这个程序。现在我不知道哪里出了问题

我在1-1,5年前遇到过同样的问题,但我没有设法完全解决它,只是部分解决。以下是你的可能性(至少是我知道的):

  • 结束训练计划,重新开始。它应该从最后完成的阶段继续。有一个很小的机会(我不确定它是否曾经解决过我的问题…)这将解决你的问题
  • 终止训练计划,修改参数并重新开始。它将从上一个完成的步骤继续,但现在它将使用新的参数,因此您可以更改比特命中率和/或最大虚警率,然后尝试到有问题的阶段(最有可能的是其他左侧阶段)。当然,在开始训练时,您的分类器会比您想要的稍差一些,但至少它会有正确的阶段数
//编辑:
如果赢了,;t解决你的问题,考虑问这个问题——你有更多的机会直接从OpenCV开发者那里得到答案。