文章目录
- 多目标跟踪
- 1. 基于Tracking-by-detection的MOT(SDE)
- 2. 基于检测和跟踪联合的MOT(JDE)
- 3. MOT三种框架——基于注意力机制的MOT()
- P-N Learing(【CVPR 2010】)
- SiamFC(【ECCV 2016】Fully-Convolutional Siamese Networks for Object Tracking)
- CREST
- 多目标关节检测
- KE
- SIE
- FairMOT(【OJCV 2021】)
- ByteTrack(【CVPR 2022】Multi-Object Tracking by Associating Every Detection Box)
- 参考文献
目标跟踪的位置
如果把计算机视觉分为四类基本问题,目标跟踪可以看作目标检测的一个延申。目前目标检测还有一些未解决的问题,是一个值得研究的方向
早期普遍利用人工设计的特征描述符(如SIFT、SURF)训练若干分类器,并利用Boosting集成模型
目标检测发展历程
按照时间线,发展历程如下:
以2012年的AlexNet为分界,其后深度学习的方法开始大行其道。注意AlexNet本身是用来做分类的,但是也可以用于目标跟踪
一个简单的分类
目标跟踪可以笼统分类为单目标检测(SOT)和多目标检测(MOT)
SOT中近来火热的方法是以Siamese为基础的一系列方法(SiameseFC、SiameseRPN、SiameseRPN++、SiameseMask)
MOT中近来火热的方法有比如SORT、DeepSORT(SORT与DeepSORT的检测与特征提取是分开的,又称为SDE:Separate Detection and Embedding)、JDE(并非某一个模型,而是说检测与特征提取在一起Jointly learns the Detector and Embedding model,但是值得注意的是,JDE只是同时输出了检测框和embedding信息。后面还是要通过卡尔曼滤波和匈牙利算法进行目标的匹配。总的来说,还是分为检测和匹配双阶段)、CentorTrack。其中CentorTrack是anchor-free的
让我们复习一下目标检测的分类法: 按照阶段可以分为一/二阶段,按照是否有anchor可以分为anchor-based与anchor-free
多目标跟踪
多目标检测是比较有用的,目前的研究也已多目标检测为主
1. 基于Tracking-by-detection的MOT(SDE)
这是最自然的想法,先检测出目标,再根据帧序列之间的相关性来进行跟
根据如下五分步骤得到运动轨迹:
(1)给定视频的原始帧;
(2)运行对象检测器以获得对象的边界框;(检测Detection)
(3)对于每个检测到的物体,计算出不同的特征,通常是视觉和运动特征;(FeatureExtraction、MotionPrediction)
(4)之后,相似度计算步骤计算两个对象属于同一目标的概率;(AffinityComputation)
(5)最后,关联步骤为每个对象分配数字ID。(DataAssociation)
代表方法:SORT、DeepSORT
2. 基于检测和跟踪联合的MOT(JDE)
代表方法:JDE、FairMOT、CenterTrack、ChainedTracker等
3. MOT三种框架——基于注意力机制的MOT()
代表方法:TransTrack、TrackFormer等
评价指标与数据集
- Classical metrics: 一些经典指标,现在没人用了
- 06年提出的CLEAR MOT。现在用的最多的就是MOTA。但是这个指标FN、FP的权重占比很大,更多衡量的是检测的质量,而不是跟踪的效果。
- 第三个是16年提出的ID scores。因为都是基于匹配的指标,所以能更好的衡量数据关联的好坏。
数据集:
数据集用的最多的是MOTChallenge,专注于行人追踪的。
KITTI的是针对自动驾驶的数据集,有汽车也有行人,在MOT的论文里用的很少。
还有一些其他比较老的数据集现在都不用了。
15年的都是采集的老的数据集的视频做的修正。
16年的是全新的数据集,相比于15年的行人密度更高、难度更大。特别注意这个DPM检测器,效果非常的差,全是漏检和误检。
17年的视频和16年一模一样,只是提供了三个检测器,相对来说更公平。也是现在论文的主流数据集。
19年的是针对特别拥挤情形的数据集,只有CVPR19比赛时才能提交。
作者:Harlek
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
一些典型方法
P-N Learing(【CVPR 2010】)
//TODO
SiamFC(【ECCV 2016】Fully-Convolutional Siamese Networks for Object Tracking)
SiamFC是一种单目标跟踪方法
基于Siamese网络的目标跟踪算法,始于SiamFC。SiamFC在VOT15上超过了SRDCF,VOT2016,基于ResNet的SiamFC-R第12,基于AlexNet的SiamFC-A第21;VOT2017,公测第22,速度测试的冠军。
SiamFC网络的backbone是SiameseNetwork(孪生网络)
所谓SiameseNetwork,是一种共享权值的网络,是一种结构,而不是某种具体的网络,如Network1与Network2,可以是RNN也可以是CNN:
其中Network1与Network2相同,并且共享权值。其作用一般是用来衡量输入1(Input 1)与输入2(Input 2)的相似度。
另外也有伪孪生网络,两个网络不共享权值甚至可以不同
SiamFC 主要学习相似度函数,用于目标匹配。 也就是说其主要思想是利用孪生网络对相似性的学习来进行目标跟踪
孪生网络分别输入初始帧模板以及当前帧的搜索区域,分别使用相同的全卷积网络提取特征,再用相关操作进行模板匹配,生成响应图。响应图中最大值 的位置即是目标在搜索区域内的相应位置。网络训练时,SiamFC 采用 ImageNet VID 的视频数据,选取视频中相隔不远的两帧输入网络进行相似度函数学习;跟踪时,训练好的网络无需调整,目标模板也无需更新,从而实现实时跟踪。
CREST
典型的端到端(One-Shot方法) https://cxybb.com/article/shenziheng1/80358610
//TODO
多目标关节检测
KE
//TODO
SIE
//TODO
FairMOT(【OJCV 2021】)
//TODO
ByteTrack(【CVPR 2022】Multi-Object Tracking by Associating Every Detection Box)
ByteTrack是目前多目标检测(MOT)的SOTA
//TODO