关于opencv_traincascade的所有问题

时间:2013-12-22 10:54:49

标签: android opencv object-detection object-recognition cascade-classifier

我试图创建一个好的级联分类器几周,但似乎这个过程被神秘所包围。我有很多问题:

1)为什么opencv给我们这么少的信息?

2)它需要更多正面图像还是负面图像?

3)什么尺寸应该有正面图像?和负面形象?它们必须具有相同的尺寸?

4)如果我想为单个道路标志创建一个分类器就足够了一个像this这样的正面图像来创建带有opencv_createsamples的样本吗?

5)创建在Android应用程序上使用的分类器是更好的Haar还是LBP?

6)正确的阶段数是多少?

7)minHitRate和maxFalseAlarmRate的正确值是多少?

1 个答案:

答案 0 :(得分:6)

  1. 它提供了信息,阅读它http://docs.opencv.org/doc/user_guide/ug_traincascade.html
  2. 只是有点无聊
  3. 由于多种原因,您需要更多负面图像。首先,当有更多正面图像然后是负面时,它有时会崩溃,其次 - 大多数时候,训练的重点是在负面图像中寻找被检测为对象并修复错误的东西。
  4. 据我所知,这并不重要,但相关的是他们自己的负面形象。它们应该接近你物体的真实背景,我的意思是如果它是一个交通标志,不要在你的办公室点击图片作为背景,点击外面的照片。
  5. 对我而言,只需要一张我的物体照片,用opencv_createsamples生成1500个样本,但更好的是有几个图像10,20可以生成100个样本,然后将它们全部合并到一个训练集中
  6. Haar的训练和运行时间较慢,但有时它更精确,所以我的选择是LBP。
  7. 您可以逐步训练级联,在开始时制作10-15个阶段,然后逐个添加。所有阶段都记录下来,而且您不必每次都从第一阶段开始。
  8. 7.我没有使用这些参数,我总是将它们保留为默认值,但您可以在此处查看about traincascade paremeters, samples, and other...以获取解释。

    同时检查此问题并回答How to train cascade properlyFAQ - HAARTraining