【问题标题】:Detection of small fast objects with using of Simd::Motion::Detector使用 Simd::Motion::Detector 检测小型快速物体
【发布时间】:2021-01-28 09:20:39
【问题描述】:
【问题讨论】:
标签:
c++
computer-vision
motion-detection
simd-library
synet
【解决方案1】:
我已经分析了您的视频,并且存在一些问题,导致 Simd::Motion::Detector 在默认设置下无法正常工作。
您已经在上面列出了其中的大部分:
- 物体(流星)尺寸较小。
- 它移动得太快了。
- 它的存在时间很短。
- 视频中有很大的噪音。
为了解决这些问题,我更改了运动检测器的以下参数:
为了检测小尺寸的物体,我减小了模型中的最小物体尺寸:
Model model;
model.size = FSize(0.01, 0.01); // By default it is equal to FSize(0.1, 0.1).
detector.SetModel(model);
为了减少快动作的影响:
Options options;
options.TrackingAdditionalLinking = 5; // Boosts binding of trajectory.
解决对象存在时间短的问题:
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.
为了减少大噪音:
options.DifferenceDxFeatureWeight = 0; // Turns off gradient along X axis feature.
options.DifferenceDyFeatureWeight = 0; // Turns off gradient along Y axis feature.
detector.SetOptions(options);
而且它有效!希望对你有所帮助。