▌3 、 目标跟踪
目标跟踪,是指在特定场景跟踪某一个或多个特定感兴趣对象的过程。传统的应用就是视频和真实世界的交互,在检测到初始对象之后进行观察。现在,目标跟踪在无人驾驶领域也很重要,例如 uber 和特斯拉等公司的无人驾驶。
根据观察模型,目标跟踪算法可分成 2 类:生成算法和判别算法。
生成算法使用生成模型来描述表观特征,并将重建误差最小化来搜索目标,如主成分分析算法( pca );判别算法用来区分物体和背景,其性能更稳健,并逐渐成为跟踪对象的主要手段(判别算法也称为 tracking-by-detection ,深度学习也属于这一范畴)。
为了通过检测实现跟踪,我们检测所有帧的候选对象,并使用深度学习从候选对象中识别想要的对象。有两种可以使用的基本网络模型:堆叠自动编码器( sae )和卷积神经网络( cnn )。
目前,最流行的使用 sae 进行目标跟踪的网络是 deep learning tracker(dlt),它使用了离线预训练和在线微调。其过程如下:
离线无监督预训练使用大规模自然图像数据集获得通用的目标对象表示,对堆叠去噪自动编码器进行预训练。堆叠去噪自动编码器在输入图像中添加噪声并重构原始图像,可以获得更强大的特征表述能力。
将预训练网络的编码部分与分类器合并得到分类网络,然后使用从初始帧中获得的正负样本对网络进行微调,来区分当前的对象和背景。 dlt 使用粒子滤波作为意向模型(motion model),生成当前帧的候选块。 分类网络输出这些块的概率值,即分类的置信度,然后选择置信度最高的块作为对象。
在模型更新中, dlt 使用有限阈值。
鉴于 cnn 在图像分类和目标检测方面的优势,它已成为计算机视觉和视觉跟踪的主流深度模型。 一般来说,大规模的卷积神经网络既可以作为分类器和跟踪器来训练。具有代表性的基于卷积神经网络的跟踪算法有全卷积网络跟踪器( fcnt )和多域卷积神经网络( md net )。
fcnt 充分分析并利用了 vgg 模型中的特征映射,这是一种预先训练好的 imagenet 数据集,并有如下效果:
卷积神经网络特征映射可用于定位和跟踪。对于从背景中区分特定对象这一任务来说,很多卷积神经网络特征映射是噪音或不相关的。较高层捕获对象类别的语义概念,而较低层编码更多的具有区性的特征,来捕获类别内的变形。
因此, fcnt 设计了特征选择网络,在 vgg 网络的卷积 4-3 和卷积 5-3 层上选择最相关的特征映射。 然后为避免噪音的过拟合, fcnt 还为这两个层的选择特征映射单独设计了两个额外的通道(即 snet 和 gnet ): gnet 捕获对象的类别信息; snet 将该对象从具有相似外观的背景中区分出来。
这两个网络的运作流程如下:都使用第一帧中给定的边界框进行初始化,以获取对象的映射。而对于新的帧,对其进行剪切并传输最后一帧中的感兴趣区域,该感兴趣区域是以目标对象为中心。最后,通过 snet 和 gnet ,分类器得到两个预测热映射,而跟踪器根据是否存在干扰信息,来决定使用哪张热映射生成的跟踪结果。 fcnt 的图如下所示。
与 fcnt 的思路不同, md net 使用视频的所有序列来跟踪对象的移动。上述网络使用不相关的图像数据来减少跟踪数据的训练需求,并且这种想法与跟踪有一些偏差。该视频中的一个类的对象可以是另一个视频中的背景,因此, md net 提出了“多域”这一概念,它能够在每个域中独立的区分对象和背景,而一个域表示一组包含相同类型对象的视频。
如下图所示, md net 可分为两个部分,即 k 个特定目标分支层和共享层:每个分支包含一个具有 softmax 损失的二进制分类层,用于区分每个域中的对象和背景;共享层与所有域共享,以保证通用表示。
近年来,深度学习研究人员尝试使用了不同的方法来适应视觉跟踪任务的特征,并且已经探索了很多方法:
应用到诸如循环神经网络( rnn )和深度信念网络(dbn )等其他网络模型;设计网络结构来适应视频处理和端到端学习,优化流程、结构和参数;或者将深度学习与传统的计算机视觉或其他领域的方法(如语言处理和语音识别)相结合。