Ask Your Question

Revision history [back]

Ah I was waiting when this would come back. If you want a more detailed background, go for chapter 5 in OpenCV 3 Blueprints, but here are some pointers.

  • Like stated by @berak, forget the perl script generation of artificial samples. It simply does not hold and creates bad classifiers. Go for pure real samples. Better 50 real samples than a 1000 artificial ones.
  • Then you don't need the mergevec either, which tends to cause issues for alot of people
  • A fast training means that your seperation between positive and negative samples is easy. Probably it only needs a couple of weak classifiers to have a succesful seperation. Increasing complexity and thus training time, can be done with adding more training data, setting your settings more strict, ... even increasing resolution can help.
  • False positives means that your detector still does not know exactly what a negative sample is, hence it needs more negative data. Try negative bootstrapping: use your initial detector, collect false positives, feed those as hard negatives.

The Q&A litterally has 1000 questions on this, you would be amazed how much details you can find here.

Ah I was waiting when this would come back. If you want a more detailed background, go for chapter 5 in OpenCV 3 Blueprints, Blueprints, but here are some pointers.

  • Like stated by @berak, forget the perl script generation of artificial samples. It simply does not hold and creates bad classifiers. Go for pure real samples. Better 50 real samples than a 1000 artificial ones.
  • Then you don't need the mergevec either, which tends to cause issues for alot of people
  • A fast training means that your seperation between positive and negative samples is easy. Probably it only needs a couple of weak classifiers to have a succesful seperation. Increasing complexity and thus training time, can be done with adding more training data, setting your settings more strict, ... even increasing resolution can help.
  • False positives means that your detector still does not know exactly what a negative sample is, hence it needs more negative data. Try negative bootstrapping: use your initial detector, collect false positives, feed those as hard negatives.

The Q&A litterally has 1000 questions on this, you would be amazed how much details you can find here.