为什么基于外观跟踪(而不是分类模型)呢
1.世界上总有无法分类的物体,分类的模型不可能什么都见过
2.我们需要更快更准的跟踪
3.重识别
4.联合基于分类的跟踪场景
基于外观模型的挑战
跟踪标准流程
1.划分正负样本
2. 分类判别并更新模型
所以主要问题就是如何学习F模型——加强鲁棒性、适应性、跟踪的速度
引入DCF(判别式的相关滤波目标跟踪) 在2013-2018占据主要地位,并在无人机领域仍是最流行的方法!
DCF的标准流程
1.生成训练样本集{(xj,yj)} 2.多维度特征表示xj[n]
3.训练一个convolution operation 用来提取特征作为输入,随后得到confidence score 来指示目标
4.训练滤波器时使用最小二乘判别式来最小化损失函数,yj是我们的指定目标的置信度得分,也有一些权重
5.离散傅里叶变换(DFT)后的损失函数
进一步推导出常规方程组
所以DFT的目标是稀疏并对角化这个矩阵方程,因此可以应用高效直接的求解方法,或者更加有效的迭代方法,比如锥形梯度。
马丁团队的工作成果:SRDCF CCOT ECO UPDT
马丁首先提出了一个挑战性任务:跟踪框质量一般。他用ATOM提出了一种解决方案(CVPR2019)
那我们如何预测精准的框架呢——整合目标特定信息
接下来介绍ATOM
提出了一种基于IOUNet(可能听错了)的目标框回归的方法,训练出预测IoU的output,用来衡量框与真实目标的交并比,通过推理我们可以最大化这个值从而推导出精准的边界框
在跟踪中我们还希望从参考坐标中整合目标自身的信息,所以他提出了一个modulation-based(基于调制)的方法,来适应在参考坐标上的IOUNet
他们还重新设计了classification component(分类器),两个卷积层在线学习,于是我们需要再一次的给出一个判别最小二乘目标,现在问题是如何在线优化这个目标——引入一种高效的在线优化算法——通过反向传播的方式实现基于高斯-牛顿和共轭梯度优化,取得了更快的收敛和更高的跟踪性能。整体流程如下:
结果:VOT2018取得了0.434的成绩,帧率大于30FPS
ATOM不算纯正的相关滤波算法,那么相关滤波给予他的启发有:1.算法中利用卷积的判别分类依旧借鉴了相关滤波跟踪的在线学习方式;2.优化方法——灵感来自于CCOT/ECO,借鉴他们用的concial gradient,我们提出了基于Pytorch等框架的泛型梯度计算方法,可以用于不同的模型算法程序设计中。
为什么不用傅里叶变换去优化分类呢
1.小内核没有计算优势,尤其是针对低分辨率情景下的特征空间
2.取舍之下,作者选择不处理边界效应问题,边界问题虽然促使了DCF的大量研究,但是作者不在乎
缺点:没有对整个优化算法的本身进行优化,没有end-to-end learning,引出下一个工作
一般化流程:
1.当前坐标系中获取特征,而且我们希望运用这些特征同边界框一起作为标注的数据,从而得到一个可以用来学习的目标跟踪数据
2.上述数据输入到图中的online learner,它可以输出参数给分类器
3.训练后的分类器应用到下一帧预测(test frame)
因此,这个online learner 应该具有哪些属性呢:鲁棒性、快速,并且我们想将整个系统在数据集上进行训练,反向传播损失的分类得分,所以还需要differentable。
现在流行的架构是孪生网络架构,孪生网络的跟踪流程如下:
1.crop out the target region——裁剪出目标区域。随后提取特征
2.这些特征或者说这些模板会和下一帧的test frame中的特征(模板)进行一个卷积(原文用的convolved)
所以作者得出结论,这个模型肯定是differentiable、并且是快速的
事实上孪生网络的鲁棒性不太好,尤其是在背景中有相似目标的情况下,造成这一现象的原因是我们完整的将背景信息在crop时带进去了。
所以作者提出了全新的架构:DiMP,处理流程如下:
1.不再使用reference frame,而是reference set,参考集合。不再局限于单一的参考图像。
2.提取特征以及边界框,输入到初始化模型之中,这个模型works similarly to the same instructors and only uses the target appearence,只使用目标外观,初始化模型只是为主要的模块提供初始数据的,主要模块就是model optimizer ——模型优化器。
3.model optimizer使用了全部的reference set去完善预测,当然也包括了背景信息。
4.随后模型的输出变成了输入到卷积层的权重,卷积层以分类的方式用来预测下一帧的目标。
损失函数如下:
f是权重,x是training samples,c是标注数据,r是残差函数,r函数用来measures the discrepancy between the predicted and target confidence scores,测量预测和目标置信度得分之间的差异。
为什么优化、收敛的这么快,从而满足实时性的要求呢
一般的优化算法都是简单的梯度下降, 但是我们的目标是受约束的特殊的 constrained and special ,所以我们做的比单纯梯度下降要好。不过我们不想把算法做的太复杂,因为这个公式需要整合到网络层中并且通过它让整个模型变得differentiate。所以我们使用了steepest descent。
我们计算optimal step length in the gradient direction 梯度方向上的最佳步长,并且应用了高斯牛顿quadratic approximation,因此对于这个目标,我们可以通过这个简单的公式derive the optimal step length找到最佳步长。
完整的end-to-end训练流程如下: