└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # 目标跟踪
2 | 这是一篇关于目标跟踪的综述,主要总结现有的常用数据集、目标跟踪算法、资源、研究热点等。
3 | 4 | ## 目标跟踪
5 | 任务背景:目标跟踪通常指单目标跟踪。跟踪目标由第一帧给定,可由人工标注或检测算法获取。跟踪算法再在后续帧紧跟此目标。
6 | 7 |

8 | Sample 9 |

10 | 11 | 技术特点:第一帧的BBox由检测算法提供或由人工标注
12 | 技术难点(吴毅):
13 | * 外观变形,光照变化,快速运动和运动模糊,背景相似干扰等
14 |

15 | Sample 16 |

17 | 18 | * 平面外旋转,平面内旋转,尺度变化,遮挡和出视野等情况等
19 |

20 | Sample 21 |

22 | 23 | 24 | ## 常用数据集
25 | OTB50(OTB-2013),OTB100(OTB-2015)
26 | 官方测试代码与序列:[Visual Tracker Benchmark](http://cvlab.hanyang.ac.kr/tracker_benchmark/)
27 | 28 | VOT竞赛数据库:VOT2015,VOT2016
29 | VOT挑战赛平台与数据:[VOT Challenge | Challenges](http://votchallenge.net/challenges.html)
30 | 31 | ### OTB和VOT区别:
32 | * 评价指标不同;
33 | * 图像素质不同:OTB含25%灰度序列,VOT全彩色序列,VOT序列分辨率更高;
34 | * 初始方法不同:OTB有随机帧、随机初始化方法;VOT是首帧初始化,每次跟踪失败5帧之后重新初始化;
35 | * VOT强调跟踪和检测应该兼并,跟踪过程中会多次初始化tracker;
36 | * VOT数据库每年更新,包括重新标注、改变评价指标等。
37 | 38 | 39 | ## 方法分类
40 | * 生成(generative)模型方法。典型算法[ASMS](https://github.com/vojirt/asms)(125fps)。
41 | * 判别(discriminative)模型方法。典型算法Struck(20fps)和TLD(28fps)。
42 | * 深度学习(Deep ConvNet based)类方法。典型算法:[MDNet](http://cvlab.postech.ac.kr/research/mdnet/),[TCNN](http://www.votchallenge.net/vot2016/download/44_TCNN.zip),[SiamFC](http://www.robots.ox.ac.uk/~luca/siamese-fc.html),[SiamFC-R](http://www.iqiyi.com/w_19ruirwrel.html#vfrm=8-8-0-1)。
43 | * 相关滤波(correlation filter)类方法。典型算法:CSK(362fps),KCF(172fps),DCF(292fps),CN(152fps)。
44 | 45 | 46 | ### 生成模型法
47 | 生成模型法用当前帧目标特征建模,在下一帧寻找与模型最相似的区域。主要方法有卡尔曼滤波,粒子滤波,mean-shift等。
48 | 生成模型的一个简单例子:从当前帧得知目标区域 80% 是红色、20% 是绿色,则在下一帧搜索寻找最符合这个颜色比例的区域。
49 | ASMS 与 DAT 都是仅颜色特征的算法而且速度很快,分别是 VOT2015 的第 20名 和 14 名,在 VOT2016 分别是 32 名和 31 名(中等水平)。
50 | ASMS 是 VOT2015 官方推荐的实时算法,平均帧率125FPS,在经典 mean-shift 框架下加入了尺度估计、经典颜色直方图特征,加入了两个先验(尺度不剧变+可能偏最大)作为正则项,和反向尺度一致性检查。 51 | 52 | 53 | ### 判别模型法
54 | 判别模型法以目标区域为正样本,背景区域为负样本,使用机器学习方法训练分类器,下一帧用训练好的分类器寻找最优区域。
55 | OTB50 中大部分方法都是这一类。
56 |

57 | Sample 58 |

59 | 60 | 分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。 61 | 62 | 比如,训练时 tracker 得知目标 80% 是红色,20% 是绿色,且背景中有橘红色,这样的分类器获得了更多信息,效果也相对更好。 63 | 64 | Tracking-by-Detection 和检测算法非常相似。跟踪中为了尺度自适应也需要多尺度遍历搜索,区别仅在于跟踪算法对特征和在线机器学习的速度要求更高,检测范围和尺度更小。 65 | 66 | 大多数情况检测识别算法复杂度比较高,这时候用复杂度较低的跟踪算法更合适,只需在跟踪失败 (drift) 或一定间隔以后再次检测初始化 tracker 即可。毕竟 FPS 是追踪类算法最重要的指标之一。 67 | 68 | Struck 和 TLD 都能实时跟踪,Struck 是 2012 年之前最好的方法,TLD是经典 long-term 的代表。 69 | 70 | 71 | ### 深度学习方法
72 | 深度学习端到端的优势在目标跟踪方向体现不明显,还没和相关滤波类方法拉开差距,普遍面临着速度慢的问题。 73 | 74 | 另一个需要注意的问题是目标跟踪的数据库都没有严格的训练集和测试集,需要注意训练集与测试集有没有相似序列。直到 VOT2017 官方才指明要限制训练集,不能用相似序列训练模型。 75 | 76 | 该方法领域值得关注的研究包括但不限于: 77 | * [Winsty](http://www.winsty.net/) 的系列研究;
78 | * VOT2015 的冠军 [MDNet](http://cvlab.postech.ac.kr/research/mdnet/);
79 | * VOT2016 的冠军 [TCNN](http://www.votchallenge.net/vot2016/download/44_TCNN.zip);
80 | * VOT2016 成绩优异的基于 ResNet 的 [SiamFC-R](http://www.iqiyi.com/w_19ruirwrel.html#vfrm=8-8-0-1);
81 | * 速度突出的 的 [SiamFC](http://www.robots.ox.ac.uk/~luca/siamese-fc.html)(80FPS);
82 | * 速度更快的 GOTURN(100FPS),牺牲性能换取速度。
83 | (这些方法可以在王强维护的 [benchmark_results](https://github.com/foolwood/benchmark_results) 中找到) 84 | 85 | 86 | ### 相关滤波方法
87 | 相关滤波类方法 correlation filter 简称 CF,或 discriminative correlation filter 简称 DCF,该方法相关研究对目标跟踪类方法产生了深远影响。 88 | 89 | 相关滤波法的发展过程是速度与精度权衡的过程:从 MOSSE(615FPS) 到 CSK(362FPS) 再到 KCF(172FPS),DCF(292FPS),CN(152FPS),CN2(202FPS),速度越来越慢,效果越来越好,且始终保持在高速水平。 90 | 91 |
92 | 93 | ## 发展梳理
94 | 下面按时间顺序,以相关滤波为重点,梳理目标跟踪近几年的发展脉络。
95 | 96 | ### 2012年及之前的工作:
97 | 29个顶尖的tracker在OTB100数据集上的表现:
98 | 按性能排序:Struck>SCM>ASLA;按速度排序:CSK(362fps)>CT(64fps)>TLD(28)。
99 | 100 |

101 | Sample 102 |

103 | 104 |

105 | Sample 106 |

107 | 108 |
109 | 110 | ### 2013-2016 相关滤波:
111 | 这段时期是相关滤波方法快速发展的时期。
112 | * MOSSE :单通道灰度特征的相关滤波,因使用单通道图片,计算速度极快。
113 | * CSK 和 KCF 是牛津大学 [Henriques J F](http://www.robots.ox.ac.uk/~joao/index.html#) 的先后两篇研究成果,对后续研究产生了深远影响。CSK 在 MOSSE 的基础上扩展了密集采样和 kernel-trick ;KCF 在 CSK 的基础上扩展了多通道梯度的 HOG 特征。
114 | * 林雪平大学 Martin Danelljan 用多通道颜色特征 Color Names (CN) 扩展 CSK 得到了不错的效果,算法简称 [CN](http://www.cvl.isy.liu.se/research/objrec/visualtracking/colvistrack/index.html)。 115 | 116 | HOG 是梯度特征,CN 是颜色特征,两者常搭配使用。 117 | 118 |
119 | 120 | ### 2014 - 尺度自适应
121 | 为解决尺度变化导致的跟踪目标丢失,2014 年前后有学者继续改进,添加了尺度自适应方法。 122 |

123 | Sample 124 |

125 | 126 | * 浙江大学 Yang Li 的工作 [SAMF](https://github.com/ihpdep/samf) ,在 KCF 的基础上用了 HOG+CN 特征,使用平移滤波器在多尺度缩放的图像块上进行目标检测,取响应最大的平移位置及所在尺度。
127 | * Martin Danelljan 的 [DSST](http://www.cvl.isy.liu.se/research/objrec/visualtracking/scalvistrack/index.html),使用了 HOG 特征,同时使用了平移滤波和尺度滤波。后续还研究出了加速版本 fDSST。
128 | 129 | 上述两者有如下区别:
130 | * SAMF 有 7 个尺度,DSST 有 33 个尺度;
131 | * SAMF 同时优化平移和尺度,DSST 分步优化:先检测最佳平移再检测最佳尺度;
132 | * SAMF 只需一个滤波器,每个尺度检测提取一次特征和 FFT,在图像较大时计算量比 DSST 高;
133 | * DSST 分步优化可采用不同的方法和特征,需要额外训练一个滤波器,每帧尺度检测需采样 33 个图像块并分别计算特征、加窗、FFT 等,尺度滤波器比平移滤波器慢很多。
134 | 135 |
136 | 137 | ### 2015 - 边界效应
138 | 为改善对快速变形和快速运动目标的追踪效果,2015 年前后有学者继续改进,着重解决边界效应(Boundary Effets)问题。
139 |

140 | Sample 141 |

142 | 143 | * Martin Danelljan 的 [SRDCF](http://www.cvl.isy.liu.se/research/objrec/visualtracking/regvistrack/index.html)。忽略了所有移位样本的边界部分像素,限制让边界附近滤波器系数接近 0。速度 167FPS,性能不如 KCF。
144 |

145 | Sample 146 |

147 | 148 | * Hamed Kiani 的 MOSSE 改进算法,基于灰度特征的 [CFLM](http://www.hamedkiani.com/cfwlb.html) 和基于 HOG 特征的 [BACF](http://www.hamedkiani.com/bacf.html),采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本比例,采用 ADMM 迭代优化。BACF 性能超过 SRDCF,速度 35FPS。
149 |

150 | Sample 151 |

152 | 153 | 两个解决方案都用更大的检测及更新图像块,训练作用域比较小的相关滤波器。但是 SRDCF 的滤波器系数从中心到边缘平滑过渡到 0,而 CFLM 直接用 0 填充滤波器边缘。
154 | 155 |
156 | 157 | ### 2015-2017 卷积特征
158 | [Martin Danelljan](http://www.cvl.isy.liu.se/research/objrec/visualtracking/) 结合深度特征和相关滤波方法取得了很好的效果。
159 | 160 | * DSST 是 VOT2014 第一名,开创了平移滤波结合尺度滤波的方式。
161 | * SRDCF 是 VOT2015 的第四名,优化目标增加了空间约束项。
162 | * SRDCFdecon 在 SRDCF 的基础上,改进了样本和学习率问题。
163 | * DeepSRDCF 是 VOT2015 第二名,将 HOG 特征替换为 CNN 卷积特征(基于 VGG),效果有了极大提升。论文测试了不同卷积层在目标跟踪任务中的表现,第 1 层表现最好,第 2 和第 5 次之。
164 |

165 | Sample 166 |

167 | 168 | * Chao Ma 的 HCF,结合多层卷积特征,用了 VGG19 的 Conv5-4, Conv4-4 和 Conv3-4 的激活值作为特征,在VOT2016排在28名。
169 | * C-COT 是 VOT2016 第一名,将 DeepSRDCF 的单层卷积的深度特征扩展为多成卷积的深度特征(VGG第 1 和 5 层)。
170 | * Martin Danelljan 在 2017CVPR 的 ECO 是 C-COT 的加速版,从模型大小、样本集大小和更新策略三方面加速,CPU上速度 60FPS。
171 | 172 |
173 | 174 | ### 2016-2017 颜色统计特征
175 | 2016 年,深度学习方法发挥优势,纯 CNN 方法与结合了深度特征的 CF 方法成绩排列靠前。
176 | VOT2016竞赛主办方公开了[部分 tracker 代码和主页](http://votchallenge.net/vot2016/trackers.html)。
177 | 178 |

179 | Sample 180 |

181 | 182 | * C-COT 排第一,是结合了多层深度特征的相关滤波;
183 | * TCNN 是纯 CNN 方法,VOT2016 的冠军;
184 | * 纯颜色方法 [DAT](http://lrs.icg.tugraz.at/members/possegger#dat) 和 ASMS 都在中等水平;
185 | * Luca Bertinetto 的 SiamFC 和 Staple 都表现不错。
186 | 187 | HOG 对快速变形和快速运动效果不好,但对运动模糊及光照变化等情况鲁棒;颜色统计特征对变形、快速运动不敏感,但对光照变化和背景相似颜色效果不佳。这两类方法可以互补,即 DSST 和 DAT 可以互补结合。
188 | 189 |

190 | Sample 191 |

192 | 193 | * [Staple](http://www.robots.ox.ac.uk/~luca/staple.html) 是模板特征方法 DSST 和统计特征方法 DAT 的结合,速度高达 80FPS。
194 | * 17CVPR 的 CSR-DCF,结合了相关滤波和颜色概率的方法,提出了空域可靠性和通道可靠性,性能直逼 C-COT,速度 13FPS。
195 |

196 | Sample 197 |

198 | 199 |
200 | 201 | ## 最新进展
202 | 目标跟踪近几年发展迅速,融合了相关滤波(Correlation Filter)和卷积神经网络(CNN)的跟踪方法已经占据了目标跟踪的大半江山。如下图给出的是 2014-2017 年以来表现排名靠前的一些跟踪方法。
203 | 按趋势来看,纯粹的深度神经网络方法、结合深度神经网络的相关滤波方法或将成为未来发展的主要走向。
204 |

205 | Sample 206 |

207 | 208 | ### 孪生网络家族
209 | 近年来在目标追踪领域,基于孪生网络的方法已经逐渐发展壮大并自成一家,取得了很好的效果。
210 | 211 | * [SINT](https://link.zhihu.com/?target=https%3A//github.com/taotaoorange/SINT) 基于孪生网络的开山之作,首次开创性的将目标跟踪问题转化为一个 patch 块匹配问题
212 | * [Siamese-FC](https://link.zhihu.com/?target=https%3A//github.com/bertinetto/siamese-fc) 孪生网络解决方案由此而兴,速度很快的端到端跟踪网络
213 | * [CFNet](https://link.zhihu.com/?target=https%3A//github.com/bertinetto/cfnet) 将相关滤波(CF)整合为一个网络层,并将其嵌入到基于孪生网络的框架中
214 | * [DSiam](https://link.zhihu.com/?target=https%3A//github.com/tsingqguo/DSiam) 添加了目标外观变换转换层和背景抑制变换层来提升网络的判别能力,增强了模型在线更新的能力
215 | * [SINT++](https://link.zhihu.com/?target=https%3A//sites.google.com/view/cvpr2018sintplusplus/) SINT 算法的改进版,为了生成多样性的输入正样本块,使用到了 AutoEncoder 和 GAN 网络
216 | * [SA-Siam](https://link.zhihu.com/?target=http%3A//openaccess.thecvf.com/content_cvpr_2018/papers/He_A_Twofold_Siamese_CVPR_2018_paper.pdf) 双网络分别学习不同的特征、在分支中添加注意力机制和多层特征的融合
217 | * [RASNet](https://link.zhihu.com/?target=http%3A//openaccess.thecvf.com/content_cvpr_2018/papers/Wang_Learning_Attentions_Residual_CVPR_2018_paper.pdf) 引入 3 个注意力机制:残差注意力块,通道注意力块和通用注意力块
218 | * [SiamRPN](https://link.zhihu.com/?target=https%3A//github.com/makalo/Siamese-RPN-tensorflow) 将目标检测中的RPN模块应用到跟踪任务中,将相似度计算问题转化为回归和分类问题
219 | * [SiamFC-tri](https://link.zhihu.com/?target=https%3A//github.com/shenjianbing/TripletTracking) 将孪生网络领域中使用广泛的 triplet loss 应用到跟踪问题上来
220 | * [StructSiam](https://link.zhihu.com/?target=https%3A//github.com/xiaobai1217/StructSiam) 通过多个局部结构块的组合形成纹理,将相似性比较问题转化为局部特征块的比较问题
221 | * [DaSiamRPN](https://link.zhihu.com/?target=https%3A//github.com/foolwood/DaSiamRPN) 对 SiamRPN 的改进版,解决正负样本块不均衡问题和样本块的丰富性问题,即更关注于输入数据
222 | * [DenseSiam](https://link.zhihu.com/?target=http%3A//www.votchallenge.net/vot2018/trackers.html) 将 Dense-Block 应用到跟踪网络中来,增加注意力模块提升模型自适应能力
223 | * [MBST](https://link.zhihu.com/?target=https%3A//github.com/zhenxili96/MBST) 同时训练多个孪生网络分支,使用分支选择模块选择出最好的分支块计算输出结果
224 | * [Siam-BM](https://link.zhihu.com/?target=https%3A//github.com/77695/Siam-BM) 通过角度评估模块解决目标的大尺度旋转,通过空间 mask 模块区分相似目标
225 | * [C-RPN](https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1812.06148.pdf) 堆叠 SiamRPN,抑制简单样本块,获得更具代表性的样本块,通过多级回归使输出更准确
226 | * [SiamMask](https://link.zhihu.com/?target=http%3A//www.robots.ox.ac.uk/~qwang/SiamMask/) 在 saimese-fc 的基础上添加 mask 分支,使用检测的结果更加准确,可以获取跟踪目标的 BB 和 Mask
227 | * [CIR](https://link.zhihu.com/?target=https%3A//gitlab.com/MSRA_NLPR/deeper_wider_siamese_trackers) 使用 Siamese-fc 框架,将骨干网络更换成深层网络,通过 Crop 增强算法的平移不变性
228 | * [SiamRPN++](https://github.com/STVIR/pysot) 使用超大数据集,使用 ResNet 做骨干,偏移中心均匀采样,使用多级级联的思路获取鲁棒的特征表示,使基于孪生网络的跟踪器真正超越了基于相关滤波器的跟踪算法
229 | 230 | 231 |
232 |
233 |
234 | 235 | ## 参考文献:
236 | * Wu Y, Lim J, Yang M H. Online object tracking: A benchmark [C]// CVPR, 2013.
237 | * Wu Y, Lim J, Yang M H. Object tracking benchmark [J]. TPAMI, 2015.
238 | * Yilmaz A, Javed O, Shah M. Object tracking: A survey [J]. CSUR, 2006.
239 | * Kristan M, Pflugfelder R, Leonardis A, et al. The visual object tracking vot2013 challenge results [C]// ICCV, 2013.
240 | * Kristan M, Pflugfelder R, Leonardis A, et al. The Visual Object Tracking VOT2014 Challenge Results [C]// ECCV, 2014.
241 | * Kristan M, Matas J, Leonardis A, et al. The visual object tracking vot2015 challenge results [C]// ICCV, 2015.
242 | * Kristan M, Ales L, Jiri M, et al. The Visual Object Tracking VOT2016 Challenge Results [C]// ECCV, 2016.
243 | * Vojir T, Noskova J, Matas J. Robust scale-adaptive mean-shift for tracking [J]. Pattern Recognition Letters, 2014.
244 | * Hare S, Golodetz S, Saffari A, et al. Struck: Structured output tracking with kernels [J]. IEEE TPAMI, 2016.
245 | * Kalal Z, Mikolajczyk K, Matas J. Tracking-learning-detection [J]. IEEE TPAMI, 2012.
246 | * Nam H, Han B. Learning multi-domain convolutional neural networks for visual tracking [C]// CVPR, 2016.
247 | * Nam H, Baek M, Han B. Modeling and propagating cnns in a tree structure for visual tracking. arXiv preprint arXiv:1608.07242, 2016.
248 | * Bertinetto L, Valmadre J, Henriques J F, et al. Fully-convolutional siamese networks for object tracking [C]// ECCV, 2016.
249 | * Held D, Thrun S, Savarese S. Learning to track at 100 fps with deep regression networks [C]// ECCV, 2016.
250 | * Bolme D S, Beveridge J R, Draper B A, et al. Visual object tracking using adaptive correlation filters [C]// CVPR, 2010.
251 | * Henriques J F, Caseiro R, Martins P, et al. Exploiting the circulant structure of tracking-by- detection with kernels [C]// ECCV, 2012.
252 | * Henriques J F, Rui C, Martins P, et al. High-Speed Tracking with Kernelized Correlation Filters [J]. IEEE TPAMI, 2015.
253 | * Danelljan M, Shahbaz Khan F, Felsberg M, et al. Adaptive color attributes for real-time visual tracking [C]// CVPR, 2014.
254 | * Li Y, Zhu J. A scale adaptive kernel correlation filter tracker with feature integration [C]// ECCV, 2014.
255 | * Danelljan M, Häger G, Khan F, et al. Accurate scale estimation for robust visual tracking [C]// BMVC, 2014.
256 | * Danelljan M, Hager G, Khan F S, et al. Discriminative Scale Space Tracking [J]. IEEE TPAMI, 2017.
257 | * Danelljan M, Hager G, Shahbaz Khan F, et al. Learning spatially regularized correlation filters for visual tracking [C]// ICCV. 2015.
258 | * Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries [C]// CVPR, 2015.
259 | * Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017.
260 | * Possegger H, Mauthner T, Bischof H. In defense of color-based model-free tracking [C]// CVPR, 2015.
261 | * Bertinetto L, Valmadre J, Golodetz S, et al. Staple: Complementary Learners for Real-Time Tracking [C]// CVPR, 2016.
262 | * Lukežič A, Vojíř T, Čehovin L, et al. Discriminative Correlation Filter with Channel and Spatial Reliability [C]// CVPR, 2017.
263 | * Ma C, Huang J B, Yang X, et al. Hierarchical convolutional features for visual tracking [C]// ICCV, 2015.
264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | --------------------------------------------------------------------------------