本文提出一种由顺序性跟踪动作控制的新颖跟踪器,该控制方法是从深度强化学习中学习到的。跟现有的使用深度网络的跟踪器相比,我们提出的跟踪器的设计思想是在实现令人满意的跟踪位置精度和跟踪尺度精度的同时,也得到一种轻量级计算。控制动作的深度网络,是在各种各样的训练序列上预训练过的,并且会在跟踪过程中微调,在线自适应目标和背景的变化。预训练是通过深度强化学习进行的,这同时也是一种有监督学习。强化学习的使用使得即使是被部分标记的数据也可以成功地用于半监督学习。通过OTB数据集的评估,提出的跟踪器将被验证,以达到跟踪速度是当前基于深度网络的先进跟踪器速度的三倍这样的一种竞争性能。该方法的快速版本,在GPU上实时运行,胜过了最先进的实时跟踪器。
视觉跟踪是计算机视觉领域的一个最基本问题。因为运动模糊、遮挡、光照变化、背景杂乱等跟踪障碍的存在,使得找到目标的准确位置很困难。传统跟踪算法跟踪目标使用低水平的手工特征。尽管它们实现了计算效率和可以比较的跟踪性能,但是由于缺乏足够的特征表示,在解决上述障碍方面仍然非常有限。近年来,基于卷积神经网络的跟踪方法在被用于实现鲁棒性的跟踪,并且在跟踪性能上有巨大的提升,这得益于卷积神经网络丰富的特征表示。几个跟踪算法使用的是在大规模分类数据集(例如ImageNet)上预先训练过的CNNs。然而,由于分类和跟踪问题之间存在差距,预训练好的CNNs模型不足以解决跟踪中比较棘手的问题。Nam等人提出一种基于在跟踪视频数据集预训练过的CNNs模型的检测跟踪算法,并且实现了跟传统算法相比更好的性能。然而,这种方法通常侧重于提升使用外观模型辨别目标和背景的能力,因此可能忽略一下问题:(1)采用效率低下的跟踪算法,即探索感兴趣区域并通过匹配跟踪模型来搜索最佳候选对象;(2)需要大量标记的跟踪序列进行训练,并且在半监督情况下不能使用没有标记的视频帧。
在本文中,为了解决上述问题,我们提出一种新的跟踪器,通过动作决策网络控制的重复性动作来实现目标的跟踪。本文提出的跟踪算法的基本概念在图1中描述。动作决策网络的设计就是要产生一个能在新一帧能找到目标位置和尺寸的动作。ADNet学习这样的一种策略,即从目标当前位置的状态中选择最优的动作来跟踪目标。在ADNet中,策略网络是用卷积神经网络设计的,它的输入是前一个状态的位置下裁剪得到的图像块,输出是包括平移和尺度缩放的动作概率分布。这个动作选择过程相比滑动窗口或者候选抽样方法有更少的步骤。另外,我们的方法可以精准定位目标,像边界框回归这样的后期处理我们是不需要的。
我们也提出一种基于有监督学习和强化学习的联合学习算法来训练ADNet。在有监督学习阶段,我们使用训练视频中提取得到的样本来训练我们的网络选择动作以跟踪目标位置。在这个阶段,网络学会了在没有序列信息的情况下跟踪一般物体。在强化学习阶段,我们把在有监督学习阶段训练好的网络作为初始网络。我们使用包含采样状态、动作、激励在内的训练序列进行跟踪仿真,进而实现强化学习。网络是采用基于策略梯度的深度强化学习进行训练,并且使用了跟踪仿真过程获得的激励。即使是在训练视频桢被部分标记的情况下(半监督),我们提出的算法,根据跟踪仿真结果分配激励,也同样成功学习了未标记的视频帧。
就像调查的那样,各种各样的跟踪器亦将在各种跟踪基准测试集上展示了它们的性能和有效性。基于检测跟踪的算法旨在建立一个判别式分类器,以便区分目标和背景。通常这些方法使用分类器检测大多数匹配位置来捕获目标。在线提升方法被提出,在线更新判别模型。多示例学习(MIL)和跟踪学习检测(TLD)方法被提出,用来更新对于噪声鲁棒的跟踪模型。基于相关滤波的跟踪方法,由于其计算效率和具有竞争性的性能表现吸引了众多目光。这种方法以一种比较低的计算负荷在频域学习相关滤波器。Bolme等人提出一种最小均方误差输出滤波器(mosse),Henriques等人提出一种带有多通道特征的核相关滤波器(KCF)。洪等人提出一种同时采用短期相关跟踪和长期内存存储的联合系统。Choi等人提出综合跟踪系统来处理各种类型的含有注意机制的相关滤波器。为了克服手工特征不能充分表示的问题,我们把深度卷积特征应用到相关滤波器中,并取得了领先水平的表现性能。然而,由于它们需要训练大量多尺度滤波器来应对尺度变化和计算深度特征,所以,它们比基于传统相关滤波器的放慢慢得多。
最近,基于卷积神经网络(CNN)的算法被提出用于跟踪。早期的尝试因为缺乏数据训练网络而困难重重。为了解决数据缺乏问题,转移方法被提出,即使用在诸如ImageNet等大规模分类数据集上预先训练好的CNNs。但是,这些方法因为目标分类与跟踪的不同领域而存在诸多限制。像最近提出的一些方法,通过在大量跟踪序列数据集上训练网络,成功克服这个领域限制。Held等人提出通过深度回归网络捕捉目标位置的方法,但是,由于在线更新模块的缺失,它在应对目标快速移动或者遮挡时仍然存在跟踪困难。Tao和Nam等人提出的检测跟踪算法能够区分目标和背景并成功实现领先水平的跟踪性能;但是,这些方法需要采用例如滑动窗和候选采样等计算效率低下的搜索算法。
强化学习的目标就是学习一种,通过最大化累积未来激励来决定顺序行为的策略。强化学习领域的目前趋势是,通过将强化学习模型表示为价值函数或策略来对深度神经网络和强化学习算法进行联合。通过使用深度特征,许多像玩雅达利游戏或Go等的难题可以在一种半监督的环境下成功解决。同样的,其他几种利用深度强化学习算法的方法,也被提出用于解决像目标定位或者动作识别等计算机视觉问题。
在深度强化学习算法里边有两种流行的方法:深度Q网络(DQN)和策略梯度。DQN是一种利用深度神经网络进行函数逼近的q-学习方式。DQN的目标就是学习一个状态动作值函数,这是通过深度网络最小化时间差分误差来实现。以DQN算法基础,像Double DQN 和DDQN等各种各样的网络架构被提出用于提升性能和保持稳定性。
策略梯度方法使用梯度下降法,通过优化关于未来预期激励的深度策略网络来直接学习策略。Williams等人提出了强化算法,简单的使用即时激励来估计策略的价值。Silver等人提出一种决定性跟踪算法,一体神在高纬度动作空间策略梯度的性能或有效性。在Silver等人的工作中显示,在使用策略梯度之前对策略网络进行有监督学习的预训练可以提升性能。在跟踪问题上,我们利用有监督学习的方法训练网络,来学习目标对象的外观特征;利用策略梯度的强化学习方法训练跟踪目标的动作动态。
视觉跟踪要解决的问题就是从当前位置找到目标在新一帧中的位置。我们提出的跟踪器是通过如图2所示的由动作决策网络(ADNet)控制的序列性动作来对目标进行跟踪。提出的网络预测了从跟踪器当前位置跟踪目标的动作。跟踪器利用预测到的动作从当前状态开始移动,然后从这个移动过后的位置来预测下一个动作。通过在测试序列上不断地重复这个过程,我们可以解决目标跟踪问题。ADNet不仅通过监督学习进行预训练,同样也经过强化学习进行预训练。在实际跟踪过程中,在线自适应也被执行。
基本上我们的跟踪策略遵循马尔科夫决策过程(MDP)。马尔科夫决策过程是由状态s、动作a、状态转移函数f、激励r组成。在我们的马尔科夫决策过程公式中,跟踪器被定义为一个代理,它的目的就是用一个边界框捕捉目标。动作是被定义在一个离散空间的,我们利用一系列的动作和状态反复的在每一帧中进行最终边界框位置和尺度的跟踪。
在每一帧,代理决定一些列连续动作直到找到目标位置,然后,进入下一帧。状态表示包括在目标的边界框和先前动作下的外观信息。代理通过决策自己是否成功跟踪目标,来获得第l帧最终状态的激励。状态和动作分别被表示为St,l和At,l。Tl代表第l帧的最终步骤,L代表视频帧数。第l帧的最终状态将被平移到下一帧。在接下来除了4.2和4.3的部分,当我们描述马尔科夫决策过程时,为了简化,每一帧我们都将省略下标l。
动作。动作空间A由11种动作组成,包括平移、尺度变化、停止动作,如图3.平移包括上下左右四个方向,当然也包括着四个方向两倍大的移动。尺度变化在保证目标宽高比不变的情况下,定义了尺度放大和缩小两种变化。每一个动作都用一种很火热的形式编码成11维向量。
状态。状态St被定义为一个元组(Pt,dt),Pt(112x112x3)代表边界框内图像块,dt(11x10,一个动作是11维向量,总共存储10个动作)代表动态操作,用一个向量表示,这个向量包括在第t个迭代过程中的前k个动作。图像块用4维向量表示,bt代表边界框的的中心和宽高……。在F帧图像中,第t次迭代的的图像块定义为公式(1)。预处理函数,按照bt标准从F帧中裁剪出图像块,然后再缩放到适合网络输入的尺寸(112x112)。动作动态向量dt的定义就是连接过去的k个动作向量。我们在动作动态向量里边存储过去的k个动作,一种很火热的流形编码函数。k=10。状态转移函数。在状态时做出动作的决策以后,下一个状态是从状态转移函数中得到:图像块转移函数和动作动态函数。图像块转移函数被定义为,通过相应动作移动图像块位置。移动增量定义为:
和 公式(2)
我们实验中=0.03,。。。。。。
如果我们选择停止动作,我们就把目标在当前帧中的图像块位置确定下来,代理(跟踪器)会收到这个激励,然后这个结果状态会被传递到下一帧的初始状态。
激励。由于代理从状态s处获得激励,跟动作a无关,所以。。。。激励在每一帧的马尔科夫决策过程迭代中都保持为0。(应该是只在每一帧的最终位置处有定义)。跟踪打分函数=,可以用来在强化学习中更新模型。
我们用预先训练好的VGG-M模型初始化我们的网络。像VGG-M一样小型的卷积神经网络模型,在视觉跟踪问题中,比深层的网络更加有效。如图2所示,我们的网络有3个卷积层,这跟VGG-M的卷积层是一样的。接下来的两个全连接层(fc4,fc5)是跟非线性relu层和丢弃层相结合,两个全连接层每个都有512个输出节点。全连接层fc5和拥有110维度的动作动态向量连接。最后的全连接层(fc6,fc7)预测了给定状态的动作概率和置信度分数。第i层的权重参数用表示,整个网络的参数用W表示。
fc6层有11个输出单元跟softmax层连接,代表着给定状态下的条件概率分布。条件概率分布代表着在状态下选择动作a的概率。如图2,网络反复定位目标位置。代理(跟踪器)连续地选择动作并更新状态直到最终定位目标位置。最后的状态是通过选择停止动作或在振荡情况下下降来达到的。例如,当序列性动作是(左右左)时,意味着代理将返回先前的状态,这就是发生了振荡。置信度层(fc7)产生在给定状态下对应目标或者背景类别概率的两个输出单元。目标概率被用作跟踪器在状态下的置信度分数,这个置信度分数在跟踪过程中用于在线自适应。
这一部分我们描述了动作决策网络的训练框架。首先,在离线模式下,我们用训练视频对网络进行有关监督学习(4.1)和强化学习(4.2)的预训练,使网络学会跟踪一般物体。在有监督学习阶段,训练网络对于一个给定状态预测出一个合适的动作。在强化学习阶段,在训练序列上进行跟踪仿真,并利用动作动态对网络进行更新。在对网络离线预训练后,进行了在线自适应(4.3),为了使网络适应在跟踪测试序列时目标的外观变化和形变。在4.4部分我们描述训练ADNet的实施细节。
在有监督学习节段,我们训练网络参数,{,……,}。我们首先需要产生训练样本来训练ADNet()。训练样本包括图像块{},动作标签,类别标签。在这个阶段,不需要考虑动作动态,我们把动作动态向量的元素设为0。训练数据集包括视频帧和真值图像块位置和尺度。通过对ground truth添加高斯噪声得到样本图像块,对应的动作标签通过公式(4)得到:
G是真值图像块,代表动作a之后从移动过后的新图像块。类别标签。 。。。。。。一个训练批次由一组随机选择的训练样本组成(从1到m个,每一个都是三部分)。我们使用随机梯度下降法最小化多任务损失函数来训练ADNet()。如下,多任务损失函数定义为最小化损失,(公式(6)中的i有何意义?)m代表批次个数,L代表交叉熵损失,。。。。。。
在强化学习阶段,我们训练除了fc7层以外所有的网络参数,,({,……,})。在这阶段,用强化学习训练网络的目的就是通过策略梯度方法的使用提升性能。初始的强化学习网络拥有和被监督学习训练()过的网络同样的参数。动作动态在每次迭代中都进行更新,更新方式为积累最近k个动作并且按照“先进先出”的策略移动它们。由于强化学习的目的就是学习状态动作策略,在跟踪阶段需要的fc7置信度层我们就忽略了。
用强化学习训练ADNet的细节算法在补充材料中描述,在训练迭代环节,我们首先随机选取一个训练序列。我们随后用被标注过的训练图像序列进行跟踪模拟,进行强化学习。一个跟踪模拟过程可以产生一系列的序列性状态,对应的动作和激励,对应时间是1到。。。,帧数是从1到L。状态下的动作被指定为:公式(7)
代表状态条件概率。当我们进行跟踪模拟时,跟踪分数{}是用真值{}来计算的。就像公式(3)定义的,跟踪分数是跟踪模拟在第l帧终止状态时的激励,跟踪成功为+1,失败为-1,。我们可以使用随机梯度下降法最大化预期跟踪分数来更新网络参数,如下公式(8).
如图4展示的半监督设置一样,即使只给定部分真值{},我们的架构依然可以训练ADNet。有监督学习的框架并不能够学习没有标记的视频帧,但是,强化学习可以以一种半监督的方式学习利用未标记视频帧。在强化学习中为了训练ADNet,跟踪分数{}应该被确定,但是在未标记序列中,跟踪分数不能立马确定。相反,我们指定跟踪分数到跟踪模拟结果的激励。换句话说,未标记数据跟踪模拟的结果评估的跟有标记数据一样成功的话,未标记帧的跟踪分数被给定为+1,若不成功,则为-1,如图4。
我们的网络是在跟踪过程中在线更新。在线自适应机制可以使跟踪算法在应对外观变化或者形变时更加鲁棒。当更新ADNet时,我们固定卷积滤波器{w1,w2,w3},微调全连接层{w4,w5,w6,w7},因为卷积层应该具有一般的跟踪信息,而全连接层应该有特定视频的知识。在补充材料中描述了所提出的跟踪和在线适应方案的详细过程。我们通过使用状态动作概率来决策序列性动作,实现跟踪。我们通过使用跟踪过程中生成的时间训练样本进行监督学习,进而微调ADNet实现在线自适应。有监督学习需要被标记的样本,进而需要确定真值(ground truth)。网络确定的图像块位置用来作为时间真值。跟监督学习类似,用于在线自适应的训练样本集(大花S),其中包括在被跟踪图像块位置周围随机采样得到的图像块集合{},和对应的动作标签及类别标签。标签通过公式(4)和公式(5)可以得到。初始帧,初始样本集(大花S)使用目标初始位置产生的,微调ADNet以适应给定目标。在后续帧,如果被估计目标的置信度分数大于0.5的话,我们采用被跟踪图像块的位置产生训练样本集(大花S)。状态下的置信度分数被定义为全连接层(fc7)的目标概率。我们使用训练样本集(大花Sk),每I帧在线自适应一次,这意味着采用过去J帧产生的训练样本集。当置信度分数低于-0.5,说明目标丢失,此时启动重检测模块再次不捕获目标。我们利用随机高斯噪声在当前目标位置产生目标位置候选。重检测目标位置通过公式(9)获得,。。。。。。。
通过目标位置和动态动作向量可以指定状态。
预训练ADNet。在每一帧,通过添加高斯噪声产生训练样本,噪声均值为零,协方差矩阵为。。。。。。预训练ADNet时,每帧采集250个样本。卷积层学习率设置为0.0001,全连接层设置为0.001,动量为0.9,权重衰减到0.0005,最小批次为128。预训练有K个视频,每个视频迭代300次。在强化学习的每次迭代过程,我们随机选取长度为L的序列进行跟踪模拟。
跟踪过程中的在线自适应。在线自适应,我们只训练全连接层,学习率为0.001。在初始帧,我们通过300次迭代进行微调ADNet,通过30次迭代进行在线自适应过程。每I(10)帧在线训练一次,训练数据从前边J(20)帧重采样。对于重检测,我们采集Ndet(256)个目标候选位置。在线自适应阶段,初始帧产生N1(3000)个训练样本,在跟踪过程中置信度分数大于0.5的帧产生N0(250)个样本。另外,为了减少实际跟踪中的计算量,我们可以采用ADNet快速版本即将少量样本用于在线自适应,被称为“ADNet-fast”。在“ADNet-fast”中,我们设置N1=300,N0=50,I=30, Ndet=64。使用ADNet-fast,性能下降3%,但是,实时速度比标准版本快4倍。
我们在广受好评的视觉跟踪基准测试集上评估我们的算法,跟现存跟踪器进行比较。同时,我们通过论证各种自我比较来验证ADNet的有效性。在我们的设置下,ADNet和ADNet-fast在GPU上分别以3 fps和15 fps运行。
我们评估算法用OTB-50和OTB-100。为了预训练ADNet,我们采用来自VOT2013,VOT2014,VOT2015和ALOV300等的训练视频,这些视频中跟OTB-50和OTB-100重复的已经被剔除在外。跟踪性能是通过包含中心位置误差和重叠率这两个指标的单通评估来测量的。中心位置误差测量的是被跟踪帧的中心和groundtrouth中心之间的距离,边界框重叠率测量的是被跟踪边界框和groundtrouth边界框之间的交比并重叠率。
自我比较。为了验证ADNet组件有效性,我们分析了ADNet的四种变形,并用OTB-100评估。我们首先进行最基本的“ADNet-init”,该网络没有进行预训练,简单采用初始参数;该网络卷积层参数采用VGG-M模型初始化,全连接层参数用随机噪声初始化。“ADNet+SL”是经过预训练的模型,并且采用训练序列中全被标记过的帧进行了有监督学习。“ADNet+SS”网络采用部分标记数据以半监督学习设定训练的,groundtrouth标记每10帧给一次。然后,我们利用强化学习分别训练ADNet+SL 和ADNet+SS,进而进行“ADNet+SL+RL”和 “ADNet+SS+RL”实验。ADNet+SL+RL就是我们提出的版本。精度和成功率的自我比较如图6。通过增加监督学习(SL)阶段,跟ADNet-init相比,ADNet+SL 和ADNet+SS在精度上分别提升了3.6%和2.6%。,这两者之间1%的精度差距是由于半监督学习缺乏真值标签。在进行强化学习阶段,ADNet+SL+RL 和 ADNet+SS+RL相比ADNet+SL 和 ADNet+SS,在精度上分别提升了1.9%和1.0%。结果显示,强化学习不仅可以提升监督学习下的性能,还可以提升半监督学习下的性能。
动作分析。在实验中,需要采用重检测的帧占全部帧数目的9%左右,需要超过五个动作来捕获目标的帧占全部帧只有4%左右,也就是说,大部分视频,每帧只需要少于5个动作来捕获目标。如图5 ,跟现存基于检测跟踪的跟踪器相比,我们的算法根据序列性动作捕捉目标的性能如图5。在图5第二列,绿色框,红色框,蓝色框分别代表以前目标位置,当前目标位置,和产生的候选候选目标。图5第三列,显示了基于选择序列性动作的ADNet网络的跟踪过程。我们搜索步骤包括需要的动作,重检测候选目标等,平均数是28.26每帧,比当前先进水平的跟踪器例如MDNet(平均步骤数目是256每帧)小得多。
我们以一种较为全面的方式,将ADNet与13中最先进的跟踪器进行比较。图7 展示了分别基于中心位置误差和重叠率的精度图和成功率图,表1用帧率总结了跟踪器跟踪性能的比较。我们的算法在精度和成功率上,都跟先进水平的跟踪器展现了可媲美的性能。我么的算法在计算上非常有效率,ADNet 比MDNet 和C-COT快大约三倍。ADNet-fast跟ADNet相比,性能下降3%,但是却达到实时速度(15帧/s),表1也展示了它跟其他基于卷积神经网络的跟踪其性能的比较。正如表1所示,ADNet-fast在所有实时跟踪算法里边性能最好。图8展示了ADNet选择序列性动作的例子。从初始位置(蓝色)到捕获的目标位置(红色)的边界框流显示在最左边的列中,状态的序列性转移也被图像块和选择的动作呈现出来。图9显示了该方法的一些失败案例。在铁人序列中,ADnet未能跟踪快速移动的目标,而所提出的动作无法适应潜水序列急剧的宽高比变化。
本文提出一种通过ADNet控制比较新颖的跟踪器,它跟踪目标是通过反复地序列性动作。据我们所知,这是采用经强化学习训练过的序列性动作进行跟踪的第一次尝试。基于动作的跟踪对于计算复杂度的降低贡献显著。另外,强化学习使得部分标记的数据可以使用,这将极大地惠及实际应用。根据评估结果,我们的跟踪器实现了3fps的先进水平性能,比现存基于深度网络并采用检测跟踪策略的跟踪器快3倍。此外,这款追踪器的快速版本实现了实时速度(15 fps),它的精度超过了最先进的实时追踪器。