2014-01-31 2 views
3

Ни один из вопросов, отправленных в stackoverflow, не упоминал об этой ситуации, поэтому этот вопрос опубликован. Я тренирую хара-каскадный классификатор для обнаружения лица. Данные fae были созданы мной. Параметры приведены ниже.Хааровский каскадный классификатор, застрявший в бесконечном цикле, чередующийся между 2 состояниями. Использование OpenCV (C++)

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| 
+----+----+-+---------+---------+---------+---------+ 

Как видно, он чередуется между двумя состояниями. Наконец, мне пришлось убить программу. Теперь я не знаю, что пошло не так.

ответ

0

Я столкнулся с той же проблемой 1-1,5 года назад, но я не смог решить ее полностью - только частично. Итак, вот вам возможности (по крайней мере те, которые я знаю):

  • убить программу обучения и начать заново. Он должен продолжаться с последнего завершенного этапа. Есть крошечный шанс (я не уверен, что он когда-либо решает мою проблему ...), что это решит вашу проблему.
  • убить программу обучения, изменить параметры и начать заново. Он будет продолжаться с последнего завершенного шага, но теперь он будет использовать новые параметры, поэтому вы можете изменить частоту попадания бит и/или максимальную ложную тревогу, а затем попытаться на проблемный этап (и большинство других остальных левых ступеней тоже). Конечно, ваш классификатор будет немного хуже, чем вы хотели, при начале обучения, но по крайней мере у него будет правильное количество этапов.

// редактировать:
Если он выиграл, т решить вам проблему, рассмотреть задать этот вопрос на http://answers.opencv.org/questions/ - есть больше шансов, что вы получите ответ непосредственно от разработчиков OpenCV.

Смежные вопросы