Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 多颜色对象(台球)的最佳跟踪算法_Opencv_Computer Vision - Fatal编程技术网

Opencv 多颜色对象(台球)的最佳跟踪算法

Opencv 多颜色对象(台球)的最佳跟踪算法,opencv,computer-vision,Opencv,Computer Vision,让我快速解释一下我所拥有的:我编写了一个自定义检测器,可以在台球图像中查找区域。我在使用HSV颜色空间时做到了这一点,对于大多数球来说,我只需对色调通道设置阈值即可。然而,对于橙色5和棕色7,必须考虑饱和度,这为问题增加了另一个维度 从我的研究看来,我最好的方法是做某种形式的均值漂移跟踪,但我遇到的一切都描述了均值漂移,其中只有一个通道使用色调通道 任何人都可以解释或提供一个链接,解释我如何适应均值漂移工作使用色调和饱和度 或者你能告诉我你是否认为一种不同的跟踪算法更适合这个问题吗?理论上,无论

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

从我的研究看来,我最好的方法是做某种形式的均值漂移跟踪,但我遇到的一切都描述了均值漂移,其中只有一个通道使用色调通道

任何人都可以解释或提供一个链接,解释我如何适应均值漂移工作使用色调和饱和度


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

理论上,无论高维中的维度如何,均值漂移都能很好地工作稀疏性是一个问题,但是有一些工作可以解决这个问题

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


最简单的方法是取所有15个球的平均颜色,将它们放在一个15x3矩阵中,然后用奇异值分解法进行分解,先减去平均值,得到最大方差轴。这将为您提供从RGB到新的一维颜色空间的最佳线性变换,最大化台球颜色之间的差异。如果局部映射不够好,您可以做得更好,但可能没有必要

您可以创建一个代表单个距离度量的通道,然后在此基础上进行均值偏移吗?例如,如果您正在查找brown,请创建一个图像,其大小为SqrQueDistance^2+saturationdistance^2。然后均值漂移会再次找到你的最大值。啊,这是一个有趣的想法。不过,每帧创建一个新图像会让我对性能感到有点厌倦,因为这是在iphone上运行的。但是如果它能产生好的效果,我可能会把它转换成一个着色器。你同意吗,尽管对于这种场景来说,均值偏移是一个很好的方法?与冲浪/筛分、光流等相比,这取决于你想做什么。光流只有在物体运动时才有意义。如果你想在静态图像中找到台球,光流对你没有帮助。类似地,台球基本上是彩色球体——它们没有很多可识别的特征,除了可能显示的数字。考虑到这一点,SIFT/SURF功能可能不会让你走得很远。好的想法是,有人会在桌子周围走动时拍摄桌子,所以基本上球会移动。我的探测器给了我一个来自img的小球,我可以用它作为光流的关键点。你认为那是一条更好的路线吗?从我所读到的来看,光流在opencv中似乎比平均偏移更容易实现。当你说先减去平均值来分解SVD时,opencv是如何实现的?由于不熟悉,很难从文档中分辨出来。另外,我很难最大化橙色/棕色和绿色/蓝色组之间的颜色差异。标准的平均值运算不会给出颜色的视觉比例分布。opencv文档没有太多地详细说明cv::SVD,所以我想知道这是否超出了标准的平均值?