Detection of small fast objects with using of Simd::Motion::Detector

162 views Asked by At

I try to use motion detector to detect shooting star in the video with the example of code UseMotionDetector.cpp. If I use the motion detector with default options than nothing works. I think that may be connected with small object size, its fast speed, or big noise. The motions detector has a big amount of parameters (and also this) but I have no experience in using of any motion detector.

So I have some questions:

  1. Is this task can be resolved with using of algorithms of motion detection?
  2. Is this motion detector suit for this job?
  3. How to tune its paraameters?

Thank in advance!

1

There are 1 answers

1
ErmIg On BEST ANSWER

I have analysed your video and there are some troubles which don allow to work Simd::Motion::Detector properly with default settings. And you have already listed most of them above:

  1. The object (shooting star) has small size.
  2. It moves too fast.
  3. Time of its existance is short.
  4. There is a big noise on the video.

In order to solve these troubles I changed following parameters of motion detector:

To detect objects of small size I decreased minimal object size in model:

Model model;
model.size = FSize(0.01, 0.01); // By default it is equal to FSize(0.1, 0.1).
detector.SetModel(model);

To reduce influence of fast motion:

Options options;
options.TrackingAdditionalLinking = 5; // Boosts binding of trajectory. 

To resolve trouble of short object existence time:

options.ClassificationShiftMin = 0.01; // Decreases minimal shift of object to be detected.
options.ClassificationTimeMin = 0.01; // Decreases minimal life time of object to be detected. 

To reduce big noise:

options.DifferenceDxFeatureWeight = 0; // Turns off gradient along X axis feature.
options.DifferenceDyFeatureWeight = 0; // Turns off gradient along Y axis feature.
detector.SetOptions(options);

And it works! I hope that I helped you.