1 | initial version |
Though there are no strict rules while training cascade for object detection, here are certain results which I have gathered during my experiments with Training Cascade. I will first answer your questions and as and when required will add my points.
The cascade classification method have no limitation of kind of objects it can detect as long as there is some pattern which cascade can figure out during its training phase. It is these features or pattern which trained cascade will try searching in image, when performing object detection. Definately, having more distinct features aid the cascade perform classification task better.
Cascade classifiers are rotation variant i.e they can detect object in same orientation for which they were trained. Change in orientation will adversely effect the perfromance of classifier. Also, training images should have all have similar orientaton. Using images with objects in variety of orientation, will only degrade performance of cascade.
Cascade can be trained for a single class of objects i.e I can have a cascade trained for bikes or car (not brand specific) as most of them would be quite similar having some minor changes in design. Again, more varied the objects are within the class, more it will affect the performance of cascade.
Having objects in varied and complex background will result in more robust cascade. Ideally, only the boundary of objects present in the image is fed to the cascade during training stage. This helps the cascade to be able to distinguish the object from the background. Also, more closely is the background chopped from the object, lesser will be chances of cascade picking up non-object specific features, making a cascade better performer.
The variation in intensity has its own advantages and disadvantages. Including images with intensity variation depends also on the environment in which I want my cascade to be able to detect objects. Eg: If I want cascade to detect objects in varied environments such as dark/light background, during day/night and other such factors it would be advisable to have intensity variations included. Again having large intensity variations may result in cascade not being able to detect patterns specific to object resulting in poor performance. However, if the cascade is expected to detect objects under a specific condition, training it under that specific condition without including much intensity variation will prove more fruitful.
Having individual samples using different background will make cascade more robust i.e it will better ability to detect object in complex backgrounds. Generating positive images from videos wont provide cascade with background variations, though it will serve purpose of having more positive samples required for training cascade.
Having a large number of positive samples and even greater number of negative samples (generally 3-4 times) proves useful. All said, its trial and experiments for your specific application that makes cascade perform well.