使用过滤器的 OpenCV 纹理对象跟踪

标签 opencv image-processing filter feature-detection surf

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

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

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

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

最佳答案

您可以尝试二进制描述符,它们在提取和比较方面都比 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/

关于使用过滤器的 OpenCV 纹理对象跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172800/

相关文章:

c++ - 如何解决警告/usr/bin/ld : warning: libtiff. so.4,需要/home/user/libs/opencv/lib/libopencv_highgui.so,可能与libtiff.so.5冲突?

iphone - 如何在不使用 GPUImage 的情况下在 iOS 中的 UIImage 上添加鱼眼图像过滤器

ruby - 将一张图片切割成更小的部分

python - 如何在 Keras 中重用 VGG19 进行图像分类?

perl - 如何在打印前过滤掉我的计算机上不可用的代码点?

python - 按内部值过滤列并获取索引

c - 如何比较字符数组和字符串

python - OpenCV + OS X + 外部网络摄像头 = 非常慢

c++ - opencv中3x3矩阵的对数

c++ - 如何使用 OpenCV 或其他图像处理库从 RGB 数据写入 YUV 420 视频帧?