论文:ECO: Efficient Convolution Operators for Tracking(2016年11月)

MD个人主页:https://martin-danelljan.github.io/


引用自博客:ECO–目标跟踪–CVPR2017–Martin Danelljan的大作

1、ECO跟踪算法Github下载地址:
作者发布的Matlab implementation of the Efficient Convolution Operator (ECO) tracker.
https://github.com/martin-danelljan/ECO

2、作者发布的Pytorch版本,同时包括ECO和ATOM两个算法。
https://github.com/visionml/pytracking

3、作者的新算法most recent tracker ATOM.论文下载:
https://arxiv.org/pdf/1811.07628.pdf

4、ECO(Efficient Convolution Operators for Tracking)中文解析:
https://blog.csdn.net/HUAJUN998/article/details/79802907

5、网友实现的C++版本的ECO github地址:
https://github.com/HJCYFY/ECO.git


Visual Tracking领域大牛(至少我认为是这个领域的大牛)Martin Danelljan又出新作。继C-COT之后又一刷新纪录的作品。不管是从结果还是速度上都有提升,尤其是速度提升明显。用传统特征HOG+CN的版本速度有60+FPS,用CNN+HOG+CN的速度有8FPS,从跟踪效果来看,个人认为可以算一个出色的作品。

  1. Motivation

这篇文章的出发点其实就是提高时间效率和空间效率。近一两年来,效果好的很多方法都是基于相关滤波来做的。最早用到相关滤波的是Bolme等人在2010年CVPR的MOSSE,速度非常快。在MOSSE之后,像KCF,DSST,CN,SRDCF,C-COT等等都是在相关滤波的基础上做的。随着特征维度越来越高,算法越来越复杂,跟踪效果虽然是在逐步提升,但是都是以牺牲跟踪速度为代价的。(Martin Danelljan在相关滤波这一系列方法上可谓是如鱼得水啊,有非常多的成果,非常多!)

那么Martin Danelljan(后面叫他DM好了)在相关滤波做跟踪的算法上积累了丰富的经验之后,分析了速度降低的三个最重要的因素:

(1) Model Size(模型大小)

也可以理解为特征的复杂度。比如说C-COT用了CNN+HOG+CN这样非常全面的特征组合,它每次更新模型的时候,需要更新的参数有800000个,速度当然很慢。实际上跟踪问题中的训练样本非常少,这么高的维度除了速度慢,还会引起过拟合(over-fitting)。

(2) Training Set Size(训练集大小)

这里所指的训练集是指保存了每一帧的跟踪结果的训练集,也就是说,每一次进行model update的时候,要用在这一帧之前所有跟踪到的样本。那么随着视频越来越长,这个训练集就会越来越大。那么一般的解决方案是保存比较新的样本,丢弃老的样本,具体策略每个方法都不一样。这样一来,模型还是容易过拟合。因为当目标被遮挡或者丢失的时候,比较新的这些样本本身就是错的,那么模型很容易有model drift,就是被背景或者错误的目标污染,导致跟踪结果出错。另外,样本集的保存也会使得空间效率低下,增加计算负担。

(3) Model Update

这个很显然,模型如果每帧都更新,速度肯定比间歇更新要慢。我发现16年下半年开始,做tracking的人开始非常关注这个问题。而在此之前,很多方法基本都是每帧都更新的。另外每帧都更新也会有model drift问题,这个显而易见不再赘述。
在这里插入图片描述
在这里插入图片描述

ECO在特征提取上做了简化。用了原来特征的子集,从D维的特征中选了其中的C维。C-COT是每个维度的特征对应一个滤波器,D维的特征就有D个滤波器,其实很多滤波器 的贡献很小。如图一所示,C-COT的大部分滤波器的能量很小。而ECO只选择其中贡献较多的C个滤波器,C<D,然后每一位特征用这C个滤波器的线性组合来表示。这里的C维如何选择文中没有具体说,我猜测是简单的利用滤波器中大于某个阈值的元素个数来选择。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

通过样本x和目标输出y的联合概率分布p(x,y),将目标函数进一步完善为:
在这里插入图片描述
在实际中,L设置为M/8,再一次减少了计算量,即1中提到的第二点,训练集大小。同时由于增加了样本的多样性,使得效果也有提升。

2.3 Model Update Strategy

ECO这里的做法很简单,就是简单地规定每隔Ns帧更新一次。注意这里的Ns只是对模型的更新,样本的更新是每一帧都要做的。最后的实验中,Ns设置为6。

模型更新频率降低,当然节约了时间,并且可以避免模型的漂移问题,一定程度上改进效果,但是也不可以把Ns取得太大,否则会使得模型跟不上目标的变化。

到此为止,ECO针对1中的三个问题都提出了解决方案,从速度和效果上都有了改进。

  1. Experiment

具体的参数设置就不介绍了,可以直接看文章。直接放效果了,做tracking的人应该都看得懂。不做tracking的人,反正一句话:都是第一名!

VOT2016
在这里插入图片描述

在这里插入图片描述

总结一下ECO效果好的原因:
1. 特征全面(CNN, HOG, CN),这个对结果的贡献很高;
2. 相关滤波器经过筛选更具代表性(2.1做的),防止过拟合;
3. 训练样本具有多样性(2.2做的),减少冗余;
4. 非每帧更新模型,防止模型漂移;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值