Learning Multi-Domain Convolutional Neural Networks for Visual Tracking 论文笔记

0 摘要

我们提出了一种基于CNN的视觉跟踪算法。算法从多个标注的videos中,来学习物体的共享的表示,协助进行跟踪。
网络的结构:shared layers + multiple branches of domain-specific layers
训练的时候,利用一些video来共同训练一个shared layers,每个video看做是一个单独的 domain,单独训练一个domain-specific的layer。
测试的时候(当有新的video的时候),利用训练好的shared layers + 新的二分类层构建新的网络。这个二分类层是online更新的,用来判定一些candidate windows (随机的从上一帧target附近采样出来的) 是否为目标。
所提出的算法在现有的跟踪基准中表现出优异的性能。

1 介绍

最近,卷积神经网络(CNN)被用于各种计算机视觉任务,如图像分类,语义分割,物体检测等等。CNNs取得的巨大成功主要归因于其在可视化数据的出色表现。然而,视觉跟踪受这些流行趋势的影响较小,因为很难为视频处理应用收集大量训练数据,而且专门用于视觉跟踪的训练算法尚不可用,基于低级手工提取特征的方法在实践中效果很好。最近的几种跟踪算法通过迁移在大规模分类数据集(如ImageNet)上预训练的CNNs来解决数据不足问题。虽然这些方法可能足以获得一般特征表示,但由于分类和跟踪问题之间的基本不一致性,即预测对象类标签与定位任意类的目标,跟踪有效性受到一些限制。

为了充分利用CNN在视觉跟踪中的表现能力,最好对大规模的视觉跟踪数据进行训练,这些数据涵盖了目标和背景组合的各种变化。然而,基于具有不同特性的视频序列,来学习统一表示是真正具有挑战性的。注意到,单个序列涉及不同类型的目标,其类别标签,移动模式和外观不同,并且跟踪算法在每一个特定序列上的挑战也不同,包括遮挡,变形,照明条件改变,运动模糊等。训练 CNNs 也是非常困难的,因为相同类型的对象一个视频序列中可以被认为是目标,在另一个视频序列中可以被认为是背景。由于这些视频序列之间的差异和不一致性,我们认为基于标准分类任务的普通学习方法是不恰当的,应该采用另一种捕获和序列无关信息的方法来提供更好地表示。

基于此事实,我们提出了一种称为多领域网络(MDNet)的新型CNN体系结构,从多个标注的视频序列中,来学习物体的共享的表示,协助进行跟踪,其中每一个视频看做是一个单独的 domain。所提出的网络具有单独的分支,即特定领域的二分类层。它和前一层共享特征,这些特征是从所有视频序列中提取到的。MDNet 上的每一个 domain 都是单独训练的,并且每次迭代都更新共享层。 利用该策略,我们从 domain-specific 得到独立于 domain 的信息,学习普遍的特征表示用来跟踪。另一个有意思的方面是,我们的 CNN 是非常“浅”的,只有 3层 Conv 和 2层 fc。

我们还提出了一个基于MDNet的在线跟踪框架。 当给出一个测试视频序列时,所有在训练阶段使用的二分类层的分支被删除,然后构造一个新的单分支来计算测试序列中的目标分数。 然后在跟踪过程中对共享层内的新分类层和全连接层进行微调,以适应新的领域。 在线更新是为了模拟目标的长期和短期外观变化以分别提高鲁棒性和适应性,在进行学习的过程中,采用了 hard negative mining techique。

文章主要的贡献可以列为如下三点:
1. 我们提出了一个基于CNN的 multi-domain 的学习框架,从 domain-specific 中分离出 domain-independent 的信息,来得到共享的表示。
2. 我们的框架成功的应用于视觉跟踪,multi-domain预训练的CNN在新的视频序列中online的进行更新适应学习特定领域的信息。
3. 在两个公共数据集 Object Tracking Benchmark 和 VOT2014上面得到了充分的验证,精度达到 90+%。

这个方法能够达到 state-of-art 的效果。我认为之所以能取得这么好的原因是因为:
- Pretrained CNN 特征具有很好的区分特性(Naiyan Wang 在他的iccv15的 论文中指出,tracking中最重要的就是特征的表达能力,好的特征甚至配一个很一般的分类器都能达到很好的效果)
- Online fine-tuning 能够解决target的形变、遮挡、光照变化等等问题,可以使tracking更加robust
- Hard minibatch Mining 的使用,使得网络的训练更加成功,特征更加优秀

2 相关工作

2.1 视觉跟踪算法

视觉跟踪是计算机视觉中的基本问题之一,并且已经研究了数十年。大多数跟踪算法都属于生成式算法或判别式算法。 生成式算法使用生成模型描述目标外观,并搜索最适合模型的目标区域。现已经提出了多种生成目标外观建模算法,包括稀疏表示,密度估计和增量子空间学习。相反,判别式算法的目的是建立一个模型能够从背景中找出目标物体。 这些跟踪算法通常基于多实例学习,P-N学习,在线增强,结构化输出SVM 等学习分类器。

近年来,由于计算效率高和算法性能好,相关滤波器在视觉跟踪领域受到关注。Bolme等人文献[2]提出了一种快速相关跟踪器,其最小输出和平方误差(MOSSE)滤波器,以每秒数百帧的速度运行。Henriques等人[17]使用循环矩阵制定核化相关滤波器(KCF),并有效地将多通道特征合并到傅立叶域中。随后研究了几种KCF跟踪器的变体以改善跟踪性能。例如,DSST [5]学习单独的过滤器进行翻译和缩放,MUSTer [21]使用受心理记忆模型启发的短期和长期记忆库。这些方法在受限环境中能取得令人满意的结果,但它们具有固有的局限性,即它们是基于手工提取的特征,这些特征在光照变化,遮挡,变形等动态情况下容易变得不稳定。

2.2 CNN

CNN在计算机视觉应用中已经展示出其杰出的性能。 Krizhevsky通过训练具有大规模数据集和高效GPU实现的深度CNN,在图像分类方面带来了显着的性能改进。 RCNN通过对大型辅助数据集进行预训练并对目标数据集进行微调,将CNN应用于训练数据稀缺的物体检测任务。

尽管CNN取得了巨大的成功,但迄今为止仅提出了有限数量的使用CNN的跟踪算法。基于CNN的早期跟踪算法只能处理预定义的目标对象类,例如人类,因为CNN是离线训练的。尽管[29]提出了一种基于CNN的在线学习方法,但缺乏训练深度网络的训练数据,与基于手工特征的方法相比,其准确性并不是特别好。最近的一些方法[44,20]通过迁移在大规模分类数据集(如ImageNet)上预训练的CNNs,但由于分类和跟踪任务之间的根本区别,特征表示可能不是非常有效。与现有方法相反,我们的算法利用大规模视觉跟踪数据来预训练CNN并获得有效的特征表示。

2.3 多领域学习

我们的深度CNN预训练方法属于多领域学习,它指的是一种学习方法,它的训练数据来源于多个领域,通过整合领域信息的学习过程。 多领域学习在自然语言处理中很流行(例如,多产品的情感分类和多用户的垃圾邮件过滤),并且已经提出了各种方法。 在计算机视觉中,只有少数领域适应多领域学习。

3 MDNet

此部分介绍CNN结构以及多领域学习方法。多领域学习方法将获得基于视觉跟踪的领域无关的特征表示。

3.1 网络结构

这里写图片描述
网络接收107×107 RGB输入,并具有五个隐藏层,包括三个卷积层(conv1-3)和两个全连接层(fc4-5)。输入大小107的设置是为了能在conv3中得到3 × 3大小的特征图,107 = 75(感受野)+2 × 16(步长)。另外,在最后的全连接层( f c 6 1 f c 6 k )后,有k个分支。这些分支对应k个领域(k个不同训练视频序列)。每次训练的时候只有对应该视频的fc6被使用,前面的层都是共享的。

卷积层与VGG-M网络的对应部分相同,除了特征图大小由我们的输入大小调整。 接下来的两个全连接的层具有512个输出单元,并且与ReLU和dropout结合。 每个K分支包含具softmax交叉熵损失的二分类层,二分类层负责区分每个领域中的目标和背景。 我们将 f c 6 1 f c 6 k 称为multiple branches of domain-specific layers,并将所有前面的层称为shared layers。

我们的网络架构远远小于典型识别任务中常用的网络架构,如AlexNet和VGG-Nets。由于以下原因,这种简单的架构更适合视觉追踪。首先,视觉追踪旨在区分目标和背景两个类别,这需要比一般视觉识别问题(例如具有1000个类别的ImageNet分类)少得多的模型复杂度。其次,深度CNN对于精确目标定位的效果较差,因为随着网络的深入,空间信息往往会被稀释。第三,由于视觉跟踪中的目标通常很小,因此希望缩小输入大小,这自然会降低网络的深度。最后,一个较小的网络在视觉追踪问题上明显更有效率,训练和测试是在线进行的。当我们测试更大的网络时,算法不太准确,并且变得更慢。

3.2 学习算法

我们的学习算法的目标是训练一个多领域的CNN,能够在任意领域中辨析目标和背景。这是不直观的,因为来自不同领域的训练数据具有不同的目标和背景的定义。但是,这其中仍然存在着一些共同的特性,这个网络的目的就是要让shared layers学到不同domain共同的特性(对照明变化的鲁棒性,运动模糊,尺度变化等)。为了提取出满足上述属性的特征,我们通过多领域的学习框架,从 特定领域的信息中分离出领域独立的信息。

我们的CNN通过随机梯度下降(SGD)方法进行训练,每一次迭代中只涉及一个特定domain。 在第k次迭代中,mini-batch中只包含来自第(k mod K)个video的样本,K个domain-specific layers也只激活第(k mod K)个分支。 一直重复,直到网络收敛或达到预定义的迭代次数。 通过这个学习过程,跟特定领域无关的信息就被学习到并保存在共享层中,这些信息是非常有用的泛化特征表示。

https://blog.csdn.net/jacke121/article/details/56839979的观点:
为了学到不同视频中目标的共性,采用Domain-specific的训练方式:假设用K个视频来做训练,一共做N次循环。每一个mini-batch的构成是从某一视频中随机采8帧图片,在这8帧图片上随机采32个正样本和96个负样本,即每个mini-batch由某一个视频的128个框来构成。在每一次循环中,会做K次迭代,依次用K个视频的mini-batch来做训练,重复进行N次循环。用SGD进行训练,每个视频会对应自己的fc6层。通过这样的训练来学得各个视频中目标的共性。

4 用MDNet来做跟踪

test阶段是如何操作的呢?
-保留前面的所有shared layers
-移除domain-specific layers
-取而代之的是一个新的初始化的domain-specific layer
当来了一个新的test序列,我们就online地对fc4~fc6做一个fine-tuning,具体做法介绍如下。

4.1 跟踪控制和网络更新

tracking 中有两个方面的事情比较重要:鲁棒性 和 自适应性。为了同时兼顾这两方面,作者使用了两种策略:long-term 和 short-term 进行模型更新:
-long-term update: 定期地,使用历史的100个样本(超过100个抛弃最早的),固定时间间隔做一次网络的更新(程序中设置为每8帧更新一次);
-short-term update: 当检测到可能有跟踪失败的情况时(预测目标的positive score 小于 0.5),使用历史的20个样本(超过20个抛弃最早的)进行更新。
然而不管是哪种策略,都使用short-term内检测到的负样本,因为旧的负样本对于当前帧通常是多余的、不相关的。
为了预测每一帧中目标的状态,在上一帧目标的位置附近sample出 N个候选目标,用网络模型对这N个候选目标进行估计,取得分最高的作为最优目标状态。

4.2 Hard Minibatch Mining

通常在一些 tracking-by-detection 的方法中,获取的negative样本都是冗余无效的,只有一小部分负样本对分类器的训练比较有效。 一个非常有效的解决方法就是采用 hard negative mining 的方法。
作者把hard negative mining 的过程融入到minibatch 选择阶段。在训练阶段的每一次迭代中,一个mini-batch包含n个正样本和p个困难负样本。 如何选择困难负样本? 用模型测试 M(M >> p)个负样本,排序之后取top p个最困难负样本。
随着学习的进行和网络变得更加区分,minbatch中的分类变得更具挑战性,如图所示。此方法检查预定义数量的样本,并有效识别关键负面示例,而无需像hard negative mining技术那样明确运行检测器来提取负样本。
这里写图片描述

4.3 Bounding Box Regression

由于基于CNN的特征的高级抽象以及我们的数据增强策略,即:从目标周围提取多个正样本,导致有时候本文的方法并不能紧紧地框住目标区域。所以,此处采用了 bounding box regression technique,这个广泛的应用于 Object detection,来改善定位的准确度。给定测试视频的第一帧,我们训练一个简单地线性回归模型来预测目标物体的位置,在接下来的序列中,用这个模型来调整 (分数>0.5的) bounding box 的位置。regression 只在第一帧的时候使用conv3特征进行训练,训练比较耗时; regression 模型所采用的方法和参数都是跟 RCNN 中使用的是一样的。

4.4 实现细节

整体算法如下图。第 j 层的CNN卷积权重记做为 w j ,其中, w 1 : 5 是由 multi-domain learning 预训练而来, w 6 是随机初始化的。在跟踪的时候,全连接层的权重 w 4 : 6 会在线更新,卷积层的权重 w 1 : 3 是固定的。 τ s = 20 , τ l = 100
这里写图片描述

Target candidate generation

每次新来一帧图片,以上一帧的目标位置为中心,用多维高斯分布(宽,高,尺度三个维度)的形式进行采样256个candidates,将他们大小统一为107x107后,分别作为网络的输入进行计算。
网络的输出是一个二维的向量,分别表示输入的bounding box对应目标和背景的概率。目标最终是确定为目标得分概率最高的那个bounding box。

Training data

对于离线的 multi-domain 学习,作者在每一帧中采样了50个正样本,200个负样本,采样时根据IoU(>=0.7 或者 <=0.5 )来决定样本正负。对于在线的学习。选择50个正样本(IoU>=0.7),200个负样本(IoU<=0.3)

Network Training

因为有K个分支,所以需要100K次迭代来train模型。
卷积层的learning rate:0.0001;
全连接层的learning rate:0.001;
在测试阶段,第一帧训练的时候,迭代30次来训练fc层:
fc4-5的learning rate:0.0001
fc6的learning rate:0.001
为了online update 时候能够有快速的适应性,作者每次使用10次迭代去更新网络,并且使用的learning rate 是第一帧训练的3倍;
Hard Minibatch Mining 时候,每个mini-batch包含32个正样本,96个负样本(从1024个负样本中选出)

5 结论

总结一下MDNet效果好的原因:
用了CNN特征,并且是专门为了tracking设计的网络,用tracking的数据集做了训练;
有做在线的微调fine-tune,这一点虽然使得速度慢,但是对结果很重要;
Candidates的采样同时也考虑到了尺度,使得对尺度变化的视频也相对鲁棒;
Hard negative mining和bounding box regression这两个策略的使用,使得结果更加精确;

猜你喜欢

转载自blog.csdn.net/weixin_37904412/article/details/80001374