system: [SYSTEM]

user: 3. 基于相关相似度的在线多示例学习目标跟踪算法 基于离线学习的多示例学习算法是在训练时需要初始化所有的训练数据。而采用在线的学习方式时，训练数据是逐帧输入的，根据动态训练数据建立分类模型，并能依靠最新的数据整改分类模型，同时更新弱分类器，并能够在一定时间限制内去掉已经没有价值的分类信息。而我们通过加入相关相似度的度量，能够提高弱分类器的准确率，具体表现在对正样本重新进行筛选和加权，提高正包内样本的准确率。算法流程如图1所示。 3.1. 在线多示例学习框架 在线多示例学习的主要思想是 [ 1 ] ：结合多示例学习及在线学习来设计框架，从而成功地分类下一帧。在该框架中，更新外观模型是我们算法的重点。我们选取了一组图像块 X γ = { x : ‖ d ( x ) − d t * ‖ < γ } ， γ < s 选取后标记该包为正包，其中 ‖ ⋅ ‖ 表示的是距离， γ 是距离中心点的半径(以像素为单位)， X 表示一个包含图像块的包， x 表示图像块， d ( x ) 表示图像块的位置， d t * 表示 t 时刻目标的位置， s 是跟踪器的搜索半径。对于负包，我们从与之前相同的 γ 与另一个标量 β 形成的环形区域 选取图像块，其中 β 是另一个距离中心点的半径，如图2所示。由于这产生了潜在的样本大集合，我们选取了这些图像块的随机子集，并标记其为负包。 用于训练二元分类器的传统判别式学习算法是利用 { ( x 1 ， y 1 ) ， ⋯ ， ( x n ， y n ) } 作为训练数据集，其中的 x i 是示例(即图像块计算的特征向量)， y i ∈ { 0 ， 1 } 是样本的二进制标签。不同的是，在多示例学习中，训练数据形如 { ( X 1 ， y 1 ) ， ⋯ ， ( X n ， y n ) } ，其中包 X i = { x i 1 ， ⋯ ， x i j ， ⋯ ， x i N i } ， y i 是包标签， x i j 是第 i 个包中第 j 个示例， N i 是第 i 个包的示例个数，n是包的个数。本文中，示例的特征向量采用haar特征。包标签被定义为： y i = max ( y i j ) ，其中 y i j 是第 i 个包中第 j 个示例的标记，它是在训练期间未知的示例标签。换句话说，一个正包至少含一个正示例，但也可能还有负示例。 目前已经提出了许多算法用于解决多示例学习问题 [ 21 ]。在文献 [ 21 ] 中由Viola等人提出的离线学习的MIL Boost算法用于目标检测。MIL Boost算法采用梯度Boosting框架 [ 22 ] 来训练集成分类器MIL，即 最大化包的对数似然函数 L = ∑ i ( log p ( y i | X i ) ) 。 图1. SMILE算法流程 图2. 样本范围选择 注意是在包上定义可能性而不是示例上，因为在训练过程中示例标签是未知的。但我们的目标是训练估计 p ( y | x ) 的示例分类器。因此，我们需要根据其示例概率 p ( y i | x i j ) 来计算包是正包的概率 p ( y i | X i ) 。 3.2. 相关相似度 传统的在线多示例学习算法 [ 1 ] 在更新弱分类器过程中，将正包中的样本都视为正样本，这将导致降低分类器的性能。因为正包中可能还含有负样本。为了提高目标跟踪的鲁棒性和准确性，本文的SMILE算法引入了相关相似度 [ 23 ] 的概念来进一步筛选正包中的样本，并利用相关相似度对示例概率进行加权，从而提高跟踪器的性能。 首先，假设包 X i 中一个示例用图像块 表示，图像块 x i j 是从图像上的目标矩形框抽样得到的，然后再归一化到15 × 15像素的大小，归一化的时候不考虑矩形框的长宽比例。两个图像块 x i j ， x i k 的相似度被定义为： S ( x i j ， x i k ) = 0.5 ( N C C ( x i j ， x i k ) + 1 ) (1) 其中 N C C 为归一化互相关系数，用于归一化待匹配目标之间的相关程度，就是描述所选目标间的相似性。 假设两个图像块 x i j ∈ R m × n ， x i k ∈ R m × n ，那么 N C C = ∑ x i j · x i k ( ∑ x i j · x i j ) × ( ∑ x i k • x i k ) ，其中 · 表示点乘运算。 对于任意给定一个包中示例 x i j ，我们构建一个目标模型，它是一些包中示例的集合 E = { x 11 ， ⋯ ， x 1 N + ， x 01 ， ⋯ ， x 0 N − } ，当前帧为第j帧， x 11 到 x 1 N + 是从第1帧到上一帧跟踪到的目标样本， x 01 到 x on- 是上一帧的负包中的示例。我们定义以下几个量化指标： ① 正样本最近邻相似度，也叫正最近邻相似度， S + ( x i j ， E ) = max x ∈ 1 j E S ( x i j ， x 1 j ) (2) ② 负样本最近邻相似度，也叫负最近邻相似度， S − ( x 11 ， E ) = max x 0 j ∈ E S ( x 11 ， x 0 j ) (3) ③ 相关相似度定义如下： S r ( x 11 ， E ) = S + S + + S − (4) 相关相似度变化范围从0到1，相关相似度 S r 的取值越大表示图像块越有可能是目标区域。 相关相似度 S r 被用于指出一个任意的图像块和目标模型中的部分有多大的相似。给定相关系数 θ ，如果 S r ( x 1 j ， E ) ≥ θ ，那么图像块 x 1 j 被筛选进正包，否则将其从正包中删除。 除此之外，SMILE算法还通过计算正包中的示例和目标的相关相似度对示例概率进行加权来更准确地估计包的概率 p ( y i | X i ) 。本文算法设 i = 1 表示正包， i = 0 表示负包。具体公式如下： p ( y = 1 | X 1 ) = ∑ j = 1 N 1 w 1 j p ( y 1 = 1 | x 1 j ) (5) 不同WMIL算法 [ 4 ] ，我们的SMILE算法使用相关相似度进行加权，权重为 w 1 j = S r ( x 1 j ， E ) ， w 1 j 为正包中每个示例的权重。 而对于负包为负的概率，我们类似文献 [ 4 ] ，具体计算公式如下： p ( y = 0 | X 0 ) = ∑ j = 1 N 0 w ( 1 − p ( y 0 = 1 | x 0 j ) ) (6) 由于所有负示例都距离目标样本较远，因此这里w是一个任意给定的权重值。 类似文献 [ 1 ] ，本文基于boosting思想，即将多个弱分类器集成为最终的强分类器，通过不断迭代提高跟踪算法的性能。具体为，通过最大化包对数似然函数 L = ∑ i ( log p ( y i | X i ) ) 筛选出最优的弱分类器 h k * = arg max L ( H k − 1 + h ) ，其中h为弱分类器， H k − 1 是前 k − 1 次迭代后集成的强分类器。最后将选出的K个最优弱分类器集成为强分类器 H ( x i j ) = ∑ k = 1 K h k ( x i j ) ，从而利用该强分类器找到搜索区域中响应值最大的样本作为跟踪目标。 3.3. 本文算法 SMILE算法的具体算法流程如下： 输入：视频帧号 k，正负包 { X i ， y i } i = 0 1 ，其中 X i = { x i 1 ， x i 2 ， ⋯ ， x i N i } ， y i ∈ { 0 ， 1 } ， i = 1 表示正包， i = 0 表示负包。 初始化：强分类器 H ( · ) = 0 。 1：选取一组图像块 X s = { x : ‖ d ( x ) − d t * ‖ < s } 并计算特征向量。 2：使用SMILE分类器来对 x ∈ X s 估计 p ( y | x ) 。 3：更新当前帧的目标位置 d t * = d ( arg max p ( y | x ) ) 。 4：选取两组正包 X 1 = { x : ‖ d ( x ) − d t * ‖ < γ } 和负包 X 0 = { x : γ < ‖ d ( x ) − d t * ‖ < β } 。 5：将包 X i 中每一个示例进行归一化，任意两个图像块 x i j 、 x i k 的相似度被计算为： S ( x i j ， x i k ) = 0.5 ( N C C ( x i j ， x i k ) + 1 ) 。 6：计算正包中每个示例的正样本最近邻相似度， S + ( x 1 j ， E ) = max x 1 k ∈ E S ( x 1 j ， x 1 k ) ，以及负样本最近邻相似度， S − ( x 1 j ， E ) = max x 0 k ∈ E S ( x 1 j ， x 0 k ) 。 7：计算正包中每个示例的相关相似度 S r ( x 1 j ， E ) = S + S + + S − 。 8：如果 S r ( x 1 j ， E ) ≥ θ ，则图像块 x 1 j 被筛选进新的正包，并计算它的特征向量。 9：利用筛选后的正包、负包中的示例更新弱分类器。 10：计算正包中每个样本的权重 w 1 j = S r ( x 1 j ， E ) 。 11：计算示例概率 P ( y i | x i j ) = σ ( H ( x i j ) ) = 1 1 + e − H ( x i j ) 。 12：根据公式(5)和公式(6)计算加权的包概率。 13：得到 L = ∑ i ( log p ( y i | X i ) ) (包的对数似然函数)，通过对它求最大值得到最优的弱分类器， h k * = arg max L ( H k − 1 + h ) 。 14：重复步骤11~13，直到选出的K个最优的弱分类器依次加入当前强分类器，即 H k ( x i j ) = H k − 1 ( x i j ) + h k * 。 输出：强分类器 H ( x i j ) = ∑ k = 1 K h k ( x i j ) 。