论文全名:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking(MDNet)
论文摘自CVPR 2016,由Hyeonseob Nam、Bohyung Han撰写。
摘要
训练:(1)使用大量视频训练CNN;(2)网络由共享层和域特定层(二分类)组成。通过迭代训练网络中的每个域,获得共享层中的通用目标表示。
测试:(1)在一个视频序列中,作者将预训练CNN中的共享层与新的二分类层(在线更新)组合来构建新网络。(2)对于在线更新,对之前目标位置周围进行随机采样获得候选窗,通过评估来跟踪。
1 前言
挑战:
具有完全不同特征的视频序列来学习一个统一的CNN算法表示。其中:(1)单个序列的目标类型不同;(2)算法受到序列中特定的变化:遮挡,变形,光照条件变化,运动模糊等;(3)相同类型的对象在一个序列中视为目标,而在另一个中可能就是背景。
作者提出:Multi-Domain Network(MDNet)
训练:(1)每个序列作为单独的Domain(单独训练)
(2)在网络的最后,有一个Domain-specific层(也用于共享学习)的分支进行二分类,
(3)共享从之前层中的所有序列信息用于学习,共享层在每次迭代中都会更新。
特点:MDNet与分类任务的网络(AlexNet、VGG)相比,网络层数很少。
测试:(1)删掉在训练阶段中使用的二分类层的所有分支,构建新的分支计算其目标分数。
(2)在线微调共享层中的新的分类层和全连接层。
(3)对目标长期和短期变化进行建模,并且在学习过程中结合了难分样本挖掘(hard negative mining)思想。
主要贡献:
•训练:提出了一个基于CNN的多领域学习框架,它将域无关的与Domain-specific域的信息分开,以有效地捕获共享表示。
•测试:预训练的CNN在序列的上下文中在线更新,并自适应地学习Domain-specific域的信息。
•评估:在OTB2015与VOT2014表现出色。
本文的其余部分安排如下。我们首先回顾第2节中的相关工作,并在第3节讨论我们用于视觉跟踪的多领域学习方法。第4节描述了我们的在线学习和跟踪算法,第5节展示了两个跟踪基准数据集中的实验结果。
2.相关工作
2.1 跟踪算法
(1)生成方法(生成目标外观建模):稀疏表示,密度估计和增量子空间学习;
(2)判别方法(区分目标和背景建模):MIL,TLD检测跟踪学习,在线提升,结构化输出SVM 等。
(3)相关滤波算法:MOSSE,KCF,DSST ,MUSTer 。
2.2 卷积神经网络
(1)AlexNet:通过使用大规模数据集和高效的GPU实现训练深度CNN;(2)R-CNN:将CNN应用于训练数据稀缺的目标检测任务。(3)CNN在跟踪之前已经进行了离线训练并且之后被修复。(4)DeepTrack提出了一种基于CNN池的在线学习方法,但缺乏训练数据导致准确性不好。(5)最近的一些方法[39,20]在大规模数据集上预训练CNN,但分类和跟踪之间存在差异,该表示不是很有效。
作者提出的算法用大规模跟踪数据来预训练CNN,结果很好。
2.3 Multi-Domain学习
MDNet的预训练CNN属于Multi-domain学习:训练数据源自多个域,且域信息被并入学习过程中。
3.MDNet训练
本节描述了我们的CNN架构和多域学习方法,以获得视觉跟踪的与域无关的表示。
3.1 网络架构
网络架构如上图所示:
输入:107×107×3
架构:
三个卷积层(conv1-3) | 两个全连接层(fc4-5) | 一个(K分支)全连接层(fc61-fc6K) |
与VGG-M架构 (data:ImageNet)相同 | 与ReLU相同,防止过拟合 | softmax交叉熵损失的二分类层 |
隐藏层(共享层) | Domain-specific层(区分目标与背景) |
特点:
(1)视觉跟踪仅区分目标和背景两个类,模型复杂性小。
(2)选择的网络层数较少,原因:随着网络的深入,空间信息会逐渐消失。
(3)视觉跟踪中的目标通常很小,从而减小了网络的深度。
(4)训练和测试是在线进行的,当使用更大的网络时,算法不太准确并且变得更慢。
3.2 学习算法
目标:在任意域中训练Multi-domain CNN来消除对目标和背景变化
域的共同特征:对照明变化、运动模糊、尺度变化的鲁棒性等
实施方式(将与域无关的信息与Domain-specific层分离出):CNN由随机梯度下降(SGD)方法训练。(1)对于Domain-specific层,在第k次迭代中,由第(kmod K)序列的一小批量训练样本来更新全连接层网络,直到网络收敛或达到预定义的迭代数;(2)对于共享层,对与域无关的信息进行建模,获得通用特征表示。
4.MDNet测试
测试阶段,将训练阶段的Domain-specific层(fc61-fc6K)替换为单个层(fc6),在线调整共享层和Domain-specific层。
【1】模型更新:Long-term update(长时间收集的目标的正样本)+Short-term update(检测到潜在目标跟踪失败【目标被误认为背景】时使用短期的正样本)。对于负样本:用Short-term时的负样本。注意:通过目标外观变化速度执行更新。
【2】实施过程:在之前目标周围采N个候选:,用网络来评估,得到正分数和负分数。找到x*满足:(1)。
【3】提取负样本:在测试时,检测出目标的方法为:难分负样本挖掘(hard negative mining)思想
实施方式:在小批量(包括正样本与难分负样本)选取中,采用难分负样本挖掘思想,其中,样本是由测试中的负样本产生,并选择中分数最大的作为难分负样本。
特点:能有效地识别关键的负样本,而无需明确地运行检测器来提取误报。
【4】边界框回归:问题:基于CNN的特征的高抽象+数据增强策略(在目标周围采取多个正样本),导致网络有时无法找到目标
办法:用检测算法的边界框回归方法,提高目标定位精度。
实施方式:(1)通过第一帧目标位置附近样本的conv3特征,训练一个简单的线性回归模型使定位精确;(2)在随后的帧中,如果通过回归模型计算出的目标可靠(比如,其中x*满足式(1)),则调整目标位置。
特点:(1)该回归器仅在第一帧中训练;(2)该回归器与RCNN具有相同的参数(1000个训练样本)与方法。
【5】实施细节:
我们的跟踪算法的整个过程在算法1中给出,设与分别为短期和长期的帧大小。
初始化:(表示第j层的权重)为MDNet预训练的结果,为随机初始化的结果。
跟踪测试阶段:固定不变,在线更新
具体细节:
(1)生成目标候选:从前一帧中选择服从高斯分布的个样本:,对应的协方差是对角阵,其中r是帧中目标的宽高的平均。每个候选框都将以倍的尺度放大。
(2)训练数据:
训练:在每个帧有50个正样本(IOU0.7)和200个负样本(IOU0.5);
测试:对第一帧有个正样本和个负样本,对后续每一帧个正样本(IOU0.7)和个负样本(IOU0.3)。
(3)网络:
训练:对于K个序列,网络需要进行100K次迭代训练,其中层的学习率为0.0001,层的学习率为0.001。
测试:【1】初始帧:全连接层进行30次迭代训练,的学习率为0.0001,层的学习率为0.001。【2】后续帧:全连接层10次迭代,的学习率为0.0003,层的学习率为0.003。动量(0.9)和权重衰减(0.0005)。
5.实验
评估数据集:OTB2015和VOT2014
平台:MatConvNet工具箱,八核2.20GHz Intel Xeon E5-2660,一个NVIDIA Tesla K20m GPU
速度:约为1fps
5.1 OTB2015
评估指标:中心位置误差和边界框重叠率。
评估标准:OPE
算法比较:MDNet(训练集:VOT2013、2014、2015的58个序列),MUSTER,CNN-SVM,MEEM,TGPR,DSST,KCF,SCM和Struck
5.2 VOT2014
测试数据:VOT2014的25个序列
评估指标:精度(平均IOU)与鲁棒性(跟踪失败次数)
算法比较:MDNet(训练集:OTB100的89个序列),MUSTER,SAMF,MEEM,DSST,KCF,DGT和PLT_14。