Tracking by Instance Detection: A Meta-Learning Approach论文详解

跟踪器的整体把握

  1. 之前基本上都是遵循“检测—跟踪”的思路,将检测器的“头部件”与跟踪器相结合,达到良好的跟踪效果。但是,该跟踪器的作者独辟蹊径,认为跟踪器既然使用了检测器的“头部件”能实现良好的跟踪效果,那我何不直接将检测器转换成跟踪器?于是基于这种想法作者创造了该跟踪器。
  2. 直接将检测器转换为跟踪器,可以在保留最需要的“头部件”的前提下,还能保留基本检测器的总体设计。这样,我们就不用再去创建一个新的跟踪框架,也不必去思考跟踪框架是否与“头部件”兼容的问题。但是,存在一个问题:检测器是对于全局的检测,它并不能始终只检测一个物体。那么,现在问题转换为:如何使得检测器只检测一个物体?
  3. 要使检测器只检测一个物体,就必须要告诉检测器想要只检测一个物体,这个过程在论文中称为“域自适应(Domain Adaptation)。如下图所示:

在这里插入图片描述

可以很清楚的看到,当经过域自适应后,检测器可以很轻松的检测到想要跟踪的物体。

  1. 由上述看来,“域自适应”是将检测器转换为跟踪器的重要步骤。值得一提的是,该过程应该发生在跟踪器的初始化阶段,即在第一帧选定跟踪对象后。那么结合上图和具体跟踪过程,“域自适应”的实施前提是检测器必须拥有强大的学习能力。
  2. 在跟踪过程中,要实现“域自适应”有两个阻力:样本少(给予的第一帧样本),时间少(初始化时间不能太长,跟踪追求速度)。换句话说,我们必须在很短的时间、很少的样本的下,实现模型的快速学习,达到“域自适应”的目的。因此检测器必须拥有强大的学习能力。
  3. 如下图所示,

在这里插入图片描述

我们可以清楚的看到MAML在小样本的情况下,只经过3-4次梯度更新,就能快速实现梯度下降,这正是我们所要的!而MAML的目的是训练出优秀的初始化参数。于是,设计该跟踪器的最终思想是:通过MAML训练赋予检测器良好的初始化参数,使其只在一帧信息的情况下,快速学习待跟踪对象的特征,使检测器只检测待跟踪对象,从而实现跟踪。

  1. 跟踪器的构建步骤:
    1. 选择任何经过梯度下降训练的检测器
    2. 使用MAML在大量跟踪序列上训练检测器
    3. 当给出测试序列的初始帧时,通过几步梯度下降来微调检测器。 在该域适应步骤之后,可以获得体面的跟踪器。

离线预训练

  1. 离线预训练的目的是获得检测器良好的初始化参数。
  2. 离线预训练的示意图如下所示:

在这里插入图片描述

  1. 因为可以选择任何经过梯度下降训练的检测器,所以损失函数的形式不固定。下文统一用L(.)表示。

  2. 离线训练中的优化分为两种优化:外层优化和内层优化(以训练一对图像为例)

    1. 内层优化,可以理解为在support set单纯的梯度下降(SGD优化器),上图中用蓝色的线表示,其中“update”代表一次梯度下降。用公式表示为:

    θ k = θ k − 1 − α 1 ∣ D i s ∣ ∑ ( x , y ) ϵ D i s ∇ θ k − 1 L ( h ( x ; θ k − 1 ) , y ) \theta_k=\theta_{k-1}-\alpha\frac{1}{|D_i^s|}\sum_{(x,y)\epsilon D_i^s}\nabla_{\theta_{k-1}}L(h(x;\theta_{k-1}),y) θk=θk1αDis1(x,y)ϵDisθk1L(h(x;θk1),y)

    其中 α \alpha α代表步长, L ( h ( x ; θ k − 1 ) , y ) L(h(x;\theta_{k-1}),y) L(h(x;θk1),y)代表损失。

    1. 外层优化,就是将每次梯度更新后的模型带入target set,然后按照不同的权重将每次梯度的对应的损失相加,取平均,最后进行一次梯度下降(Adam优化器)。用公式表示为(其中 N N N为视频数):

    F ( θ 0 , D i ) = 1 ∣ D i t ∣ ∑ ( x , y ) ϵ D i t ∑ k = 0 K γ k L ( h ( x ; θ k ) , y ) θ ∗ = arg ⁡ min ⁡ θ 0 1 N ∑ i N F ( θ 0 , D i ) F(\theta_0,D_i)=\frac{1}{\mid D_i^t\mid}\sum_{(x,y)\epsilon D_i^t}\sum_{k=0}^K\gamma_kL(h(x;\theta_k),y)\\ \theta^{*}=\arg \min_{\theta_0}\frac{1}{N}\sum_i^NF(\theta_0,D_i) F(θ0,Di)=Dit1(x,y)ϵDitk=0KγkL(h(x;θk),y)θ=argθ0minN1iNF(θ0,Di)

离线训练流程

  1. 首先,在相同或者不同的序列中采样 32 × 10000 32\times10000 32×10000对图像,每32对图像形成一个batch,则一共有10000个batch形成一个epoch。
  2. 按照上图所示,将一对图像输入到训练管中,得到一对图像的 F 1 ( θ 0 , D i ) F_1(\theta_0,D_i) F1(θ0,Di)损失。假设一个视频中采样了k对图像(k<=32),那么这k对图像的平均损失为:

F a v g k = 1 k ∑ i = 1 k F i ( θ 0 , D i ) F_{avg_k}=\frac{1}{k}\sum_{i=1}^k F_i(\theta_0,D_i) Favgk=k1i=1kFi(θ0,Di)

  1. 假设使用了 N N N个视频采样了32对图像,那么我们可以得到这32对图像的平均损失,即一个batch的损失:

F a v g b a t c h = 1 N ∑ i = 1 N F i ( θ 0 , D i ) F_{avg_{batch}}=\frac{1}{N}\sum_{i=1}^NF_i(\theta_0,D_i) Favgbatch=N1i=1NFi(θ0,Di)

  1. 这时对一个batch的损失进行梯度下降,运用的优化器为Adam。也就是论文中的公式:

θ ∗ = arg ⁡ min ⁡ θ 0 1 N ∑ i N F ( θ 0 , D i ) \theta^{*}=\arg \min_{\theta_0}\frac{1}{N}\sum_i^NF(\theta_0,D_i) θ=argθ0minN1iNF(θ0,Di)

  1. 当我们完成了一个batch后,以当前的 θ ∗ \theta^{*} θ为初始参数,再进行训练。
  2. 我们考虑了10000个批次,也就是梯度下降10000次,权重更新10000次,这仅仅完成了一个epoch。
  3. 我们选择了20个epoch,也就是对数据集循环使用20次,在如此巨大的训练量下,我们的初始参数当然会获得强大的学习能力。

在线跟踪过程

在线跟踪的算法图如下所示:

在这里插入图片描述

  1. 前期准备:

    1. 视频序列 ( I i ) i = 1 N (I_i)_{i=1}^N (Ii)i=1N:N帧的视频;
    2. 检测器模型 h ( . ; θ ) h(.;\theta) h(.;θ):第一个是输入参数,第二个是模型参数;
    3. 在第一帧选定的框: B 1 B_1 B1
    4. 在线更新的帧数间隔: u u u
  2. 进行跟踪

    1. 根据选定的框 B 1 B_1 B1,制定图片补丁( 263 × 263 263\times 263 263×263). S 1 < − S R ( I 1 , B 1 ) S_1<-SR(I_1,B_1) S1<SR(I1,B1)

    2. 初始化support set(数据增强). D s < − D^s<- Ds<{ D a t a A u g ( S 1 ) DataAug(S_1) DataAug(S1)}

    3. 经过5次梯度下降,更新模型参数 θ \theta θ,使得检测器适合检测目标物体。(快速学习)。 θ < − G D 5 ( θ , D s ) \theta<-GD_5(\theta,D^s) θ<GD5(θ,Ds)

    4. for循环:取第2帧到最后一帧

      1. 在第 i i i帧中按照第 i − 1 i-1 i1帧框的位置进行截取补丁,之后将补丁输入检测器中,获得M个候选区域的分类置信度和回归偏差坐标。(可以看做检测器是Fast R-CNN,Retina与其相似

      [ B d e t j , c j ] j = 1 M < − h ( S R ( I i , B i − 1 ) ; θ ) [B^j_{det},c_j]_{j=1}^M<-h(SR(I_i,B_{i-1});\theta) [Bdetj,cj]j=1M<h(SR(Ii,Bi1);θ)

      1. 如果M个分类置信度都小于0.1,那么我们将第 i i i帧的跟踪框设为 i − 1 i-1 i1帧的跟踪框
      2. 经过余弦惩罚和形状惩罚后选择分数最大的 c ∗ c^{*} c,并将其对应的回归偏差坐标转换为回归框 B i B_i Bi
      3. 线性插值平滑的将跟踪框的形状过渡,不会让两帧之间跟踪框形状变化过于剧烈。
      4. 更新新的support set。即将第 i i i帧的图片替换第 i − 1 i-1 i1帧图片成为模板图片。
        _i$
      5. 线性插值平滑的将跟踪框的形状过渡,不会让两帧之间跟踪框形状变化过于剧烈。
      6. 更新新的support set。即将第 i i i帧的图片替换第 i − 1 i-1 i1帧图片成为模板图片。
      7. 每隔 u u u帧或检测干扰峰时进行模型参数 θ \theta θ更新
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值