目标跟踪 订阅
目标跟踪应用程序保持实现目标的距离和仰角的轨道。 展开全文
目标跟踪应用程序保持实现目标的距离和仰角的轨道。
信息
更新时间
2012-07-13
正版价格
$0.00
中文名
目标跟踪
软件大小
801 KB
目标跟踪目标跟踪软件(OS:WinPhone)
软件分类:其他软件系统要求:Windows Phone 7.1或更高
收起全文
精华内容
参与话题
问答
  • 目标跟踪入门

    千次阅读 2019-03-21 21:05:24
    1、什么是目标跟踪目标跟踪指的是,给定第一帧图像中的目标位置后,根据跟踪算法预测出后续帧中目标的位置。 2、目标跟踪算法的基本原理 目标跟踪算法一般包括四个部分:特征提取、运动模型、外观模型、在线更新...

    1、什么是目标跟踪?
    目标跟踪指的是,给定第一帧图像中的目标位置后,根据跟踪算法预测出后续帧中目标的位置。
    2、目标跟踪算法的基本原理
    目标跟踪算法一般包括四个部分:特征提取、运动模型、外观模型、在线更新机制。其中,
    特征提取,用于提取图像目标的特征,特征一般要求既能较好地描述跟踪目标又能快速计算。常见的图像特征有灰度特征、颜色特征、纹理特征、Haar-like 矩形特征等;
    运动模型,用于描述帧与帧之间的目标运动状态关系,预测下一帧中目标的可能位置,经典的运动模型有均值漂移(Mean shift)、滑动窗口(Slide window)、卡尔曼滤波( Kalman Filtering)、粒子滤波( Particle Filtering) 等;
    外观模型,外观模型的作用是在当前帧中判决候选图像区域是被跟踪目标的可能性。提取图像区域的视觉特征,输入外观模型进行匹配或决策,最终确定被跟踪目标的空间位置。在视觉跟踪的4 个基本组成中,外观模型处于核心地位,如何设计一个鲁棒的外观模型是在线视觉跟踪算法的关键;
    在线更新机制,为了捕捉目标( 和背景) 在跟踪过程中的变化,目标跟踪需要包含一个在线更新机制,在跟踪过程中不断更新外观模型.常见的外观模型更新方式有模板更新、增量子空间学习算法及在线分类器等.如何设计一个合理的在线更新机制,既能捕捉目标( 和背景) 的变化又不会导致模型退化,也是目标跟踪研究的一个关键问题。
    3、目标跟踪算法有哪些类别?
    可以分为生成式与判别式。
    生成式(generative)模型:通过在线学习方式建立目标模型,然后使用模型搜索重建误差最小的图像区域,完成目标定位。这一类方法没有考虑目标的背景信息,图像信息没有得到较好的应用。通俗点讲就是在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,比较著名的有卡尔曼滤波,粒子滤波,mean-shift等。
    判别式(discrimination)模型:将目标跟踪看作是一个二元分类问题,同时提取目标和背景信息用来训练分类器,将目标从图像序列背景中分离出来,从而得到当前帧的目标位置。CV中的经典套路图像特征+机器学习, 当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域:与生成类方法最大的区别是,分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。
    4、目标跟踪的发展趋势
    目前主流的目标跟踪算法主要是相关滤波算法和基于深度学习的算法。相关跟踪算法的本质是利用相关寻找最相似的区域。而基于深度学习的方法则是基于统计学习。

    展开全文
  • 目标跟踪经典算法汇总(持续更新...)

    万次阅读 多人点赞 2018-07-24 09:51:22
    如题,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用、速度和性能都看的过去tracker。...

        如题,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用、速度和性能都看的过去tracker。我比较关注目标跟踪中的相关滤波方向,接下来我介绍下我所认识的目标跟踪,尤其是相关滤波类方法

     

    benchmark: https://github.com/foolwood/benchmark_results

    知乎:https://www.zhihu.com/question/26493945/answer/156025576

     

    背景介绍

    作者:YaqiLYU
    链接:https://www.zhihu.com/question/26493945/answer/156025576
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     

    经典判别类方法推荐StruckTLD,都能实时性能还行,Struck是2012年之前最好的方法,TLD是经典long-term的代表,思想非常值得借鉴:

    • Hare S, Golodetz S, Saffari A, et al. Struck: Structured output tracking with kernels [J]. IEEE TPAMI, 2016.
    • Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection [J]. IEEE TPAMI, 2012.

    长江后浪推前浪,前面的已被排在沙滩上,这个后浪就是相关滤波和深度学习。相关滤波类方法correlation filter简称CF,也叫做discriminative correlation filter简称DCF,注意和后面的DCF算法区别,包括前面提到的那几个,也是后面要着重介绍的。深度学习(Deep ConvNet based)类方法,因为深度学习类目前不适合落地就不瞎推荐了,可以参考Winsty的几篇 Naiyan Wang - Home,还有VOT2015的冠军MDNet Learning Multi-Domain Convolutional Neural Networks for Visual Tracking,以及VOT2016的冠军TCNN http://www.votchallenge.net/vot2016/download/44_TCNN.zip,速度方面比较突出的如80FPS的SiamFC SiameseFC tracker和100FPS的GOTURN davheld/GOTURN,注意都是在GPU上。基于ResNet的SiamFC-R(ResNet)在VOT2016表现不错,很看好后续发展,有兴趣也可以去VALSE听作者自己讲解 VALSE-20160930-LucaBertinetto-Oxford-JackValmadre-Oxford-pu,至于GOTURN,效果比较差,但优势是跑的很快100FPS,如果以后效果也能上来就好了。做科研的同学深度学习类是关键,能兼顾速度就更好了。

    最后强力推荐两个资源:

    王强@Qiang Wang维护的benchmark_results foolwood/benchmark_results:大量顶级方法在OTB库上的性能对比,各种论文代码应有尽有,大神自己C++实现并开源的CSK, KCF和DAT,还有他自己的DCFNet论文加源码,找不着路的同学请跟紧。

    @H Hakase维护的相关滤波类资源 HakaseH/CF_benchmark_results ,详细分类和论文代码资源,走过路过别错过,相关滤波类算法非常全面,非常之用心!
     

     

    相关滤波

    最经典的高速相关滤波类跟踪算法CSK, KCF/DCF, CN

    KCF/DCF算法在OTB50上(2014年4月就挂arVix了, 那时候OTB100还没有发表)的实验结果,Precision和FPS碾压了OTB50上最好的Struck,看惯了勉强实时的Struck和TLD,飙到高速的KCF/DCF突然有点让人不敢相信,其实KCF/DCF就是在OTB上大放异彩的CSK的多通道特征改进版本。注意到那个超高速615FPS的MOSSE(严重超速这是您的罚单),这是目标跟踪领域的第一篇相关滤波类方法,这其实是真正第一次显示了相关滤波的潜力。和KCF同一时期的还有个CN,在2014'CVPR上引起剧烈反响的颜色特征方法,其实也是CSK的多通道颜色特征改进算法。从MOSSE(615)到 CSK(362) 再到 KCF(172FPS), DCF(292FPS), CN(152FPS), CN2(202FPS),速度虽然是越来越慢,但效果越来越好,而且始终保持在高速水平:

    • Bolme D S, Beveridge J R, Draper B A, et al. Visual object tracking using adaptive correlation filters [C]// CVPR, 2010.
    • Henriques J F, Caseiro R, Martins P, et al. Exploiting the circulant structure of tracking-by- detection with kernels [C]// ECCV, 2012.
    • Henriques J F, Rui C, Martins P, et al. High-Speed Tracking with Kernelized Correlation Filters [J]. IEEE TPAMI, 2015.
    • Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014.

     

    CSK和KCF都是Henriques J F(牛津大学)João F. Henriques 大神先后两篇论文,影响后来很多工作,核心部分的岭回归,循环移位的近似密集采样,还给出了整个相关滤波算法的详细推导。还有岭回归加kernel-trick的封闭解,多通道HOG特征。

    Martin Danelljan大牛(林雪平大学)用多通道颜色特征Color Names(CN)去扩展CSK得到了不错的效果,算法也简称CN Coloring Visual Tracking 。

    MOSSE是单通道灰度特征的相关滤波,CSK在MOSSE的基础上扩展了密集采样(加padding)和kernel-trick,KCF在CSK的基础上扩展了多通道梯度的HOG特征,CN在CSK的基础上扩展了多通道颜色的Color Names。HOG是梯度特征,而CN是颜色特征,两者可以互补,所以HOG+CN在近两年的跟踪算法中成为了hand-craft特征标配。最后,根据KCF/DCF的实验结果,讨论两个问题:

    • 1. 为什么只用单通道灰度特征的KCF和用了多通道HOG特征的KCF速度差异很小?

    第一,作者用了HOG的快速算法fHOG,来自Piotr's Computer Vision Matlab Toolbox,C代码而且做了SSE优化。如对fHOG有疑问,请参考论文Object Detection with Discriminatively Trained Part Based Models第12页。
    第二,HOG特征常用cell size是4,这就意味着,100*100的图像,HOG特征图的维度只有25*25,而Raw pixels是灰度图归一化,维度依然是100*100,我们简单算一下:27通道HOG特征的复杂度是27*625*log(625)=47180,单通道灰度特征的复杂度是10000*log(10000)=40000,理论上也差不多,符合表格。

    看代码会发现,作者在扩展后目标区域面积较大时,会先对提取到的图像块做因子2的下采样到50*50,这样复杂度就变成了2500*log(2500)=8495,下降了非常多。那你可能会想,如果下采样再多一点,复杂度就更低了,但这是以牺牲跟踪精度为代价的,再举个例子,如果图像块面积为200*200,先下采样到100*100,再提取HOG特征,分辨率降到了25*25,这就意味着响应图的分辨率也是25*25,也就是说,响应图每位移1个像素,原始图像中跟踪框要移动8个像素,这样就降低了跟踪精度。在精度要求不高时,完全可以稍微牺牲下精度提高帧率(但看起来真的不能再下采样了)。

    2. HOG特征的KCF和DCF哪个更好?

    大部分人都会认为KCF效果超过DCF,而且各属性的准确度都在DCF之上,然而,如果换个角度来看,以DCF为基准,再来看加了kernel-trick的KCF,mean precision仅提高了0.4%,而FPS下降了41%,这么看是不是挺惊讶的呢?除了图像块像素总数,KCF的复杂度还主要和kernel-trick相关。所以,下文中的CF方法如果没有kernel-trick,就简称基于DCF,如果加了kernel-trick,就简称基于KCF(剧透基本各占一半)。当然这里的CN也有kernel-trick,但请注意,这是Martin Danelljan大神第一次使用kernel-trick,也是最后一次。。。

    这就会引发一个疑问,kernel-trick这么强大的东西,怎么才提高这么点?这里就不得不提到Winsty的另一篇大作:

    Wang N, Shi J, Yeung D Y, et al. Understanding and diagnosing visual tracking systems[C]// ICCV, 2015.

    一句话总结,别看那些五花八门的机器学习方法,那都是虚的,目标跟踪算法中特征才是最重要的(就是因为这篇文章我粉了WIN叔哈哈),以上就是最经典的三个高速算法,CSK, KCF/DCF和CN,推荐。

    总体来说,相关滤波类方法对快速变形和快速运动情况的跟踪效果不好

    快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。

     

    检测阶段,相关滤波对快速运动的目标检测比较乏力。相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看:

    1. 如果目标在中心附近,检测准确且成功。
    2. 如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。
    3. 如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。
    4. 如果整个目标已经位移出了这个区域,那肯定就检测失败了。

    以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,其中SRDCF速度比较慢,并不适合实时场合。

    Martin Danelljan的SRDCF Learning Spatially Regularized Correlation Filters for Visual Tracking,主要思路:既然边界效应发生在边界附近,那就忽略所有移位样本的边界部分像素,或者说限制让边界附近滤波器系数接近0:

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]// ICCV. 2015.

    SRDCF基于DCF,类SAMF多尺度,采用更大的检测区域(padding = 4),同时加入空域正则化,惩罚边界区域的滤波器系数,由于没有闭合解,采用高斯-塞德尔方法迭代优化。检测区域扩大(1.5->4),迭代优化(破坏了闭合解)导致SRDCF只有5FP,但效果非常好是2015年的baseline。

    另一种方法是Hamed Kiani提出的MOSSE改进算法,基于灰度特征的CFLM Correlation Filters with Limited Boundaries 和基于HOG特征的BACF Learning Background-Aware Correlation Filters for Visual Tracking,主要思路是采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本的比例,或者说滤波器填充0以保持和检测图像一样大,同样没有闭合解,采用ADMM迭代优化:

    • Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries [C]// CVPR, 2015.
    • Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017.

     

    CFLB仅单通道灰度特征,虽然速度比较快167FPS,但性能远不如KCF,不推荐;最新BACF将特征扩展为多通道HOG特征,性能超过了SRDCF,而且速度比较快35FPS,非常推荐。

    其实这两个解决方案挺像的,都是用更大的检测及更新图像块,训练作用域比较小的相关滤波器,不同点是SRDCF的滤波器系数从中心到边缘平滑过渡到0,而CFLM直接用0填充滤波器边缘。

    VOT2015相关滤波方面还有排在第二名,结合深度特征的DeepSRDCF,因为深度特征都非常慢,在CPU上别说高速,实时都到不了,虽然性能非常高,但这里就不推荐,先跳过。

     

     

    Benchmark Results

    The trackers are ordered by the average overlap scores.

    • AUC and Precision are the standard metrics.
    • Deep Learning: deep learning features, deep learning method and RL.
    • RealTime: Speeds from the original paper, not test on the same platform. (just focus magnitude)
    Tracker AUC-CVPR2013 Precision-CVPR2013 AUC-OTB100 Precision-OTB100 AUC-OTB50 Precision-OTB50 Deep Learning RealTime
    ECO 0.709 0.93 0.694 0.910 0.643 0.874 Y N(6)
    MDNet 0.708 0.948 0.678 0.909 0.645 0.890 Y N(1)
    SANet 0.686 0.95 0.692 0.928 - - Y N(1)
    BranchOut     0.678 0.917     Y N(1)
    TCNN 0.682 0.937 0.654 0.884 - - Y N(1)
    TSN     0.644 0.868 0.58 0.809 Y N(1)
    CRT - - 0.642 0.875 0.594 0.835 Y N(1.3)
    BACF 0.678   0.63       N Y(35)
    MCPF 0.677 0.916 0.628 0.873     Y N(0.5)
    CREST 0.673 0.908 0.623 0.837 - - Y N(1)
    C-COT 0.672 0.899 0.682 - - - Y N(0.3)
    DNT 0.664 0.907 0.627 0.851 - - Y N(5)
    PTAV 0.663 0.894 0.635 0.849     Y Y(25)
    ADNet 0.659 0.903 0.646 0.88     Y N(3)
    DSiamM 0.656 0.891         Y Y(25)
    SINT+ 0.655 0.882 - - - - Y N(4)
    DRT 0.655 0.892 - - - - Y N(0.8)
    RDT 0.654 - 0.603 - - - Y Y(43)
    SRDCFdecon 0.653 0.87 0.627 0.825 0.56 0.764 N N(1)
    DeepLMCF 0.643 0.892         Y N(8)
    MUSTer 0.641 0.865 0.575 0.774 - - N N(4)
    DeepSRDCF 0.641 0.849 0.635 0.851 0.56 0.772 Y N(<1)
    EAST 0.638           Y Y(23/159)
    SINT 0.635 0.851 - - - - Y N(4)
    LCT 0.628 0.848 0.562 0.762 0.492 0.691 N Y(27)
    SRDCF 0.626 0.838 0.598 0.789 0.539 0.732 N N(5)
    LMCF 0.624 0.839 0.568       N Y(85)
    SCF 0.623 0.874 - - - - N Y(35)
    Staple_CA 0.621 0.833 0.598 0.81     N Y(35)
    RaF 0.615 0.919         Y N(2)
    SiamFC 0.612 0.815 - - - - Y Y(58)
    RFL     0.581       Y Y(15)
    CFNet_conv2 0.611 0.807 0.568 0.748 0.53 0.702 Y Y(75)
    SiamFC_{3s} 0.608 0.809 - - - - Y Y(86)
    ACFN 0.607 0.86 0.575 0.802     Y Y(15)
    CF2 0.605 0.891 0.562 0.837 0.513 0.803 Y N(11)
    HDT 0.603 0.889 0.654 0.848 0.515 0.804 Y N(10)
    Staple 0.6 0.793 0.578 0.784 - - N Y(80)
    CSR-DCF 0.599 0.8 0.598 0.733     N Y(13)
    FCNT 0.599 0.856 - - - - Y N(1)
    CNN-SVM 0.597 0.852 0.554 0.814 0.512 0.769 Y N
    SCT 0.595 0.845 - - - - Y Y(40)
    SO-DLT 0.595 0.81 - - - - Y N
    BIT 0.593 0.817 - - - - N Y(45)
    DLSSVM 0.589 0.829 0.541 0.767 - - Y N(10)
    SAMF 0.579 0.785 0.535 0.743 - - N N(7)
    RPT 0.577 0.805 - - - - N N(4)
    MEEM 0.566 0.83 0.53 0.781 0.473 0.712 N N(10)
    DSST 0.554 0.737 0.52 0.693 0.463 0.625 N Y(24)
    CNT 0.545 0.723 - - - - Y N(1.5)
    TGPR 0.529 0.766 0.458 0.643 - - N N(1)
    KCF 0.514 0.74 0.477 0.693 0.403 0.611 N Y(172)
    GOTURN 0.444 0.62 0.427 0.572 - - Y Y(16

     

    目标跟踪简介

     

    视觉目标跟踪是计算机视觉中的一个重要研究方向,有着广泛的应用,如:视频监控,人机交互, 无人驾驶等。过去二三十年视觉目标跟踪技术取得了长足的进步,特别是最近两年利用深度学习的目标跟踪方法取得了令人满意的效果,使目标跟踪技术获得了突破性的进展。本文旨在简要介绍:目标跟踪的基本流程与框架,目标跟踪存在的挑战,目标跟踪相关方法,以及目标跟踪最新的进展等,希望通过这篇文章能让读者对视觉目标跟踪领域有一个较为全面的认识。

    1.视觉目标跟踪基本流程与框架

            视觉目标(单目标)跟踪任务就是在给定某视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。这一基本任务流程可以按如下的框架划分:

     

            输入初始化目标框,在下一帧中产生众多候选框(Motion Model),提取这些候选框的特征(Feature Extractor),然后对这些候选框评分(Observation Model),最后在这些评分中找一个得分最高的候选框作为预测的目标(Prediction A),或者对多个预测值进行融合(Ensemble)得到更优的预测目标。

            根据如上的框架,我们可以把目标跟踪划分为5项主要的研究内容. (1)运动模型:如何产生众多的候选样本。(2)特征提取:利用何种特征表示目标。(3)观测模型:如何为众多候选样本进行评分。(4)模型更新:如何更新观测模型使其适应目标的变化。(5)集成方法:如何融合多个决策获得一个更优的决策结果。下面分别简要介绍这5项研究内容。

    运动模型(Motion Model):生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。

    特征提取(Feature Extractor): 鉴别性的特征表示是目标跟踪的关键之一。常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。

    观测模型(Observation Model):大多数的跟踪方法主要集中在这一块的设计上。根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model). 生成式模型通常寻找与目标模板最相似的候选作为跟踪结果,这一过程可以视为模板匹配。常用的理论方法包括:子空间,稀疏表示,字典学习等。而判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。

    模型更新(Model Update): 模型更新主要是更新观测模型,以适应目标表观的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。

    集成方法(Ensemble Method): 集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。

     

    2.视觉目标跟踪面临的挑战

          视觉运动目标跟踪是一个极具挑战性的任务,因为对于运动目标而言,其运动的场景非常复杂并且经常发生变化,或是目标本身也会不断变化。那么如何在复杂场景中识别并跟踪不断变化的目标就成为一个挑战性的任务。如下图我们列出了目标跟踪中几个主要的挑战因素:

     

     

            其中遮挡(Occlusion)是目标跟踪中最常见的挑战因素之一,遮挡又分为部分遮挡(Partial Occlusion)和完全遮挡(Full Occlusion)。解决部分遮挡通常有两种思路:(1)利用检测机制判断目标是否被遮挡,从而决定是否更新模板,保证模板对遮挡的鲁棒性。(2)把目标分成多个块,利用没有被遮挡的块进行有效的跟踪。对于目标被完全遮挡的情况,当前也并没有有效的方法能够完全解决。

    形变(Deformation)也是目标跟踪中的一大难题,目标表观的不断变化,通常导致跟踪发生漂移(Drift)。解决漂移问题常用的方法是更新目标的表观模型,使其适应表观的变化,那么模型更新方法则成为了关键。什么时候更新,更新的频率多大是模型更新需要关注的问题。

    背景杂斑(Background Clutter)指得是要跟踪的目标周围有非常相似的目标对跟踪造成了干扰。解决这类问题常用的手段是利用目标的运动信息,预测运动的大致轨迹,防止跟踪器跟踪到相似的其他目标上,或是利用目标周围的大量样本框对分类器进行更新训练,提高分类器对背景与目标的辨别能力。

    尺度变换(Scale Variation)是目标在运动过程中的由远及近或由近及远而产生的尺度大小变化的现象。预测目标框的大小也是目标跟踪中的一项挑战,如何又快又准确的预测出目标的尺度变化系数直接影响了跟踪的准确率。通常的做法有:在运动模型产生候选样本的时候,生成大量尺度大小不一的候选框,或是在多个不同尺度目标上进行目标跟踪,产生多个预测结果,选择其中最优的作为最后的预测目标。

            当然,除了上述几个常见的挑战外,还有一些其他的挑战性因素:光照(illumination),低分辨率(Low Resolution),运动模糊(Motion Blur),快速运动(Fast Motion),超出视野(Out of View),旋转(Rotation)等。所有的这些挑战因数共同决定了目标跟踪是一项极为复杂的任务。更多信息请参考http://cvlab.hanyang.ac.kr/tracker_benchmark/datasets.html

    3.视觉目标跟踪方法

            视觉目标跟踪方法根据观测模型是生成式模型或判别式模型可以被分为生成式方法(Generative Method)和判别式方法(Discriminative Method)。前几年最火的生成式跟踪方法大概是稀疏编码(Sparse Coding)了, 而近来判别式跟踪方法逐渐占据了主流地位,以相关滤波(Correlation Filter)和深度学习(Deep Learning)为代表的判别式方法也取得了令人满意的效果。下面我们分别简要概括这几种方法的大体思想和其中的一些具体的跟踪方法。

    稀疏表示(Sparse Representation):给定一组过完备字典,将输入信号用这组过完备字典线性表示,对线性表示的系数做一个稀疏性的约束(即使得系数向量的分量尽可能多的为0),那么这一过程就称为稀疏表示。基于稀疏表示的目标跟踪方法则将跟踪问题转化为稀疏逼近问题来求解。如稀疏跟踪的开山之作L1Tracker, 认为候选样本可以被稀疏的表示通过目标模板和琐碎模板,而一个好的候选样本应该拥有更稀疏的系数向量。稀疏性可通过解决一个L1正则化的最小二乘优化问题获得,最后将与目标模板拥有最小重构误差的候选样本作为跟踪结果。L1Tracker中利用琐碎模板处理遮挡,利用对稀疏系数的非负约束解决背景杂斑问题。随后在L1Tracker基础上的改进则有很多,比较有代表性的有ALSA,L1APG等。

    相关滤波(Correlation Filter):相关滤波源于信号处理领域,相关性用于表示两个信号之间的相似程度,通常用卷积表示相关操作。那么基于相关滤波的跟踪方法的基本思想就是,寻找一个滤波模板,让下一帧的图像与我们的滤波模板做卷积操作,响应最大的区域则是预测的目标。根据这一思想先后提出了大量的基于相关滤波的方法,如最早的平方误差最小输出和(MOSSE)利用的就是最朴素的相关滤波思想的跟踪方法。随后基于MOSSE有了很多相关的改进,如引入核方法(Kernel Method)的CSK,KCF等都取得了很好的效果,特别是利用循环矩阵计算的KCF,跟踪速度惊人。在KCF的基础上又发展了一系列的方法用于处理各种挑战。如:DSST可以处理尺度变化,基于分块的(Reliable Patches)相关滤波方法可处理遮挡等。但是所有上述的基于相关滤波的方法都受到边界效应(Boundary Effect)的影响。为了克服这个问题SRDCF应运而生,SRDCF利用空间正则化惩罚了相关滤波系数获得了可与深度学习跟踪方法相比的结果。

    深度学习(CNN-Based):因为深度特征对目标拥有强大的表示能力,深度学习在计算机视觉的其他领域,如:检测,人脸识别中已经展现出巨大的潜力。但早前两年,深度学习在目标跟踪领域的应用并不顺利,因为目标跟踪任务的特殊性,只有初始帧的图片数据可以利用,因此缺乏大量的数据供神经网络学习。只到研究人员把在分类图像数据集上训练的卷积神经网络迁移到目标跟踪中来,基于深度学习的目标跟踪方法才得到充分的发展。如:CNN-SVM利用在ImageNet分类数据集上训练的卷积神经网络提取目标的特征,再利用传统的SVM方法做跟踪。与CNN-SVM提取最后一层的深度特征不同的是,FCN利用了目标的两个卷积层的特征构造了可以选择特征图的网络,这种方法比只利用最后的全连接层的CNN-SVM效果有些许的提升。随后HCF, HDT等方法则更加充分的利用了卷积神经网络各层的卷积特征,这些方法在相关滤波的基础上结合多层次卷积特征进一步的提升了跟踪效果。然而,跟踪任务与分类任务始终是不同的,分类任务关心的是区分类间差异,忽视类内的区别。目标跟踪任务关心的则是区分特定目标与背景,抑制同类目标。两个任务有着本质的区别,因此在分类数据集上预训练的网络可能并不完全适用于目标跟踪任务。于是,Nam设计了一个专门在跟踪视频序列上训练的多域(Multi-Domain)卷积神经网络(MDNet),结果取得了VOT2015比赛的第一名。但是MDNet在标准集上进行训练多少有一点过拟合的嫌疑,于是VOT2016比赛中禁止在标准跟踪数据集上进行训练。2016年SRDCF的作者继续发力,也利用了卷积神经网络提取目标特征然后结合相关滤波提出了C-COT的跟踪方法取得了VOT2016的冠军。

     

     

     

    4.视觉目标跟踪最新进展

            目标跟踪最近几年发展迅速,以基于相关滤波(Correlation Filter)和卷积神经网络(CNN)的跟踪方法已经占据了目标跟踪的大半江山。如下图给出的2014-2017年以来表现排名靠前的一些跟踪方法。

     

    可以看到前三名的方法不是基于相关滤波的方法就是基于卷积神经网络的方法,或是两者结合的方法。比如ECCV2016的C-COT就是在相关滤波的基础上结合卷积神经网络的杰作。下图给出这些方法在标准跟踪数据集OTB2013上的跟踪结果:

     

    可以看到基于卷积神经网络的方法取得了惊人的突破。预计未来两年相关滤波和卷积神经网络将仍然会是目标跟踪领域的主角。

     

     

    卷积特征

    最后这部分是Martin Danelljan的专场,主要介绍他的一些列工作,尤其是结合深度特征的相关滤波方法,代码都在他主页Visual Tracking,就不一一贴出了。

    • Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014.

    在CN中提出了非常重要的多通道颜色特征Color Names,用于CSK框架取得非常好得效果,还提出了加速算法CN2,通过类PCA的自适应降维方法,对特征通道数量降维(10 -> 2),平滑项增加跨越不同特征子空间时的代价,也就是PCA中的协方差矩阵线性更新防止降维矩阵变化太大。

    • Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017.

    DSST是VOT2014的第一名,开创了平移滤波+尺度滤波的方式。在fDSST中对DSST进行加速,PCA方法将平移滤波HOG特征的通道降维(31 -> 18),QR方法将尺度滤波器~1000*17的特征降维到17*17,最后用三角插值(频域插值)将尺度数量从17插值到33以获得更精确的尺度定位。

    SRDCF是VOT2015的第四名,为了减轻边界效应扩大检测区域,优化目标增加了空间约束项,用高斯-塞德尔方法迭代优化,并用牛顿法迭代优化平移检测的子网格精确目标定位。

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Adaptive decontamination of the training set: A unified formulation for discriminative visual tracking [C]// CVPR, 2016.

    SRDCFdecon在SRDCF的基础上,改进了样本和学习率问题。以前的相关滤波都是固定学习率线性加权更新模型,虽然这样比较简单不用保存以前样本,但在定位不准确、遮挡、背景扰动等情况会污染模型导致漂移。SRDCFdecon选择保存以往样本(图像块包括正,负样本),在优化目标函数中添加样本权重参数和正则项,采用交替凸搜索,首先固定样本权重,高斯-塞德尔方法迭代优化模型参数,然后固定模型参数,凸二次规划方法优化样本权重。

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Convolutional features for correlation filter based visual tracking [C]// ICCVW, 2015.

    DeepSRDCF是VOT2015的第二名,将SRDCF中的HOG特征替换为CNN中单层卷积层的深度特征(也就是卷积网络的激活值),效果有了极大提升。这里用imagenet-vgg-2048 network,VGG网络的迁移能力比较强,而且MatConvNet就是VGG组的,MATLAB调用非常方便。论文还测试了不同卷积层在目标跟踪任务中的表现:

    第1层表现最好,第2和第5次之。由于卷积层数越高语义信息越多,但纹理细节越少,从1到4层越来越差的原因之一就是特征图的分辨率越来越低,但第5层反而很高,是因为包括完整的语义信息,判别力比较强(本来就是用来做识别的)。

    注意区分这里的深度特征和基于深度学习的方法,深度特征来自ImageNet上预训练的图像分类网络,没有fine-turn这一过程,不存在过拟合的问题。而基于深度学习的方法大多需要在跟踪序列上end-to-end训练或fine-turn,如果样本数量和多样性有限就很可能过拟合。

    • Ma C, Huang J B, Yang X, et al. Hierarchical convolutional features for visual tracking [C]// ICCV, 2015.

    值得一提的还有Chao Ma的HCF,结合多层卷积特征提升效果,用了VGG19的Conv5-4, Conv4-4和Conv3-4的激活值作为特征,所有特征都缩放到图像块分辨率,虽然按照论文应该是由粗到细确定目标,但代码中比较直接,三种卷积层的响应以固定权值1, 0.5, 0.02线性加权作为最终响应。虽然用了多层卷积特征,但没有关注边界效应而且线性加权的方式过于简单,HCF在VOT2016仅排在28名(单层卷积深度特征的DeepSRDCF是第13名)。

    • Danelljan M, Robinson A, Khan F S, et al. Beyond correlation filters: Learning continuous convolution operators for visual tracking [C]// ECCV, 2016.

    C-COT是VOT2016的第一名,综合了SRDCF的空域正则化和SRDCFdecon的自适应样本权重,还将DeepSRDCF的单层卷积的深度特征扩展为多成卷积的深度特征(VGG第1和5层),为了应对不同卷积层分辨率不同的问题,提出了连续空间域插值转换操作,在训练之前通过频域隐式插值将特征图插值到连续空域,方便集成多分辨率特征图,并且保持定位的高精度。目标函数通过共轭梯度下降方法迭代优化,比高斯-塞德尔方法要快,自适应样本权值直接采用先验权值,没有交替凸优化过程,检测中用牛顿法迭代优化目标位置。

    注意以上SRDCF, SRDCFdecon,DeepSRDCF,C-COT都无法实时,这一系列工作虽然效果越来越好,但也越来越复杂,在相关滤波越来越慢失去速度优势的时候,Martin Danelljan在2017CVPR的ECO来了一脚急刹车,大神来告诉我们什么叫又好又快,不忘初心:

    • Danelljan M, Bhat G, Khan F S, et al. ECO: Efficient Convolution Operators for Tracking [C]// CVPR, 2017.

    ECO是C-COT的加速版,从模型大小、样本集大小和更新策略三个方便加速,速度比C-COT提升了20倍,加量还减价,EAO提升了13.3%,最最最厉害的是, hand-crafted features的ECO-HC有60FPS。。吹完了,来看看具体做法。

     

    第一减少模型参数,定义了factorized convolution operator(分解卷积操作),效果类似PCA,用PCA初始化,然后仅在第一帧优化这个降维矩阵,以后帧都直接用,简单来说就是有监督降维,深度特征时模型参数减少了80%。

    第二减少样本数量, compact generative model(紧凑的样本集生成模型),采用Gaussian Mixture Model (GMM)合并相似样本,建立更具代表性和多样性的样本集,需要保存和优化的样本集数量降到C-COT的1/8。

    第三改变更新策略,sparser updating scheme(稀疏更新策略),每隔5帧做一次优化更新模型参数,不但提高了算法速度,而且提高了对突变,遮挡等情况的稳定性。但样本集是每帧都更新的,稀疏更新并不会错过间隔期的样本变化信息。

    ECO的成功当然还有很多细节,而且有些我也看的不是很懂,总之很厉害就是了。。ECO实验跑了四个库(VOT2016, UAV123, OTB-2015, and TempleColor)都是第一,而且没有过拟合的问题,仅性能来说ECO是目前最好的相关滤波算法,也有可能是最好的目标跟踪算法。hand-crafted features版本的ECO-HC,降维部分原来HOG+CN的42维特征降到13维,其他部分类似,实验结果ECO-HC超过了大部分深度学习方法,而且论文给出速度是CPU上60FPS。

    最后是来自Luca Bertinetto的CFNet End-to-end representation learning for Correlation Filter based tracking,除了上面介绍的相关滤波结合深度特征,相关滤波也可以end-to-end方式在CNN中训练了:

    • Valmadre J, Bertinetto L, Henriques J F, et al. End-to-end representation learning for Correlation Filter based tracking [C]// CVPR, 2017.

    在SiamFC的基础上,将相关滤波也作为CNN中的一层,最重要的是cf层的前向传播和反向传播公式推导,两层卷积层的CFNet在GPU上是75FPS,综合表现并没有很多惊艳,可能是难以处理CF层的边界效应吧,持观望态度。

     

    2017年CVPR和ICCV结果

    下面是CVPR 2017的目标跟踪算法结果:可能MD大神想说,一个能打的都没有!

    仿照上面的表格,整理了ICCV 2017的相关论文结果对比ECO:哎,还是一个能打的都没有!

     

    =================================分 割 线 ====2018============================================

    VOT2018 paper: http://prints.vicos.si/publications/files/365

    VOT2018 presentation: http://data.votchallenge.net/vot2018/presentations/vot2018_presentation.pdf

    计算机视觉两大盛会CVPR 2018和ECCV 2018,与Visual Object Tracking领域一年一度最权威竞赛VOT2018 VOT2018 Challenge 随着ECCV落下帷幕,一起来看看今年单目标跟踪方向又有什么重大突破,寻找高含金量的好paper,发现速度性能双高的实用算法。

    看点:DCF是否依然是中流砥柱,未来之星SiamNet发展到了什么程度

    Short-term tracking challenge

    短期跟踪竞赛依然是VOT2017的60个public dataset公开序列(公测)和60个sequestered dataset隐藏序列(内测),序列和评价指标完全相同。今年共有72个算法参赛,下面是前50名的公测结果(高亮标出了一些baseline):

    72个参赛算法中占比最高的是DCF(discriminative correlation filter)类和SiamNet(Siamese network)类,其中38个是DCF类方法占比51%,feature以来自VGGNet的深度特征为主;14个是SiamNet类占比18%,backbone以SiamFC中的AlexNet为主,今年SiamNet类占比大幅提高。

    • EAO:两个baseline,VOT2016和VOT2017的神话CCOT,和2017年最好算法ECO都只能排在20左右,已经被大幅超越,甚至前几名都与ECO拉开了0.1以上的差距。
    • R鲁棒性前四名:MFT, LADCF, RCO, UPDT,都是DCF类方法,CNN特征提取的backbone都是ResNet-50。
    • A准确性前两名:SiamRPN, SA-Siam-R, 都是SiamNet类方法,这两个算法都表现出准确性奇高,而鲁棒性前十最差的特点。

    (准确性奇高而鲁棒性较差,这是算法设计的缺陷,还是SiamNet类别天生的劣势?

    VOT竞赛是各新算法的试金石,在前20名中我们也能看到2018年CVPR和ECCV的一些论文:

    CVPR 2018:SiamRPN, DRT, STRCF, SA-Siam, LSART

    ECCV 2018:DaSiamRPN, UPDT

    以上就是性能比较突出的2018年顶会了,好文推荐!其中SiamRPN, SA-Siam, DaSiamRPN三篇是Siamese Net类方法,DRT, STRCF, UPDT三篇是DCF类方法。

     

     

    总结

    DCF依然领跑性能,short-term榜依旧以DCF+CNN为主,尤其UPDT贡献巨大,对前几名算法都有影响,但速度越来越慢看不到边,KCF不堪回首。

    SiamNet速度快性能也不差,real-time榜和long-term榜都是SiamNet登顶,尤其SiamRPN潜力巨大,打通了目标跟踪和目标检测,性价比很高,接下来会快速发展壮大,希望速度优势能保得住。

     

     

    =================================分===割===线======2019.11.22======================================

    时隔一年,再次回来目标跟踪领域,不得不感叹,大神们发paper的速度实在是太快了,去年封王的算法今年看来也是被虐的渣都不剩,深感落后了啊,赶紧抓一把来看看最新的算法情况。

    首先看SiamRPN系列文章

    如下:

    [0] SiamFC文章,对SINT(Siamese Instance Search for Tracking,in CVPR2016)改进,第一个提出用全卷积孪生网络结构来解决tracking问题的paper,可以视为只有一个anchor的SiamRPN

    论文题目:Fully-convolutional siamese networks for object tracking

    论文地址:https://arxiv.org/abs/1606.09549

    项目地址:https://www.robots.ox.ac.uk/~luca/siamese-fc.html

    tf实现:https://github.com/torrvision/siamfc-tf

    pytorch实现:https://github.com/rafellerc/Pytorch-SiamFC

    [0.1] 后面的v2版本即CFNet,用cf操作代替了correlation操作。

    论文题目:End-To-End Representation Learning for Correlation Filter Based Tracking

    论文地址:http://openaccess.thecvf.com/content_cvpr_2017/html/Valmadre_End-To-End_Representation_Learning_CVPR_2017_paper.html

    项目地址:http://www.robots.ox.ac.uk/~luca/cfnet.html

    MatConvNet实现:https://github.com/bertinetto/cfnet

    SiamFC之后有诸多的改进工作,例如

    [0.2] StructSiam,在跟踪中考虑Local structures

    论文题目:Structured Siamese Network for Real-Time Visual Tracking

    论文地址:http://openaccess.thecvf.com/content_ECCV_2018/papers/Yunhua_Zhang_Structured_Siamese_Network_ECCV_2018_paper.pdf

    [0.3] SiamFC-tri,在Saimese跟踪网络中引入了Triplet Loss

    论文题目:Triplet Loss in Siamese Network for Object Tracking

    论文地址:http://openaccess.thecvf.com/content_ECCV_2018/papers/Xingping_Dong_Triplet_Loss_with_ECCV_2018_paper.pdf

    [0.4] DSiam,动态Siamese网络

    论文题目:Learning Dynamic Siamese Network for Visual Object Tracking

    论文地址:http://openaccess.thecvf.com/content_ICCV_2017/papers/Guo_Learning_Dynamic_Siamese_ICCV_2017_paper.pdf

    代码地址:https://github.com/tsingqguo/DSiam

    [0.5] SA-Siam,Twofold Siamese网络

    论文题目:A Twofold Siamese Network for Real-Time Object Tracking

    论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/He_A_Twofold_Siamese_CVPR_2018_paper.pdf

    [1] SiamRPN文章,将anchor应用在候选区域的每个位置,同时进行分类和回归,one-shot local detection。

    论文题目:High Performance Visual Tracking with Siamese Region Proposal Network

    论文地址:http://openaccess.thecvf.com/content_cvpr_2018/papers/Li_High_Performance_Visual_CVPR_2018_paper.pdf

    项目地址:http://bo-li.info/SiamRPN/

    [2] DaSiamRPN, SiamRPN文章的follow-up,重点强调了训练过程中样本不均衡的问题,增加了正样本的种类和有语义的负样本。

    论文题目:Distractor-aware Siamese Networks for Visual Object Tracking

    论文地址:https://arxiv.org/abs/1808.06048

    项目地址:http://bo-li.info/DaSiamRPN/

    test code:https://github.com/foolwood/DaSiamRPN

    [3] Cascaded SiamRPN,将若干RPN模块cascade起来,同时利用了不同layer的feature。

    论文题目:Siamese Cascaded Region Proposal Networks for Real-Time Visual Tracking

    论文地址:https://arxiv.org/abs/1812.06148

    [4] SiamMask,在SiamRPN的结构中增加了一个mask分支,同时进行tracking和video segmentation。

    论文题目:Fast Online Object Tracking and Segmentation: A Unifying Approach

    论文地址:https://arxiv.org/abs/1812.05050

    项目地址:http://www.robots.ox.ac.uk/~qwang/SiamMask/

    [5] SiamRPN++, SiamRPN文章的follow-up,让现代网络例如ResNet在tracking中work了,基本上所有数据集都是SOTA。

    论文题目:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

    论文地址:https://arxiv.org/abs/1812.11703

    项目地址:http://bo-li.info/SiamRPN++/

    [6] Deeper and Wider SiamRPN,将网络加深加宽来提升性能,重点关注感受野和padding的影响。

    论文题目:Deeper and Wider Siamese Networks for Real-Time Visual Tracking

    论文地址:https://arxiv.org/abs/1901.01660

    test code:https://gitlab.com/MSRA_NLPR/deeper_wider_siamese_trackers

     

    2019论文盘点

    跟踪在计算机视觉里有很广泛的内涵,本文所指的跟踪为通用目标跟踪,不包括比如人脸特征点跟踪、视线跟踪等特定领域。

    本文总结了 19 篇相关论文,列出了代码地址,并大致分类为单目标跟踪(最多)、多目标跟踪、跟踪与分割、3D目标跟踪、跟踪数据集几部分。

    比较有意思的是,跟踪领域的人也开始关注分割了,ICCV上也有相关的workshop。这给算法带来新挑战。

    可以在以下网站下载这些论文:

    http://openaccess.thecvf.com/CVPR2019.py

     

    单目标跟踪

     

    一种无监督的方式对大规模无标记视频进行训练的。动机是一个健壮的跟踪器应该在视频前向和后向预测中都是有效的,在Siamese相关滤波网络上构建了算法框架,该网络使用未标记的原始视频进行训练,达到了有监督跟踪器的baseline精度。

    Unsupervised Deep Tracking

    Ning Wang, Yibing Song, Chao Ma, Wengang Zhou, Wei Liu, Houqiang Li

    https://github.com/594422814/UDT/

     

    为了实现多目标跟踪的无标签和端到端学习,提出了一种用动画来跟踪的框架,其中可微分神经模型首先跟踪输入帧中的对象,然后将这些对象动画化为重建帧。然后通过反向传播通过重建误差来驱动学习。

    军事医学研究院、国防科技大学、伦敦大学学院、阿兰图灵研究所

    Tracking by Animation: Unsupervised Learning of Multi-Object Attentive Trackers

    Zhen He, Jian Li, Daxue Liu, Hangen He, David Barber

    https://github.com/zhen-he/tracking-by-animation

     

    通过特定视点的鉴别相关滤波的重建进行目标跟踪

    Tampere University、University of Ljubljana

    Object Tracking by Reconstruction With View-Specific Discriminative Correlation Filters

    Ugur Kart, Alan Lukezic, Matej Kristan, Joni-Kristian Kamarainen, Jiri Matas

     

    提出了一种新的学习目标感知特征的方法,该方法能够比预训练的深度特征更好地识别发生显著外观变化的目标。目标感知特征与Siamese匹配网络集成,用于视觉跟踪。大量的实验结果表明,该算法在精度和速度上均优于现有的算法。

    哈工大、上海交大、腾讯AI实验室、加州大学默塞德分校、Google Cloud AI

    Target-Aware Deep Tracking

    Xin Li, Chao Ma, Baoyuan Wu, Zhenyu He, Ming-Hsuan Yang

    https://github.com/XinLi-zn/TADT

    https://github.com/ZikunZhou/TADT-python

     

    SPM跟踪器:用于实时视觉对象跟踪的串并联匹配。提出了串并联匹配(Series-Parallel Matching)的结构。整个结构分为两个部分,称之为“粗匹配”与“细匹配”。

    中国科技大学、微软亚洲研究院

    SPM-Tracker: Series-Parallel Matching for Real-Time Visual Object Tracking

    Guangting Wang, Chong Luo, Zhiwei Xiong, Wenjun Zeng

     

    SiamRPN++:目前精度最高的单目标跟踪

    商汤研究院、中科院自动化所、中科院计算所

    SiamRPN++: Evolution of Siamese Visual Tracking With Very Deep Networks

    Bo Li, Wei Wu, Qiang Wang, Fangyi Zhang, Junliang Xing, Junjie Yan

    https://github.com/STVIR/pysot

     

    对影响跟踪精度的主干网络因素进行了系统的研究,为Siamese跟踪框架提供了一个架构设计的指导;基于文章提出的无填充残差单元,设计了一种新的用于Siamese跟踪的更深、更宽的网络架构。实验结果显示新的架构对基准跟踪算法确实有很明显的性能提升效果。

    中科院大学&中科院自动化所、微软研究院

    Deeper and Wider Siamese Networks for Real-Time Visual Tracking

    Zhipeng Zhang, Houwen Peng

    https://github.com/researchmm/SiamDW

     

    一种在siamese网络下训练GCNS的视觉追踪方法,实现了存在遮挡、突然运动、背景杂波情景下的鲁棒视觉追踪

    中科院、中科院大学、鹏城实验室、中国科技大学

    Graph Convolutional Tracking

    Junyu Gao, Tianzhu Zhang, Changsheng Xu

    http://nlpr-web.ia.ac.cn/mmc/homepage/jygao/gct_cvpr2019.html#

     

    通过预测target和estimated bounding box的overlap来实现目标估计。本文提出的ATOM跟踪模型在5个benchmark数据集上实现了state-of-the-art性能;在TrackingNet数据集上,相对于之前的最佳方法提升了15%,同时运行速度超过30 FPS。

    CVL, Linko ̈ping University, Sweden、CVL, ETH Zu ̈rich, Switzerland、起源人工智能研究院

    ATOM: Accurate Tracking by Overlap Maximization

    Martin Danelljan, Goutam Bhat, Fahad Shahbaz Khan, Michael Felsberg

    https://github.com/visionml/pytracking (378颗星!)

     

    基于自适应空间加权相关滤波的视觉跟踪

    大连理工大学、鹏城实验室、腾讯优图

    Visual Tracking via Adaptive Spatially-Regularized Correlation Filters

    Kenan Dai, Dong Wang, Huchuan Lu, Chong Sun, Jianhua Li

    https://github.com/Daikenan/ASRCF

     

    基于兴趣区域的池化相关滤波方法的视觉跟踪

    大连理工大学、腾讯优图、海军航空兵学院、鹏城实验室

    ROI Pooled Correlation Filters for Visual Tracking

    Yuxuan Sun, Chong Sun, Dong Wang, You He, Huchuan Lu

     

    孪生级联候选区域网络,用于实时目标跟踪

    美国天普大学

    Siamese Cascaded Region Proposal Networks for Real-Time Visual Tracking

    Heng Fan, Haibin Ling

     

    多目标跟踪

    深度学习模型

    近两年,深度学习算法开始在MOT领域发展,一般分为这么几类:

    • 以Re-ID为主的表观特征提取网络,如《Aggregate Tracklet Appearance Features for Multi-Object Tracking》;
    • 基于单目标跟踪领域中成熟的Siam类框架构建的多目标跟踪框架,如《Multi-object tracking with multiple cues and switcher-aware classification》;
    • 联合目标检测框架和单目标跟踪框架的多任务框架,如《Detect to track and track to detect》;
    • 端到端的数据关联类算法,如《DeepMOT: A Differentiable Framework for Training Multiple Object Trackers》;
    • 联合运动、表观和数据观联的集成框架,如《FAMNet: Joint learning of feature, affinity and multi-dimensional assignment for online multiple object tracking》;
    • 基于LSTM类算法实现的运动估计、表观特征选择和融合等等算法。

    MOTChallenge评价体系

    由于MOTChallenge是最主流的MOT数据集,所以我这里就以它为例进行介绍。其包含有MOT15~17三个数据集,其中MOT15提供了3D的坐标信息,包含5500帧训练集和5783帧测试集,提供了基于ACF检测器的观测结果。而MOT16和MOT17则包含5316帧训练集和5919帧测试集,其中MOT16仅提供了基于DPM检测器的观测,而MOT17则提供了SDP、FasterRcnn、DPM三种检测结果。

    MOT提供的目标检测结果标注格式为: frame_id 、 target_id、 bb_left 、bb_top、 bb_width、bb_height 、confidence 、x 、y 、z 。即视频帧序号、目标编号(由于暂时未定,所以均为-1)、目标框左上角坐标和宽高、检测置信度(不一定是0~1)、三维坐标(2D数据集中默认为-1).

    那么我们所需要提供的跟踪结果格式也是同上面一致的,不过需要我们填写对应的target_id和对应的目标框信息,而confidence,x,y,z均任意,保持默认即可。

    相应地,官方所采用的跟踪groudtruth格式则为: frame_id、 target_id 、bb_left、bb_top、bb_width bb_height 、is_active、label_id、visibility_ratio 。其中is_active代表此目标是否考虑,label_id表示该目标所属类别,visibility_ratio表示目标的可视程度,目标类别分类如下:Pedestrian-1 Static Person-7 Person on vehicle-2 Distractor-8 Car-3 Occluder-9 Bicycle-4 Occluder on the ground-10 Motorbike-5 Occluder full-11 Non motorized vehicle-6 Reflection-12

    最后,数据集还提供了各个视频的视频信息seqinfo.ini,主要包括视频名称、视频集路径、帧率fps、视频长度、图像宽高、图像格式等。

    根据MOT官方工具箱中的评价工具,可分析如下的评价规则:

    Step1 数据清洗

    对于跟踪结果进行简单的格式转换,这个主要是方便计算,意义不大,其中根据官方提供的跟踪groundtruth,只保留is_active = 1的目标(根据观察,只考虑了类别为1,即处于运动状态的无遮挡的行人)。另外将groudtruth中完全没有跟踪结果的目标清除,并保持groudtruth中的视频帧序号与视频帧数一一对应。为了统一跟踪结果和groudtruth的目标ID,首先建立目标的映射表,即将跟踪结果中离散的目标ID按照从1开始的数字ID替代。

    Step2 数据匹配

    将跟踪结果和groundtruth中同属一帧的目标取出来,并计算两两之间的IOU,并将其转换为cost矩阵(可理解为距离矩阵,假定Thresh=0.5)。利用cost矩阵,通过匈牙利算法建立匹配矩阵,从而将跟踪结果中的目标和groundtruth中的目标一一对应起来。

    Step3 数据分析

    对视频每一帧进行分析,利用每一帧中的跟踪目标和groudtruth目标之间的匹配关系,可作出以下几个设定:

    • 对于当前帧检测到但未匹配的目标轨迹记作falsepositive;
    • 对于当前帧groudtruth中未匹配的目标轨迹记作missed;
    • 对于groudtruth中的某一目标,如果与之匹配的跟踪目标ID前后不一致,则记作IDswitch;
    • 对于已匹配的轨迹记作covered,总轨迹为gt。

    其中,对于匹配和未匹配到的目标都有各自的评价依据,评价指标很多,这里就不细讲了,网上都有。

     

    提出一种新的训练模式,用于改进多目标跟踪算法中目标交叠时身份切换问题

    洛桑联邦理工学院(EPFL)

    Eliminating Exposure Bias and Metric Mismatch in Multiple Object Tracking

    Andrii Maksai, Pascal Fua

     

    多目标跟踪与分割,提出问题、构建了数据集、建造了一个基线模型,并全部开源了

    亚琛工业大学、MPI for Intelligent Systems and University of Tubingen

    MOTS: Multi-Object Tracking and Segmentation

    Paul Voigtlaender, Michael Krause, Aljosa Osep, Jonathon Luiten, Berin Balachandar Gnana Sekar, Andreas Geiger, Bastian Leibe

    http://www.vision.rwth-aachen.de/page/mots

     

    Top 算法(2020.04.15更新)

    Tracking Objects as Points | [pdf][code] | arXiv(2019) | CenterTrack

    Refinements in Motion and Appearance for Online Multi-Object Tracking| [pdf][code] |arXiv(2019) | MIFT

    Multiple Object Tracking by Flowing and Fusing |[pdf] |arXiv(2019) |FFT

    A Unified Object Motion and Affinity Model for Online Multi-Object Tracking |[pdf][code]|CVPR2020 |UMA

    Towards Real-Time Multi-Object Tracking | [pdf][code] | arXiv(2019) | JDE(private)

    A Simple Baseline for Multi-Object Tracking | 【pdf】| [code] arXiv(2020) | FairMOT(public&private)

     

    跟踪与分割

     

    SiamMask,在视频跟踪任务上达到最优性能,并且在视频目标分割上取得了当前最快的速度。

    Fast Online Object Tracking and Segmentation: A Unifying Approach

    Qiang Wang, Li Zhang, Luca Bertinetto, Weiming Hu, Philip H.S. Torr

    https://github.com/foolwood/SiamMask

     

    多目标跟踪与分割,提出问题、构建了数据集、建造了一个基线模型,并全部开源了

    亚琛工业大学、MPI for Intelligent Systems and University of Tubingen

    MOTS: Multi-Object Tracking and Segmentation

    Paul Voigtlaender, Michael Krause, Aljosa Osep, Jonathon Luiten, Berin Balachandar Gnana Sekar, Andreas Geiger, Bastian Leibe

    http://www.vision.rwth-aachen.de/page/mots

     

    3D目标跟踪

     

    形状补全用于LIDAR点云Siamese网络三维目标跟踪

    沙特阿卜杜拉国王科技大学

    Leveraging Shape Completion for 3D Siamese Tracking

    Silvio Giancola, Jesus Zarzar, Bernard Ghanem

    https://github.com/SilvioGiancola/ShapeCompletion3DTracking

     

    跟踪数据集

     

    大规模高质量单目标跟踪数据集LaSOT

    美国天普大学、华南理工大学、亮风台公司

    LaSOT: A High-Quality Benchmark for Large-Scale Single Object Tracking

    Heng Fan, Liting Lin, Fan Yang, Peng Chu, Ge Deng, Sijia Yu, Hexin Bai, Yong Xu, Chunyuan Liao, Haibin Ling

    https://cis.temple.edu/lasot/index.html

     

    用于支持研究自动驾驶汽车感知任务(3D 跟踪与运动预测)的数据集Argoverse

    Argo AI、卡内基梅隆大学、佐治亚理工学院

    Argoverse: 3D Tracking and Forecasting With Rich Maps

    Ming-Fang Chang, John Lambert, Patsorn Sangkloy, Jagjeet Singh, Slawomir Bak, Andrew Hartnett, De Wang, Peter Carr, Simon Lucey, Deva Ramanan, James Hays

    https://www.argoverse.org/

     

    英伟达推出首个跨摄像头汽车跟踪与冲重识别数据集

    华盛顿大学、NIVIDIA、圣何塞州立大学

    CityFlow: A City-Scale Benchmark for Multi-Target Multi-Camera Vehicle Tracking and Re-Identification

    Zheng Tang, Milind Naphade, Ming-Yu Liu, Xiaodong Yang, Stan Birchfield, Shuo Wang, Ratnesh Kumar, David Anastasiu, Jenq-Neng Hwang

    https://www.aicitychallenge.org/

     

     

     

     

     

    更多参见:

    1.https://blog.csdn.net/weixin_40245131/article/details/79754531

    2.VOT2018:SiamNet大崛起

    3.CVPR 2019 论文大盘点-目标跟踪篇 

     

     

    展开全文
  • 目标跟踪综述

    千次阅读 2018-05-22 10:12:42
    相信很多来这里的人和我第一次到这里一样,都是想找一种比较好的目标跟踪算法,或者想对目标跟踪这个领域有比较深入的了解,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉...
    作者:YaqiLYU
    链接:https://www.zhihu.com/question/26493945/answer/156025576
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相信很多来这里的人和我第一次到这里一样,都是想找一种比较好的目标跟踪算法,或者想对目标跟踪这个领域有比较深入的了解,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用、速度和性能都看的过去tracker。我比较关注目标跟踪中的相关滤波方向,接下来我帮您介绍下我所认识的目标跟踪,尤其是相关滤波类方法,分享一些我认为比较好的算法,顺便谈谈我的看法。

    1.图片来自某些slides和paper,如有侵权请提醒删除。

    2.以下内容主要是论文的简单总结,代码分析和个人看法,不涉及任何公司内部资料。

    3.转载请注明出处,谢谢。

    4.如有错误欢迎指出,非常感谢。有问题可以私信我,也可以在评论区提出,时间有限但也都会尽量回复,同时感谢各位道友帮忙解答。

    第一部分:目标跟踪速览

    先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么。一切要从2013年的那个数据库说起。。如果你问别人近几年有什么比较niubility的跟踪算法,大部分人都会扔给你吴毅老师的论文,OTB50OTB100(OTB50这里指OTB-2013,OTB100这里指OTB-2015,50和100分别代表视频数量,方便记忆):

    • Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.
    • Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015.

    顶会转顶刊的顶级待遇,在加上引用量1480+320多,影响力不言而喻,已经是做tracking必须跑的数据库了,测试代码和序列都可以下载: Visual Tracker Benchmark,OTB50包括50个序列,都经过人工标注:


    两篇论文在数据库上对比了包括2012年及之前的29个顶尖的tracker,有大家比较熟悉的OAB, IVT, MIL, CT, TLD, Struck等,大都是顶会转顶刊的神作,由于之前没有比较公认的数据库,论文都是自卖自夸,大家也不知道到底哪个好用,所以这个database的意义非常重大,直接促进了跟踪算法的发展,后来又扩展为OTB100发到TPAMI,有100个序列,难度更大更加权威,我们这里参考OTB100的结果,首先是29个tracker的速度和发表时间(标出了一些性能速度都比较好的算法):

    接下来再看结果(更加详细的情况建议您去看论文比较清晰):

    直接上结论:平均来看Struck, SCM, ASLA的性能比较高,排在前三不多提,着重强调CSK,第一次向世人展示了相关滤波的潜力,排第四还362FPS简直逆天了。速度排第二的是经典算法CT(64fps)(与SCM, ASLA等都是那个年代最热的稀疏表示)。如果对更早期的算法感兴趣,推荐另一篇经典的survey(反正我是没兴趣也没看过):

    • Yilmaz A, Javed O, Shah M. Object tracking: A survey [J]. CSUR, 2006.

    2012年以前的算法基本就是这样,自从2012年AlexNet问世以后,CV各个领域都有了巨大变化,所以我猜你肯定还想知道2013到2017年发生了什么,抱歉我也不知道(容我卖个关子),不过我们可以肯定的是,2013年以后的论文一定都会引用OTB50这篇论文,借助谷歌学术中的被引用次数功能,得到如下结果:

    这里仅列举几个引用量靠前的,依次是Struck转TPAMI, 三大相关滤波方法KCF, CN, DSST, 和VOT竞赛,这里仅作示范,有兴趣可以亲自去试试。(这么做的理论依据是:一篇论文,在它之前的工作可以看它的引用文献,之后的工作可以看谁引用了它;虽然引用量并不能说明什么,但好的方法大家基本都会引用的(表示尊重和认可);之后还可以通过限定时间来查看某段时间的相关论文,如2016-2017就能找到最新的论文了,至于论文质量需要仔细甄别;其他方向的重要论文也可以这么用,顺藤摸瓜,然后你就知道大牛是哪几位,接着关注跟踪一下他们的工作 ) 这样我们就大致知道目标跟踪领域的最新进展应该就是相关滤波无疑了,再往后还能看到相关滤波类算法有SAMF, LCT, HCF, SRDCF等等。当然,引用量也与时间有关,建议分每年来看。此外,最新版本OPENCV3.2除了TLD,也包括了几个很新的跟踪算法 OpenCV: Tracking API

    TrackerKCF接口实现了KCFCN,影响力可见一斑,还有个GOTURN是基于深度学习的方法,速度虽快但精度略差,值得去看看。tracking方向的最新论文,可以跟进三大会议(CVPR/ICCV/ECCV) 和arXiv。

    第二部分:背景介绍

    接下来总体介绍下目标跟踪。这里说的目标跟踪,是通用单目标跟踪,第一帧给个矩形框,这个框在数据库里面是人工标注的,在实际情况下大多是检测算法的结果,然后需要跟踪算法在后续帧紧跟住这个框,以下是VOT对跟踪算法的要求:

    通常目标跟踪面临几大难点(吴毅在VALSE的slides):外观变形,光照变化,快速运动和运动模糊,背景相似干扰:

    平面外旋转,平面内旋转,尺度变化,遮挡和出视野等情况:

    正因为这些情况才让tracking变得很难,目前比较常用的数据库除了OTB,还有前面找到的VOT竞赛数据库(类比ImageNet),已经举办了四年,VOT2015和VOT2016都包括60个序列,所有序列也是免费下载 VOT Challenge | Challenges

    • Kristan M, Pflugfelder R, Leonardis A, et al. The visual object tracking vot2013 challenge results [C]// ICCV, 2013.
    • Kristan M, Pflugfelder R, Leonardis A, et al. The Visual Object Tracking VOT2014 Challenge Results [C]// ECCV, 2014.
    • Kristan M, Matas J, Leonardis A, et al. The visual object tracking vot2015 challenge results [C]// ICCV, 2015.
    • Kristan M, Ales L, Jiri M, et al. The Visual Object Tracking VOT2016 Challenge Results [C]// ECCV, 2016.

    OTB和VOT区别:OTB包括25%的灰度序列,但VOT都是彩色序列,这也是造成很多颜色特征算法性能差异的原因;两个库的评价指标不一样,具体请参考论文;VOT库的序列分辨率普遍较高,这一点后面分析会提到。对于一个tracker,如果论文在两个库(最好是OTB100和VOT2016)上都结果上佳,那肯定是非常优秀的(两个库调参你能调好,我服,认了~~),如果只跑了一个,个人更偏向于VOT2016,因为序列都是精细标注,且评价指标更好(人家毕竟是竞赛,评价指标发过TPAMI的),差别最大的地方,OTB有随机帧开始,或矩形框加随机干扰初始化去跑,作者说这样更加符合检测算法给的框框;而VOT是第一帧初始化去跑,每次跟踪失败(预测框和标注框不重叠)时,5帧之后重新初始化,VOT以short-term为主,且认为跟踪检测应该在一起不分离,detecter会多次初始化tracker。

    补充OTB在2013年公开了,对于2013以后的算法是透明的,论文都会去调参,尤其是那些只跑OTB的论文,如果关键参数直接给出还精确到小数点后两位,建议您先实测(人心不古啊~被坑的多了)。VOT竞赛的数据库是每年更新,还动不动就重新标注,动不动就改变评价指标,对当年算法是难度比较大,所以结果相对更可靠。(相信很多人和我一样,看每篇论文都会觉得这个工作太好太重要了,如果没有这篇论文,必定地球爆炸,宇宙重启~~所以就像大家都通过历年ILSVRC竞赛结果为主线了解深度学习的发展一样,第三方的结果更具说服力,所以我也以竞赛排名+是否公开源码+实测性能为标准,优选几个算法分析

    目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法和判别(discriminative)模型方法,目前比较流行的是判别类方法,也叫检测跟踪tracking-by-detection,为保持回答的完整性,以下简单介绍。

    生成类方法,在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,比较著名的有卡尔曼滤波,粒子滤波,mean-shift等。举个例子,从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,搜索算法就像无头苍蝇,到处去找最符合这个颜色比例的区域,推荐算法ASMS vojirt/asms

    • Vojir T, Noskova J, Matas J. Robust scale-adaptive mean-shift for tracking [J]. Pattern Recognition Letters, 2014.

    ASMSDAT并称“颜色双雄”(版权所有翻版必究),都是仅颜色特征的算法而且速度很快,依次是VOT2015的第20名和14名,在VOT2016分别是32名和31名(中等水平)。ASMS是VOT2015官方推荐的实时算法,平均帧率125FPS,在经典mean-shift框架下加入了尺度估计,经典颜色直方图特征,加入了两个先验(尺度不剧变+可能偏最大)作为正则项,和反向尺度一致性检查。作者给了C++代码,在相关滤波和深度学习盛行的年代,还能看到mean-shift打榜还有如此高的性价比实在不容易(已泪目~~),实测性能还不错,如果您对生成类方法情有独钟,这个非常推荐您去试试。(某些算法,如果连这个你都比不过。。天台在24楼,不谢)

    判别类方法,OTB50里面的大部分方法都是这一类,CV中的经典套路图像特征+机器学习, 当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域:

    与生成类方法最大的区别是,分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。举个例子,在训练时告诉tracker目标80%是红色,20%是绿色,还告诉它背景中有橘红色,要格外注意别搞错了,这样的分类器知道更多信息,效果也相对更好。tracking-by-detection检测算法非常相似,如经典行人检测用HOG+SVM,Struck用到了haar+structured output SVM,跟踪中为了尺度自适应也需要多尺度遍历搜索,区别仅在于跟踪算法对特征和在线机器学习的速度要求更高,检测范围和尺度更小而已。这点其实并不意外,大多数情况检测识别算法复杂度比较高不可能每帧都做,这时候用复杂度更低的跟踪算法就很合适了,只需要在跟踪失败(drift)或一定间隔以后再次检测去初始化tracker就可以了。其实我就想说,FPS才TMD是最重要的指标,慢的要死的算法可以去死了(同学别这么偏激,速度是可以优化的)。经典判别类方法推荐StruckTLD,都能实时性能还行,Struck是2012年之前最好的方法,TLD是经典long-term的代表,思想非常值得借鉴:

    • Hare S, Golodetz S, Saffari A, et al. Struck: Structured output tracking with kernels [J]. IEEE TPAMI, 2016.
    • Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection [J]. IEEE TPAMI, 2012.

    长江后浪推前浪,前面的已被排在沙滩上,这个后浪就是相关滤波和深度学习。相关滤波类方法correlation filter简称CF,也叫做discriminative correlation filter简称DCF,注意和后面的DCF算法区别,包括前面提到的那几个,也是后面要着重介绍的。深度学习(Deep ConvNet based)类方法,因为深度学习类目前不适合落地就不瞎推荐了,可以参考Winsty的几篇 Naiyan Wang - Home,还有VOT2015的冠军MDNet Learning Multi-Domain Convolutional Neural Networks for Visual Tracking,以及VOT2016的冠军TCNN votchallenge.net/vot201,速度方面比较突出的如80FPS的SiamFC SiameseFC tracker和100FPS的GOTURN davheld/GOTURN,注意都是在GPU上。基于ResNet的SiamFC-R(ResNet)在VOT2016表现不错,很看好后续发展,有兴趣也可以去VALSE听作者自己讲解 VALSE-20160930-LucaBertinetto-Oxford-JackValmadre-Oxford-pu,至于GOTURN,效果比较差,但优势是跑的很快100FPS,如果以后效果也能上来就好了。做科研的同学深度学习类是关键,能兼顾速度就更好了。

    • Nam H, Han B. Learning multi-domain convolutional neural networks for visual tracking [C]// CVPR, 2016.
    • Nam H, Baek M, Han B. Modeling and propagating cnns in a tree structure for visual tracking. arXiv preprint arXiv:1608.07242, 2016.
    • Bertinetto L, Valmadre J, Henriques J F, et al. Fully-convolutional siamese networks for object tracking [C]// ECCV, 2016.
    • Held D, Thrun S, Savarese S. Learning to track at 100 fps with deep regression networks [C]// ECCV, 2016.

    最后,深度学习END2END的强大威力在目标跟踪方向还远没有发挥出来,还没有和相关滤波类方法拉开多大差距(速度慢是天生的我不怪你,但效果总该很好吧,不然你存在的意义是什么呢。。革命尚未成功,同志仍须努力)。另一个需要注意的问题是目标跟踪的数据库都没有严格的训练集和测试集,需要离线训练的深度学习方法就要非常注意它的训练集有没有相似序列,而且一直到VOT2017官方才指明要限制训练集,不能用相似序列训练模型。

    最后强力推荐两个资源。王强

    维护的benchmark_results foolwood/benchmark_results:大量顶级方法在OTB库上的性能对比,各种论文代码应有尽有,大神自己C++实现并开源的CSK, KCF和DAT,还有他自己的DCFNet论文加源码,找不着路的同学请跟紧。

    维护的相关滤波类资源 HakaseH/CF_benchmark_results ,详细分类和论文代码资源,走过路过别错过,相关滤波类算法非常全面,非常之用心!

    (以上两位,看到了请来我处交一下广告费,9折优惠~~)

    第三部分:相关滤波

    介绍最经典的高速相关滤波类跟踪算法CSK, KCF/DCF, CN。很多人最早了解CF,应该和我一样,都是被下面这张图吸引了:

    这是KCF/DCF算法在OTB50上(2014年4月就挂arVix了, 那时候OTB100还没有发表)的实验结果,Precision和FPS碾压了OTB50上最好的Struck,看惯了勉强实时的Struck和TLD,飙到高速的KCF/DCF突然有点让人不敢相信,其实KCF/DCF就是在OTB上大放异彩的CSK的多通道特征改进版本。注意到那个超高速615FPS的MOSSE(严重超速这是您的罚单),这是目标跟踪领域的第一篇相关滤波类方法,这其实是真正第一次显示了相关滤波的潜力。和KCF同一时期的还有个CN,在2014'CVPR上引起剧烈反响的颜色特征方法,其实也是CSK的多通道颜色特征改进算法。从MOSSE(615)到 CSK(362) 再到 KCF(172FPS), DCF(292FPS), CN(152FPS), CN2(202FPS),速度虽然是越来越慢,但效果越来越好,而且始终保持在高速水平:

    • Bolme D S, Beveridge J R, Draper B A, et al. Visual object tracking using adaptive correlation filters [C]// CVPR, 2010.
    • Henriques J F, Caseiro R, Martins P, et al. Exploiting the circulant structure of tracking-by- detection with kernels [C]// ECCV, 2012.
    • Henriques J F, Rui C, Martins P, et al. High-Speed Tracking with Kernelized Correlation Filters [J]. IEEE TPAMI, 2015.
    • Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014.

    CSK和KCF都是Henriques J F(牛津大学)João F. Henriques 大神先后两篇论文,影响后来很多工作,核心部分的岭回归,循环移位的近似密集采样,还给出了整个相关滤波算法的详细推导。还有岭回归加kernel-trick的封闭解,多通道HOG特征。

    Martin Danelljan大牛(林雪平大学)用多通道颜色特征Color Names(CN)去扩展CSK得到了不错的效果,算法也简称CN Coloring Visual Tracking

    MOSSE是单通道灰度特征的相关滤波,CSK在MOSSE的基础上扩展了密集采样(加padding)和kernel-trick,KCF在CSK的基础上扩展了多通道梯度的HOG特征,CN在CSK的基础上扩展了多通道颜色的Color Names。HOG是梯度特征,而CN是颜色特征,两者可以互补,所以HOG+CN在近两年的跟踪算法中成为了hand-craft特征标配。最后,根据KCF/DCF的实验结果,讨论两个问题:

    • 1. 为什么只用单通道灰度特征的KCF和用了多通道HOG特征的KCF速度差异很小?

    第一,作者用了HOG的快速算法fHOG,来自Piotr's Computer Vision Matlab Toolbox,C代码而且做了SSE优化。如对fHOG有疑问,请参考论文Object Detection with Discriminatively Trained Part Based Models第12页。
    第二,HOG特征常用cell size是4,这就意味着,100*100的图像,HOG特征图的维度只有25*25,而Raw pixels是灰度图归一化,维度依然是100*100,我们简单算一下:27通道HOG特征的复杂度是27*625*log(625)=47180,单通道灰度特征的复杂度是10000*log(10000)=40000,理论上也差不多,符合表格。

    看代码会发现,作者在扩展后目标区域面积较大时,会先对提取到的图像块做因子2的下采样到50*50,这样复杂度就变成了2500*log(2500)=8495,下降了非常多。那你可能会想,如果下采样再多一点,复杂度就更低了,但这是以牺牲跟踪精度为代价的,再举个例子,如果图像块面积为200*200,先下采样到100*100,再提取HOG特征,分辨率降到了25*25,这就意味着响应图的分辨率也是25*25,也就是说,响应图每位移1个像素,原始图像中跟踪框要移动8个像素,这样就降低了跟踪精度。在精度要求不高时,完全可以稍微牺牲下精度提高帧率(但看起来真的不能再下采样了)。

    • 2. HOG特征的KCF和DCF哪个更好?

    大部分人都会认为KCF效果超过DCF,而且各属性的准确度都在DCF之上,然而,如果换个角度来看,以DCF为基准,再来看加了kernel-trick的KCF,mean precision仅提高了0.4%,而FPS下降了41%,这么看是不是挺惊讶的呢?除了图像块像素总数,KCF的复杂度还主要和kernel-trick相关。所以,下文中的CF方法如果没有kernel-trick,就简称基于DCF,如果加了kernel-trick,就简称基于KCF(剧透基本各占一半)。当然这里的CN也有kernel-trick,但请注意,这是Martin Danelljan大神第一次使用kernel-trick,也是最后一次。。。

    这就会引发一个疑问,kernel-trick这么强大的东西,怎么才提高这么点?这里就不得不提到Winsty的另一篇大作:

    • Wang N, Shi J, Yeung D Y, et al. Understanding and diagnosing visual tracking systems[C]// ICCV, 2015.

    一句话总结,别看那些五花八门的机器学习方法,那都是虚的,目标跟踪算法中特征才是最重要的就是因为这篇文章我粉了WIN叔哈哈以上就是最经典的三个高速算法,CSK, KCF/DCF和CN,推荐。

    第四部分:14年的尺度自适应

    VOT与OTB一样最早都是2013年出现的,但VOT2013序列太少,第一名的PLT代码也找不到,没有参考价值就直接跳过了。直接到了VOT2014竞赛 VOT2014 Benchmark 。这一年有25个精挑细选的序列,38个算法,那时候深度学习的战火还没有烧到tracking,所以主角也只能是刚刚展露头角就独霸一方的CF,下面是前几名的详细情况:

    前三名都是相关滤波CF类方法,第三名的KCF已经很熟悉了,这里稍微有点区别就是加了多尺度检测和子像素峰值估计,再加上VOT序列的分辨率比较高(检测更新图像块的分辨率比较高),导致竞赛中的KCF的速度只有24.23(EFO换算66.6FPS)。这里speed是EFO(Equivalent Filter Operations),在VOT2015和VOT2016里面也用这个参数衡量算法速度,这里一次性列出来供参考(MATLAB实现的tracker实际速度要更高一些):

    其实前三名除了特征略有差异,核心都是KCF为基础扩展了多尺度检测,概要如下:


    尺度变化是跟踪中比较基础和常见的问题,前面介绍的KCF/DCF和CN都没有尺度更新,如果目标缩小,滤波器就会学习到大量背景信息,如果目标扩大,滤波器就跟着目标局部纹理走了,这两种情况都很可能出现非预期的结果,导致漂移和失败。

    SAMF ihpdep/samf,浙大Yang Li的工作,基于KCF,特征是HOG+CN,多尺度方法是平移滤波器在多尺度缩放的图像块上进行目标检测,取响应最大的那个平移位置及所在尺度:

    • Li Y, Zhu J. A scale adaptive kernel correlation filter tracker with feature integration [C]// ECCV, 2014.

    Martin Danelljan的DSST Accurate scale estimation for visual tracking,只用了HOG特征,DCF用于平移位置检测,又专门训练类似MOSSE的相关滤波器检测尺度变化,开创了平移滤波+尺度滤波,之后转TPAMI做了一系列加速的版本fDSST,非常+非常+非常推荐:

    • Danelljan M, Häger G, Khan F, et al. Accurate scale estimation for robust visual tracking [C]// BMVC, 2014.
    • Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017.

    简单对比下这两种尺度自适应的方法:

    • DSST和SAMF所采用的尺度检测方法哪个更好

    首先给大家讲个笑话:Martin Danelljan大神提出DSST之后,他的后续论文就再没有用过(直到最新CVPR的ECO-HC中为了加速用了fDSST)。

    1. 虽然SAMF和DSST都可以跟上普通的目标尺度变化,但SAMF只有7个尺度比较粗,而DSST有33个尺度比较精细准确;
    2. DSST先检测最佳平移再检测最佳尺度,是分步最优,而SAMF是平移尺度一起检测,是平移和尺度同时最优,而往往局部最优和全局最优是不一样的;
    3. DSST将跟踪划分为平移跟踪和尺度跟踪两个问题,可以采用不同的方法和特征,更加灵活,但需要额外训练一个滤波器,每帧尺度检测需要采样33个图像块,之后分别计算特征、加窗、FFT等,尺度滤波器比平移滤波器慢很多;SAMF只需要一个滤波器,不需要额外训练和存储,每个尺度检测就一次提特征和FFT,但在图像块较大时计算量比DSST高。

    所以尺度检测DSST并不总是比SAMF好,其实在VOT2015和VOT2016上SAMF都是超过DSST的,当然这主要是因为特征更好,但至少说明尺度方法不差。总的来说,DSST做法非常新颖,速度更快,SAMF同样优秀也更加准确。

    • DSST一定要33个尺度吗?

    DSST标配33个尺度非常非常敏感,轻易降低尺度数量,即使你增加相应步长,尺度滤波器也会完全跟不上尺度变化。关于这一点可能解释是,训练尺度滤波器用的是一维样本,而且没有循环移位,这就意味着一次训练更新只有33个样本,如果降低样本数量,会造成训练不足,分类器判别力严重下降,不像平移滤波器有非常多的移位样本(个人看法欢迎交流)。总之,请不要轻易尝试大幅降低尺度数量,如果非要用尺度滤波器33和1.02就很好

    以上就是两种推荐的尺度检测方法,以后简称为类似DSST的多尺度类似SAMF的多尺度。如果更看重速度,加速版的fDSST,和仅3个尺度的SAMF(如VOT2014中的KCF)就是比较好的选择;如果更看重精确,33个尺度的DSST,及7个尺度的SAMF就比较合适。

    第五部分:边界效应

    接下来到了VOT2015竞赛 VOT2015 Challenge | Home ,这一年有60个精挑细选的序列,62个tracker,最大看点是深度学习开始进击tracking领域,MDNet直接拿下当年的冠军,而结合深度特征的相关滤波方法DeepSRDCF是第二名,主要解决边界效应的SRDCF仅HOG特征排在第四:

    随着VOT竞赛的影响力扩大,举办方也是用心良苦,经典的和顶尖的齐聚一堂,百家争鸣,多达62个tracker皇城PK,华山论剑。除了前面介绍的深度学习和相关滤波,还有结合object proposals(类物体区域检测)的EBT(EBT:Proposal与Tracking不得不说的秘密 - 知乎专栏)排第三,Mean-Shift类颜色算法ASMS是推荐实时算法,还有前面提到的另一个颜色算法DAT,而在第9的那个Struck已经不是原来的Struck了。除此之外,还能看到经典方法如OAB, STC, CMT, CT, NCC等都排在倒数位置, 经典方法已经被远远甩在后面。

    在介绍SRDCF之前,先来分析下相关滤波有什么缺点。总体来说,相关滤波类方法对快速变形和快速运动情况的跟踪效果不好

    快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。

    快速运动主要是边界效应(Boundary Effets),而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。

    训练阶段,合成样本降低了判别能力。如果不加余弦窗,那么移位样本是长这样的:

    除了那个最原始样本,其他样本都是“合成”的,100*100的图像块,只有1/10000的样本是真实的,这样的样本集根本不能拿来训练。如果加了余弦窗,由于图像边缘像素值都是0,循环移位过程中只要目标保持完整,就认为这个样本是合理的,只有当目标中心接近边缘时,目标跨越了边界的那些样本是错误的,这样虽不真实但合理的样本数量增加到了大约2/3(一维情况padding= 1)。但我们不能忘了即使这样仍然有1/3(3000/10000)的样本是不合理的,这些样本会降低分类器的判别能力。再者,加余弦窗也不是“免费的”,余弦窗将图像块的边缘区域像素全部变成0,大量过滤掉了分类器本来非常需要学习的背景信息,原本训练时判别器能看到的背景信息就非常有限,我们还加了个余弦窗挡住了背景,这样进一步降低了分类器的判别力(是不是上帝在我前遮住了帘。。不是上帝,是余弦窗)。

    检测阶段,相关滤波对快速运动的目标检测比较乏力。相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看:

    1. 如果目标在中心附近,检测准确且成功。
    2. 如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。
    3. 如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。
    4. 如果整个目标已经位移出了这个区域,那肯定就检测失败了。

    以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,其中SRDCF速度比较慢,并不适合实时场合

    Martin DanelljanSRDCF Learning Spatially Regularized Correlation Filters for Visual Tracking,主要思路:既然边界效应发生在边界附近,那就忽略所有移位样本的边界部分像素,或者说限制让边界附近滤波器系数接近0:

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]// ICCV. 2015.

    SRDCF基于DCF,类SAMF多尺度,采用更大的检测区域(padding = 4),同时加入空域正则化,惩罚边界区域的滤波器系数,由于没有闭合解,采用高斯-塞德尔方法迭代优化。检测区域扩大(1.5->4),迭代优化(破坏了闭合解)导致SRDCF只有5FP,但效果非常好是2015年的baseline。

    另一种方法是Hamed Kiani提出的MOSSE改进算法,基于灰度特征的CFLM Correlation Filters with Limited Boundaries 和基于HOG特征的BACF Learning Background-Aware Correlation Filters for Visual Tracking,主要思路是采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本的比例,或者说滤波器填充0以保持和检测图像一样大,同样没有闭合解,采用ADMM迭代优化:

    • Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries [C]// CVPR, 2015.
    • Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017.

    CFLB仅单通道灰度特征,虽然速度比较快167FPS,但性能远不如KCF,不推荐;最新BACF将特征扩展为多通道HOG特征,性能超过了SRDCF,而且速度比较快35FPS,非常推荐。

    其实这两个解决方案挺像的,都是用更大的检测及更新图像块,训练作用域比较小的相关滤波器,不同点是SRDCF的滤波器系数从中心到边缘平滑过渡到0,而CFLM直接用0填充滤波器边缘。

    VOT2015相关滤波方面还有排在第二名,结合深度特征DeepSRDCF,因为深度特征都非常慢,在CPU上别说高速,实时都到不了,虽然性能非常高,但这里就不推荐,先跳过。

    第六部分:颜色直方图与相关滤波

    VOT2016竞赛 VOT2016 Challenge | Home,依然是VOT2015那60个序列,不过这次做了重新标注更加公平合理,今年有70位参赛选手,意料之中深度学习已经雄霸天下了,8个纯CNN方法和6个结合深度特征的CF方法大都名列前茅,还有一片的CF方法,最最最重要的是,良心举办方竟然公开了他们能拿到的38个tracker,部分tracker代码和主页,下载地址VOT2016 Challenge | Trackers (以后妈妈再也不用担心我找不到源码了~),注意部分是下载链接,部分是源码压缩包,部分源码是二进制文件,好不好用一试便知,方便对比和研究,需要的赶快去试试。马上来看竞赛结果(这里仅列举前60个):

    高亮标出来了前面介绍过的或比较重要的方法,结合多层深度特征的相关滤波C-COT排第一名,而CNN方法TCNN是VOT2016的冠军,作者也是VOT2015冠军MDNet,纯颜色方法DATASMS都在中等水平(其实两种方法实测表现非常接近),其他tracker的情况请参考论文。再来看速度,SMACF没有公开代码,ASMS依然那么快,排在前10的方法中也有两个速度比较快,分别是排第5的Staple,和其改进算法排第9的STAPLE+,而且STAPLE+是今年的推荐实时算法。首先恭喜Luca Bertinetto的SiamFCStaple都表现非常不错,然后再为大牛默哀三分钟(VOT2016的paper原文):

    This was particularly obvious in case of SiamFC trackers, which runs orders higher than realtime (albeit on GPU), and Staple, which is realtime, but are incorrectly among the non-realtime trackers.

    VOT2016竟然发生了乌龙事件,Staple在论文中CPU上是80FPS,怎么EFO在这里只有11?幸好公开代码有Staple和STAPLE+,实测下来,虽然我电脑不如Luca Bertinetto大牛但Staple我也能跑76FPS,而更可笑的是,STAPLE+比Staple慢了大约7-8倍,竟然EFO高出4倍,到底怎么回事呢?

    首先看Staple的代码,如果您直接下载Staple并设置params.visualization = 1,Staple默认调用Computer Vision System Toolbox来显示序列图像,而恰好如果您没有这个工具箱,默认每帧都会用imshow(im)来显示图像,所以非常非常慢,而设置params.visualization = 0就跑的飞快(作者你是孙猴子派来的逗逼吗),建议您将显示图像部分代码替换成DSST中对应部分代码就可以正常速度运行和显示了。

    再来看STAPLE+的代码,对Staple的改进包括额外从颜色概率图中提取HOG特征,特征增加到56通道(Staple是28通道),平移检测额外加入了大位移光流运动估计的响应,所以才会这么慢,而且肯定要慢很多。

    所以很大可能是VOT举办方把Staple和STAPLE+的EFO弄反了VOT2016的实时推荐算法应该是排第5的Staple,相关滤波结合颜色方法,没有深度特征更没有CNN,跑80FPS还能排在第五,这就是接下来主要介绍的,2016年最NIUBILITY的目标跟踪算法之一Staple (直接让排在后面的一众深度学习算法怀疑人生)。

    颜色特征,在目标跟踪中颜色是个非常重要的特征,不管多少个人在一起,只要目标穿不用颜色的一幅就非常明显。前面介绍过2014年CVPR的CN是相关滤波框架下的模板颜色方法,这里隆重介绍统计颜色特征方法DAT Learning, Recognition, and Surveillance @ ICG ,帧率15FPS推荐:

    • Possegger H, Mauthner T, Bischof H. In defense of color-based model-free tracking [C]// CVPR, 2015.

    DAT统计前景目标和背景区域的颜色直方图并归一化,这就是前景和背景的颜色概率模型,检测阶段,贝叶斯方法判别每个像素属于前景的概率,得到像素级颜色概率图,再加上边缘相似颜色物体抑制就能得到目标的区域了。

    如果要用一句话介绍Luca Bertinetto(牛津大学)的Staple Staple tracker,那就是把模板特征方法DSST(基于DCF)和统计特征方法DAT结合:

    • Bertinetto L, Valmadre J, Golodetz S, et al. Staple: Complementary Learners for Real-Time Tracking [C]// CVPR, 2016.

    前面分析了相关滤波模板类特征(HOG)对快速变形和快速运动效果不好,但对运动模糊光照变化等情况比较好;而颜色统计特征(颜色直方图)对变形不敏感,而且不属于相关滤波框架没有边界效应,快速运动当然也是没问题的,但对光照变化和背景相似颜色不好。综上,这两类方法可以互补,也就是说DSST和DAT可以互补结合:

    两个框架的算法高效无缝结合,25FPS的DSST和15FPS的DAT,而结合后速度竟然达到了80FPS。DSST框架把跟踪划分为两个问题,即平移检测和尺度检测,DAT就加在平移检测部分,相关滤波有一个响应图,像素级前景概率也有一个响应图,两个响应图线性加权得到最终响应图,其他部分与DSST类似,平移滤波器、尺度滤波器和颜色概率模型都以固定学习率线性加权更新。

    另一种相关滤波结合颜色概率的方法是17CVPR的CSR-DCF,提出了空域可靠性和通道可靠性,没有深度特征性能直逼C-COT,速度可观13FPS:

    • Lukežič A, Vojíř T, Čehovin L, et al. Discriminative Correlation Filter with Channel and Spatial Reliability [C]// CVPR, 2017.

    CSR-DCF中的空域可靠性得到的二值掩膜就类似于CFLM中的掩膜矩阵P,在这里自适应选择更容易跟踪的目标区域且减小边界效应;以往多通道特征都是直接求和,而CSR-DCF中通道采用加权求和,而通道可靠性就是那个自适应加权系数。采用ADMM迭代优化,可以看出CSR-DCF是DAT和CFLB的结合算法。

    VOT2015相关滤波还有排第一名的C-COT(别问我第一名为什么不是冠军,我也不知道),和DeepSRDCF一样先跳过。

    第七部分:long-term和跟踪置信度

    以前提到的很多CF算法,也包括VOT竞赛,都是针对short-term的跟踪问题,即短期(shor-term)跟踪,我们只关注短期内(如100~500帧)跟踪是否准确。但在实际应用场合,我们希望正确跟踪时间长一点,如几分钟或十几分钟,这就是长期(long-term)跟踪问题。

    Long-term就是希望tracker能长期正确跟踪,我们分析了前面介绍的方法不适合这种应用场合,必须是short-term tracker + detecter配合才能实现正确的长期跟踪。

    用一句话介绍Long-term,就是给普通tracker配一个detecter,在发现跟踪出错的时候调用自带detecter重新检测并矫正tracker。

    介绍CF方向一篇比较有代表性的long-term方法,Chao Ma的LCT chaoma99/lct-tracker

    • Ma C, Yang X, Zhang C, et al. Long-term correlation tracking[C]// CVPR, 2015.

    LCT在DSST一个平移相关滤波Rc和一个尺度相关滤波的基础上,又加入第三个负责检测目标置信度的相关滤波Rt,检测模块Online Detector是TLD中所用的随机蔟分类器(random fern),在代码中改为SVM。第三个置信度滤波类似MOSSE不加padding,而且特征也不加cosine窗,放在平移检测之后。

    1. 如果最大响应小于第一个阈值(叫运动阈值),说明平移检测不可靠,调用检测模块重新检测。注意,重新检测的结果并不是都采纳的,只有第二次检测的最大响应值比第一次检测大1.5倍时才接纳,否则,依然采用平移检测的结果。
    2. 如果最大响应大于第二个阈值(叫外观阈值),说明平移检测足够可信,这时候才以固定学习率在线更新第三个相关滤波器和随机蔟分类器。注意,前两个相关滤波的更新与DSST一样,固定学习率在线每帧更新

    LCT加入检测机制,对遮挡和出视野等情况理论上较好,速度27fps,实验只跑了OTB-2013,跟踪精度非常高,根据其他论文LCT在OTB-2015和 VOT上效果略差一点可能是两个核心阈值没有自适应, 关于long-term,TLD和LCT都可以参考 。

    接下来介绍跟踪置信度。 跟踪算法需要能反映每一次跟踪结果的可靠程度,这一点非常重要,不然就可能造成跟丢了还不知道的情况。生成类(generative)方法有相似性度量函数,判别类(discriminative)方法有机器学习方法的分类概率。有两种指标可以反映相关滤波类方法的跟踪置信度:前面见过的最大响应值,和没见过的响应模式,或者综合反映这两点的指标。

    LMCF(MM Wang的目标跟踪专栏:目标跟踪算法 - 知乎专栏 )提出了多峰检测和高置信度更新:

    • Wang M, Liu Y, Huang Z. Large Margin Object Tracking with Circulant Feature Maps [C]// CVPR, 2017.

    高置信度更新只有在跟踪置信度比较高的时候才更新跟踪模型,避免目标模型被污染,同时提升速度。 第一个置信度指标是最大响应分数Fmax,就是最大响应值(Staple和LCT中都有提到)。 第二个置信度指标是平均峰值相关能量(average peak-to correlation energy, APCE),反应响应图的波动程度和检测目标的置信水平,这个(可能)是目前最好的指标,推荐:

    跟踪置信度指标还有,MOSSE中的峰值旁瓣比(Peak to Sidelobe Ratio, PSR), 由相关滤波峰值,与11*11峰值窗口以外旁瓣的均值与标准差计算得到,推荐:

    还有CSR-DCF的空域可靠性,也用了两个类似指标反映通道可靠性, 第一个指标也是每个通道的最大响应峰值,就是Fmax,第二个指标是响应图中第二和第一主模式之间的比率,反映每个通道响应中主模式的表现力,但需要先做极大值检测:

    第八部分:卷积特征

    最后这部分是Martin Danelljan的专场,主要介绍他的一些列工作,尤其是结合深度特征的相关滤波方法,代码都在他主页Visual Tracking,就不一一贴出了。

    • Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014.

    CN中提出了非常重要的多通道颜色特征Color Names,用于CSK框架取得非常好得效果,还提出了加速算法CN2,通过类PCA的自适应降维方法,对特征通道数量降维(10 -> 2),平滑项增加跨越不同特征子空间时的代价,也就是PCA中的协方差矩阵线性更新防止降维矩阵变化太大。

    • Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017.

    DSST是VOT2014的第一名,开创了平移滤波+尺度滤波的方式。在fDSST中对DSST进行加速,PCA方法将平移滤波HOG特征的通道降维(31 -> 18),QR方法将尺度滤波器~1000*17的特征降维到17*17,最后用三角插值(频域插值)将尺度数量从17插值到33以获得更精确的尺度定位。

    SRDCF是VOT2015的第四名,为了减轻边界效应扩大检测区域,优化目标增加了空间约束项,用高斯-塞德尔方法迭代优化,并用牛顿法迭代优化平移检测的子网格精确目标定位。

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Adaptive decontamination of the training set: A unified formulation for discriminative visual tracking [C]// CVPR, 2016.

    SRDCFdecon在SRDCF的基础上,改进了样本和学习率问题。以前的相关滤波都是固定学习率线性加权更新模型,虽然这样比较简单不用保存以前样本,但在定位不准确、遮挡、背景扰动等情况会污染模型导致漂移。SRDCFdecon选择保存以往样本(图像块包括正,负样本),在优化目标函数中添加样本权重参数和正则项,采用交替凸搜索,首先固定样本权重,高斯-塞德尔方法迭代优化模型参数,然后固定模型参数,凸二次规划方法优化样本权重。

    • Danelljan M, Hager G, Shahbaz Khan F, et al. Convolutional features for correlation filter based visual tracking [C]// ICCVW, 2015.

    DeepSRDCF是VOT2015的第二名,将SRDCF中的HOG特征替换为CNN中单层卷积层的深度特征(也就是卷积网络的激活值),效果有了极大提升。这里用imagenet-vgg-2048 network,VGG网络的迁移能力比较强,而且MatConvNet就是VGG组的,MATLAB调用非常方便。论文还测试了不同卷积层在目标跟踪任务中的表现:

    第1层表现最好,第2和第5次之。由于卷积层数越高语义信息越多,但纹理细节越少,从1到4层越来越差的原因之一就是特征图的分辨率越来越低,但第5层反而很高,是因为包括完整的语义信息,判别力比较强(本来就是用来做识别的)。

    注意区分这里的深度特征和基于深度学习的方法,深度特征来自ImageNet上预训练的图像分类网络,没有fine-turn这一过程,不存在过拟合的问题。而基于深度学习的方法大多需要在跟踪序列上end-to-end训练或fine-turn,如果样本数量和多样性有限就很可能过拟合。

    • Ma C, Huang J B, Yang X, et al. Hierarchical convolutional features for visual tracking [C]// ICCV, 2015.

    值得一提的还有Chao Ma的HCF,结合多层卷积特征提升效果,用了VGG19的Conv5-4, Conv4-4和Conv3-4的激活值作为特征,所有特征都缩放到图像块分辨率,虽然按照论文应该是由粗到细确定目标,但代码中比较直接,三种卷积层的响应以固定权值1, 0.5, 0.02线性加权作为最终响应。虽然用了多层卷积特征,但没有关注边界效应而且线性加权的方式过于简单,HCF在VOT2016仅排在28名(单层卷积深度特征的DeepSRDCF是第13名)。

    • Danelljan M, Robinson A, Khan F S, et al. Beyond correlation filters: Learning continuous convolution operators for visual tracking [C]// ECCV, 2016.

    C-COT是VOT2016的第一名,综合了SRDCF的空域正则化和SRDCFdecon的自适应样本权重,还将DeepSRDCF的单层卷积的深度特征扩展为多成卷积的深度特征(VGG第1和5层),为了应对不同卷积层分辨率不同的问题,提出了连续空间域插值转换操作,在训练之前通过频域隐式插值将特征图插值到连续空域,方便集成多分辨率特征图,并且保持定位的高精度。目标函数通过共轭梯度下降方法迭代优化,比高斯-塞德尔方法要快,自适应样本权值直接采用先验权值,没有交替凸优化过程,检测中用牛顿法迭代优化目标位置。

    注意以上SRDCF, SRDCFdecon,DeepSRDCF,C-COT都无法实时,这一系列工作虽然效果越来越好,但也越来越复杂,在相关滤波越来越慢失去速度优势的时候,Martin Danelljan在2017CVPR的ECO来了一脚急刹车,大神来告诉我们什么叫又好又快,不忘初心:

    • Danelljan M, Bhat G, Khan F S, et al. ECO: Efficient Convolution Operators for Tracking [C]// CVPR, 2017.

    ECO是C-COT的加速版,从模型大小、样本集大小和更新策略三个方便加速,速度比C-COT提升了20倍,加量还减价,EAO提升了13.3%,最最最厉害的是, hand-crafted features的ECO-HC有60FPS。。吹完了,来看看具体做法。

    第一减少模型参数,定义了factorized convolution operator(分解卷积操作),效果类似PCA,用PCA初始化,然后仅在第一帧优化这个降维矩阵,以后帧都直接用,简单来说就是有监督降维,深度特征时模型参数减少了80%。

    第二减少样本数量, compact generative model(紧凑的样本集生成模型),采用Gaussian Mixture Model (GMM)合并相似样本,建立更具代表性和多样性的样本集,需要保存和优化的样本集数量降到C-COT的1/8。

    第三改变更新策略,sparser updating scheme(稀疏更新策略),每隔5帧做一次优化更新模型参数,不但提高了算法速度,而且提高了对突变,遮挡等情况的稳定性。但样本集是每帧都更新的,稀疏更新并不会错过间隔期的样本变化信息。

    ECO的成功当然还有很多细节,而且有些我也看的不是很懂,总之很厉害就是了。。ECO实验跑了四个库(VOT2016, UAV123, OTB-2015, and TempleColor)都是第一,而且没有过拟合的问题,仅性能来说ECO是目前最好的相关滤波算法,也有可能是最好的目标跟踪算法。hand-crafted features版本的ECO-HC,降维部分原来HOG+CN的42维特征降到13维,其他部分类似,实验结果ECO-HC超过了大部分深度学习方法,而且论文给出速度是CPU上60FPS。

    最后是来自Luca Bertinetto的CFNet End-to-end representation learning for Correlation Filter based tracking,除了上面介绍的相关滤波结合深度特征,相关滤波也可以end-to-end方式在CNN中训练了:

    • Valmadre J, Bertinetto L, Henriques J F, et al. End-to-end representation learning for Correlation Filter based tracking [C]// CVPR, 2017.

    在SiamFC的基础上,将相关滤波也作为CNN中的一层,最重要的是cf层的前向传播和反向传播公式推导,两层卷积层的CFNet在GPU上是75FPS,综合表现并没有很多惊艳,可能是难以处理CF层的边界效应吧,持观望态度。

    第九部分:2017年CVPR和ICCV结果

    下面是CVPR 2017的目标跟踪算法结果:可能MD大神想说,一个能打的都没有!

    仿照上面的表格,整理了ICCV 2017的相关论文结果对比ECO:哎,还是一个能打的都没有!

    第十部分:大牛推荐

    凑个数,目前相关滤波方向贡献最多的是以下两个组(有创新有代码):

    牛津大学:Joao F. HenriquesLuca Bertinetto,代表:CSK, KCF/DCF, Staple, CFNet (其他SiamFC, Learnet).

    林雪平大学:Martin Danelljan,代表:CN, DSST, SRDCF, DeepSRDCF, SRDCFdecon, C-COT, ECO.

    国内也有很多高校的优秀工作就不一一列举了。

    ___________________________________________________________________________

    我的目标跟踪专栏:目标跟踪之相关滤波CF,长期更新,专注跟踪,但也会介绍计算机视觉和深度学习的各方面内容,拓展思路。

    展开全文
  • 目标跟踪介绍(单目标)

    万次阅读 多人点赞 2019-06-21 22:01:55
    随着研究人员不断地深入研究,视觉目标跟踪在近十几年里有了突破性的进展,使得视觉跟踪算法不仅仅局限于传统的机器学习方法,更是结合了近些年人工智能热潮—深度学习(神经网络)和相关滤波器等方法,并取...

    Abstract

            视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义;且在军事制导、视频监控、机器人视觉导航、人机交互、以及医疗诊断等许多方面有着广泛的应用前景。随着研究人员不断地深入研究,视觉目标跟踪在近十几年里有了突破性的进展,使得视觉跟踪算法不仅仅局限于传统的机器学习方法,更是结合了近些年人工智能热潮—深度学习(神经网络)和相关滤波器等方法,并取得了鲁棒(robust)、精确、稳定的结果。本文主要介绍以下几点:什么是视觉目标跟踪、视觉目标跟踪(单目标)的基本结构(框架),目标跟踪存在的挑战,目标跟踪经典相关方法等。

    1、Introduction

            视觉目标跟踪是指对图像序列中的运动目标进行检测、提取、识别和跟踪,获得运动目标的运动参数,如位置、速度、加速度和运动轨迹等,从而进行下一步的处理与分析,实现对运动目标的行为理解,以完成更高一级的检测任务。根据跟踪目标的数量可以将跟踪算法分为单目标跟踪与多目标跟踪。相比单目标跟踪而言,多目标跟踪问题更加复杂和困难。多目标跟踪问题需要考虑视频序列中多个独立目标的位置、大小等数据,多个目标各自外观的变化、不同的运动方式、动态光照的影响以及多个目标之间相互遮挡、合并与分离等情况均是多目标跟踪问题中的难点。

            目标跟踪(单目标)领域的研究者们将跟踪算法分为生成式(generative model)和判别式(discriminative model)方法。一:生成式方法采用特征模型描述目标的外观特征,再最小化跟踪目标与候选目标之间的重构误差来确认目标;生成式方法着重于目标本身的特征提取,忽略目标的背景信息,在目标外观发生剧烈变化或者遮挡时候容易出现目标漂移(drift)或者目标丢失。二:判别式方法将目标跟踪看做是一个二元分类问题,通过训练关于目标和背景的分类器来从候选目标中确定目标,该方法可以显著的区分背景和目标,性能鲁棒,渐渐成为目标跟踪领域主流方法。且目前大多数基于深度学习的目标跟踪算法也属于判别式方法。

    2、Structure (Framework)

            视觉目标(单目标)跟踪任务即根据所跟踪的视频序列给定初始帧(第一帧)的目标状态(位置、尺度),预测后续帧中该目标状态。基本结构(框架)如下:

    基本流程:输入初始帧(第一帧)并初始化目标框(第一个图中的红框(从左往右)),在下一帧中产生众多候选框(产生有可能的目标框),提取这些候选框的特征(特征提取),然后对这些候选框评分(计算候选框的置信分数),最后在这些评分中找一个得分最高的候选框作为预测的目标(max{置信分数}),或者对多个预测值进行融合(Ensemble)得到更优的预测目标。

     根据如上的框架,将目标跟踪划分为五项主要的研究内容:

    运动模型(Motion Model):如何生成众多有效的候选框,生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。

    特征提取(Feature Extractor): 利用何种特征表示目标,鉴别性的特征表示是目标跟踪的关键之一。根据目标的情况选择不同的特征表示,常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。

    观测模型(Observation Model):为候选框打分(置信分数),大多数的跟踪方法主要集中在这一块的设计上。为候选框打分根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model). 生成式模型通常寻找与目标模板最相似的候选作为跟踪结果,这一过程可以视为模板匹配。常用的理论方法包括:子空间,稀疏表示,字典学习等。而判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。

    模型更新(Model Update): 更新观测模型使其适应目标的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。

    集成方法(Ensemble Method): 集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。

    3、Challenges

    通常目标跟踪面临几大难点:

    1.遮挡:目标跟踪中较难挑战因素之一,遮挡又分为部分遮挡(Partial Occlusion)和完全遮挡(Full Occlusion)。解决部分遮挡通常有两种思路:(1)利用检测机制判断目标是否被遮挡,从而决定是否更新模板,保证模板对遮挡的鲁棒性。(2)把目标分成多个块,利用没有被遮挡的块进行有效的跟踪。对于目标被完全遮挡的情况,当前也并没有有效的方法能够完全解决。

    2.形变:指目标表观的不断变化,通常导致跟踪发生漂移(Drift)。解决漂移问题常用的方法是更新目标的表观模型,使其适应表观的变化。

    3.背景杂斑:指得是要跟踪的目标周围有非常相似的目标对跟踪造成了干扰。解决这类问题常用的手段是利用目标的运动信息,预测运动的大致轨迹,防止跟踪器跟踪到相似的其他目标上,或是利用目标周围的大量样本框对分类器进行更新训练,提高分类器对背景与目标的辨别能力。

    4.尺度变换:指目标在运动过程中的由远及近或由近及远而产生的尺度大小变化的现象。预测目标框的大小也是目标跟踪中的一项挑战,如何又快又准确的预测出目标的尺度变化系数直接影响了跟踪的准确率。通常的做法有:在运动模型产生候选样本的时候,生成大量尺度大小不一的候选框,或是在多个不同尺度目标上进行目标跟踪,产生多个预测结果,选择其中最优的作为最后的预测目标。

    5.运动模糊:指目标或摄像机的运动导致的目标区域变模糊,导致跟踪效果不佳。常用均值偏移跟踪方法来进行跟踪,无需去模糊,利用从运动模糊中得到的信息,就能够完成跟踪目标。

    6.光照:在光照不均匀的复杂情况下获得的前景目标不完整、不准确,导致跟踪目标失败,常将RGB颜色信息与纹理信息以置信度相融合方法来抑制阴影,提高运动目标跟踪在光照变换情况下的鲁棒性。

    7.旋转:一般分为平面内旋转和平面外旋转,平面内旋转是指目标在图像平面内发生旋转;平面外旋转是指目标在图像平面外发生旋转。通常在跟踪模块引入仿射变换,仿射变换能够根据变换的自由度参数旋转变换坐标系的位置或目标的边界框,实现准确地目标跟踪。

    8.快速运动:指ground truth的运动大于tm个像素点(tm=20),采用时间差分的方法将运动目标从背景中提取出来,再根据连通区域分析法来确定每个目标块的具体位置,最后通过区域对应和基于颜色的最小欧氏距离的方法画出每个目标的运动轨迹。

    9.超出视野:指目标的一部分离开视野,通过引入一个检测器(TLD算法提出跟踪和检测是可以互相促进的),用于在跟踪失败时的补充,跟踪为检测器提供正样本,检测器在跟踪失败时重新初始化跟踪器。使得跟踪鲁棒性增强。

    10.低分辨率:指ground-truth边界框内的像素点个数少于tr(tr=400) ,可采用非负矩阵分解的方法来建立目标模型,通过非负矩阵分解迭代计算提取目标重要轮廓信息,以一个字典矩阵的形式表示目标,进而完成跟踪。

    4、Classical Algorithms

            视觉目标跟踪方法根据观测模型是生成式模型或判别式模型可以被分为生成式方法(Generative Method)和判别式方法(Discriminative Method)。前几年最火的生成式跟踪方法大概是稀疏编码(Sparse Coding)了, 而近来判别式跟踪方法逐渐占据了主流地位,以相关滤波(Correlation Filter)和深度学习(Deep Learning)为代表的判别式方法也取得了令人满意的效果。下面我们分别简要概括这几种方法的大体思想和其中的一些具体的跟踪方法。

    稀疏表示(Sparse Representation):给定一组过完备字典,将输入信号用这组过完备字典线性表示,对线性表示的系数做一个稀疏性的约束(即使得系数向量的分量尽可能多的为0),那么这一过程就称为稀疏表示。基于稀疏表示的目标跟踪方法则将跟踪问题转化为稀疏逼近问题来求解。如稀疏跟踪的开山之作L1Tracker, 认为候选样本可以被稀疏的表示通过目标模板和琐碎模板,而一个好的候选样本应该拥有更稀疏的系数向量。稀疏性可通过解决一个L1正则化的最小二乘优化问题获得,最后将与目标模板拥有最小重构误差的候选样本作为跟踪结果。L1Tracker中利用琐碎模板处理遮挡,利用对稀疏系数的非负约束解决背景杂斑问题。随后在L1Tracker基础上的改进则有很多,比较有代表性的有ALSA,L1APG等。

    相关滤波(Correlation Filter):相关滤波源于信号处理领域,相关性用于表示两个信号之间的相似程度,通常用卷积表示相关操作。那么基于相关滤波的跟踪方法的基本思想就是,寻找一个滤波模板,让下一帧的图像与我们的滤波模板做卷积操作,响应最大的区域则是预测的目标。根据这一思想先后提出了大量的基于相关滤波的方法,如最早的平方误差最小输出和(MOSSE)利用的就是最朴素的相关滤波思想的跟踪方法。随后基于MOSSE有了很多相关的改进,如引入核方法(Kernel Method)的CSK,KCF等都取得了很好的效果,特别是利用循环矩阵计算的KCF,跟踪速度惊人。在KCF的基础上又发展了一系列的方法用于处理各种挑战。如:DSST可以处理尺度变化,基于分块的(Reliable Patches)相关滤波方法可处理遮挡等。但是所有上述的基于相关滤波的方法都受到边界效应(Boundary Effect)的影响。为了克服这个问题SRDCF应运而生,SRDCF利用空间正则化惩罚了相关滤波系数获得了可与深度学习跟踪方法相比的结果。2017VOT北京飞搜科技&北京邮电大学代表队提交的结果(CFWCR),基于业界流行的相关滤波的框架。我们使用了单CNN特征的多尺度追踪方案。现有很多追踪器融合了CNN特征和传统的机器学习特征,如HOG特征,CN颜色特征等。在我们的实验中,我们发现CNN的浅层特征具有物体轮廓的信息,高层的深度特征具有物体的语义信息,将CNN的浅层和高层特征进行融合,能使追踪器具有很好的性能。2018VOT大赛北京飞搜科技&北京邮电大学代表队提交的结果(MFT)勇夺竞赛主赛冠军,MFT算法立足于改进现有跟踪器鲁棒性不稳定、追踪过程易受相似目标的干扰、遮挡以及较大的形变影响而造成的追踪失败。MFT算法采取“多维合并的相关滤波”这一思路,充分利用多个维度不同的特征,把握不同跟踪场景的内部关系从而实现更稳定的跟踪。MFT算法充分解决了现有跟踪器的局限性,能够利用不同的维度特征进行独立求解和最优化合并,克服了过拟合,提高了鲁棒性;同时,由于多维的特征提供了相对充足而全面的特征数据,可以合理的运动估计模型来估算物体的运动轨迹,这样就可以大大改善甚至可以完全克服物体被遮挡甚至完全遮挡时追踪过程受到的干扰。

    深度学习(CNN-Based):因为深度特征对目标拥有强大的表示能力,深度学习在计算机视觉的其他领域,如:检测,人脸识别中已经展现出巨大的潜力。但早前两年,深度学习在目标跟踪领域的应用并不顺利,因为目标跟踪任务的特殊性,只有初始帧的图片数据可以利用,因此缺乏大量的数据供神经网络学习。只到研究人员把在分类图像数据集上训练的卷积神经网络迁移到目标跟踪中来,基于深度学习的目标跟踪方法才得到充分的发展。如:CNN-SVM利用在ImageNet分类数据集上训练的卷积神经网络提取目标的特征,再利用传统的SVM方法做跟踪。与CNN-SVM提取最后一层的深度特征不同的是,FCN利用了目标的两个卷积层的特征构造了可以选择特征图的网络,这种方法比只利用最后的全连接层的CNN-SVM效果有些许的提升。随后HCF, HDT等方法则更加充分的利用了卷积神经网络各层的卷积特征,这些方法在相关滤波的基础上结合多层次卷积特征进一步的提升了跟踪效果。然而,跟踪任务与分类任务始终是不同的,分类任务关心的是区分类间差异,忽视类内的区别。目标跟踪任务关心的则是区分特定目标与背景,抑制同类目标。两个任务有着本质的区别,因此在分类数据集上预训练的网络可能并不完全适用于目标跟踪任务。于是,Nam设计了一个专门在跟踪视频序列上训练的多域(Multi-Domain)卷积神经网络(MDNet),结果取得了VOT2015比赛的第一名。但是MDNet在标准集上进行训练多少有一点过拟合的嫌疑,于是VOT2016比赛中禁止在标准跟踪数据集上进行训练。2016年SRDCF的作者继续发力,也利用了卷积神经网络提取目标特征然后结合相关滤波提出了C-COT的跟踪方法取得了VOT2016的冠军。2018VOT(long-term challenge)中前两名MBMD和DaSiam_LT的F-score遥遥领先,都是SiamNet类方法,而且都是SiamRPN的改进算法,证明SiamRPN潜力巨大。

    深度学习与相关滤波结合(CNN and Correlation Filter):使用深度卷积特征和协同滤波结合的方法效果较突出。例如2015年马超大神的HCF算法是目标跟踪领域的一大代表作,将多层卷积特征融入深度跟踪领域并结合相关滤波方法,开启了目标跟踪新思路。2017VOT第一名,大连理工大学卢老师的LSART,他们提出的追踪器以一种新的方式结合了CNN和相关滤波,通过设计算法让CNN专注于特定区域的回归,相关滤波专注于全局的回归,在最后对回归的结果进行组合,以互补的方式得到物体的精确定位。

            目标跟踪算法近几年层出不尽,基于相关滤波(Correlation Filter)和卷积神经网络(CNN)的跟踪方法已经成为目标跟踪舞台上的独角戏。接下来分别列出近几年VOT(http://www.votchallenge.net/)大赛trackers的表现情况:

    VOT2018(https://prints.vicos.si/publications/365)

    VOT2017(http://openaccess.thecvf.com/content_ICCV_2017_workshops/papers/w28/Kristan_The_Visual_Object_ICCV_2017_paper.pdf)

    VOT2016(http://data.votchallenge.net/vot2016/presentations/vot_2016_paper.pdf)

       

     

       

    VOT2015(http://data.votchallenge.net/vot2015/presentations/vot_2015_paper.pdf)

    VOT2014(http://www.votchallenge.net/vot2014/download/vot_2014_paper.pdf)

    VOT2013(http://www.votchallenge.net/vot2013/Download/vot_2013_paper.pdf)

     

    展开全文
  • 目标跟踪算法研究综述

    万次阅读 多人点赞 2018-05-31 12:45:38
    入坑也算有些日子了,一直在看论文并没有对目标跟踪的研究进展和算法有一个系统性的了解。是时候好好整理一下了,希望能对后面的研究有所帮助吧!内容中来自经典论文和博客部分,如有侵权请提醒删除。(小白一颗,...
  • 本文的主要贡献点如下四条:1)多目标跟踪系统的关键方向,包括公式(formulation),分类(categorization),关键原则(key principles),以及测评(evaluation);2)根据现有技术所属的不同方向来进行讨论,再将每个...
  • 目标跟踪发展时间线

    千次阅读 2019-05-05 17:01:19
    一、单目标跟踪发展时间线 第一阶段(大部分2010年之前,落地多,FPS高,算力要求不大) 1、静态背景 1)背景差:对背景的光照变化、噪声干扰以及周期性运动等进行建模。 2)帧差 3)Codebook 4)GMM 5)ViBe...
  • 目标跟踪简介

    2019-07-13 10:04:15
    文章目录目标跟踪简介3.1 引言3.2 目标跟踪算法分类3.2.1 生成式算法(1)核方法(2)粒子滤波方法(3)卡尔曼滤波方法(4)稀疏表示方法3.2.2 判别式方法(1)相关滤波方法(2)深度学习方法3.3单摄像机多目标跟踪...
  • 目标跟踪的基础知识

    千次阅读 2019-08-22 23:35:21
    目标跟踪 1.单目标跟踪 SOT 2.多目标跟踪 MOT(Multi-Object Tracking) 单目标跟踪和多目标跟踪完全是两个不同的研究方向:一文带你了解视觉目标跟踪目标跟踪 1. TBD(Tracking-by-Detecton) 2. DFT...
  • 目标跟踪方法总结

    万次阅读 多人点赞 2017-12-08 14:26:37
    作者:YaqiLYU ... 来源:知乎 ...相信很多来这里的人和我第一次到这里一样,都是想找一种比较好的目标跟踪算法,或者想对目标跟踪这个领域有比较深入的了解,虽然这个问题是经典目标跟踪算法,但事实上,可
  • 运动目标追踪实现(opencv3)(二)

    万次阅读 热门讨论 2018-10-24 17:29:57
    运动目标的追踪 最近刚开始做目标追踪,理解的还不成熟,博客有错处,欢迎在评论区指出。 有许多博主实现追踪用的卡尔曼方法,具体原理可以看一下这个 :...
  • 带你入门多目标跟踪(一)领域概述

    万次阅读 多人点赞 2019-07-02 19:21:25
    现在从目标检测和单目标跟踪方向转来做多目标跟踪的小伙伴应该有不少,但由于多目标跟踪任务本身的复杂性,导致其入门会比目标检测与单目标跟踪困难不少。再加上论文分布在各个会议,开源代码较少,都造成了多目标...
  • 深度多目标跟踪算法综述

    万次阅读 多人点赞 2018-10-23 10:54:33
    其它机器学习、深度学习算法的全面系统讲解可以阅读《机器学习-原理、算法与应用》,清华大学出版社,雷明著,由SIGAI公众号作者倾力打造。...与行人重识别问题紧密相关的是行人的多目标跟踪问题。 在目标...
  • 视觉多目标跟踪算法综述(上)

    万次阅读 多人点赞 2018-09-11 15:21:47
    目标跟踪是机器视觉中一类被广为研究的重要问题,分为单目标跟踪多目标跟踪。前者跟踪视频画面中的单个目标,后者则同时跟踪视频画面中的个目标,得到这些目标的运动轨迹。 基于视觉的目标自动跟踪在智能监控、...
  • 多目标跟踪评价指标

    千次阅读 2019-01-06 12:51:00
  • SORT 多目标跟踪算法笔记

    万次阅读 多人点赞 2019-04-21 15:20:46
    sort 是一种简单的在线实时多目标跟踪算法。文章要点为: 以 IoU 作为前后帧间目标关系度量指标; 利用卡尔曼滤波器预测当前位置; 通过匈牙利算法关联检测框到目标; 应用试探期甄别虚检; 使用 Faster R-...
  • 多目标跟踪c++代码

    热门讨论 2014-04-08 22:52:51
    代码使用vs2010 + opencv2.2开发,可以检测目标跟踪多目标
  • 多目标跟踪

    千次阅读 2014-12-30 14:33:27
    进行多目标跟踪的学习。 跟踪的难点: 将现在检测到的目标和以前检测的目标进行匹配连接跟踪被遮挡的目标当被遮挡的目标再次出现时,可以重新分配 二、Resources 1. 这是别人整理的一些跟踪方面的资料,...
  • 多目标跟踪源码

    2014-07-16 09:37:33
    多目标跟踪源码,运动目标跟踪,代码,适用于桌面平台
  • 文章目录目标跟踪、单目标跟踪多目标跟踪的概念在线多目标跟踪sort算法原理SORT算法过程简述估计模型(卡尔曼滤波跟踪器) 目标跟踪、单目标跟踪多目标跟踪的概念 目标跟踪分为静态背景下的目标跟踪和动态背景下...
  • 多目标跟踪算法解读

    2020-09-28 14:29:43
    一、多目标跟踪背景介绍 1.问题定义 2.难点 3.应用场景 二、相关方法 1.Model free 方法 2. Tracking by detection 方法 1)离线方法 2)在线方法 三、基准 多目标跟踪背景介绍 问题定义 多目标跟踪是将视频...
  • 多目标跟踪数据关联算法

    千次阅读 2019-01-11 17:02:34
    多目标跟踪数据关联算法 在单目标无杂波环境下,目标的相关波门内只有一个点迹,此时只涉及跟踪问题。在目标情况下,有可能出现单个点迹落入个波门的相交区域内,或者个点迹落入单个目标的相关波门内,此时就...
  • 带你入门多目标跟踪(三)匈牙利算法&KM算法

    千次阅读 多人点赞 2019-07-02 19:30:41
    匈牙利算法(Hungarian Algorithm)与KM算法(Kuhn-Munkres Algorithm)是做多目标跟踪的小伙伴很容易在论文中见到的两种算法。他们都是用来解决多目标跟踪中的数据关联问题。 对理论没有兴趣的小伙伴可以先跳过...
  • 多目标跟踪算法

    千次阅读 2020-02-09 15:37:45
    文章目录多目标跟踪算法一、多目标跟踪算法分类二、基于目标检测的多目标跟踪2.1 基于轨迹预测的目标跟踪算法2.2 基于目标特征建模 多目标跟踪算法 一、多目标跟踪算法分类 DBT(Detection Based Tracking)(如上图...
  • 为了在遮挡条件下进行多目标跟踪,针对运动目标发生遮挡情况下的Mean Shift跟踪问题进行了研究,提出一种新的抗遮挡算法。利用卡尔曼滤波器来获得每帧Mean Shift算法的起始位置,再利用Mean Shift算法得到目标跟踪...
  • 视觉多目标跟踪算法综述

    千次阅读 2018-09-12 14:15:30
    目标跟踪是机器视觉中一类被广为研究的重要问题,分为单目标跟踪多目标跟踪。前 者跟踪视频画面中的单个目标,后者则同时跟踪视频画面中的个目标,得到这些目标的运 动轨迹。 基于视觉的目标自动跟踪在智能监控...
  • 多目标跟踪程序

    2018-04-09 15:34:59
    基于opencv1.0中的多目标跟踪技术,在vs2008中运行,生成控制台应用程序
  • 目标跟踪(三)——多目标跟踪

    千次阅读 2019-05-28 11:12:18
    文章目录github paper and code list github paper and code list multi-object-tracking-paper-list
  • 光流多目标跟踪算法

    2015-11-05 10:13:49
    光流法对多目标实现稳定跟踪,对光流法实现速度优化,同时可对个运动目标进行稳定跟踪
  • 运动目标跟踪算法的目的就是对视频中的图象序列进行分析,计算出目标在每帧图象上的位置。这里要根据区域分割过程给出的目标质心位置,计算出目标位移,并且根据质心位置的变化判断出目标的运动方向,以及运动目标...

空空如也

1 2 3 4 5 ... 20
收藏数 258,355
精华内容 103,342
关键字:

目标跟踪