【问题标题】:OpenCV Textured object Tracking Using Filter使用过滤器的 OpenCV 纹理对象跟踪
【发布时间】:2013-11-24 09:01:08
【问题描述】:

我正在开发一个项目,用于跟踪具有多种纹理和多种颜色变化的对象。 与使用颜色遮罩的普通跟踪不同,我的目标对象有很大不同,因为它包含几种主要颜色分布。

我想检测对象并开始跟踪。对于跟踪,有像卡尔曼滤波器这样的方法,但是,为了跟踪纹理对象,我需要跟踪我认为的局部关键点。如果我在每一帧中计算 SURF 描述符,那么我认为这将失去对跟踪的使用(也许我在这里错了)。

我觉得我应该只在第一帧中使用 SURF 来初始化目标对象,然后再跟踪它。我的问题是如何跟踪纹理对象的特征。我做了一些研究,但我似乎不知道如何解决这个问题。

如果我能得到一些建议或论文链接来阅读和实施它,那就太好了。

【问题讨论】:

  • 您必须检测每一帧中的对象才能跟踪它。为什么不使用 SURF 呢?还是 haar 检测器?
  • 我想实时计算,但在 Windows 中计算单个帧的 SURF 大约需要 10 秒。
  • 您可以尝试二进制描述符,它们在提取和比较方面都比 SURF 更有效。也许使用更少的关键点并用二进制描述符描述它们将实时工作。此外,在跟踪时,您将对对象的位置进行估计,因此您可能不必计算整个图像中的描述符,而只需在估计的对象位置处计算。如果您需要有关二进制描述符的更多信息,请告诉我。
  • 非常感谢。是的,如果你能给我更多关于二进制描述符实现的想法,那就太好了。我发现很难理解这些特征是如何形成的。

标签: opencv image-processing filter feature-detection surf


【解决方案1】:

您可以尝试二进制描述符,它们在提取和比较方面都比 SURF 更有效。也许使用较少的关键点并用二进制描述符描述它们将实时工作。此外,在跟踪时,您将对对象的位置进行估计,因此您可能不必计算整个图像中的描述符,而只需在估计的对象位置处计算。

我写了一篇关于二进制描述符的教程。

第 1 部分 - 简介: http://gilscvblog.wordpress.com/2013/08/26/tutorial-on-binary-descriptors-part-1/

第 2 部分 - 简要描述: http://gilscvblog.wordpress.com/2013/09/19/a-tutorial-on-binary-descriptors-part-2-the-brief-descriptor/

第 3 部分 - ORB 描述符: http://gilscvblog.wordpress.com/2013/10/04/a-tutorial-on-binary-descriptors-part-3-the-orb-descriptor/

第 4 部分 - BRISK 描述符: http://gilscvblog.wordpress.com/2013/11/08/a-tutorial-on-binary-descriptors-part-4-the-brisk-descriptor/

【讨论】:

  • 只有一个问题,BRIEF、ORB 和 BRISK 都是二进制描述符还是应该单独实现它,因为我不喜欢 OpenCV 中没有实现二进制描述符。其次,你对HOG的感觉。它对物体识别有好处吗?除了那些有用的链接之外
  • 它们都在 openCV 中实现,还有我将在下一篇文章中写到的 FREAK。 HOG 确实是对象识别的不错选择,但我担心运行时间会很昂贵。
  • 实际上,我试图实现 HOG,但我意识到 OpenCV 中的 HOG 只是用于人员检测。还是我错了。所以我最终为 hog 编写了整个代码,但我又一次陷入了如何确定对象周围的边界框的问题。我也在努力。对不起,不要介意我还在学习,所以我有很多困惑和问题。再次感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2012-11-17
  • 1970-01-01
  • 2019-12-07
  • 2017-04-25
  • 1970-01-01
相关资源
最近更新 更多