ECO: Efficient Convolution Operators for Tracking 论文阅读

这篇论文是 visual track 领域大牛 Martin Danelljan 继 C-COT 之后的又一个优秀作品,值得一读。

论文地址:http://openaccess.thecvf.com/content_cvpr_2017/papers/Danelljan_ECO_Efficient_Convolution_CVPR_2017_paper.pdf

Abstract

近年来,基于 Discriminative Correlation Filter(DCF) 的方法极大地提升了目标跟踪领域 state-of-the-art 的结果。但是,随着追踪性能的提升,它们的速度和实时性在不断地下降。而且,模型变得越来越复杂,参数越来越多,导致了严重的过拟合。这篇论文要解决的就是计算复杂度过高和过拟合的问题,希望既能提升速度,也能提升性能。

作者再次研究了DCF,并介绍了:

  • 因式分解的卷积算子(factorized convolution operator),极大地降低模型的参数个数;
  • 一个紧凑的生成模型,满足训练样本分布,极大地降低内存和时间复杂度,但能提供更好的样本多样性;
  • 一个模型更新策略,能提升鲁棒性,降低复杂度。

作者在四个 benchmarks 上进行了充分的实验,VOT2016, UAV123, OTB-2015, Template-Color。当我们使用计算成本昂贵的深度特征时,与 VOT2016 挑战赛中的顶尖方法比较,本文的跟踪器能提供加速20倍,在 Expected Average Overlap 上获得了 13% 的提升。而且,跟踪器的另一个变体的速度很快,它使用人工选择的特征,利用单个 60Hz 的 CPU,在 OTB-2015 上能获得 65.0% 的AUC。

1. Introduction

视觉追踪是计算机视觉领域最基本的任务。只给定目标的初始状态,在一系列的图片中估计目标的轨迹。在众多的实时视觉应用中,online 视觉追踪扮演着重要的角色,如智能监控系统,自动驾驶,交通管控,人机接口等。在实时的视觉系统中,完美的跟踪器应该是精确的,鲁棒的,尽管有着各种计算上的限制。

近些年,基于 DCF 的方法不断地在提升追踪 benchmarks 上的准确率和鲁棒性。基于 DCF 的方法之所以能带来性能的提升,主要是使用了多维特征,鲁棒的比例预估(scale estimation),非线性核,long-term memory components, 高效的学习模型,以及降低边界的影响。但是,它们带来了准确率,却牺牲了追踪速度。例如,MOSSE tracker 比排名最高的 DCF tracker — (C-COT) 要快1000倍,但是只能获得一半的准确率。

DCF 的性能提升主要是因为特征强大,学习模型高效。这导致了模型很大,需要上千个训练参数,这么复杂的模型也有可能造成过拟合。

1.1 Motivation

作者在 DCF 跟踪器中,找到了3个造成计算复杂度增加和过拟合的关键因素:

  • 模型大小: 加入了高维度特征导致模型参数个数的急剧上升,经常会超过输入图片的维度。例如在训练过程中, C-COT 会持续更新约80万个参数。这么高维度的参数空间很容易导致过拟合。而且,它会带来计算复杂度上升,降低追踪速度。

  • 训练集大小: 因为依赖于迭代优化算法,State of art 的 DCF 方法都需要存储一个很大的训练样本集。但是实际中,内存资源是有限的,尤其是使用高维度特征时。常见手法是丢弃时间久的样本,以保持合理的内存占用。但是,这会造成模型对最近出现的变化过拟合,导致模型漂移 (model drift,如图一)。而且,大训练集合会增加计算成本。

  • 模型更新: 大多数 DCF 方法都使用一个连续的学习方式,在每一帧都需要更新模型。但是,最近的工作显示,Siamese 网络不需要更新模型,也能表现出优异的效果。作者认为,DCF中连续更新模型的策略对突然的变化,如比例变动, 变形, 平面外的旋转都非常敏感和过度反应。这导致了追踪速度的下降,以及鲁棒性的下降。

1.2 Contributions

针对以上 DCF 跟踪器存在的问题,作者提出了一个新的方法。首先,提出了因式分解卷积算子(factorized convolution operator),降低 DCF 模型中参数个数。第二个贡献,提出了一个简洁的样本空间内的生成模型,降低训练样本数量。最后,介绍了一个高效的模型更新策略,同时改进追踪速度和鲁棒性

实验表明与基线网络比较,本文方法能降低 80% 的模型参数个数,90% 的训练样本,以及 80% 的优化迭代次数。作者进一步提出了一个快速版本的跟踪器,在 CPU 上速度能达到 60 FPS,可以用于计算资源受限的平台。

2. Baseline Approach: C-COT

作者使用Continuous Convolution Operator Tracker (C-COT) 作为基线模型。C-COT 模型在 VOT2016 上获得了 state of art 的成绩。与标准的 DCF 不同,Danelljan 将滤波器的学习问题放置于一个连续的空间域内。这有两个好处:

  • 可以将不同分辨率的特征图自然地整合起来,在连续域内进行卷积操作;它可以灵活地,独立地选取每个视觉特征 cell 大小 (resolution),而不需要显式地再采样。
  • 目标的预测得分通过连续函数直接获取,能够精准地定位子网格。

作者简单地描述了下 C-COT 的构成。C-COT 基于一个包含 M M 个训练样本的集合 { x j } 1 M χ \{x_j\}^M_1 \subset \chi ,学习卷积滤波器。与标准 DCF 不同,每个特征层 x j d R N d x_j^d \in \mathbb{R}^{N_d} 都有个单独的分辨率 N d N_d 。通过引入一个插值模型,特征图被转移到一个连续空间域 t [ 0 , T ] t\in [0,T] ,这个插值模型 J d J_d 如下:

J d { x d } ( t ) = n = 0 N d 1 x d [ n ] b d ( t T N d n ) J_d \{x^d\}(t) = \sum_{n=0}^{N_d - 1} x^d [n]b_d (t-\frac{T}{N_d} n)

d d 是通道, b d b_d 是插值核,其周期是 T > 0 T>0 J d { x d } J_d \{x^d\} 是插入的特征层,它是一个连续的 T T-周期 函数。用 J { x } J\{x\} 表示整个插入的特征图, J { x } ( t ) R D . J\{x\}(t)\in \mathbb{R}^D.

在 C-COT中,训练一个连续的 T T-周期 多通道卷积滤波器 f = ( f 1 ,   , f D ) f=(f^1,\cdots,f^D) 来预测检测结果的得分 S f { x } ( t ) S_f\{x\}(t)

S f { x } = f J { x } = d = 1 D f d J d { x d } ( 2 ) S_f\{x\} = f \ast J\{x\} = \sum_{d=1}^D f^d \ast J_d\{x^d\} \quad \quad \quad (2)

得分定义于特征图 ( x χ x\in \chi ) 上对应的图片区域 t [ 0 , T ] t\in[0,T] 。在 (2) 中,单通道 T T-周期 函数的卷积定义如下:

f g ( t ) = 1 T 0 T f ( t τ ) g ( τ ) d τ f\cdot g(t) = \frac{1}{T} \int_0^T f(t-\tau)g(\tau) {\rm d}\tau

多通道卷积 f J { x } f\cdot J\{x\} 通过将所有通道的结果加起来得到,如 (2) 中定义。通过最小化下方目标函数来学习滤波器:
E ( f ) = j = 1 M α j S f { x j } y j L 2 2 + d = 1 D ω f d L 2 2 ( 3 ) E(f) = \sum_{j=1}^M \alpha_j ||S_f\{x_j\} - y_j||^2_{L^2} + \sum_{d=1}^D ||\omega f^d||^2_{L^2} \quad \quad \quad (3)

y j y_j x j x_j 样本的标注好的检测得分。第一项 — 数据项由加权了的分类误差构成,由 L 2 n o r m L^2-norm 表示, α j 0 \alpha_j\geq 0 是样本 x j x_j 的权重,
g L 2 2 = 1 T 0 T g ( t ) 2 d t ||g||^2_{L^2} = \frac{1}{T} \int_0^T |g(t)|^2 {\rm d}t

正则项 — 第二项加入了空间惩罚 ω \omega 来弥补周期假设的缺陷。

与之前的 DCF 方法一样,通过改成傅里叶,我们能得到了一个更简单的优化问题:

E ( f ) = j = 1 M α j S f { x j } ^ y ^ j l 2 2 + d = 1 D w ^ f ^ d l 2 2 ( 4 ) E(f) = \sum_{j=1}^M \alpha_j ||\widehat {S_f\{x_j\}} - \hat y_j||^2_{l^2} + \sum_{d=1}^D ||\hat w \hat f^d||^2_{l^2} \quad \quad \quad (4)

这里, T T-周期 函数 g g g ^ \hat g 表示傅里叶级数的系数 g ^ [ k ] = 1 T 0 T g ( t ) e i 2 π T k t d t \hat g[k] = \frac{1}{T} \int_0^T g(t)e^{-i \frac{2\pi}{T}kt} {\rm d}t

l 2 n o r m l^2-norm 定义为: g ^ l 2 2 = + g ^ [ k ] 2 ||\hat g||^2_{l^2} = \sum_{-\infin}^{+\infin} |\hat g[k]|^2

等式 (2) 中的检测得分 S f { x } S_f\{x\} 的傅里叶系数如下:

S f { x } ^ = d = 1 D f ^ d X d b ^ d \widehat {S_f\{x\}} = \sum_{d=1}^D \hat f^d X^d \hat b_d

X d X^d x d x^d 的离散傅里叶变换。

在实际操作中,滤波器 f d f^d 被假定拥有有限多个非零的傅里叶系数 { f ^ d [ k ] } K d K d , K d = N d 2 \{\hat f^d[k]\}^{K_d}_{-K_d}, K_d=\lfloor \frac{N_d}{2} \rfloor 。等式 (4) 就变成了一个 quadratic problem,通过解决下方等式来优化:

( A H Γ A + W H W ) f ^ = A H Γ y ^ ( 5 ) (A^H \Gamma A + W^H W)\hat f = A^H\Gamma \hat y \quad\quad\quad (5)

这里, f ^ \hat f y ^ \hat y 分别是 f d f^d y j y_j 的傅里叶系数。矩阵 A A 有着稀疏的结构,对角线方块包含 X j d [ k ] b ^ d [ k ] X^d_j[k]\hat b_d[k] 样子的元素。进一步, Γ \Gamma 是权值 α j \alpha_j 的对角矩阵, W W 是卷积矩阵,卷积核是 w ^ [ k ] \hat w[k] 。C-COT 使用共轭梯度方法迭代式地解决问题,它能有效地利用该问题的稀疏结构。

3. Our Approach

作者通过一系列方法来解决 DCF 中存在的问题,提升性能和速度。

  • Robust learning:由于训练数据有限,等式 (3) 中大量的参数优化会造成过拟合。作者引入了一个 因式分解卷积 (factorized convolution formulation) 来缓解此问题。这个策略能降低深度特征中 80% 的模型参数,并能增加追踪准确性。而且作者提出了一个 满足样本分布的简洁的生成模型,提升数据的多样性,而不需要存储大量的数据集。最终,作者探索了模型更新策略,并总结出,较少频率的更新滤波器能稳定住训练,使追踪更加的鲁棒。

  • 计算复杂度:在基于优化的 DCF 跟踪器中,学习阶段是算力上的瓶颈。计算复杂度可表示为 O ( N C G D M K ) 2 \Omicron(N_{CG}DM \overline K)^2 ,其中 N C G N_{CG} 是共轭梯度迭代的次数, K = 1 D d K d \overline K=\frac{1}{D}\sum_d K_d 是每个滤波器通道中的平均傅里叶系数的个数。作者在下面的章节中分别提出方法来降低 D , M , N C G D,M,N_{CG}

3.1 Factorized Convolution Operator

首先介绍了一个分解卷积的方法,目的是降低模型中参数的个数。作者发现在 C-COT 中, 滤波器 f d f^d 中的很多个都存在可忽略的 “energy”,在高维度深度特征中尤其明显,如图2。

这些滤波器对目标定位几乎不产生任何作用,但会影响训练时间。与对每个特征通道 d d 学习一个单独的滤波器不同,我们用一个较小的集合,由基础滤波器 ( f 1 ,   , f C , C < D f^1, \cdots,f^C, C<D ) 组成。对于特征层 d d 的滤波器,将之构建为一个由 f c f^c 和一个系数集合 p d , c p_{d,c} 的线性组合, c = 1 C p d , c f c \sum_{c=1}^C p_{d,c} f^c 。系数可以被紧凑地表示为一个 D × C D\times C 的矩阵 P = ( p d , c ) P=(p_{d,c}) 。新的多通道滤波器可以被写成矩阵-向量乘积 P f Pf 。因式分解的卷积算子如下表示:
S P f { x } = P f J { x } = c , d p d , c f c J d { x d } = f P T J { x } . ( 6 ) S_{Pf}\{x\} = Pf \cdot J\{x\} = \sum_{c,d}p_{d,c}f^c \cdot J_d \{x^d\} = f\cdot P^TJ\{x\}.\quad\quad\quad (6)

该等式遵循了卷积的线性要求。(6)式中的卷积分解可被看作一个双阶段操作,首先在位置 t t 的特征向量 J { x } ( t ) J\{x\}(t) 乘以矩阵 P T P^T 。然后 C C-维 特征图与滤波器 f f 进行卷积。矩阵 P T P^T 与论文 “Adaptive color attributes for real-time visual tracking” 中的线性降维算子类似,主要区别是我们是共同地学习滤波器 f f 和矩阵 P P ,最小化(3)式中的分类损失函数。

为了简洁性,我们只在单个样本 x x 上考虑学习(6)中的分解算子。用 z ^ d [ k ] = X d [ k ] b ^ d [ k ] \hat z^d[k]=X^d[k] \hat b_d [k] 来表示插值后的特征图 z = J { x } z=J\{x\} 的傅里叶系数。傅里叶域中对应的损失函数 (4) 则变成:

E ( f , P ) = z ^ T P f ^ y ^ l 2 2 + c = 1 C ω ^ f ^ c l 2 2 + λ P F 2 ( 7 ) E(f,P) = ||\hat z^T P \hat f - \hat y||^2_{l^2} + \sum_{c=1}^C ||\hat \omega \ast \hat f^c||^2_{l^2} + \lambda ||P||_F^2 \quad\quad\quad (7)

这里,我们增加了 P P 的 Frobenius 范数,作为正则化,用权值参数 λ \lambda 控制。

和(4)中原来的方程不同,新的损失函数(7)是非线性最小二乘问题。由于参数太多和我们要求的 online 更新,主流的优化策略都没法用于该问题上,如交替最小二乘法 (alternating least squares)。相反,我们使用了 Gauss-Newton 以及共轭梯度方法来优化这个二次问题。在 Gauss-Newton 方法中,我们用一阶泰勒级数展开,线性化(7)式中的余项。这就对应着在当前位置 ( f ^ i , P i ) (\hat f_i, P_i) 处,去近似 z ^ T P f ^ \hat z^T P \hat f

z ^ T ( P i + Δ P ) ( f ^ i + Δ f ^ ) z ^ T P i f ^ i , Δ + z ^ T Δ P f ^ i = z ^ T P i f ^ i , Δ + ( f ^ i z ^ ) T v e c ( Δ P ) . ( 8 ) \hat z^T (P_i + \Delta P)(\hat f_i + \Delta \hat f) \approx \hat z^T P_i \hat f_{i,\Delta} + \hat z^T \Delta P \hat f_i = \hat z^T P_i \hat f_{i,\Delta} + (\hat f_i \otimes \hat z)^T vec(\Delta P). \quad \quad \quad (8)

这里,我们设 f ^ i , Δ = f ^ i + Δ f ^ \hat f_{i,\Delta} = \hat f_i + \Delta \hat f 。Kronecker product \otimes 用于向量化 Δ P \Delta P

在第 i i 次迭代时,可用一阶近似(8)式替换(7)式:

E ~ ( f ^ i , Δ , Δ P ) = z ^ T P i f ^ i , Δ + ( f ^ i z ^ ) T v e c ( Δ P ) y ^ l 2 2 + c = 1 C ω ^ f ^ i , Δ c l 2 2 + μ P i + Δ P F 2 ( 9 ) \tilde E(\hat f_{i,\Delta},\Delta P) = \left \| \hat z^T P_i \hat f_{i,\Delta} + (\hat f_i \otimes \hat z)^T vec(\Delta P) - \hat y\right \| ^2_{l^2} + \sum_{c=1}^C \left \| \hat \omega \ast \hat f_{i,\Delta}^c\right \| ^2_{l^2} + \mu \left \| P_i + \Delta P\right \| ^2_F\quad\quad\quad (9)

因为滤波器 f f 只能有有限个非零傅里叶系数,等式 (9) 就成了线性的最小二乘问题。对应的等式和(5)部分类似,除了要有一个部分对应矩阵增量 Δ P \Delta P 。我们使用共轭梯度方法来优化每个 Gauss-Newton 子问题,来获得新的滤波器 f ^ i , Δ \hat f^*_{i,\Delta} 以及矩阵增量 Δ P \Delta P^* 。滤波器和矩阵然后用 f ^ i + 1 = f ^ i , Δ \hat f_{i+1} = \hat f^*_{i,\Delta} P i + 1 = P i + Δ P P_{i+1}=P_i + \Delta P^* 来更新。

分解卷积操作的主要目的是降低跟踪器的时间和空间复杂度。由于滤波器的自适应能力,矩阵 P P 可以从第一帧开始学习。这有两层含义,首先,只有特征图 P T J { x j } P^T J\{x_j\} 需要内存空间,节省了很多的内存。其次,滤波器可以利用 P T J { x j } P^T J\{x_j\} 在随后的每一帧中更新参数。这将特征维度 D D 里的线性复杂度降低至滤波器维度 C , i . e . O ( N C G C M K ˉ ) C, i.e. O(N_{CG}CM \bar K)

3.2 生成样本空间模型

我们提出了一个紧凑的样本集生成模型,它能避免前面提到的需要存储大量的最近训练的样本的问题。大多数的 DCF 追踪器,如 SRDCF 和 C-COT,在每一帧 j j 增加一个训练样本 x j x_j 。权值通常以指数级进行退火, α j ( 1 γ ) M j \alpha_j \sim (1-\gamma)^{M-j} ,通过学习率 γ \gamma 控制。如果样本数达到了上限 M m a x M_{max} ,最小权值 α j \alpha_j 的样本就会被替换掉。但是,这个方法需要一个很大的样本上限 M m a x M_{max} 来足够地代表该样本集。

我们观察到,在每一帧都收集一个新样本会导致样本集的冗余,如图3所示。传统的采样策略(底端行)用相似的样本 x j x_j 生成整个训练集,它们包含的信息几乎是一样的。相反,我们提出使用概率生成模型,它可以获取足够精炼的样本信息,去除了冗余成分,并增强多样性。

我们的方法基于样本特征图 x x 和相应的期望输出得分 y y 之间的联合概率分布 p ( x , y ) p(x,y) 。给定 p ( x , y ) p(x,y) ,直觉上,目标函数应该是去找到一个滤波器,它能最小化期望关联误差。我们替换(3)式为:
E ( f ) = E { S f { x } y L 2 2 } + d = 1 D ω f d L 2 2 ( 10 ) E(f) = \mathbb{E} \{\left \| S_f\{x\} - y\right\|^2_{L^2} \} + \sum_{d=1}^D \left \| \omega f^d \right \|^2_{L^2} \quad\quad\quad(10)

期望 E \mathbb{E} 在联合样本分布 p ( x , y ) p(x,y) 上进行评价。记住原来的损失函数(3)是一个特例,通过估计样本的分布 p ( x , y ) = j = 1 M α j δ x j , y j ( x , y ) p(x,y) = \sum_{j=1}^M \alpha_j \delta_{x_j, y_j}(x,y) 计算, δ x j , y j \delta_{x_j,y_j} 表示在训练样本 ( x j , y j ) (x_j,y_j) 处的 Dirac impulse。而在这里,我们提出了一个更加紧凑的,满足样本分布 p ( x , y ) p(x,y) 的模型,进而更加高效地趋近(10)中的期望损失。

我们观察到,样本 x x 的期望关联输出 y y 的形状是预先决定好了的,在这就是高斯函数。它和(3)式中的标签函数 y j y_j 唯一的不同就是进行了 translation,这样 peak 和目标中心位置就对齐了。这种对齐方式和平移特征图 x x 是等价的。我们因此可以假设目标位于图像区域的中心,所有的 y = y 0 y=y_0 都是一样的。这样样本分布可以被分解为 p ( x , y ) = p ( x ) δ y 0 ( y ) p(x,y) = p(x) \delta_{y_0} (y) ,我们只需估计 p ( x ) p(x) 。为此,我们使用高斯混合模型(GMM), p ( x ) = l = 1 L π l N ( x ; μ l ; I ) p(x) = \sum_{l=1}^L \pi_l N(x;\mu_l; I) L L 是高斯函数 N ( x ; μ l ; I ) N(x;\mu_l; I) components 的个数; π l \pi_l 是 component l l 的先验权重, μ l χ \mu_l \in \chi 是它的均值。协方差矩阵设为单位矩阵 I I ,避免在高维样本空间中进行推理的成本过高。

对于 GMM 的更新,我们使用简化版本的 online 算法。给定一个新样本 x j x_j ,我们首先初始化一个新的 component m , π m = γ , μ m = x j m, \pi_m = \gamma, \mu_m = x_j 。如果 components 的个数大于上限 L L ,我们就简化 GMM。如果一个 component 的权值 π l \pi_l 小于某阈值,我们就去掉它。否则,我们合并两个最接近的 components k k l l ,组成一个 common component n n
π n = π k + π l , μ n = π k μ k + π l μ l π k + π l ( 11 ) \pi_n = \pi_k + \pi_l, \quad \quad \quad \mu_n = \frac{\pi_k \mu_k + \pi_l \mu_l}{\pi_k+\pi_l}\quad \quad \quad (11)

距离 μ k μ l \left \| \mu_k - \mu_l \right \| 是在傅里叶域中利用 Parseval’s 公式计算。最终,(10)中的期望损失函数由下式近似表示:

E ( f ) = l = 1 L π l S f { μ l } y 0 L 2 2 + d = 1 D ω f d L 2 2 ( 12 ) E(f) = \sum_{l=1}^L \pi_l \left\| S_f\{\mu_l\} - y_0 \right \|^2_{L^2} + \sum_{d=1}^D \left \| \omega f^d \right \|^2_{L^2} \quad\quad\quad(12)

注意,高斯均值 μ l \mu_l 和先验权值 π l \pi_l 直接替换(3)式中的 x j x_j α j \alpha_j

与(3)相比,(12)最主要的不同就是样本个数从 M M 降至 L L 。在实验中,我们证明在还能提升精度的情况下,components 的个数 L L 可以被设为 M 8 \frac{M}{8} 。此样本分布模型 p ( x , y ) p(x,y) 与3.1节中的分解卷积合起来用,通过将样本 x x 替换为映射后的 P T J x P^T J x 。该映射不会影响我们的方程,因为矩阵 P P 在第一帧后就是个常量。

3.3 模型更新策略

DCF 中的传统方法是在每一帧都更新模型。在C-COT中,这就意味着在每个新样本添加进来后,迭代解决(5)来达到优化的目的。基于 DCF 的迭代优化方法会利用连续帧之间损失函数逐渐变化这一性质。但是,在每一帧都更新滤波器会在算力上带来严重的负担。

所以,我们提出了一个稀疏的更新方案,它在非-DCF 追踪器的操作中是很常见的。直觉告诉我们,只有当量变积累到一定程度时,优化过程才可以开始。但是,找到这样的条件是很困难的。而且在实践中,评价基于损失梯度(3)的优化条件,成本是很高的。我们因此不直接去识别那些变动,而每 N s t h N_sth 个帧才开始优化过程,更新滤波器。 N s N_s 决定滤波器更新的频率, N s = 1 N_s=1 就是每一帧都更新滤波器。每隔 N s N_s 个帧,我们就执行 N C G N_{CG} 个共轭梯度迭代,来优化模型。最后,每一帧的 CG 迭代次数降低到了 N C G / N S N_{CG}/N_S ,极大地降低了计算的复杂度。

我们注意到, N S 5 N_S \approx 5 通常就可以提升追踪结果。这主要是因为对最近训练的样本的过拟合下降了。我们将模型的更新延后了几帧,通过往训练样本中增加一个新的 mini-batch 来更新损失函数,而不是像之前一样只增加一个样本。这能稳定住学习过程,尤其当新的样本受到突然变化影响的时候,如平面外旋转,变形,遮挡等。

猜你喜欢

转载自blog.csdn.net/calvinpaean/article/details/84964936
ECO