这是我第一次使用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 :(得分:4)
我认为您使用的是OpenCV_Haartraining吗?
如果是这样,这是一个已弃用的应用,您应该使用opencv_traincascades。
这将
- A. Speed up the time taken to classify
- B. Have better support
请参阅这些链接以进一步阅读 Training Vs TrainCascade和TrainCascade Wiki。
编辑:
另外,更改您的最低点击率和maxFalseAlarm率。
我建议使用像0.4& 0.95开始。
这样做的原因是它需要永远达到0.999& 0.0001,如果有的话。
答案 1 :(得分:2)
这很正常。参考this tutorial和我自己的经验,培训需要几天甚至一周才是正常的。引自教程:
仅供参考:我建议你用不同的东西来工作 同时因为你必须在训练期间等待这么多天(它 可能需要一个星期)。我通常试验为1. run 在星期五进行haartraining 2.完全忘记它3.看到结果 下周五4.再进行一次haartraining(循环)。