【问题标题】:OpenCV Haartraining does not finish foreverOpenCV Haartraining 不会永远结束
【发布时间】:2013-04-09 19:43:56
【问题描述】:

这是我第一次使用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

【问题讨论】:

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

标签: opencv machine-learning computer-vision adaboost training-data


【解决方案1】:

我认为您使用的是 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,如果有的话。

【讨论】:

  • 我使用的是 opencv_haartraining
  • 如何区分程序处于无限循环和继续执行?
【解决方案2】:

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

仅供参考:我建议您使用不同的东西来工作 haartrainig 同时因为你必须在训练期间等待这么多天(它 可能需要一周时间)。我通常尝试 1. 运行 周五训练 2. 完全忘记它 3. 查看结果 下周五 4. 运行另一个 haartraining(循环)。

【讨论】:

  • 如何区分程序处于无限循环和继续执行?
猜你喜欢
  • 1970-01-01
  • 2021-05-17
  • 2010-12-27
  • 1970-01-01
  • 2021-08-05
  • 2011-01-20
  • 2017-11-05
  • 2019-05-21
  • 1970-01-01
相关资源
最近更新 更多