Advertisement

STCT: Sequentially Training Convolutional Networks for visual tracking

阅读量:

1、怎么将CNN用在特定的任务中


图1. 将CNN用在特定的任务中

众所周知,在实际应用中使用卷积神经网络(CNN)通常需要大量标注数据(known as labeled data)。然而,在许多具体任务场景下我们往往受限于无法获取像ImageNet这样大规模的标注数据集(large annotated datasets),因此在小规模数据条件下应用卷积神经网络(CNN)确实面临诸多挑战。后来的研究表明,在大样本训练的基础上建立起来的卷积神经网络(CNN)模型表现出良好的泛化能力(good generalization ability),即这些经过充分训练的模型能够在特定任务上展现出不错的效果(excellent performance)。基于这一特性发展而来的研究方向主要是针对小规模数据条件下的卷积神经网络(CNN)优化方法的发展与探索。

如图1所示。我们首先在large-scale dataset上预训练了CNN模型,并利用任务相关的样本对该模型进行了微调(fine-tuning)。值得注意的是,在上图中最左侧部分展示的是经典的CNN架构VGGnet。该模型基于imagenet数据库进行了优化(实际上是基于别人的数据集完成的预训练,并将结果用于当前任务)。

如果我们的训练样本数量足够多,并参考上图右侧部分,则可以用这些样本进一步更新更深的网络结构。在上图右侧部分中不仅更新了全连接层和池化层,并且同时更新了卷积神经网络中的各个层次。

2、将CNN用在visual tracking中

目前主要采用基于CNN的追踪方法有两种:其中一种方法是通过预训练好的CNN提取目标特征,并结合传统追踪技术来进行定位;另一种则是通过已有的Tracking基准数据集对CNN进行微调优化(fine-tune),最终实现准确的追踪效果。

该方法自身存在一定的局限性,在CNN提取出的特征中虽然富含丰富的语义信息但其在空间信息方面却显得不足。相比之下第二种方法因跟踪过程中样本数量过少而受到限制 由于这种限制导致确定的样本通常仅包含初始帧的目标对象 因此通过fine-tune训练出的新模型容易陷入过拟合的问题中

为此针对相关问题 作者提出了一种名为 sequential training method 的方法 将 CNN 中的每个卷积核对应的特征图被视为一个基础学习单元 将其训练过程视为一种集成学习体系 最后通过集成学习方法构建最终的跟踪分类器模型

3、集成学习(ensemble learning)

说到集成学习时可能会让人感觉陌生感,然而adaboost作为一种核心算法,在机器学习领域内已经被广泛认知。它通过迭代训练逐步提升模型性能,并最终实现了比传统方法更好的分类效果。其基本思路是将最终分类器视为各个弱分类器加权求和的结果。即:

其中符号F(x)被定义为集成学习算法的核心组件之一,在此框架下构建统一的预测模型。而符号f(\vec{x};\gamma)则被用来表示单个基分类器的模型结构,在这一过程中需要考虑多个变量之间的相互作用关系。
参数\alpha_m\gamma_m分别衡量了单个基分类器与集成学习过程之间的相关程度以及单个基分类器自身的复杂度参数。
在传统机器学习框架中,损失函数通常用于评估模型预测结果与真实标签之间的差异程度;而在集成学习方法中,则通过定义目标函数Q(\gamma)来优化各基模型之间的协调关系。

集成学习的主要优势在于显著提升了分类器的表达能力(泛化能力)。然而如何选择基分类器这一问题值得深入探讨:当基分类器之间高度相似时这会导致集成分类器缺乏多样性因此在集成学习中我们通常用 \sigma 来度量并表示基分类器之间的相关性:

各基分类器与其最优基分类器间的关联程度较低时,则表明各基分类器之间具有较高的关联度,从而降低了集成学习方法的整体多样性,并相应地削弱了集成方法的整体泛化能力;反之,在各基分类器间关联度较高时,则意味着绝大多数基学习方法均与当前具体的学习问题存在密切关联关系。若 的取值过大或过小,则会对集成学习方法产生不利影响;因此我们需要采取有效措施寻找合适的 值域范围,在这一区间内能够实现最佳平衡点。Friedman and Popescu 在Importance sampled learning ensembles一文中提出了一种sequential sampling方法:该方法重新定义了其损失函数的形式:

这里的 \eta 负责调节已选择的基础分类器对当前分类器的影响程度。
基于前述优化后的基分类器损失表达式,则可确定新设定下的基分类器参数为:

通过这种方案有可能提高基分类器的多样性,并增强分类器的泛化能力

4、用序贯集成学习方法在线训练CNN

基于预训练模型(pre-trained),我们采用了CNN-E(Convolutional Neural Network)架构来进行研究。该预训练过程将输入RGB图像转换为大小为512×7×7的空间特征图X。
接着我们引入了基于在线更新机制(online-updating)设计的新模型架构CNN-A(Convolutional Neural Network for Adaptive)。该架构由两个连续卷积层组成,并采用ReLU函数作为非线性激活单元。值得注意的是,在这种设计下新模型不仅继承了传统CNN的优势而且能够实时更新自身的参数从而适应数据的变化需求。
整个系统的整体框架如上图所示

图2. STCT模型图

其 pre-trained feature map represents the output of VGGnet, consisting of 512 channels and a 7×7 size of the feature map, which is a characteristic feature map with a size of 7×7.

图3. VGGnet结构图

该网络包含两个卷积层,在线更新状态下运行。其中第一卷积层使用5×5大小的滤波器进行计算,在此过程中会产生100×3×3尺寸的特征图输出。随后应用第二个卷积操作(滤波器尺寸为3×3),最终生成其输出特征图仅包含单个通道,并且该通道对应的目标位置信息被有效标记。

所以最后的输出,即卷积输出结果可以表示成如下形式:

在集成学习框架下,作者将其视为由若干基础分类器以加权的方式结合而成。

这表明,在线更新CNN-A相当于各个基分类器都被单独更新。而且通过顺序选择最佳基分类器来构建最终的分类器。

5、怎么训练级联分类器,以及在线更新每个基分类器

图4. STCT实现流程图

  • 1、对每个基分类器进行随机化初始化后,在第一帧的目标图像上应用SGD算法进行参数优化。

  • 2、首先,在所有收集到的基分类器中选择训练误差最小的那个作为基础模型加入到ε集合中;随后将剩下的C₁-1个模型加入到候选集ξ当中。值得注意的是,在集成过程中,默认情况下ε中的模型会被采用。

  • 3、在第t帧之后获取新的训练样本X_t及其对应的标签Y_t后仍继续应用随机梯度下降(SGD)算法以及以下所使用的损失函数来更新分类器的参数:其中核心模型为F(X;ε)其对应的损失函数定义为L_{ε} = L(Y_t, F(X_t; ε))。对于候选集合中的每一个基分类器同样也会各自采用如下的损失函数结合SGD来进行参数优化:即L_{ξ}(Y_t, f(X_t; γ_j)) = L(Y_t, f(X_t; γ_j) + η F(X_T; ε))

  • 4、如果当前训练误差L_{ε}超过我们设定的一个阈值并且候选集不为空时系统将执行以下操作:首先从候选集中筛选出具有最小训练误差的基分类器并将该模型加入到集成集当中随后将其从候选集中移除以避免重复选择

在经过一系列特定的训练流程后,在该网络结构中的每一个CNN通道都经过独立且多样化的损失函数进行优化处理。由此所得的网络架构在多样性方面表现突出,并且泛化能力较强。

6、带有掩膜的卷积层

dropout是一种广泛应用于神经网络中的正则化技术,在全连接层中它通过随机设置部分激活神经元的输出来降低其活性强度。然而该种正则化手段并不适用于卷积层结构,在本研究中我们采用了包含两个卷积层的设计方案因而无法直接应用dropout技术以防止模型过拟合现象的发生。随后研究者又提出了另一种spatial dropout的方法这种新方法通过将某个通道的所有激活置零来实现对卷积层的正则化效果但在实际应用中发现该策略在某些情况下可能会导致模型发散风险的存在

旨在增强模型的泛化能力方面,作者建议在卷积操作之后添加一层二值掩膜机制(mask layer),该掩膜机制的空间维度与卷积操作所处理的空间维度相同。具体而言,在这一机制的设计中,在训练初期将其参数随机初始化,并在其后的在线训练过程中保持不变。

7、跟踪中的具体实现

一、在初始化阶段:

1、采用欧氏距离作为损失函数对基分类器\{f(X_1;\gamma_k) \}_1^100进行选择:

其中 M_1 是一个二维高斯分布模型,在该模型中高斯分布的核心位于目标区域。
基于上述公式推导的结果,在此基础上我们依次计算出每个初始基分类器对应的损失值。
通过比较所有基分类器对应的损失值,在这些候选者中挑选出具有最低损失值的那个。
将所选出来的最优基分类器分离出来并加入到集成集合中。

2、采用hinge loss作为尺度金字塔网络的损失函数,构造SPN network:

其中 S=\{s_l|l=1,2,\dots,n_s\}表示不同尺度,
s^*则指代目标真实尺度,
\{\Gamma(S,s)\}_1^{n_s}则代表CNN-E处理后各尺度对应的特征图。
此处F_S用于衡量各尺度的表现,
R_S则表示模型的正则化程度。

二、在线更新阶段

在第t帧的画面中, 从上一帧的目标中心位置引出并选取一个以上的矩形框区域, 利用CNN-E模型提取该区域的特征图; 同时, 通过以下公式预测该区域的响应热图

确定热图中响应强度最大且其响应值超过置信阈值conf的位置,并将其标记为当前帧的目标框所在的定位点。为了估算当前目标的实际尺寸,请从中心点为中心、两倍于目标尺寸的区域范围内的像素数据出发,并将该区域输入到SPN网络中进行处理。随后通过\hat{s}=argmax_{s_l \in S}F_S(\Gamma(\hat{X}_t,s_l))这一公式计算出最终的目标尺寸参数。

全部评论 (0)

还没有任何评论哟~