目标跟踪

没事读读目标跟踪的资料论文

目标跟踪

视频目标跟踪系统框架和关键技术

运动模型

目前 运动模型主要分为三种:

  1. 均值漂移 (Mean shift)
  2. 滑动窗口 (Slide window)
  3. 粒子滤波 (Particle filter)

1) 均值漂移 (Mean shift)
均值漂移, 是一种基于核密度估计的非参数估计方法.为经典跟踪方法. 在跟踪时, 需要设定一个目标函数来计算目标与候选窗口的核密度, 而后利用 Bhattacharyya 准则作为匹配条件, 通过移动均值向量来不断优化目标函数从而完成目标搜索. 由于通过梯度优化来完成搜索, 因此基于均值漂移的跟踪算法运行速度快、实时性高.

2) 滑动窗口 (Slide window)
在目标周边正方形或者圆形范围内进行穷举搜 索的采样策略, 也称为密集采样. 这种方式将搜索范围内所有可能的潜在位置都予以考虑, 但是要付出 较大的计算代价.

3) 粒子滤波 (Particle filter)
粒子滤波在经典的卡尔曼滤波的基础上发展而来, 先验概率密度用加权粒采样样本 (粒子) 来近 似表示. 每个粒子的权值表示了该样本的重要程度. 每次跟踪结果确定后, 会根据不同粒子的重要程度进行重采样. 粒子滤波方法具有较高的计算效率, 同 可以融入仿射变换信息, 因此目前在一些较好的跟踪算法中应用较多. [^1]

特征提取

对于视频目标跟踪而言,好的特征应该具备两个基本性质:

  1. 具有较强的区分度
  2. 具有较高的计算效率,以满足跟踪的实时性

目前跟踪算法采用的特征分为人工特征和学习特征两类.人工特征可以分为外观特征和运动特征.外观特征是从目标的物理直观出发, 通过结合数学工具设计出来的特征.运动特征是针对视频的特点, 从视频帧之间的时间关联性出发设计的特征, 这些 特征是静态图像中所没有的. 由机器自动学习到的特征为学习特征. 这些特征通过机器学习的方式自动提取, 无需事先知道目标的物理性质, 从而可以大大提高特征提取的效率. 目前以深度学习为代表的特征学习方法已经成为计算机领域的前沿和热点.

人工特征

  • 外观特征

外观特征总体上可以分为四类: 灰度特征、颜色特征、梯度特征和纹理特征.

灰度特征计算效率高,可以分为原始灰度特征、灰度直方图特征、区域灰度变化特征 (Haar 特征) 三种表征形式.

颜色特征主要分为两种: 一种以颜色直方图来表征,另一种则是近年来兴起的具有更好表征能力的 Color name 特征. 颜色特征对姿态、尺度等不敏感, 用于非刚体跟踪时具有一定优势. 但其受光照影响较大, 同时易受颜色相近背景的干扰.

纹理特征是对目标外观细节、规则程度的量化,目前跟踪算法中常用的纹理特征是局部二值模式 (Local binary pattern, LBP),纹理特征可以较好地描述目标外观的细节, 但是对于纹理细节少、小尺度、远距离或者背景纹理复杂的目标描述能力较差, 此时跟踪效果往往不理想.

梯度特征通过统计目标图像局部的梯度分布来表征外观. 目前主要有 SIFT (Scale invariant feature transform) 特征及其加速版本 SURF (Speeded up robust features) 特征,实时性较差.另一种梯度特征是 HOG (Histogram of oriented gradient)

  • 运动特征

运动特征旨在挖掘视频帧之间的时空关联性.

光流法: 是对局部图像运动的一种近似表达, 主要通过计算给定视频中局部图像的时间与空间导数, 近 似得出二维运动场.目前有 LK 算法和 HS 算法,LK 算法运算效率较高.

学习特征

PCA 可以被视为最早的自动特征提取的方法.近几年深度学习的方法成为目前最强的自动特征提取方法.

外观模型

之后的会介绍到的产生式和判别式模型正是属于这里的外观模型.

更新

目前更新策略研究相对较少, 主要的更新策略有:

1) 每一帧都进行更新. 该方式较简单, 目前应用较多. 但由于太过频繁, 增加了漂移的可能性.

2) 每隔一定的帧数才更新一次.

3) 当响应分数 (匹配或分类得分) 低于一定阈值时才更新. 低于阈值往往说明目标外观已发生较大变化. 在该策略中, 增加了对外观变化程度的判断, 减少了更新频率, 因而比策略 1) 效果好一些.

4) 分别计算正负样本的响应分数, 当两者的差值低于一定阈值时更新. 该方式在判别式模型中采用. 由于考虑了前景与背景的差异度量, 可使跟踪器具有更好的鉴别能力.

经典的目标跟踪方法分类

目前分为两大类别

  • 产生式(generative model)

产生式方法运用生成模型描述目标的表观特征,之后通过搜索候选目标来最小化重构误差。比较有代表性的算法有稀疏编码(sparse coding),在线密度估计(online density estimation)和主成分分析(PCA)等。产生式方法着眼于对目标本身的刻画,忽略背景信息,在目标自身变化剧烈或者被遮挡时容易产生漂移。

  • 判别式(discriminative model)

与之相对的,判别式方法通过训练分类器来区分目标和背景。这种方法也常被称为tracking-by-detection。近年来,各种机器学习算法被应用在判别式方法上,其中比较有代表性的有多示例学习方法(multiple instance learning), boosting和结构SVM(structured SVM)等。

判别式方法因为显著区分背景和前景的信息,表现更为鲁棒,逐渐在目标跟踪领域占据主流地位。值得一提的是,目前大部分深度学习目标跟踪方法也归属于判别式框架。

基于深度学习的目标跟踪

训练数据较小,目标跟踪仅提供第一帧的bounding-box作为训练数据。

在线训练深层网络比较困难,在视觉对象跟踪中,缺乏对一个对象的先验知识.

利用辅助图片预训练深度模型,在线跟踪时微调

DLT 和 SO-DLT 王乃岩

DLT

20170512149457817358698.jpg

使用栈式降噪自编码器(stacked denoising autoencoder,SDAE)在Tiny Images dataset上进行无监督离线预训练。将32*32的彩色图片转为灰度图(文章说彩色图也可以),传入的是1024维向量,进行训练。应用SDAE 1024-2560-2014-512-256主要的瓶颈式结构,如图b。

跟踪时采取图c的策略,取得b的encoding部分,加入sigmoid分类层,组成分类网络,这时候没有获取对当前被跟踪物体的特定表达能力,此时利用第一帧获取正负样本,对分类网络径向fine-tune获得对当前跟踪目标和背景更有针对性的分类网络。在跟踪过程中,对当前帧采用粒子滤波(particle filter)的方式提取一批候选的patch(相当于detection中的proposal),这些patch输入分类网络中,置信度最高的成为最终的预测目标。

在目标跟踪上,论文采用了限定阈值的方式,即去所有粒子中最高的confidence低于阈值时,认为目标已经发生了较大变化,当前分类网络已经无法适应,需要更新。

存在的问题:

(1)离线预训练采用的数据集Tiny Images dataset只包含32*32大小的图片,分辨率明显低于主要的跟踪序列,因此SDAE很难学到足够强的特征表示。

(2)离线阶段的训练目标为图片重构,这与在线跟踪需要区分目标和背景的目标相差甚大。

(3)SDAE全连接的网络结构使其对目标的特征刻画能力不够优秀,虽然使用了4层的深度模型,但效果仍低于一些使用人工特征的传统跟踪方法如Struck等。

SO-DLT

20170512149458086758677.jpg

主要延续了DLT利用非跟踪数据预训练加在线微调的策略,来解决跟踪过程中训练数据不足的问题,同时对DLT问题做了很大改进。

使用CNN作为提取特征和分类的网络模型,结构类似于AlexNet,根据跟踪候选区域的大小输入为100*100,而不是分类或者检测的224*224。输出为50*50,值是在0-1之间的概率图。概率图的每一个像素代表着原图2*2的区域,输出值越高表示该点在目标bounding box中的概率越高,意思就是是否属于分类检测出来的物体。

在卷积层和全连接层采用SPP-NET中的空间金字塔池化(spatial pyramid pooling)提高精度。这里有SPP的简单介绍

Hierarchical Convolutional Features for Visual Tracking(ICCV15)

采用了 CNN 提取特征.具体的可以看下面的代码和中文笔记.

Github源码

中文笔记

MDNET(Multi-Domain Network)

paper: Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
CVPR 2016

CNN 中因为训练数据较少的原因,用很难直接套用之前的网络提取特征.之前分类问题表现较好的 CNN 就很难直接在跟踪定位问题方面应用.

文章中提到的之前基于 CNN 的目标跟踪算法

J. Fan, W. Xu, Y. Wu, and Y. Gong. Human tracking us-
ing convolutional neural networks. IEEE Trans. Neural Net-
works, 21(10):1610–1623, 2010.

S. Hong, T. You, S. Kwak, and B. Han. Online tracking by learning discriminative saliency map with convolutional neural network. In ICML, 2015.

H. Li, Y. Li, and F. Porikli. DeepTrack: Learning discrimina- tive feature representations by convolutional neural networks for visual tracking. In BMVC, 2014.

N. Wang, S. Li, A. Gupta, and D.-Y. Yeung. Transferring rich feature hierarchies for robust visual tracking. arXiv preprint arXiv:1501.04587, 2015.

20170601149628621696254.png

MDNet的结构

MDNet 中 CNN 只有 3层 CONV 和 2层 FC ,很浅.

论文中提到了为什么选用这种结构,大概意思就是视觉跟踪对于复杂分类的 ImageNet 复杂度较低,就是区分目标和背景2类.第二 CNN 对于精确目标定位的效率变低,因为随着网络的深入,空间信息会被稀释.第三,视觉跟踪的目标比较小,所以期望输入的尺寸小,所以降低了网络的深度,在网络更新测试时一个小的网络会更有效率..(这里有人提出了质疑)..反正这个肯定是作者先试了很多个结构,最后发现这个不错,最后再编原因的…论文嘛,你懂的.

Our network architecture is substantially smaller than the ones commonly used in typical recognition tasks such as AlexNet [27] and VGG-Nets [5, 34]. We believe that such a simple architecture is more appropriate for visual tracking due to the following reasons. First, visual tracking aims to distinguish only two classes, target and background, which requires much less model complexity than general visual recognition problems such as ImageNet classification with 1000 classes. Second, a deep CNN is less effective for pre- cise target localization since the spatial information tends to be diluted as a network goes deeper [20]. Third, since targets in visual tracking are typically small, it is desirable to make input size small, which reduces the depth of the network naturally. Finally, a smaller network is obviously more efficient in visual tracking problem, where training and testing are performed online. When we tested larger networks, the algorithm is less accurate and becomes slower significantly.

学习的算法大概原理是训练一个 Multi-domain CNN 区分一个任意 domain 的目标和背景.
虽然 domian 不同但是对于某些属性特征是通用的.例如光照变化,运动的模糊,尺寸变化的鲁棒性等..
CNN 用的是 SGD 训练.

论文中文笔记:backnode

论文中文笔记:wangxiao

siamese-fc

paper:Fully-Convolutional Siamese Networks for Object Tracking

Github-source

牛津视觉研究所的发的论文.

20170603149645819879466.jpg

提出一种全卷积的孪生网络结构

学习去跟踪任意的物体,通过相似性学习的方法来解决。利用卷积神经网络来解决相似性函数的学习问题。并且通常用 Siamese architecture 来充当深度卷积网络。

先说自己是目前实时性最高,效果最好的方法.

然后论文套路说之前一些网络存在的问题,对浅层的方法没有充分利用到端到端的好处,而且在跟踪过程中使用 SGD 没有办法在达到好结果的前提下达到实时性.

利用 ImageNet video 进行 offline 的训练。这个数据集有 80多G 标注好的 video。

然后继续数据处理,比如排除一些类别:sanke,train,whale,lizard 等,这些物体经常只出现身体的某一个部分.而且在边缘出现. 排除太小或者太大的物体. 排除离边界很近的.

由于采用了全卷积,优点很明显,一是可以接受任意大小的输入图像,而不用要求所有的训练图像和测试图像具有同样的尺寸。二是更加高效,因为避免了由于使用像素块而带来的重复存储和计算卷积的问题。

中文笔记:wangxiao

CFNet

依然是牛津视觉研究所(CVPR 17).

paper:End-to-end representation learning for Correlation Filter based tracking

github-source

20170603149645808433027.jpg

提出 CFNet 的结构,在训练时加入一个 CF 滤波器.然后进行 crop .

介绍说是能够学习到更深层次的特征.而且可以实现实时.

第二个版本相比较于第一个版本利用了 CF 进行在线学习,它的速度比使用 SGD 更有效率.

这个提出将 CF 的在线学习的效率与 CNN 的辨别能力结合起来.然后说在足够深的网络中, CF 不能改善结果.
后面是大量的数学公式….

目标跟踪算法的评价方法

三个要求: 准确性 鲁棒性 高效性

  • 准确性
  1. 偏移(Deviation)
  2. 误检(False positive)
  3. 漏检(False negative)
  • 鲁棒性

在大多数不同的视频中表现性能都较高.能应对复杂多样的场景.

  • 高效性

实时性!

总体性能要求的评价准则

  1. 中心误差 (Center location error): 每一帧中跟踪器输出的矩形框中心与实际中心位置的欧氏距 离. 加和后取平均值为平均中心误差. 中心误差越小, 说明跟踪效果越好.

  2. 重叠率 (Overlap rate): 设 $S_T$ 是跟踪器输出的跟踪框区域, $S_G$ 为实际目标区域, 则重叠率的定义为两者的交集与并集的比值, 即:

    $ R = {{area({S_T}∩{S_G})} \over {area({S_T}∪{S_G})}} $

    , 重叠率越高, 说明跟踪效果越好.

  3. 成功率 (Success rate): 对于每一帧而言, 若中心误差小于一定阈值或重叠率大于一定阈值则认为该帧跟踪成功. 跟踪成功的帧数同视频序列总帧数的比值称为成功率.

  4. 精度图 (Precision plot) 与成功图 (Success plot): 将 3) 中所设置的阈值在一定范围内变动时, 会得到一系列的成功率数值所构成的曲线图, 当对应于中心误差时构成的曲线称为精度图; 对应于重 叠率时称为成功图.

  5. 时间鲁棒性度量 (Temporal robustness eval- uation, TRE) 和空间鲁棒性度量 (Spatial robust- ness evaluation, SRE). TRE 跟踪器用测 试视频序列中的随机的一帧进行初始化而不是第一帧, 作出其相应的成功图, 以此来衡量跟踪器在时间 轴上的鲁棒性. SRE 跟踪器用第一帧初始化, 但对 初始跟踪框位置进行了一定的平移、缩放等微小扰动, 做出相应的成功图, 以此来测试跟踪器能否在随后帧中稳定跟踪住目标.

  6. FPS (Frames per second) 每秒处理的帧数, 是一个用来衡量跟踪算法处理效率和速度的常用指标.

数据集

持续更新…

  • 图像识别 ImageNet

  • 目标检测 Pascal VOC

  • 视频检索 TRECVID

  • 视频跟踪 VTB , Object Tracking Benchmark , VOT

参考:

深度学习在目标跟踪中的应用

[^1]: 管皓, 薛向阳, 安志勇. 深度学习在视频目标跟踪中的应用进展与展望. 自动化学报, 2016, 42(6): 834−847

Buy me a coffe. XD