原文链接
摘要
在本文中,咱们钻研了跟踪可能非常复杂背景的视频中静止物体轨迹的挑战性问题。与大多数仅在线学习跟踪对象外观的现有跟踪器相比,咱们采纳不同的办法,受深度学习架构的最新进展的启发,更加强调(无监督)特色学习问题。具体来说,通过应用辅助天然图像,咱们离线训练重叠去噪主动编码器,以学习对变动更加鲁棒的通用图像特色。而后是从离线培训到在线跟踪过程的常识转移。在线跟踪波及分类神经网络,该分类神经网络由训练的主动编码器的编码器局部形成,作为特征提取器和附加分类层。能够进一步调整特征提取器和分类器以适应挪动物体的外观变动。与一些具备挑战性的基准视频序列的最先进的跟踪器进行比拟表明,当咱们的跟踪器的 MATLAB 实现与适度的图形处理一起应用时,咱们的深度学习跟踪器更精确,同时放弃低计算成本和实时性能单位(GPU)。
1 引言
视觉跟踪,也称为对象跟踪,是指当对象在视频中挪动时主动预计对象的轨迹。它在许多畛域都有许多利用,包含平安视频监控,人机交互和体育视频剖析。尽管某个应用程序可能须要跟踪多个挪动对象,但典型的设置是别离解决每个对象。在第一视频帧中手动或自动识别要跟踪的对象之后,视觉跟踪的指标是在后续帧上主动跟踪对象的轨迹。尽管现有的计算机视觉技术能够在良好管制的环境下为这个问题提供令人满意的解决方案,然而因为诸如局部遮挡,芜杂的背景,疾速和忽然的静止,戏剧性的照明变动以及大的因素,在许多理论利用中该问题可能是十分具备挑战性的。观点和姿态的变动。
从学习的角度来看,视觉跟踪具备挑战性,因为它在第一个视频帧中只有一个被辨认对象模式的标记实例。在随后的帧中,跟踪器必须仅用未标记的数据来学习被跟踪对象的变动。因为没有对于被跟踪对象的先验常识,跟踪器很容易偏离指标。为了解决这个问题,曾经提出了一些采纳半监督学习办法的跟踪器。另一种办法首先从辅助数据中学习图像特色的字典(例如 SIFT 部分描述符),而后将学到的常识传递给在线跟踪。
另一个问题是许多现有的跟踪器应用的图像示意可能不足以在简单环境中进行持重跟踪。对于有辨别力的跟踪器尤其如此,这些跟踪器通常更强调改良分类器而不是应用的图像特色。尽管许多跟踪器只是应用原始像素作为特色,但有些尝试应用了更多信息性能,例如 Haar 性能,直方图性能和本地二进制模式。然而,这些性能都是离线手工制作,但不是为跟踪对象量身定制的。最近,深度学习架构曾经胜利地用于为一些简单的工作提供十分有心愿的后果,包含图像分类和语音辨认。胜利的要害是利用深层架构通过多种非线性变换来学习更丰盛的不变特色。咱们认为,出于同样的起因,视觉跟踪也能够从深度学习中受害。
在本文中,咱们提出了一种新的深度学习跟踪器(deep learning tracker DLT),用于弱小的视觉跟踪。咱们尝试通过开发一种弱小的判断跟踪器来联合生成和判断跟踪器背地的哲学,该跟踪器应用主动学习的无效图像示意。DLT 与其余现有跟踪器有一些要害特色。首先,它应用重叠去噪主动编码器(stacked denoising autoencoder SDAE)来学习大图像数据集中的通用图像特色作为辅助数据,而后将学到的特色传输到在线跟踪工作。其次,与先前也从辅助数据学习特色的办法不同,DLT 中的学习特色能够进一步调整以适应在线跟踪过程中的特定对象。因为 DLT 利用多个非线性变换,所取得的图像示意比基于 PCA 的先前办法更具表现力。此外,因为示意跟踪对象不须要解决基于稠密编码的先前跟踪器中的优化问题,因而 DLT 显著更无效,因而更适宜于实时利用。
2 视觉跟踪的粒子滤波办法
粒子滤波办法通常用于视觉跟踪。从统计角度来看,它是一种程序蒙特卡罗重要抽样办法,用于依据观测序列预计动静零碎的潜状态变量。在工夫 t,Supppse st 和 yt 别离示意潜状态和察看变量。在数学上,对象跟踪对应于基于直到前一时间步骤的察看来找到每个工夫步长 t 的最可能状态的问题:
$$
s^t=argmax(p(s^t|y^{1:t-1}))=argmax \int p(s^t|s^{t-1})p(s^t|y^{1:t-1})ds^{t-1} \tag{1}
$$
当一个新的察看达到时,状态变量的后验散布依据贝叶斯规定更新:
$$
p({s}^{t}|{y}^{1: t})=\frac{p({y}^{t}|{s}^{t}) p({s}^{t} | {y}^{1: t-1})}{p({y}^{t} | {y}^{1: t-1})} \tag{2}
$$
粒子滤波器办法的具体内容是它通过一组 n 个样本(称为粒子)迫近实在的后验状态散布 p(st|y1:t),其中相应的重要性权重总和为 1. 粒子是从重要性散布 q(st|s1:t-1, y1:t),权重更新如下:
$$
w_{i}^{t}=w_{i}^{t-1} \cdot \frac{p({y}^{t} | {s}_{i}^{t}) p({s}_{i}^{t} | {s}_{i}^{t-1})}{q({s}^{t} | {s}^{1: t-1}, {y}^{1: t})}\tag{3}
$$
为了抉择重要性散布 q(st|s1:t-1, y1:t),通常将其简化为一阶马尔可夫过程 q(s:t|s:t-1),其中状态转移独立于察看。因而,权重更新为。留神,在每个权重更新步骤之后,权重之和可能不再等于 1。如果它小于阈值,则利用从新采样以从以后粒子集中按比例绘制 n 个粒子,而后将它们的权重重置为 1 / n。如果权重和高于阈值,则利用线性归一化以确保权重总和为 1。
对于对象跟踪,状态变量 si 通常示意六个仿射变换参数,其对应于平移,比例,纵横比,旋转和偏斜。特地地,q(st|st-1) 的每个维度由正态分布独立建模。对于每个帧,跟踪后果只是具备最大权重的粒子。尽管许多跟踪器也采纳雷同的粒子滤波器办法,但次要区别在于观测模型 p(yt|sti) 的公式。显然,一个好的模型应该可能很好地区分跟踪对象和背景,同时依然可能抵制各种类型的对象变动。对于判断跟踪器,该公式通常用于设置与分类器输入的置信度呈指数相干的概率。
粒子滤波器框架是视觉跟踪的次要办法,起因有几个。首先,它超过了高斯分布,比卡尔曼滤波器办法更通用。此外,它通过一组粒子而不是仅仅一个点(例如模式)来近似后状态散布。对于视觉跟踪,此属性使跟踪器能够更轻松地从谬误的跟踪后果中复原。无关应用粒子滤波器进行视觉跟踪的教程能够在中找到。最近的一些工作,例如,进一步改良了用于视觉跟踪的粒子滤波器框架。
3 DLT(deep learning tracker)追踪器
DLT 具体介绍
咱们当初介绍咱们的 DLT 跟踪器。在离线训练阶段期间,通过训练具备辅助图像数据的 SDAE 来执行无监督特色学习以学习通用天然图像特色。首先利用逐层预训练,而后对整个 SDAE 进行微调。在在线跟踪过程期间,将额定的分类层增加到训练的 SDAE 的编码器局部以产生分类神经网络。本节其余部分提供了更多详细信息。
3.1 辅助数据的离线培训
3.1.1 数据集和预处理
咱们应用 Tiny Images 数据集作为离线训练的辅助数据。通过向七个搜索引擎提供非形象的英语名词,从网络上收集数据集,涵盖事实世界中发现的许多对象和场景。从每张尺寸为 32×32 的近 8000 万张渺小图像中,咱们随机抽样 100 万张图像进行离线训练。因为咱们的教训比拟中蕴含的大多数最先进的跟踪器仅应用灰度图像,因而咱们将所有采样图像转换为灰度(但咱们的办法也能够在必要时间接应用彩色图像)。因而,每个图像把 3232 的图像转为 1024 1 的向量,每维的特征值被归一化(每个维度的特征值线性缩放到范畴[0,1]),但不利用进一步的预处理。
3.1.2 应用重叠去噪主动编码器(SDAE)学习通用图像特色
SDAE 具体介绍
SDAE 的根本构建块是称为去噪主动编码器(DAE)的单层神经网络,它是传统主动编码器的最新变体。它学会从损坏的版本中复原数据样本。这样做,学习了鲁棒特色,因为神经网络蕴含“瓶颈”,其是具备比输出单元更少单元的暗藏层。咱们在图 1(a)中展现了 DAE 的架构。
让共有 k 个训练样本。对于第 i 个样本,让 xi 示意原始数据样本,x~i 是 xi 的损坏版本,其中损坏可能是屏蔽损坏,加性高斯噪声或椒盐噪声。对于网络权重,让 W 和 W0 别离示意编码器和解码器的权重,只管没有必要,但它们能够绑定。相似地,b 和 b0 指的是偏差项。DAE 通过解决以下(正则化)优化问题来学习:
$$
\min _{\mathbf{W}, \mathbf{W}^{\prime}, \mathbf{b}, \mathbf{b}^{\prime}} \sum_{i=1}^{k}\left\|\mathbf{x}_{i}-\hat{\mathbf{x}}_{i}\right\|_{2}^{2}+\lambda\left(\|\mathbf{W}\|_{F}^{2}+\left\|\mathbf{W}^{\prime}\right\|_{F}^{2}\right) \tag{4}
$$
其中:
$$
\begin{aligned}
&\mathbf{h}_{i}=f\left(\mathbf{W} \tilde{\mathbf{x}}_{i}+\mathbf{b}\right) \\
&\hat{\mathbf{x}}_{i}=f\left(\mathbf{W}^{\prime} \mathbf{h}_{i}+\mathbf{b}^{\prime}\right)
\end{aligned} \tag{5}
$$
这里 λ 是均衡重建损失和权重惩办项的参数,k·kF 示意 Frobenius 范数,而 f(·)是非线性激活函数,其通常是逻辑 S 形函数或双曲正切函数。通过从损坏版本重建输出,DAE 比传统主动编码器更无效地通过阻止主动编码器简略地学习身份映射来发现更弱小的特色。
为了进一步加强学习有意义的特色,稠密性束缚被强加于暗藏单元的均匀激活值。如果应用逻辑 sigmoid 激活函数,则能够将每个单元的输入视为其流动的概率。设 ρj 示意第 j 个单位的指标稠密度,ρj 示意其均匀教训激活率。而后能够引入 ρ 和 ρ 的穿插熵作为 Eqn4 的附加惩办项:
$$
\begin{aligned}
H(\boldsymbol{\rho} \| \hat{\boldsymbol{\rho}}) &=-\sum_{j=1}^{m}\left[\rho_{j} \log \left(\hat{\rho}_{j}\right)+\left(1-\rho_{j}\right) \log \left(1-\hat{\rho}_{j}\right)\right] \\
\hat{\boldsymbol{\rho}} &=\frac{1}{k} \sum_{i=1}^{k} \mathbf{h}_{i},
\end{aligned} \tag{6}
$$
其中 m 是暗藏单位的数量。在预训练阶段之后,能够开展 SDAE 以造成前馈神经网络。应用经典的反向流传算法对整个网络进行微调。为了进步收敛速度,能够利用简略动量法或更高级的优化技术,例如 L-BFGS 或共轭梯度法。
对于网络架构,咱们在第一层应用过齐备过滤器。这是一个三思而行的抉择,因为曾经发现适度齐备的根底通常能够更好地捕捉图像构造。这合乎 V1 视皮层的神经生理机制。而后,每当增加新层时,单位数缩小一半,直到只有 256 个暗藏单位,作为主动编码器的瓶颈。SDAE 的整个构造如图 1(b)所示。为了进一步放慢第一层预训练以学习部分特色,咱们将每个 32×32 渺小图像分成五个 16×16 补丁(左上,右上,左下,右下,两头),而后训练五个 DAE,每个 DAE 有 512 个暗藏单位。之后,咱们用五个小 DAE 的权重初始化一个大 DAE,而后失常训练大 DAE。第一层中的一些随机抉择的滤波器如图 2 所示。正如所料,大多数滤波器起到高度部分化的边缘检测器的作用。
3.2 在线跟踪流程
要跟踪的对象由其第一帧中的边界框的地位指定。在离物体很近的距离处从背景中收集一些负面的例子。而后将 Sigmoid 分类层增加到从离线训练取得的 SDAE 的编码器局部。整个网络架构如图 1(c)所示。当新的视频帧达到时,咱们首先依据粒子滤波器办法绘制粒子(一个粒子就是指标可能存在的一块图像,32*32)。而后通过简略的前向流传网络来确定每个粒子的置信度 pi。该办法计算量小,精度高。
如果帧中所有粒子的最大置信度低于预约阈值 τ,则它能够批示被跟踪对象的显着外观变动。要解决此问题,能够在产生这种状况时再次 调整(tune)整个网络。咱们留神到阈值 τ 应该通过维持衡量来设定。如果 τ 太小,则跟踪器无奈很好地适应外观变动,如果 τ 太大,即便遮挡物体或背景也可能被谬误地视为被跟踪物体,因而导致指标漂移。
4 试验
咱们应用 10 个具备挑战性的基准视频序列,在本节中凭教训将 DLT 与一些最先进的跟踪器进行比拟。这些跟踪器是:MTT,CT,VTD,MIL,L1T,TLD 和 IVT 的最新变体。咱们应用其作者提供的这些跟踪器的原始实现。如果跟踪器只能解决灰度视频,MATLAB 图像处理工具箱提供的 rgb2gray 性能用于将黑白视频转换为灰度。为了减速计算,咱们还利用 MATLAB Parallel Computing Toolbox 提供的 GPU 计算进行离线培训和在线跟踪。代码和补充资料在我的项目页面上提供:http://winsty.net/dlt.html。
4.1 DLT 施行细节
咱们应用具备动量的梯度办法进行优化。动量参数设置为 0.9。对于 SDAE 的离线训练,咱们注入方差为 0.0004 的高斯噪声以生成损坏的输出。咱们将 λ = 0.0001,ρi= 0.05,小批量大小设置为 100. 对于在线调整,咱们应用较大的 λ 值 0.002 以防止适度拟合和较小的小批量大小 10. 阈值 τ 设置为 0.9。粒子滤波器应用 1000 个粒子。对于其余参数,例如粒子滤波器中的仿射参数和其余办法中的搜寻窗口大小,咱们执行网格搜寻以确定最佳值。如果实用,雷同的设置将利用于所有其余办法。
学习更多编程常识,请关注我的公众号:
代码的路