如何解决使用 Simd::Motion::Detector 检测小型快速物体
我尝试使用 motion detector 以代码 video 为例来检测 UseMotionDetector.cpp 中的流星。 如果我使用带有默认选项的运动检测器,则没有任何效果。 我认为这可能与物体尺寸小、速度快或噪音大有关。 运动检测器有大量的 parameters(还有 this),但我没有使用任何运动检测器的经验。
所以我有一些问题:
- 是否可以通过使用运动检测算法来解决此任务?
- 这个运动检测器适合这份工作吗?
- 如何调整其参数?
提前致谢!
解决方法
我已经分析了您的视频,但存在一些问题,无法使用默认设置正常工作 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);
它有效!希望能帮到你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。