【论文阅读】目标跟踪

文章目录

  • 目标检测
    • 传统检测算法(2012年之前的物体检测算法)
      • 检测窗口的选择
      • 特征的设计
      • 分类器的设计
    • 深度学习(2013以后)
      • R-CNN(穷举法)
      • SPP
      • Fast R-CNN
      • Faster R-CNN
        • RPN
        • 3 RoI pooling
        • 4 Classification
    • Anchor-free
  • 单目标跟踪(通用目标)
    • 基本框架
    • 经典目标跟踪方法(产生式模型)
      • Meanshift 方法
      • 粒子滤波(Particle Filter)
      • Kalman Filter
      • 稀疏编码(Sparse Coding)
    • 检测与跟踪相结合的方法
      • 长效跟踪的TLD(Tracking-Learning-Detection)
      • Struck
      • DSST
    • 基于相关滤波的跟踪算法(MOSSE=>CSK=>KCF/DCF/CN)
      • MOSSE方法
      • CSK方法,2012
      • KCF/DCF
      • CN [paper:Adaptive Color Attributes for Real-Time Visual Tracking]
      • SRDCF(多尺度+边缘效应)
      • DeepSRDCF
    • 基于深度学习的跟踪方法
      • FCN
      • MDNet
      • GOTURN
  • 单目标跟踪(特定目标)
  • 多目标跟踪
    • 概率统计量最大化
      • JPDAF
      • MHT
      • RFS
      • PHD
      • Generalized Labeled Multi-Bernoulli Tracker
    • 基于深度学习的多目标跟踪算法
      • Online Multi-Object Tracking with Dual Matching Attention NetworksOnline Multi-Object Tracking with Dual Matching Attention Networks
      • deepsort
      • 基于Siamese对称网络的多目标跟踪算法
      • 【重要】基于全连接孪生(Siamese-FC)网络的目标跟踪
      • MOTDT
      • MDNet的改进网络——Real-Time MDNet
      • 基于时空域关注模型的多目标跟踪算法
      • 【重要】基于LSTM判别融合表观的多目标跟踪算法

这篇文章本意是为了自己整理使用,觉得还是整理出一些脉络了,所以公开出来。本意为了自用,因此没有及时明确标注文章的来源,侵删。感谢各位大佬的blog指点,我仅仅做了整理的工作。

目标检测

干货 | 物体检测算法全概述:从传统检测方法到深度神经网络框架
检测算法通常包含三个部分,第一个是检测窗口的选择, 第二个是特征的设计,第三个是分类器的设计。
人工设计特征+浅层分类器 => 基于大数据和深度神经网络的End-To-End的物体检测框架
主要难点就是复杂光照情况(过暗、过曝)以及非刚性物体形变(如人体、手势的各种姿态)、低分辨率和模糊图片的检测场景。

传统检测算法(2012年之前的物体检测算法)

2001年,一篇基于Haar+Adaboost的检测方法
纵观2012年之前的物体检测算法,可以归结为三个方面的持续优化:

检测窗口的选择

暴力搜索候选框=>通过缩放一组图片尺寸,得到图像金字塔来进行多尺度搜索
**不足:**计算量很大并且效率不高
人脸具有很强的先验知识:比如人脸肤色YCbCr空间呈现很紧凑的高斯分布,通过肤色检测可以去除很大一部分候选区域。(不足:肤色提取只是用到简单的颜色先验,相似颜色干扰)
**改进:**提高精度衍生出如Selective Search或EdgeBox等proposal提取的方法,基于颜色聚类、边缘聚类的方法来快速把不是所需物体的区域给去除

特征的设计

Haar由于提取速度快,能够表达物体多种边缘变化信息,并且可以利用积分图快速计算
LBP更多的表达物体的纹理信息,对均匀变化的光照有很好的地适应性
HOG通过对物体边缘使用直方图统计来进行编码,特征表达能力更强
不足: 经验驱动,更新周期较长,改进: 不同的特征组合调优,从不同维度描述物体,如ACF检测,组合了20种不同的特征表达。

分类器的设计

传统的分类器包含Adaboost、SVM、Decision Tree等。

  • Adaboost: 一个弱分类器往往判断精度不高,通过Adaboost自适应地挑选分类精度高的弱分类器并将它们加权起来,从而提升检测性能。
  • SVM分类器: SVM通过最大化分类间隔得到分类平面的支持向量,在线性可分的小数据集上有不错的分类精度,另外通过引入核函数将低维映射到高维,从而线性可分,在检测场景被广泛使用。
    比如线性SVM分类器就是一些支持向量,将物体表示为一些特征向量,实际当中学到的分类器就是一些系数向量,这些系数向量和特征向量做一个加权的话可以得到分类分数,对分数进行阈值判断,就可以判断是否是某一类。
  • Decision Tree: 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一种类别。
  • Random Forest 通过对决策树进行Ensemble,组合成随机森林更好的提高分类或者回归精度。(voting)

深度学习(2013以后)

R-CNN(穷举法)

Selective Search等Proposal窗口提取算法,对于给定的图像,不需要再使用一个滑动窗口进行图像扫描,而是采用某种方式“提取”出一些候选窗口,在获得对待检测目标可接受的召回率的前提下,候选窗口的数量可以控制在几千个或者几百个。

SPP

去掉了原始图像上的crop/warp等操作,换成了在卷积特征上的空间金字塔池化层
为什么要引入SPP层呢?其实主要原因是CNN的全连接层要求输入图片是大小一致的,而实际中的输入图片往往大小不一,如果直接缩放到同一尺寸,很可能有的物体会充满整个图片,而有的物体可能只能占到图片的一角。
SPP对整图提取固定维度的特征,首先把图片均分成4份,每份提取相同维度的特征,再把图片均分为16份,以此类推。可以看出,无论图片大小如何,提取出来的维度数据都是一致的,这样就可以统一送至全连接层。

Fast R-CNN

使用Selective Search来进行区域提取,速度依然不够快。
使用一个简化的SPP层 —— RoI(Region of Interesting) Pooling层,其操作与SPP类似,同时它的训练和测试是不再分多步,不再需要额外的硬盘来存储中间层的特征,梯度也能够通过RoI Pooling层直接传播。
Fast R-CNN还使用SVD分解全连接层的参数矩阵,压缩为两个规模小很多的全连接层。

Faster R-CNN

Faster R-CNN则直接利用RPN(Region Proposal Networks)网络来计算候选框。RPN以一张任意大小的图片为输入,输出一批矩形区域,每个区域对应一个目标分数和位置信息。
【论文阅读】目标跟踪_第1张图片
如图1,Faster RCNN其实可以分为4个主要内容:

  • Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。
  • Region Proposal Networks。RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。
  • Roi Pooling。该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。
  • Classification。利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。

RPN

**RPN的本质是 “ 基于滑窗的无类别obejct检测器 ” **
RPN网络结构就介绍到这里,总结起来就是:
生成anchors -> softmax分类器提取positvie anchors -> bbox reg回归positive anchors -> Proposal Layer生成proposals

经典的检测方法生成检测框都非常耗时,如OpenCV adaboost使用滑动窗口+图像金字塔生成检测框;或如R-CNN使用SS(Selective Search)方法生成检测框。而Faster RCNN则抛弃了传统的滑动窗口和SS方法,直接使用RPN生成检测框,这也是Faster R-CNN的巨大优势,能极大提升检测框的生成速度。
【论文阅读】目标跟踪_第2张图片图4 RPN网络结构
上图4展示了RPN网络的具体结构。可以看到RPN网络实际分为2条线,
上面一条通过softmax分类anchors获得positive和negative分类,
下面一条用于计算对于anchors的bounding box regression偏移量,以获得精确的proposal。
而最后的Proposal层则负责综合positive anchors和对应bounding box regression偏移量获取proposals,同时剔除太小和超出边界的proposals。其实整个网络到了Proposal Layer这里,就完成了相当于目标定位的功能。

2.2 anchors
提到RPN网络,就不能不说anchors。所谓anchors,实际上就是一组由rpn/generate_anchors.py生成的矩形。直接运行作者demo中的generate_anchors.py可以得到以下输出:

[[ -84.  -40.   99.   55.]
 [-176.  -88.  191.  103.]
 [-360. -184.  375.  199.]
 [ -56.  -56.   71.   71.]
 [-120. -120.  135.  135.]
 [-248. -248.  263.  263.]
 [ -36.  -80.   51.   95.]
 [ -80. -168.   95.  183.]
 [-168. -344.  183.  359.]]

其中每行的4个值 ( x 1 , x 2 , x 3 , x 4 ) (x_1, x_2, x_3, x_4) (x1,x2,x3,x4) 表矩形左上和右下角点坐标。9个矩形共有3种形状,长宽比为大约为 { 1 : 1 , 1 : 2 , 2 : 1 } \{1:1, 1:2, 2:1\} {1:1,1:2,2:1}三种,如图6。实际上通过anchors就引入了检测中常用到的多尺度方法。
【论文阅读】目标跟踪_第3张图片
其实RPN最终就是在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的positive anchor,哪些是没目标的negative anchor。所以,仅仅是个二分类而已!
【论文阅读】目标跟踪_第4张图片
2.3 softmax判定positive与negative
一副MxN大小的矩阵送入Faster RCNN网络后,到RPN网络变为(M/16)x(N/16),不妨设 W=M/16,H=N/16。在进入reshape与softmax之前,先做了1x1卷积,如图9:
【论文阅读】目标跟踪_第5张图片
2.4 bounding box regression原理
如图9所示绿色框为飞机的Ground Truth(GT),红色为提取的positive anchors,即便红色的框被分类器识别为飞机,但是由于红色的框定位不准,这张图相当于没有正确的检测出飞机。所以我们希望采用一种方法对红色的框进行微调,使得positive anchors和GT更加接近。
【论文阅读】目标跟踪_第6张图片
【论文阅读】目标跟踪_第7张图片
对于训练bouding box regression网络回归分支,输入是cnn feature Φ,监督信号是Anchor与GT的差距 [公式],即训练目标是:输入 Φ的情况下使网络输出与监督信号尽可能接近。那么当bouding box regression工作时,再输入Φ时,回归网络分支的输出就是每个Anchor的平移量和变换尺度 [公式],显然即可用来修正Anchor位置了。

2.5 对proposals进行bounding box regression
【论文阅读】目标跟踪_第8张图片
【论文阅读】目标跟踪_第9张图片
2.6 Proposal Layer
Proposal Layer负责综合所有 [ d x ( A ) , d y ( A ) , d w ( A ) , d h ( A ) ] [d_x (A),d_y(A),d_w(A),d_h(A)] [dx(A),dy(A),dw(A),dh(A)]变换量和positive anchors,计算出精准的proposal,送入后续RoI Pooling Layer。

3 RoI pooling

而RoI Pooling层则负责收集proposal,并计算出proposal feature maps,送入后续网络。从图2中可以看到Rol pooling层有2个输入:

  • 原始的feature maps
  • RPN输出的proposal boxes(大小各不相同)
    3.1 为何需要RoI Pooling
    先来看一个问题:对于传统的CNN(如AlexNet和VGG),当网络训练好后输入的图像尺寸必须是固定值,同时网络输出也是固定大小的vector or matrix。如果输入图像大小不定,这个问题就变得比较麻烦。有2种解决办法:
  • 从图像中crop一部分传入网络
  • 将图像warp成需要的大小后传入网络
    3.2 RoI Pooling原理
    【论文阅读】目标跟踪_第10张图片
    这样处理后,即使大小不同的proposal输出结果都是 p o o l e d w × p o o l e d h pooled_w \times pooled_h pooledw×pooledh固定大小,实现了固定长度输出。

4 Classification

Classification部分利用已经获得的proposal feature maps,通过full connect层与softmax计算每个proposal具体属于那个类别(如人,车,电视等),输出cls_prob概率向量;同时再次利用bounding box regression获得每个proposal的位置偏移量bbox_pred,用于回归更加精确的目标检测框。Classification部分网络结构如图16。
【论文阅读】目标跟踪_第11张图片
5 Faster R-CNN训练
【论文阅读】目标跟踪_第12张图片

Anchor-free

这个问题首先需要回答为什么要有 anchor。在深度学习时代,物体检测问题通常都被建模成对一些候选区域进行分类和回归的问题。
在单阶段检测器中,这些候选区域就是通过滑窗方式产生的 anchor;
在两阶段检测器中,候选区域是 RPN 生成的 proposal,但是 RPN 本身仍然是对滑窗方式产生的 anchor 进行分类和回归。

为什么 anchor-free 能卷土重来
anchor-free 的方法能够在精度上媲美 anchor-based 的方法,最大的功劳我觉得应该归于 FPN,其次归于 Focal Loss。(内心OS:RetinaNet 赛高)。在每个位置只预测一个框的情况下,FPN 的结构对尺度起到了很好的弥补, FocalLoss 则是对中心区域的预测有很大帮助。当然把方法调 work 并不是这么容易的事情,相信有些细节会有很大影响,例如对重叠区域的处理,对回归范围的限制,如何将 target assign 给不同的 FPN level,head 是否 share 参数等等。

anchor-free 和 single anchor
上面提到的 anchor-free 和每个位置有一个正方形 anchor 在形式上可以是等价的,也就是利用 FCN 的结构对 feature map 的每个位置预测一个框(包括位置和类别)。但 anchor-free 仍然是有意义的,我们也可以称之为 anchor-prior-free。另外这两者虽然形式上等价,但是实际操作中还是有区别的。在 anchor-based 的方法中,虽然每个位置可能只有一个 anchor,但预测的对象是基于这个 anchor 来匹配的,而在 anchor-free 的方法中,通常是基于这个点来匹配的。

单目标跟踪(通用目标)

来源:从传统方法到深度学习,目标跟踪方法的发展概述

基本框架

来源:目标跟踪综述
【论文阅读】目标跟踪_第13张图片输入初始化目标框,在下一帧中产生众多候选框(Motion Model),提取这些候选框的特征(Feature Extractor),然后对这些候选框评分(Observation Model),最后在这些评分中找一个得分最高的候选框作为预测的目标(Prediction A),或者对多个预测值进行融合(Ensemble)得到更优的预测目标。

根据如上的框架,我们可以把目标跟踪划分为5项主要的研究内容

  • (1)运动模型:如何产生众多的候选样本。
    运动模型(Motion Model):生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。
    (2)特征提取:利用何种特征表示目标。
    特征提取(Feature Extractor): 鉴别性的特征表示是目标跟踪的关键之一。常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。
    (3)观测模型:如何为众多候选样本进行评分。
    观测模型(Observation Model):大多数的跟踪方法主要集中在这一块的设计上。根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model).
    生成式模型通常寻找与目标模板最相似的候选作为跟踪结果,这一过程可以视为模板匹配。常用的理论方法包括:子空间,稀疏表示,字典学习等。
    判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。
    (4)模型更新:如何更新观测模型使其适应目标的变化。
    模型更新(Model Update): 模型更新主要是更新观测模型,以适应目标表观的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。
    (5)集成方法:如何融合多个决策获得一个更优的决策结果。
    集成方法(Ensemble Method): 集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。

经典目标跟踪方法(产生式模型)

Meanshift 方法

是一种基于概率密度分布的跟踪方法,使目标的搜索一直沿着概率梯度上升的方向,迭代收敛到概率密度分布的局部峰值上。首先 Meanshift 会对目标进行建模,比如利用目标的颜色分布来描述目标,然后计算目标在下一帧图像上的概率分布,从而迭代得到局部最密集的区域。Meanshift 适用于目标的色彩模型和背景差异比较大的情形,早期也用于人脸跟踪。由于 Meanshift 方法的快速计算,它的很多改进方法也一直适用至今。

粒子滤波(Particle Filter)

  • 方法是一种基于粒子分布统计的方法。以跟踪为例,首先对跟踪目标进行建模,并定义一种相似度度量确定粒子与目标的匹配程度。在目标搜索的过程中,它会按照一定的分布(比如均匀分布或高斯分布)撒一些粒子,统计这些粒子的相似度,确定目标可能的位置。在这些位置上,下一帧加入更多新的粒子,确保在更大概率上跟踪上目标。

Kalman Filter

  • 常被用于描述目标的运动模型,它不对目标的特征建模,而是对目标的运动模型进行了建模,常用于估计目标在下一帧的位置。另外,经典的跟踪方法还有基于特征点的光流跟踪,在目标上提取一些特征点,然后在下一帧计算这些特征点的光流匹配点,统计得到目标的位置。在跟踪的过程中,需要不断补充新的特征点,删除置信度不佳的特征点,以此来适应目标在运动中的形状变化。本质上可以认为光流跟踪属于用特征点的集合来表征目标模型的方法。

稀疏编码(Sparse Coding)

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

检测与跟踪相结合的方法

基于鉴别式模型的方法是指利用分类来做跟踪的方法,即把跟踪的目标作为前景,利用在线学习或离线训练的检测器来区分前景目标和背景,从而得到前景目标的位置。

长效跟踪的TLD(Tracking-Learning-Detection)

  • TLD方法的整个框架有三个模块,其中跟踪器(Tracking)负责用经典的方法跟踪目标,论文中采用基于光流的特征点统计方法确定目标在下一帧的跟踪位置,检测器(Detection)负责在一定的范围内检测目标,并且与跟踪结果综合得到最终的输出结果。在确定目标的最佳位置之后,学习模块(Learning)负责对跟踪结果和检测器进行修正,在目标的周围选取更多的正负样本在线更新检测器的模型。
  • 作者利用了多级分类器的方式来提高检测器的检测能力,降低误检,级联了一个在线学习的随机森林分类器和最近邻的分类器。为了平衡整个检测器的稳定性和学习能力,作者提出了一种半监督的学习方法,利用P-N限制条件更新模型,使检测器能够收敛到一个稳定的状态。
  • 从整个框架的设计上看,TLD的工程意义要大于算法本身,作者对每个模块都做了很多细节上的调整,比如利用Backward-Forward来过滤不可靠的光流特征点,对物体的变化做了尺度上的估计,利用P-N样本集更新随机森林分类器等。
    【论文阅读】目标跟踪_第14张图片

Struck

2013利用结构化SVM方法在线学习的一个分类器,

DSST

2014一种改进的基于相关滤波的多尺度跟踪方法

基于相关滤波的跟踪算法(MOSSE=>CSK=>KCF/DCF/CN)

MOSSE方法

  • 从它的发展过程来看,考虑的尺度越来越多,特征信息也更加丰富,当然计算时间也会相应增加,但总体上说,相关滤波系列的跟踪方法在实时性上优势明显,采用哪种改进版本的方法视具体的应用而定。相关滤波的方法也有一些缺陷,比如目标的快速移动,形状变化大导致更多背景被学习进来等都会对CF系列方法造成影响。虽然后续的研究也有一些针对性的改进,比如改进边界效应,改善背景更新策略或提高峰值响应图的置信度等,但普适性还需要进一步研究,特别是对不同的应用针对性地调整。

CSK方法,2012

  • 作者提出了一种基于循环矩阵的核跟踪方法,并且从数学上完美解决了密集采样(Dense Sampling)的问题,利用傅立叶变换快速实现了检测的过程。在训练分类器时,一般认为离目标位置较近的是正样本,而离目标较远的认为是负样本。回顾前面提到的TLD或Struck,他们都会在每一帧中随机地挑选一些块进行训练,学习到的特征是这些随机子窗口的特征,而CSK作者设计了一个密集采样的框架,能够学习到一个区域内所有图像块的特征。
  • 密集采样的过程可以通过作者提出的循环矩阵来实现,并且整个分类器的学习过程可以用快速傅立叶变换转化成频域内的计算,不受SVM或Boost等学习方法的限制。无论是用线性分类还是核分类,整个学习过程十分高效,证明过程完备,易于理解。在论文中作者给出的算法实现只需要十几行代码。利用快速傅立叶变换,CSK方法的跟踪帧率能达到100~400fps,奠定了相关滤波系列方法在实时性应用中的基石。

KCF/DCF

  • MOSSE方法后续提出了基于HOG特征的KCF方法。
    • 这篇文章核心算法同CSK,只是从特征和多尺度以及核变换进行了改进。多通道特征连接,由于卷积在频域是dot-product的求和,所以将不同channels的特征vector连接在一起为一个vector即可。multi-channel特征可以是彩色,也可以时Hog和及其方向的不同channel.
    • 在CSK的基础上解决了如下几个问题
    • 输入为multi-channels(可以是彩色,可以是Hog),并定义了multi-channel特征的连接方法。
      采用不同函数,Gauss核函数,paper叫KCF,采用linear kernel时,paper取名叫DCF,其中DCF由于采用的linear-kernel,所以multi-channel合并时有优势,速度比KCF快,效果差一点点。
      原文链接:https://blog.csdn.net/Ben_Ben_Niao/article/details/51364323

CN [paper:Adaptive Color Attributes for Real-Time Visual Tracking]

在CSK的基础上,将输入变为11个颜色空间

SRDCF(多尺度+边缘效应)

在kcf上解决scale[多尺度搜索]和bounding effect[加入惩罚项]

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

  • 快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。
  • 模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。(举个例子,多年不见的同学,你很可能就认不出了,而经常见面的同学,即使变化很大你也认识,因为常见的同学在你大脑里面的模型在持续更新,而多年不见就是很久不更新)
  • 快速运动主要是边界效应(Boundary Effets)。而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。
    训练阶段,合成样本降低了判别能力。如果不加余弦窗,那么移位样本是长这样的:
    【论文阅读】目标跟踪_第15张图片
    除了那个最原始样本,其他样本都是“合成”的,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),推荐两个主流的解决边界效应的方法,但速度比较慢,并不推荐用于实时场合。
  • 一种方法是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),同时加入空域正则化,惩罚边界区域的滤波器系数,没有闭合解,采用高斯-塞德尔方法迭代优化。

  • 另一种方法是Hamed Kiani提出的基于灰度特征MOSSE的CFLM Correlation Filters with Limited Boundaries和基于HOG特征的BACF,主要思路是采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本的比例,或者说滤波器填充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]// arXiv preprint arXiv:1703.04590, 2017.

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

DeepSRDCF

在SRDCF基础上 用CNN来提取特征[CNN第一层输出作为特征]。后续还有考虑多尺度或颜色特征(Color Name表)的方法以及用深度学习提取的特征结合KCF的方法(比如DeepSRDCF方法)等。

拓展资料:
相关滤波目标追踪二:从Mosse、csk、kcf、ddst单目标跟踪算法的一些总结
有比较详细的公式讲解
【论文阅读】目标跟踪_第16张图片
【论文阅读】目标跟踪_第17张图片

基于深度学习的跟踪方法

FCN

与CNN-SVM提取最后一层的深度特征不同的是,FCN利用了目标的两个卷积层的特征构造了可以选择特征图的网络,这种方法比只利用最后的全连接层的CNN-SVM效果有些许的提升。随后HCF, HDT等方法则更加充分的利用了卷积神经网络各层的卷积特征,这些方法在相关滤波的基础上结合多层次卷积特征进一步的提升了跟踪效果。

MDNet

然而,跟踪任务与分类任务始终是不同的,分类任务关心的是区分类间差异,忽视类内的区别。目标跟踪任务关心的则是区分特定目标与背景,抑制同类目标。两个任务有着本质的区别,因此在分类数据集上预训练的网络可能并不完全适用于目标跟踪任务。于是,Nam设计了一个专门在跟踪视频序列上训练的==多域(Multi-Domain)==卷积神经网络(MDNet)

GOTURN

从网络结构中可以看出,GOTURN 先从输入的图像对中分别提取前一帧和当前帧的卷积特征,再送入三个全连接层,最后得到预测的位置变化。
其中卷积层是通过 ImageNet 预训练得到,并且在跟踪网络训练中固定这部分参数(防止过拟合),学习全连接层的参数。本质上说,GOTURN 也利用了深度学习强大的特征表达能力,但是,它建立了第一个基于深度学习的端到端输出的跟踪框架,而且在 GPU GTX680 上跟踪速度在能达到 100fps。
【论文阅读】目标跟踪_第18张图片

  • C-COT和ECO等。 卷积神经网络提取目标特征然后结合相关滤波。在目标跟踪上,初期的应用方式是把网络学习到的特征,直接应用到相关滤波或Struck的跟踪框架里面,从而得到更好的跟踪结果,比如前面提到的DeepSRDCF方法。本质上卷积输出得到的特征表达,更优于HOG或CN特征,这也是深度学习的优势之一,但同时也带来了计算量的增加。目前很多研究跟踪的框架和方法往往会同时比较两种特征,从而验证跟踪方法或框架的改进提高,一种是传统的手工特征,另一种就是深度网络学习的特征。网络不同层的卷积输出都可以作为跟踪的特征,对于如何有效地利用深度学习的特征,Martin.D也做了大量的工作,提出了一系列相关的方法,比如C-COT和ECO等。
    • 【论文阅读】目标跟踪_第19张图片
  • SiameseFC
  • CFNet。 基于深度学习的跟踪框架目前还在不断发展中,比如牛津大学的Luca Bertinetto提出的端到端的跟踪框架,从SiameseFC到今年的CFNet。虽然相比于相关滤波等传统方法,在性能上还非常慢,但是这种端到端输出可以与其他的任务一起训练,特别是和检测分类网络相结合,在实际应用中有着十分广泛的前景。

单目标跟踪(特定目标)

前面介绍的跟踪方法都是对通用目标的跟踪,没有目标的类别先验。在实际应用中,还有一个重要的跟踪是特定物体的跟踪,比如人脸跟踪、手势跟踪和人体跟踪等。特定物体的跟踪与前面介绍的方法不同,它更多地依赖对物体训练特定的检测器。

多目标跟踪

按照跟踪算法形式化表示和优化框架过程,多目标跟踪可以分为确定性推导的跟踪和概率统计最大化的跟踪算法【论文阅读】目标跟踪_第20张图片

  • 在确定性推导的多目标跟踪框架中,我们把检测和轨迹和匹配看作为二元变量,通过构造一个整体的目标函数,我们求变量的最佳值,使得目标函数最优,从而得到检测和轨迹的最佳匹配。这种整体的目标函数可以构造为二部图匹配的匹配代价,网络流的代价和,或者直接构造为机器学习中的分类问题进行优化计算。
  • 在概率统计最大化的多目标跟踪方法中,检测和轨迹的关系通过概率模型进行形式化,例如基于贝叶斯推导的卡尔曼滤波和粒子滤波,基于构造马尔科夫图模型,通过样本构造学习模型参数,在跟踪过程中计算概率最大化的轨迹结果,而对马尔科夫图模型的一个直接的公式化方法就是构造能量函数,因此能量最小化也是一些多目标跟踪算法常用的方式。

多目标跟踪-JPDAF, MHT 和RFS
多目标跟踪是单目标的复杂形式, 但是问题就变成了如何将多目标问题映射到单目标空间。同时还要考虑如何处理,检测丢失,噪点,初始位置不清和target的增减等问题

概率统计量最大化

基本MTT问题
图中展现了一个典型的MTT问题,一个target没有被雷达检测到(missed detection),两个临近的目标叠加在了一起(unresolved),同时还有噪点(fasle alarm),这些统称为measurment的原始不确定性。
【论文阅读】目标跟踪_第21张图片
target 数目是时变的,同时每个target产生多个随机的measurement。
【论文阅读】目标跟踪_第22张图片
target 排列是无序的
【论文阅读】目标跟踪_第23张图片
方法分类
从处理measurement 和 target 的关系的角度来说明

  1. JPDAF (joint probabilistic data association filter, 联合概率数据互联滤波器),【消除false alarm,减少了误检】
  2. MHT (multiple hypothesis tracking, 多假设跟踪)【解决目标丢失和目标重叠】
  3. RFS (random finite set, 随机有限子集)【解决目标丢失和目标重叠】

JPDAF

JPDAF是单目标的PDAF在多目标问题上的延伸。

联合概率数据互联JPDA是数据关联算法之一,它的基本思想是:对应于观测数据落入跟踪门相交区域的情况,这些观测数据可能来源于多个目标。 JPDA的目的在于计算观测数据与每一个目标之间的关联概率,且认为所有的有效回波都可能源于每个特定目标,只是它们源于不同目标的概率不同。JPDA算法的优点在于它不需要任何关于目标和杂波的先验信息,是在杂波环境中对多目标进行跟踪的较好方法之一。然而当目标和量测数目增多时,JPDA算法的计算量将出现组合爆炸现象,从而造成计算复杂。
原文链接:https://blog.csdn.net/lzcy911music/article/details/81632133
基本假设

  • measurement 可以包含false alarm
  • target数目是已知的
  • 每个物体的初始位置是已知的
  • 每个target 状态方程可以不同
  • measurement 可以多个近似的,但是一个measurement 最多只能代表一个target
  • 一个target 只能至多产生一个measurement
  • target的检测是独立的,并且检测的概率已知
  • target 是高斯的和independent across target(均值和方差可以迭代的)
    基本步骤
  • 设置了一个验证矩阵(validation matrix),他显示了每个测量的所有可能来源。
  • 从这个验证矩阵中,根据规则计算所有可行的联合关联事件
    • 每个测量都有一个源
    • 每个目标的至多有一个测量(或不测量)
  • 这些联合事件可以通过以下假设评估:
    • 目标产生的测量值的分布概率是高斯的
    • 虚假测量均匀随机分布的
    • 虚假测量的数量遵循
      • 泊松先验 - 参数JPDAF。
      • 弥散先验 - 非参数JPDAF
  • 边际(目标的独立测量)关联概率可以从联合关联概率获得,
  • 通过使用这些边际概率,target state 可以被独立(未耦合的)PDA滤波器估计。
    经典数据关联方法(NNDA、PDA、JPDA)
    【论文阅读】目标跟踪_第24张图片【论文阅读】目标跟踪_第25张图片【论文阅读】目标跟踪_第26张图片【论文阅读】目标跟踪_第27张图片
    小结
    因为他要求目标已知,很大方面限制了他的局限性,但是它想法直观,很多方法都还有他的影子,现在很多基于detection的tracking方法,也是通过建立data association去消除false alarm。 code。

MHT

MHT会为每个候选目标建立一个潜在跟踪假设树,然后,计算每一个跟踪的概率,选出最有可能的跟踪组合。因为在计算概率时,整个跟踪假设都会被考虑到,所以MHT理论上适用于高阶信息例如长期的运动外观模型。MHT分为两类HOMHT(hypothesis-oriented MHT)和TOMHT(track-oriented MHT)(其中TOMHT又分tree based 和non-tree based)。注 Hypothesis 是estimated target的轨迹。

多假设跟踪MHT是数据关联另一种算法。它的基本思想是:与JPDA不同的是,MHT算法保留真实目标的所有假设,并让其继续传递,从后续的观测数据中来消除当前扫描周期的不确定性。在理想条件下,MHT是处理数据关联的最优算法它能检测出目标的终结和新目标的生成。但是当杂波密度增大时,计算复杂度成指数增长,在实际应用中,要想实现目标与测量的配对也是比较困难的。
原文链接:https://blog.csdn.net/lzcy911music/article/details/81632133
基本假设
【论文阅读】目标跟踪_第28张图片
基本步骤【论文阅读】目标跟踪_第29张图片
【论文阅读】目标跟踪_第30张图片
小结
随之计算机性能提升,经典MHT算法在标准测试数据集上能与目前一流的方法媲美。比如在MOT2017上排第9。可见性能还是很不错的。 code。

MHT 算法一般包含假设生成、假设组合和枝剪、假设管理等过程, 指派问题发生在假设的组合与枝剪过程, 此时 MHT 需要获取当前测量值所有关联情况的假设, 而将这些假设全部列举出来是不现实的。针对这一点, 指派问题的效率矩阵提供了一种直观表示所有假设的方法, 它依赖于 MHT 中的几条基本假设: 1) 同一个测量只能关联于当前的 1个轨迹, 或成为杂波(虚警), 或成为新轨迹的起点; 2) 每个活动的轨迹在每个周期最多只关联于 1 个测量, 或被判断为漏报; 3) 所有杂波和新轨迹起点间没有关联性。

RFS

RFS就是把多目标的state看成单目标的state,这样就能通过单目标的方法解决问题,他与前两个区别在于它不需要data association。最简单的RFS,是伯努利RFS。我们也可以取RFS的泰勒一阶展开,即PHD(Probability Hypothesis Density)或者intensity function。 PHD的卷积就是估算的target数量

  • generalized labeled multi-Bernoulli filter 和 particle marginal Metropolis-Hasting tracker都考虑了物体的label信息,所以有滤波递归的解析解。
  • PHD,CPHD 和 multi-Bernoulli filter不考虑label信息,所以有近似解析解。
    【论文阅读】目标跟踪_第31张图片

PHD

计算廉价,假设更新和预测的RFS为Possion的。他的closed form形态被称为GM-PHD。对于非线性,还有SMC-PHD。CPHD就还考虑了基数分布,通过高计算复杂来获取高性能,同时假设更新和预测的RFS为cluster 的独立同分布。

Generalized Labeled Multi-Bernoulli Tracker

前面的filter 包括multi-Bernoulli filter 都是不输出轨迹的。而GLMB是输出轨迹的。他的label包含两个部分一个是出生的时间,一个是对应的target。它是Bayes 多目标filter的第一个完全close form解。但是计算量很大和观测成立方增长
【论文阅读】目标跟踪_第32张图片

基于深度学习的多目标跟踪算法

基于深度学习的多目标跟踪算法的主要任务是优化检测之间相似性或距离度量的设计。根据学习特征的不同,基于深度学习的多目标跟踪可以分为基于深度表观特征学习的多目标跟踪,基于深度相似性度量学习的多目标跟踪,以及基于深度高阶特征匹配的多目标跟踪,如图1所示。
【论文阅读】目标跟踪_第33张图片
图1 基于深度学习的多目标跟踪算法
深度表观特征: 利用图像识别任务中学习到的深度特征直接替换现有多目标跟踪算法框架中的表观特征,或者采用深度神经网络学习光流运动特征,计算运动相关性。
深度相似性度量: 学习检测之间的特征相似性,比如设计深度网络计算不同检测的距离函数,相同目标的检测距离小,不同目标的检测距离大,从而构造关于检测距离的代价函数。也可以设计二类分类代价,使相同目标的检测特征匹配类型为1,而不同目标的检测特征匹配类型为0,从而学习并输出(0,1)之间的检测匹配度。
深度高阶特征匹配: 如果考虑已有轨迹与检测之间的匹配或者轨迹之间的匹配,采用深度学习方法可以用于设计并计算轨迹之间的匹配相似度,这种方法可以认为是基于深度学习的高阶特征匹配方法。采用深度学习计算高阶特征匹配可以学习多帧表观特征的高阶匹配相似性,也可以学习运动特征的匹配相关度。

Online Multi-Object Tracking with Dual Matching Attention NetworksOnline Multi-Object Tracking with Dual Matching Attention Networks

ECCV 2018 • Ji Zhu • Hua Yang • Nian Liu • Minyoung Kim • Wenjun Zhang • Ming-Hsuan Yang
jizhu1023/DMAN_MOT
https://paperswithcode.com/paper/online-multi-object-tracking-with-dual

In this paper, we propose an online Multi-Object Tracking (MOT) approach which integrates the merits of single object tracking and data association methods in a unified framework to handle noisy detections and frequent interactions between targets. Specifically, for applying single object tracking in MOT, we introduce a cost-sensitive tracking loss based on the state-of-the-art visual tracker, which encourages the model to focus on hard negative distractors during online learning. For data association, we propose Dual Matching Attention Networks (DMAN) with both spatial and temporal attention mechanisms. The spatial attention module generates dual attention maps which enable the network to focus on the matching patterns of the input image pair, while the temporal attention module adaptively allocates different levels of attention to different samples in the tracklet to suppress noisy observations. Experimental results on the MOT benchmark datasets show that the proposed algorithm performs favorably against both online and offline trackers in terms of identity-preserving metrics.
本文提出了一种在线多目标跟踪(MOT)方法,将单目标跟踪和数据关联方法的优点集成在一个统一的框架中,以处理噪声检测和目标间频繁的交互。具体来说,为了在MOT中应用单目标跟踪,我们引入了一种基于最先进的视觉跟踪器的代价敏感的跟踪损耗,这鼓励了模型在在线学习时关注硬的负干扰。对于数据关联,我们提出了同时具有时空注意机制的双重匹配注意网络(DMAN)。空间注意模块生成双注意图,使网络专注于输入图像对的匹配模式,而时间注意模块自适应地将不同层次的注意分配给轨迹let中的不同样本,以抑制噪声观测。在MOT基准数据集上的实验结果表明,该算法在身份保持方面优于在线和离线跟踪器。

deepsort

代码解读
https://blog.csdn.net/wfei101/article/details/82228448
【论文阅读】目标跟踪_第34张图片
deep_sort代码(此处)处理流程解析:
按视频帧顺序处理,每一帧的处理流程如下:

  • 读取当前帧目标检测框的位置及各检测框图像块的深度特征(此处在处理实际使用时需要自己来提取);
  • 根据置信度对检测框进行过滤,即对置信度不足够高的检测框及特征予以删除;(检测nms过程不是已经删除过置信度不高的框了吗?为什么这里还要删除一次?是因为检测看重的是是不是人,而这个阶段看重的是是什么人吗?)
  • 对检测框进行非最大值抑制,消除一个目标身上多个框的情况;
  • 预测:使用kalman滤波预测目标在当前帧的位置
    ————————————————
    版权声明:本文为CSDN博主「BigCowPeking」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wfei101/article/details/82228448

基于Siamese对称网络的多目标跟踪算法

Siamese对称卷积网络是一种检测匹配度量学习方法,如图2所示。以两个尺寸相同的检测图像块作为输入,输出为这两个图像块是否属于同一个目标的判别。

原始的检测特征包括正则化的LUV图像I1和I2,以及具有x,y方向分量的光流图像O1和O2,把这些图像缩放到121x53,并且叠加到一起构成10个通道的网络输入特征。卷积网络由三个卷积层(C1、C2、C3)、三个全连接层(F4、F5、F6)以及一个2元分类损失层(F7)组成,如图2所示。
【论文阅读】目标跟踪_第35张图片
学习过程采用经典的带有动量的随机梯度反向传播算法。minibatch大小选择为128,学习率初始为0.01。通过50个回合的训练,可以得到较为优化的网络参数。在Siamese网络学习完成之后,作者采用第六层全连接网络的输出作为表观特征,为了融合运动信息,作者又设计了6维运动**上下文特征:尺寸相对变化,位置相对变化,以及速度相对变化。**由于采用孪生的网络结构,使得其能够更好地利用一套参数来对相似的图像进行拟合,达到快速学习跟踪的目的。

【重要】基于全连接孪生(Siamese-FC)网络的目标跟踪

Siamese-FC与之前提到的Siamese CNN都采用了孪生结构
【论文阅读】目标跟踪_第36张图片
图中z代表的是模板图像,算法中使用的是第一帧的groundtruth,x代表的是search region,即在后面的待跟踪帧中的候选框搜索区域,φ代表的是一种特征映射操作,将原始图像映射到特定的特征空间,文中采用的是CNN中的卷积层和pooling层,6×6×128代表z经过φ后得到的特征,是一个128通道6×6大小feature,同理,22×22×128是x经过φ后的特征,最后的*代表卷积操作,让22×22×128的feature被6×6×128的卷积核卷积,得到一个17×17×1的score map,代表着search region中各个位置与模板的相似度值。
算法本身是比较搜索区域与目标模板的相似度,最后得到搜索区域的score map。从原理上来说,**这种方法和相关性滤波的方法很相似。**都是在搜索区域中与目标模板进行逐点匹配,Siamese-FC算法将这种逐点平移匹配计算相似度的方法看成一种卷积操作,然后在卷积结果中找到相似度值最大的点,作为新的目标中心。

MOTDT

这是2018的一篇比较新的文章,说的是对于MOT问题,目前普遍的Tracking by Detection是将不可靠的目标检测结果与现有的跟踪器进行数据关联。而在本文中呢,作者提出:
(1)通过从检测和跟踪的输出中收集候选项来解决这个不可靠的检测问题.让检测和跟踪生成的信息能够在各类场景中达到互补的作用。
(2)为了实时应用大量候选项的最优选择。提出一种新的基于全卷积神经网络的score评分函数,利用这个函数能够共享整张图片的计算。
(2)和deepsort类似,本文也采用了利用大量人员重识别数据集进行训练,得到相应的人员重识别的外观表示,提高追踪器的识别能力

MDNet的改进网络——Real-Time MDNet

首先简单介绍MDNet, MDNet是一个纯深度的目标跟踪方法,训练时首先在每一个视频中根据目标的位置用高斯分布,均匀分布和随机分布结合的方法采样取得ROI框,提取对应图像patch;然后输入网络最后一层(全连接层)后,利用softmax输出目标和背景的概率,然后根据groundtruth计算loss反传,训练时仅最后一层FC层根据不同类的视频而不同,即仅有前面的层共享参数,目的是学习到更鲁棒的参数,检测的时候去掉最后一层,用新的FC层使用第一帧的信息finetune,MDNet的缺点是太慢,FPS~ 1。Real-TimeMDNet提升至FPS~40。

Real-Time MDNet[12]的贡献是:
1、受Mask R-CNN的启发,提出了一种自适应的ROIAlign;
2、对损失函数进行了改进,引入了一个内嵌实例的loss。

1. 自适应的ROIAlign:
如果把MDNet比作tracking版的R-CNN,那么RT-MDNet就可以近似的认为是tracking版的Mask R-CNN。

原始的MDNet像R-CNN一样,是先产生proposal,然后用proposal在原图上抠图提特征,这就会像R-CNN一样在提特征时产生很多冗余的部分,很自然的,可以像Faster那样,先提原图的特征,然后在featuremap上去找RoI,这样可以大大加快速度。但是普通的RoI Pooling会在两次量化的过程中积累很多误差,这些误差再积累到tracking的时序上,最后很可能会让模型漂掉。所以自然的又想到了用RoI Pooling的改进版,RoIAlign。

然而,当RoIAlign中的采样点间隔太大,会损失掉featuremap上一些有用的信息。比如,一个feature map grid上是5×5的点,但是RoIAlign在每个grid上只采2×2共4个点,这必然会导致featuremap上的信息被丢失。所以作者根据feature map grid的size自适应的调整网格里samplepoints的数量,来减少信息的损失。这就是自适应的ROIAlign。

2. 对损失函数的改进:
对Loss的改进如图4所示,引入了内嵌实例的loss,使不同域的目标在特征空间的距离相互更远,这样能学到更有判别力的特征。MDNet仅仅是在每一个域中区分目标和背景,而当目标们有相似的外观时就不能有效判别不同域中的目标,所以作者loss中嵌入了其他视频中的目标来使相互之间更有判别力。

基于时空域关注模型的多目标跟踪算法

除了采用解决目标重识别问题的深度网络架构学习检测匹配特征,还可以根据多目标跟踪场景的特点,设计合适的深度网络模型来学习检测匹配特征。Chu等人对行人多目标跟踪问题中跟踪算法发生漂移进行统计分析,发现不同行人发生交互时,互相遮挡是跟踪算法产生漂移的重要原因。如图5。
【论文阅读】目标跟踪_第37张图片针对这个问题,他们提出了**时空域关注模型(STAM)**来学习遮挡情况,并判别可能出现的干扰目标。如图6所示,空间关注模型用于生成遮挡发生时的特征权重,对候选检测特征加权之后,通过分类器进行选择,得到估计的目标跟踪结果。时间关注模型加权历史样本和当前样本,从而得到加权的损失函数,用于在线更新目标模型。
【论文阅读】目标跟踪_第38张图片
图6 基于时空域关注模型

在这个模型中每个目标独立管理并更新自己的时空域关注模型,并选择候选检测进行跟踪,因此本质上,这种方法是对单目标跟踪算法在多目标跟踪中的扩展。为了区分不同的目标,关键的步骤是如何对遮挡状态进行建模和区分接近的不同目标。

空间注意模型用于对每个时刻的遮挡状态进行分析,空间关注模型如图7所示。主要分为三步。第一步是学习特征可见图(visibility map);第二步是根据特征可见图,计算空间关注图(Spatial Attention);第三步根据空间关注图加权原特征图。对生成的加权特征图进行卷积和全连接网络操作,生成二元分类器判别是否是目标自身。最后用得到分类打分,选择最优的跟踪结果。
【论文阅读】目标跟踪_第39张图片
图7 空间关注模型步骤

【重要】基于LSTM判别融合表观的多目标跟踪算法

[5] A. Sadeghian, A. Alahi, and S. Savarese. “Tracking the untrackable: Learning to track multiple cues with long-term dependencies”, ICCV2017.

前面介绍的几个算法采用的深度网络模型都是基于卷积网络结构,由于目标跟踪是通过历史轨迹信息来判断新的目标状态,因此,设计能够记忆历史信息并根据历史信息来学习匹配相似性的网络结构,也是比较可行的算法框架。Sadeghian等人设计了基于长短期记忆循环网络模型(LSTM)的特征融合算法来学习轨迹历史信息与当前检测之间的匹配相似度。如图8,首先,轨迹目标与检测的匹配需要用到三种特征(表观特征、运动特征、交互特征)(左);然后,采用分层的LSTM模型(中)来实现三种特征的融合;最后,通过相似度的二部图匹配算法实现最终的匹配结果(右)。
【论文阅读】目标跟踪_第40张图片

对于表观特征,首先采用VGG-16卷积网络生成500维的特征,以这个特征作为LSTM的输入计算循环网络的输出,根据与当前时刻检测到的特征匹配的情况来学习分类器,并预训练这个网络,如图9所示。
【论文阅读】目标跟踪_第41张图片
图9 基于CNN模型和LSTM模型的轨迹与检测表观特征匹配架构

对于运动特征,取相对位移为基本输入特征,直接输入LSTM模型计算每个时刻的输出。对于下一时刻的检测,同样计算相对位移,通过全连接网络计算特征,得到500维的特征,并利用二元匹配分类器进行网络的预训练。整个过程如图10所示。
【论文阅读】目标跟踪_第42张图片
图10 基于LSTM模型的轨迹运动特征匹配架构

对于交互特征,取以目标中心位置周围矩形邻域内其他目标所占的相对位置映射图作为LSTM模型的输入特征,计算输出特征。同样通过全连接网络计算500维特征,进行分类训练,如图11所示。
【论文阅读】目标跟踪_第43张图片
图11 基于LSTM模型的目标交互特征匹配架构

当三个特征都计算之后拼接为完整的特征,输入到上层的LSTM网络,对输出的向量进行全连接计算,然后用于匹配分类,匹配正确为1,否则为0。

你可能感兴趣的:(#,目标跟踪(object,tracking))