目标跟踪综述(主要是深度学习)

摘要

近年来,深度学习方法在物体跟踪领域有不少成功应用,并逐渐在性能上超越传统方法。本文对现有基于深度学习的目标跟踪算法进行了分类梳理。

经典的目标跟踪方法

目前跟踪算法可以被分为产生式(generative model)和判别式(discriminative model)两大类别。

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

与之相对的,判别式方法通过训练分类器来区分目标和背景。这种方法也常被称为tracking-by-detection。近年来,各种机器学习算法被应用在判别式方法上,其中比较有代表性的有多示例学习方法(multiple instance learning), boosting和结构SVM(structured SVM)等。判别式方法因为显著区分背景和前景的信息,表现更为鲁棒,逐渐在目标跟踪领域占据主流地位。值得一提的是,目前大部分深度学习目标跟踪方法也归属于判别式框架(很明白)。

近年来,基于相关滤波(correlation filter)的跟踪方法因为速度快,效果好吸引了众多研究者的目光。相关滤波器通过将输入特征回归为目标高斯分布来训练 filters。并在后续跟踪中寻找预测分布中的响应峰值来定位目标的位置。相关滤波器在运算中巧妙应用快速傅立叶变换获得了大幅度速度提升。目前基于相关滤波的拓展方法也有很多,包括核化相关滤波器(kernelized correlation filter, KCF), 加尺度估计的相关滤波器(DSST)等。

基于深度学习的目标跟踪方法

不同于检测、识别等视觉领域深度学习一统天下的趋势,深度学习在目标跟踪领域的应用并非一帆风顺。其主要问题在于训练数据的缺失:深度模型的魔力之一来自于对大量标注训练数据的有效学习,而目标跟踪仅仅提供第一帧的bounding-box作为训练数据。这种情况下,在跟踪开始针对当前目标从头训练一个深度模型困难重重。目前基于深度学习的目标跟踪算法采用了几种思路来解决这个问题,下面将依据思路的不同展开介绍,并在最后介绍目前跟踪领域出现的运用递归神经网络(recurrent neural network)解决目标跟踪问题的新思路。

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

在目标跟踪的训练数据非常有限的情况下,使用辅助的非跟踪训练数据进行预训练,获取对物体特征的通用表示(general representation ),在实际跟踪时,通过利用当前跟踪目标的有限样本信息对预训练模型微调(fine-tune), 使模型对当前跟踪目标有更强的分类性能,这种迁移学习的思路极大的减少了对跟踪目标训练样本的需求,也提高了跟踪算法的性能。
这个方面代表性的作品有DLT和SO-DLT,都出自香港科技大学王乃岩博士。

DLT(NIPS2013)

Learning a Deep Compact Image Representation for Visual Tracking

DLT是第一个把深度模型运用在单目标跟踪任务上的跟踪算法。它的主体思路如上图所示:

(1) 先使用栈式降噪自编码器(stacked denoising autoencoder,SDAE)在Tiny Images dataset这样的大规模自然图像数据集上进行无监督的离线预训练来获得通用的物体表征能力。预训练的网络结构如上图(b)所示,一共堆叠了4个降噪自编码器, 降噪自编码器对输入加入噪声,通过重构出无噪声的原图来获得更鲁棒的特征表达能力。SDAE1024-2560-1024-512-256这样的瓶颈式结构设计也使获得的特征更加compact。

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

(3) 在目标跟踪非常重要的模型更新策略上,该论文采取限定阈值的方式,即当所有粒子中最高的confidence低于阈值时,认为目标已经发生了比较大的表观变化,当前的分类网络已经无法适应,需要进行更新。

小结:DLT作为第一个将深度网络运用于单目标跟踪的跟踪算法,首先提出了“离线预训练+在线微调”的思路,很大程度的解决了跟踪中训练样本不足的问题,在CVPR2013提出的OTB50数据集上的29个跟踪器中排名第5。

但是DLT本身也存在一些不足:

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

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

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

Transferring Rich Feature Hierarchies for Robust Visual Tracking

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

(1) 使用CNN作为获取特征和分类的网络模型。如上图所示,SO-DLT使用了的类似AlexNet的网络结构,但是有几大特点:
一、针对跟踪候选区域的大小将输入缩小为100*100,而不是一般分类或检测任务中的224*224。
二、网络的输出为50*50大小,值在0-1之间的概率图(probability map),每个输出像素对应原图2*2的区域,输出值越高则该点在目标bounding-box中的概率也越高。这样的做法利用了图片本身的结构化信息,方便直接从概率图确定最终的bounding-box,避免向网络输入数以百计的proposal,这也是SO-DLT structured output得名的由来。
三、在卷积层和全连接层中间采用SPP-NET中的空间金字塔采样(spatial pyramid pooling)来提高最终的定位准确度。

(2) 在离线训练中使用ImageNet 2014的detection数据集使CNN获得区分object和非object(背景)的能力。

SO-DLT在线跟踪的pipeline如上图所示:

(1) 处理第t帧时,首先以第t-1帧的的预测位置为中心,从小到大以不同尺度crop区域放入CNN当中,当CNN输出的probability map的总和高于一定阈值时,停止crop, 以当前尺度作为最佳的搜索区域大小。

(2) 选定第t帧的最佳搜索区域后,在该区域输出的probability map上采取一系列策略确定最终的bounding-box中心位置和大小。

(3) 在模型更新方面,为了解决使用不准确结果fine-tune导致的drift问题,使用了long-term 和short-term两个CNN,即CNNs和CNNl。CNNs更新频繁,使其对目标的表观变化及时响应。CNNl更新较少,使其对错误结果更加鲁棒。二者结合,取最confident的结果作为输出。从而在adaptation和drift之间达到一个均衡。

小结:SO-DLT作为large-scale CNN网络在目标跟踪领域的一次成功应用,取得了非常优异的表现:在CVPR2013提出的OTB50数据集上OPE准确度绘图(precision plot)达到了0.819, OPE成功率绘图(success plot)达到了0.602。远超当时其它的state of the art。
SO-DLT有几点值得借鉴:

(1) 针对tracking问题设计了有针对性的网络结构。

(2) 应用CNNS和CNNL用ensemble的思路解决update 的敏感性,特定参数取多值做平滑,解决参数取值的敏感性。这些措施目前已成为跟踪算法提高评分的杀手锏。

但是SO-DLT离线预训练依然使用的是大量无关联图片,作者认为使用更贴合跟踪实质的时序关联数据是一个更好的选择。

利用现有大规模分类数据集预训练的CNN分类网络提取特征

2015年以来,在目标跟踪领域应用深度学习兴起了一股新的潮流。即直接使用ImageNet这样的大规模分类数据库上训练出的CNN网络如VGG-Net获得目标的特征表示,之后再用观测模型(observation model)进行分类获得跟踪结果。
这种做法既避开了跟踪时直接训练large-scale CNN样本不足的困境,也充分利用了深度特征强大的表征能力。这样的工作在ICML15,ICCV15,CVPR16均有出现。下面介绍两篇发表于ICCV15的工作。

FCNT(ICCV15)

Visual Tracking with Fully Convolutional Networks

作为应用CNN特征于物体跟踪的代表作品,FCNT的亮点之一在于对ImageNet上预训练得到的CNN特征在目标跟踪任务上的性能做了深入的分析,并根据分析结果设计了后续的网络结构。

FCNT主要对VGG-16的Conv4-3和Conv5-3层输出的特征图谱(feature map)做了分析,并得出以下结论:

(1) CNN 的feature map可以用来做跟踪目标的定位。

(2) CNN 的许多feature map存在噪声或者和物体跟踪区分目标和背景的任务关联较小。

(3) CNN不同层的特征特点不一。高层(Conv5-3)特征擅长区分不同类别的物体,对目标的形变和遮挡非常鲁棒,但是对类内物体的区分能力非常差。低层(Conv4-3)特征更关注目标的局部细节,可以用来区分背景中相似的distractor,但是对目标的剧烈形变非常不鲁棒。

依据以上分析,FCNT最终形成了如上图所示的框架结构:

(1) 对于Conv4-3和Conv5-3特征分别构建特征选择网络sel-CNN(1层dropout加1层卷积),选出和当前跟踪目标最相关的feature map channel。

(2) 对筛选出的Conv5-3和Conv4-3特征分别构建捕捉类别信息的GNet和区分distractor(背景相似物体)的SNet(都是两层卷积结构)。

(3) 在第一帧中使用给出的bounding-box生成热度图(heat map)回归训练sel-CNN, GNet和SNet。

(4) 对于每一帧,以上一帧预测结果为中心crop出一块区域,之后分别输入GNet和SNet,得到两个预测的heatmap,并根据是否有distractor决定使用哪个heatmap 生成最终的跟踪结果。
小结:FCNT根据对CNN不同层特征的分析,构建特征筛选网络和两个互补的heat-map预测网络。达到有效抑制distractor防止跟踪器漂移,同时对目标本身的形变更加鲁棒的效果,也是ensemble思路的又一成功实现。在CVPR2013提出的OTB50数据集上OPE准确度绘图(precision plot)达到了0.856,OPE成功率绘图(success plot)达到了0.599,准确度绘图有较大提高。实际测试中FCNT的对遮挡的表现不是很鲁棒,现有的更新策略还有提高空间。

原文地址:https://www.cnblogs.com/liuboblog/p/12076467.html

时间: 2024-10-06 07:29:36

目标跟踪综述(主要是深度学习)的相关文章

目标检测梳理:基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN(转)

基于深度学习的目标检测技术演进:R-CNN.Fast R-CNN.Faster R-CNN(转) 原文链接:https://www.cnblogs.com/skyfsm/p/6806246.html object detection我的理解,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别.object detection要解决的问题就是物体在哪里,是什么这整个流程的问题.然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方

4. 基于深度学习的目标检测算法的综述(转)

4. 基于深度学习的目标检测算法的综述(转) 原文链接:https://www.cnblogs.com/zyly/p/9250195.html 目录 一 相关研究 1.选择性搜索(Selective Search) 2.OverFeat 二.基于区域提名的方法 1.R-CNN 2.SPP-Net 3.Fast R-CNN 4.Faster R-CNN 5.R-FCN 三 端对端的方法 1.YOLO 2.SSD 四 总结 在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络

深度学习之目标检测常用算法原理+实践精讲 YOLO / Faster RCNN / SSD / 文本检测 / 多任务网络 资源获取链接:点击这里 第1章 课程介绍 本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 1-1 课程导学 第2章 目标检测算法基础介绍 本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-sta

深度学习之目标检测常用算法原理+实践精讲

第1章 课程介绍本章节主要介绍课程的主要内容.核心知识点.课程涉及到的应用案例.深度学习算法设计通用流程.适应人群.学习本门课程的前置条件.学习后达到的效果等,帮助大家从整体上了解本门课程的整体脉络. 第2章 目标检测算法基础介绍本章节主要介绍目标检测算法的基本概念.传统的目标检测算法.目前深度学习目标检测主流方法(one-stage.two-stage.多任务网络).相关算法的基本流程.算法性能的评价指标.不同算法的优缺点和性能比较等,并结合实际的应用场景和案例来介绍目标检测算法的重要性和实用

深度学习在图像识别中的研究进展与展望

深度学习在图像识别中的研究进展与展望 深度学习是近十年来人工智能领域取得的最重要的突破之一.它在语音识别.自然语言处理.计算机视觉.图像与视频分析.多媒体等诸多领域都取得了巨大成功.本文将重点介绍深度学习在物体识别.物体检测.视频分析的最新研究进展,并探讨其发展趋势. 1.深度学习发展历史的回顾 现在的深度学习模型属于神经网络.神经网络的历史可以追溯到上世纪四十年代,曾经在八九十年代流行.神经网络试图通过大脑认知的机理,解决各种机器学习的问题.1986年Rumelhart.Hinton和Will

CVPR2018 单目标跟踪部分论文

from https://blog.csdn.net/weixin_40645129/article/details/81173088 CVPR2018已公布关于视频目标跟踪的论文简要分析与总结 一,A Twofold Siamese Network for Real-Time Object Tracking 论文名称 A Twofold Siamese Network for Real-Time Object Tracking 简介 此算法在SiamFC的基础上增加了语义分支,进一步提升Sia

《21个项目玩转深度学习:基于TensorFlow的实践详解》高清带标签PDF版本学习下载

1 写在前面 <21个项目玩转深度学习——基于TensorFlow的实践详解>以实践为导向,深入介绍了深度学习技术和TensorFlow框架编程内容. 通过本书,读者可以训练自己的图像识别模型.进行目标检测和人脸识别.完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测.搭建机器翻译引擎,训练机器玩游戏.全书共包含21个项目,分为深度卷积网络.RNN网络.深度强化学习三部分.读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和Tens

Python深度学习该怎么学?

Python想必对我们来说已经很熟悉了,Python的发展带来了一股学习Python的浪潮,聪明的人早已看准这个发展的好时机开始学习Python,那么我想问你知道Python深度学习是什么吗?不懂了吧,那让小编给你普及一下这方面的知识吧. 深度学习目前已经成为了人工智能领域的突出话题.它在"计算机视觉"和游戏(AlphaGo)等领域的突出表现而闻名,甚至超越了人类的能力.近几年对深度学习的关注度也在不断上升. 在这篇文章中,我们的目标是为所有Python深度学习的人提供一条学习之路,同

风险中性的深度学习选股策略

一.数据驱动型机器学习模型的问题 目前流行的机器学习方法,包括深度学习,大部分是数据驱动的方法,通过对训练集数据学习来提取知识.数据驱动型机器学习方法应用成功的前提是:从训练集数据中学习到的"知识"在样本外外推时依然适用. 当机器学习方法应用于投资领域时,一般是以历史数据作为训练集数据来训练模型,应用在未来的市场中.在深度学习多因子选股策略中,也是通过对历史股票行情数据的学习,来建立预测模型.此类机器学习方法在投资领域的应用是否会成功,取决于从历史数据中学习到的模型在未来的外推中是否有