目标跟踪算法----KCF进阶(基于KCF改进的算法总结)

Posted 小小菜鸟一只

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了目标跟踪算法----KCF进阶(基于KCF改进的算法总结)相关的知识,希望对你有一定的参考价值。

一、前情提要

如果你对目标跟踪和KCF是什么东西还不了解的话欢迎你看前一篇博文KCF入门详解:http://blog.csdn.net/crazyice521/article/details/53525366。如果你已经对基于KCF的目标跟踪有了一定的了解,并想知道这个算法有怎么样的后续的发展的话,就请听我慢慢介绍以下的东西。

二、KCF的弊端

说道KCF的缺点的话作者在文章中也已经算是说明了,第一点,KCF因为在跟踪过程当中目标框是已经设定好的,从始至终大小为发生变化,但是我们的跟踪序列当中目标大小时有发生变化,这个就会导致跟踪器跟踪过程当中目标框漂移,从而导致跟踪失败。第二点,KCF对在跟踪过程当中当目标被遮挡时候的处理问题没有进行很好的解决,不过呢,这个问题一直也算是跟踪界的一个大难题,有哪位朋友有看到好的文章和算法的话请与我联系,欢迎赐教。

三、解决方法

(1)有问题就要解决,对于存在的这两个大的问题有什么解决方法呢,首先对于尺度的解决,近些年来解决比较好的就先看
1、Danelljan, Martin大神的Accurate Scale Estimation for Robust Visual Tracking论文代码都在这里下载(直接点击此处)。大神在文章中使用尺度池技术,对目标模版进行解决。
2、Yang Li大神的A Scale Adaptive Kernel Correlation Filter Tracker with Feature Integration
SAMF下载地址(直接点击此处)两篇文章大同小异,都是使用尺度模版不过是使用的个数不一样和对尺度设计的方法不一样,最终效果都是差不多。
两篇文章对尺度解决的细节我就不再叙述了,用一张图形象的描述一下两篇文章的思想:这里写图片描述
对初试目标进行尺度缩放,经过相关滤波器之后得到对应的响应值response,然后比较各个不同尺度的response之间的大小,找到最大的一个,此时的尺度值即为最佳的目标尺度值,使用最佳尺度值对目标进行跟踪,能够解决目标跟踪过程当中目标尺度变化的问题。

(2)对于遮挡问题的解决就相对来说比较困难了,这个问题算是Long-term tracking 的问题。因为对于目标跟踪过程当中,跟踪器是没有办法知道目标是否被遮挡,是不是完全被遮挡还是被遮挡一部分的,对于我们人来说,这个我们很容易就能判断出来,但是对于计算机来说这个是很困难的,近些年来也提出一些方法,
比如使用分块的方法对目标进行跟踪:
1、2014年ICPR上的一篇文章Online Learning and Detection with Part-Based, Circulant Structure这个下载的话对于不会翻墙的同学比较麻烦,就传到云盘里面了,链接: https://pan.baidu.com/s/1hs3ehA8 密码: yi8v
2、基于分块的目标跟踪Real-time part-based visual tracking via adaptive correlation filters论文下载地址
这里写图片描述
图中很清晰的表达出来了分块的总体思想,就是把要跟踪的目标进行分割,分割成不同的部分去学习特征,然后分别进行跟踪,然后融合起来得到目标最终的位置。
3、马超大哥的Long-term correlation tracking
这里写图片描述
把跟踪分开一个对尺度预测,一个对目标外观变化通过上下文信息进行学习,使用KNN进行分类得到一个最好的目标位置。

四、其他方法

近些年来对于跟踪当中问题的解决方法的文章也是层出不穷,在这里我也没有办法把所有的文章都列出来完,只能算是把一些经典的东西展现出来给大家做一个参考,这样的话大家可以借助这些方法,进而可以搜素一些其他的相关文献,文章一直都在出,思想没有什么大变化,抓住核心思想,对问题的本质进行理解和探索,这样就能更好的解决问题。
一些其他的方法诸如PSR对跟踪过程当中目标是否遮挡进行判断,因为这个方法经过自己测试没发现特别大的作用,就不放出来了,有兴趣的可以自己搜索一下相关的文献看一下。
近两年深度学习的兴起,也使得更好的算法出现,使用深度学习的算法有机会的话会再更新一篇出来,有需要或者什么问题都可以留言联系我。

以上是关于目标跟踪算法----KCF进阶(基于KCF改进的算法总结)的主要内容,如果未能解决你的问题,请参考以下文章

Opencv人数统计 yolo kcf人头跟踪 人数统计 KCF目标跟踪 YOLO目标跟踪

目标跟踪的深度学习方法与opencv下的KCF方法

单目标跟踪--KCF算法(核化相关滤波算法)Python实现(超详细)

KCF目标跟踪方法分析与总结

从 opencv 中的 kcf 跟踪中清除 ROI 历史记录

ROS:kcf算法+行人检测 = 让机器人自动识别并追踪行人