首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Simd::运动::检测器检测快速小物体

用Simd::运动::检测器检测快速小物体
EN

Stack Overflow用户
提问于 2021-01-28 09:20:39
回答 1查看 95关注 0票数 1

我尝试使用运动检测器来检测视频中的流星,并以代码UseMotionDetector.cpp为例。如果我使用运动检测器的默认选项比没有工作。我认为这可能与物体的尺寸小、速度快或噪音大有关。运动检测器有大量的参数 (也包括),但我没有使用任何运动检测器的经验。

所以我有一些问题:

  1. 使用运动检测算法可以解决这个问题吗?
  2. 这个运动探测器适合这项工作吗?
  3. 如何调整它的参数?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 09:40:57

我已经分析了您的视频和有一些问题,不允许工作Simd::运动::检测器正确地与默认设置。你已经在上面列出了其中大部分:

  1. 这个物体(流星)的尺寸很小。
  2. 它动作太快了。
  3. 它存在的时间很短。
  4. 视频上有很大的噪音。

为了解决这些问题,我改变了运动检测器的下列参数:

为了检测小尺寸的对象,我减少了模型中的最小对象大小:

代码语言:javascript
运行
复制
Model model;
model.size = FSize(0.01, 0.01); // By default it is equal to FSize(0.1, 0.1).
detector.SetModel(model);

为了减少快速运动的影响:

代码语言:javascript
运行
复制
Options options;
options.TrackingAdditionalLinking = 5; // Boosts binding of trajectory. 

为了解决对象存在时间短的问题:

代码语言:javascript
运行
复制
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. 

为了减少大噪音:

代码语言:javascript
运行
复制
options.DifferenceDxFeatureWeight = 0; // Turns off gradient along X axis feature.
options.DifferenceDyFeatureWeight = 0; // Turns off gradient along Y axis feature.
detector.SetOptions(options);

而且起作用了!我希望我帮了你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65934224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档