0

这是我第一次使用opencv的haartraining。OpenCV Haartraining不会永远完成

仅供练习,我使用了35张正面图像和45张负面图像。

但是当我尝试从数据到训练,它不会永远完成,

即使参数都极为调整。

(分命中率= 0.001,最大的误报率= 0.999

我不认为它会占用大量的时间,因为这种极端值)

什么一定是错误的,我的实验?

这里是我的命令和参数。

$opencv_haartraining -data Training -vec samples.vec -bg negatives.dat -nstages 2 -nsplits  2 -minhitrate 0.001 -maxfalsealarm 0.999 -npos 30 -nneg 40 -w 20 -h 20 -nonsym -mem 512 -mode  ALL -minpos 10 

并且结果。

Data dir name: Training 
Vec file name: samples.vec 
BG file name: negatives.dat, is a vecfile: no 
Num pos: 30 
Num neg: 40 
Num stages: 2 
Num splits: 2 (tree as weak classifier) 
Mem: 512 MB 
Symmetric: FALSE 
Min hit rate: 0.001000 
Max false alarm rate: 0.999000 
Weight trimming: 0.950000 
Equal weights: FALSE 
Mode: ALL 
Width: 20 
Height: 20 
Applied boosting algorithm: GAB 
Error (valid only for Discrete and Real AdaBoost): misclass 
Max number of splits in tree cascade: 0 
Min number of positive samples per cluster: 10 
Required leaf false alarm rate: 0.998001 
Stage 0 loaded 
Stage 1 loaded 
Stage 2 loaded 
Stage 3 loaded 
Stage 4 loaded 

Tree Classifier 
Stage 
+---+---+---+---+---+ 
| 0| 1| 2| 3| 4| 
+---+---+---+---+---+ 

    0---1---2---3---4 

Number of features used : 125199 

Parent node: 4 

*** 1 cluster *** 
POS: 30 32 0.937500 
+0

确实需要很长时间。尝试使用较低宽度(15)和高度(15)的大量正(1000)和负(900)样本。 – Saikat

回答

4

我正确地认为你正在使用OpenCV_Haartraining?

如果是这样,这是一个弃用的应用程序,你应该使用opencv_traincascades。

这将

- A. Speed up the time taken to classify 
- B. Have better support 

看到这些链接进一步阅读 Training Vs TrainCascadeTrainCascade Wiki

编辑:

也,改变你的分命中率和maxFalseAlarm率。

我会建议使用0.4 & 0.95的东西来开始。

这样做的原因是,如果有的话,它将永远需要0.999 & 0.0001。

+0

正如你所说,我正在使用opencv_haartraining – winnerrrr

+0

,opencv_traincascade确实有效!谢谢! – winnerrrr

+0

如何区分处于无限循环和程序中的程序? –

2

这是正常现象。参考this tutorial和我自己的经验,这种培训通常需要几天甚至一周的时间。从教程引用:

FYI:我建议你到不同的东西 工作haartrainig同时,因为你必须在训练中等待了这么多天(它 将可能需要一周)。我通常试验如下:1.在周五运行 haartraining 2.完全忘记它3.下周五在 上查看结果4.运行另一个haartraining(循环)。

+0

如何区分处于无限循环的程序和程序? –