【问题标题】:Best tracking algorithm for multiple colored objects (billiard balls)多色物体(台球)的最佳跟踪算法
【发布时间】:2014-01-06 03:14:46
【问题描述】:

让我快速解释一下我所拥有的:我编写了一个自定义检测器,可以在台球图像中找到区域。我是在使用 HSV 色彩空间时做到这一点的,对于大多数球来说,我只需对色调通道设置阈值就可以逃脱。但是对于橙色(#5)和棕色(#7),必须考虑饱和度,这为问题增加了另一个维度。

从我的研究看来,我最好的方法是进行某种方式的均值偏移跟踪,但我遇到的所有内容都描述了仅使用一个通道(色调通道)的均值偏移。

谁能解释或提供一个链接来解释我如何使用色调和饱和度来调整均值偏移?

或者你能告诉我你是否认为不同的跟踪算法可能更适合这个问题?

【问题讨论】:

  • 您能否创建一个代表单个距离度量的渠道,然后在此基础上进行转移?例如,如果您正在寻找棕色,请创建一个 sqrt(huedistance^2 + saturationdistance^2) 的图像。然后均值偏移将再次找到您的最大值。
  • 啊,这是一个有趣的想法。每帧创建一个新图像让我对性能有点厌倦,因为这是在 iPhone 上运行的。但如果它产生好的结果,我可能会将其转换为着色器。
  • 你同意这种情况吗?与 surf/sift、光流等相比。
  • 嗯,这取决于你想要做什么。光流只有在事物移动时才有意义。如果您想在静态图像中找到台球,光流对您没有帮助。同样,台球基本上是彩色球体——它们没有很多可识别的特征(如果它们显示出来的数字可能除外)。考虑到这一点,SIFT/SURF 功能可能不会让您走得太远。
  • 这个想法是有人会在桌子周围走动时对桌子进行录像,所以基本上球会移动。我的检测器为我提供了来自 img 的球团,我可以将其用作光流中的关键点。你认为那会是一条更好的路线吗?从我读过的内容来看,至少在 opencv 中光流比均值偏移更容易实现。

标签: opencv computer-vision


【解决方案1】:

理论上,无论维度如何,均值偏移都能很好地发挥作用(在非常高的维度上,稀疏性有点问题,但有一些工作可以解决这个问题)

如果您尝试使用仅接受单通道输入的非自我均值偏移跟踪器,您可以创建自己的问题特定颜色通道。你需要一个单一的通道来最大化不同颜色的台球之间的差异。

最简单的方法是取所有 15 个球的平均颜色,并将它们放入一个 15x3 矩阵并用 SVD 分解它(先减去平均值),这样你就可以得到轴的最大方差。这将为您提供从 RGB 到新的一维色彩空间的最佳线性转换,最大限度地提高台球颜色之间的差异。 (如果不够好,您可以使用本地映射做得更好,但可能没有必要)

【讨论】:

  • 当您说“先减去均值”来分解​​ SVD 时,openCV 是如何实现的?不熟悉它,很难从文档中分辨出来 (physics.nyu.edu/grierlab/manuals/opencv/…)。
  • 我也很难用橙色/棕色和绿色/蓝色组“最大化颜色之间的差异”。标准平均操作不会给出颜色的“视觉”比例分布。 opencv 文档没有过多地详细说明 cv::SVD,所以我想知道这是否超出了标准含义?
猜你喜欢
  • 2023-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多