本文主要是介绍近几年目标跟踪论文简单分类综述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转载自:https://blog.csdn.net/sinat_31184961/article/details/99993350
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/sinat_31184961/article/details/99993350
Siamese类
- SiamFC(ECCV2016)
- SiamRPN(CVPR2018 Spotlight):SiamFC+RPN
- DaSiamRPN(ECCV2018)
- SiamRPN++(CVPR2019):ResNet+multilevel feature,对每个层的特征都做RPN,再结合,和C-RPN不一样;
- CFNet(CVPR2017):第一篇将Siamese和相关滤波结合
- RASNet(CVPR2018 王强):对Siamese的网络详细分析,并且使用了三个attention来做
- Triplet_tracker(ECCV2018):使用三元组的损失,没有改变输入,只是损失函数上做
- MemTracker(ECCV2018):用了一个空间的attention,使得search区域更加准确,使用LSTM来控制模型更新,但是这个LSTM好像不怎么管用
- SA_Siam(CVPR2018):网络有四个branch,将语义和表观特征结合使用,使用了一个channel attention
- MBMD(VOT2018long-term 1):将Siamese网络作为预测网络,MDNet作为验证网络,然后Siamese使用的是MobileNet的网络结构,MDNet就是原始没有再训练,可以试试只用MobileNet做的效果;
- EAST(ICCV2017):这篇文章提出使用不同的特征处理不同的图片,简单图片使用浅的手工特征,难的图片就使用深度特征,用线下训练的强化学习方式做决策;
- FlowTrack(CVPR2018):利用FlowNet编码光流的信息,然后提出了Spatial-Temporal注意力机制来将光流信息集成到当前帧中;
- SiamMask(CVPR2019):将视频语义分割应用到目标跟踪中来,就是在Siamese网络后面多加了一个segmentation回归分支,然后利用翻卷积来做segmentation的准确定位。因为多任务所以学到的特征泛化性更强;
- C-RPN(CVPR2019):参考了two-stage的物体检测方式,在网络后面使用了三个RPN,后面两个RPN的输入都是上一个RPN的输出,这样网络就可以不用指定的anchor大小,而是自适应的,每个RPN还用了不同层的特征,最后再融合这些层的特征;
- SiamDW(CVPR2019):加了很多Inception来做,就是把网络搞宽了,看不懂网络结构,复现大概也很难,调参会调死;
- SINT++(CVPR2018): 提出了传统的正样本都是从groundtruth附近提取的,所以都很像,所以他先是弄了个正样本生成网络,然后加了一个根据强化学习的正样本生成网络,用SINT的结构,总体论文是看不懂了,不过不是E2E的,但是只需要很少的训练,不过看不懂确实很伤了;
- DenseSiam(VOT获奖):使用非常密集的表示,把各个层的特征都放到一起,但是单看论文好像效果不是很好,但是人家在VOT2018 上好像表现很好,有空可以把代码跑一下;
- SiamVGG(VOT2018):就是把backbone改成了用VGG16,然后在大数据集上训练,效果很好
- TADT(CVPR2019):DAT和HART的结合,不过空间和尺度的attention弄到了channel维度上,用了两个loss来指导attention的学习,效果可以,论文写的很漂亮;
- SPM-Tracker(CVPR2019):用了两个stage,一个用RPN回归出score,另一个通过前一个stage的输出来做proposal的选择,大概是这个意思,做的时候用了多层的特征,时间120FPS,效果很好;
- ATOM(CVPR2019 oral):MD大神的作品,用了线下训练目标估计和线上训练分类来做,也提出了IoUNet的有用性,其实也可以理解为是一个two-stage的过程,也用了多层的特征;
- EDCF(IJCAI2018):也是Siamese的框架只不过是弄了encoder和decoder的结构,有点像分割的那种形式来回溯到原来大小,然后根据响应去做的预测;
- EDCF(IJCAI2018):王强的文章,用了编解码网络,通过反卷积回原始大小,来控制网络学到的特征鲁棒(类似hourglass的思路),同时比较巧妙使用多层特征,不是融合的方式,而且先相应做卷积,再相加(其实也是concate的一种方式),模型更新策略可以;
- SPLT(ICCV2019) : 用了一个SiameseRPN来做初步的bbox的选择,然后弄了一个embedding网络来验证检测出来的proposal是否靠谱,若是不靠谱,就用还是用Siamese的结构来重新定位search region,再用SiameseRPN来跟踪。 是一个长程跟踪的算法,其中三大模块都是分开训练的,分三个模块是长程跟踪中比较经典的做法;
- DiMP(ICCV2019):MD大神的新作,在Atom基础上更加优化的一篇文章,主要提出了一个新的类似合页损失的损失函数,来更加精确定位target,然后把网络的训练弄成端到端的了,没有像Atom一个backbone是固定的。
MDNET类
- MDNet(CVPR2016)
- TCNN(ECCV2016):树型结构的MDNet,不过没有后续工作,浪费空间时间吧;
- RT_MDNet(ECCV2018):使用了RoIAlign来加快网络特征提取,优化损失函数(instance的损失+classify的损失,类内与类间,有点triplet loss的感觉);
- Meta-tracker(ECCV2018):指导模型在跟踪时的初始化过程,元学习应用,还用了一个标签洗牌操作,不知道管不管用;
- DAT(NIPS2018):利用attention,不过只是将attention作为损失函数的一项,每帧更新模型一次,精度高速度慢;
- VITAL(CVPR2018 Spotlight):把GAN引入,通过对抗学习一个Mask,意在提取一些general的特征,用多个Mask其实就是模拟target的变化,还对样本进行reweighting,平衡不同样本的影响,精度高速度慢;
- LSART(CVPR2018 Spotlight):CNN的特征相关滤波相结合使用的,论文太难懂了;
- HART(NIPS2017):利用了多种注意力机制,还对每种注意力机制都弄了损失函数,还使用了LSTM来做,但是最管用的还是多任务损失;
- ANT(AAAI2019):用了多属性来跟踪,属性代表一些遮挡、尺度变化等,每个属性都有一个branch来编码;
- UDT(CVPR2019):使用无监督的方式做,最巧妙的就是通过前向和反向做,来保证tracker的鲁棒性,还提出了三帧训练的形式,使得目标可以适应各种形式。
- StarGAN+MDNet(ICASSP2019): 就是利用StarGAN去生成行人的不同姿态样本,作为艰难的正样本,去对正样本进行扩充,StarGAN和MDNet都是原来就有的框架,作者只是把它们一起用了而已,(其实有点像SiamPRN一样,但是效果很好,而且移植地好)
相关滤波
- KCF(TPAMI2015):鼻祖
- PTAV(ICCV2017):CF + deeplearning
- CREST(ICCV2017Spotlight):将DCF搞成了网络中的一层,有点像SiamFC这种,但是不知道为什么精度比SiamFC高,然后用了残差学习来提精度;
- MHIT:用了很多trick,融合多层特征,每层特征都过一个独立的CF分类器,最后弄了一个自适应的特征权重融合方式,而且提出了需要用到的多层特征最好不要相邻,相邻信息冗余了。使用了卡尔曼滤波做的运动信息编码;
- TRACA(CVPR2018):引入了很多Auto-encoder来自适应编码输入图像,使得网络更加适应当前的样本,做了channel和空间上的数据增强,使得网络更加适应各种变换;
- UPDT:用ECO的框架,但是研究了如何使用高层的深度特征和底层的手工特征,并且研究了如何用深的网络做跟踪;
VGG类?
- DSLT(ECCV2018):提出了一个shrinking loss,有点类似focal loss,但是这篇文章的损失函数只惩罚简单样本,其他样本不改,但是精度比focal loss高,再者就是使用了反卷积做多层特征融合;
- UPDT(ECCV2018):Martin大神的新作,分析了为什么跟踪中较深的网络不管用,并提出了不同的数据增强以及高低层特征融合的方式,值得借鉴把,是一篇比较有指导性的工作。
- DEDT(CVPR2018):看不懂啊,只知道用了一个集成的跟踪器,用多个跟踪器来一起预测结果,训练的时候尽量使得每个分类器的耦合性低,就为了实现这个,他们自己生成耦合性低的样本,来分别训练,然后说是因为每帧都更新,所以结合了时间信息。不过实在太麻烦,还是ANT高明一些。
Attention 类
- RASNet:residual+channel+general
- DAT: 将attention作为一个损失函数的一个项
- MemTracker:Spatial + Channel
- SA_Siam : Channel
- FlowTrack:Spatial + Channel
- HART:Spatial + appearance
- TADT:空间+尺度
- DensSiam:用了self-attention,其实就是何凯明的non-local features的结构
Multilevel feature(感觉只有在层数比较多的网络才会用到)
- SiamRPN++ : conv3+conv4+conv5
- SA_Siam:conv4 + conv5
- C-RPN:conv3+conv4+conv5
- DSLT:用反卷积做,但是只用了两层
- MHIT:用了很多层
- EAST:用强化学习来决定用那层的特征
- UPDT:深度特征+手工特征
- SPM-Tracker:conv2 +conv4
- ATOM
- EDCF:conv2(CACF)+conv5
loss
- VITAL : 就是使用了何凯明的focal loss;
- RT_MDNet:也不算是focal loss,就是在损失函数上不仅计算了类内的距离,也考虑的类间的距离;
- Triple_tracker:三元组损失;
- DAT:正则化的空间attention损失;
- HART:多种attention损失相加;
- DSLT:Shrinking loss
- DaSiamRPN:使得loss离distractor越远越好
- EDCF:多任务损失
- DiMP:类合页损失,使得正负样本之间距离大
多属性,多任务
- SiamMask:用视频语义分割的方法和数据来训练
- ANT:把遮挡、形变当成属性,多属性学习;
- DEDT:用了集成的跟踪器,像Adaboost那样,集成多个分类器来做
多stage
- C-RPN:三个stage
- ANT:一个stage负责编码各种不同的属性,一个stage负责结合这些属性;
- ATOM:一个stage得到bbox,一个stage用来分类;
- SPM-tracker:一个stage得到粗糙的表示,另一个stage来区分distractor
- EDCF:也是低层的结果作为后面层的输入,然后再调整的过程
时间序列
- MEMTracker:LSTM控制;
- FlowTracker:光流信息
无监督
- UDT:无监督学习
GAN
- VITAL:利用GAN来去生成mask,希望mask之后留下来的部分是最discriminate的。
- StarGAN:就是用GAN去做数据增强,但是只对行人做了。
贴一张组会汇报时做的图
</div><link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-e9f16cbbc2.css" rel="stylesheet"></div>
这篇关于近几年目标跟踪论文简单分类综述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!