Traking-Learning-Detection TLD经典论文部分翻译
摘要
本文研究视频流中未知目标的长期跟踪问题。在第一帧,通过选定位置和大小定义跟踪目标。在接下来的每一帧中,跟踪任务是确定目标的位置和大小或者说明目标不存在。我们提出了一种新颖的跟踪框架(TLD),明确地将长期跟踪任务分解为跟踪、学习和检测。跟踪器完成目标在图像帧间地跟踪。检测器集中到当前为止所有到已经观测到的外观,并在必要时纠正跟踪器。学习阶段估计检测器的误差并更新,避免将来的误差。我们研究怎样识别检测器的误差,并从误差中学习。开发了一种新颖的学习方法(P—N学习),通过一对“专家”来估计误差:1) P-专家估计漏检,2)
N-专家估计误报。通过离散动态系统对学习过程进行建模,同时发现了学习能保证改善的条件。描述了实时实现的TLD框架和PN学习。开展了广泛的定量评价,表明跟踪效果比最先进的方法有显著的提升。
引言
考虑由手持相机拍摄的视频流,描述了在相机视场中进出各种各样的目标。给定一个在单帧中图像中,用边界框定义的感兴趣的目标,我们的目标是在以后的每帧图像中,自动地确定目标边界框或者表示目标不可见。按照帧率处理视频流,并且处理过程应该能被无限长时间的执行。我们将这项任务称作长期跟踪,并在图1中进行了演示。
图1 在初始帧(LEFT)中,给定一个单独的边界框定义目标位置和范围,我们的系统实时地跟踪、学习和检测目标。红色的点表示目标不可见。
为了实现长期跟踪,有许多问题需要解决。关键的问题是当目标重新出现在相机视场时能检测到它。事实上,由于目标可能改变外观,就造成问题的恶化。于是初始帧的外观就无关紧要了。接着,一个成功的长期跟踪器应该能实时地处理尺度与光照变化、背景杂乱、部分遮挡。
长期跟踪可以从跟踪或者检测角度实现。跟踪算法估计目标运动。跟踪器只需要初始化,速度快,并产生平滑的轨迹。另一方面,它会在运行时积累误差(漂移)并且当目标从相机视场消失时,跟踪通常会失败。跟踪的研究旨在开发日益鲁棒的跟踪器以跟踪更长时间。跟踪失败没有被直接处理。基于检测的算法在每一帧中独立地估计目标位置。检测器不会漂移,当目标从相机视场消失时也不会检测失败。然而,需要离线训练阶段,因此不能应用到未知的目标。
我们研究的起点就是跟踪或检测都不能独立解决长期跟踪任务的可接受的事实。然而,如果它们能同时执行,一个从另一个中获益是很有潜力的。在运行中,跟踪器能够为检测器提供弱标记训练数据并提升它。检测器能够重新初始化跟踪器,并因此使跟踪失败最小化。
本文的第一个贡献是设计了一个新颖的工作框架(TLD),将长期跟踪任务分解为三个子任务:跟踪,学习和检测。每个子任务通过一个单独的元件处理,元件之间并行执行。跟踪器在帧与帧之间跟踪目标。检测器集中所有到目前为止已经观察到的外观,并在必要的时候纠正跟踪器。学习部分估计检测器的错误并更新它以避免未来出现同样的错误。
尽管许多各种各样的跟踪器和检测器存在,我们并不知道任何适合TLD工作框架的学习算法。这样的学习方法应该具有以下特点:1)反复处理复杂的跟踪经常失败的视频流,2)如果视频不能包含明显的信息也绝不会退化检测器,3)实时处理。
为了处理所有这些挑战,我们依靠包含在视频中的各种各样的信息源。比如,在一个单帧中,考虑用独立的图像块表示目标的位置。这个块不仅仅定义了目标的外观,而且决定了定义背景的外观周围的图像块。当跟踪这个图像块时,能发现相同目标的不同外观和更多的背景外观。这与标准的机器学习方法形成对比,标准机器学习方法认为单一样本与其他样本是独立的[1]。这就开启了如何在学习中有效利用视频中信息的有趣问题。
本文的第二个贡献是一个叫做P-N学习的新学习范式。在视频的每一帧中评估检测器。它的响应通过两个专家来分析:1)P-专家—识别漏检,2)N-专家—识别误检。估算的错误增大了检测器的训练集,检测器被重新训练来避免将来再发生这些错误。正如其他过程一样,P-N专家也自己制造错误。然而,如果一个专家的错误概率是在某一个限度内(将被分析量化),这些错误能够相互补偿以导致稳定的学习。
本文的第三个贡献是算法实现。我们演示了如何构建一个基于TLD跟踪框架和P-N学习的实时长期跟踪系统。系统实时地跟踪、学习和检测视频流中的目标。
本文的第四个贡献是现代方法在标杆测试数据集上的广泛评估,我们的方法取得了饱和的性能。因此,我们收集和评注了新的、更多挑战的数据集,也显示了比先进方法显著的提升。
下文的组织安排如下:第二章回顾了长期跟踪相关的工作。第三章介绍了TLD工作框架。第四章提出了P-N算法。第五章对TLD算法实现进行了评注。第六章执行了许多比较实验。文章以对未来研究的贡献和建议结束。
3 跟踪-学习-检测
TLD是被设计用来在视频流中对未知目标进行长期跟踪的工作框架。它的方框图如图2所示。这个工作框架的组件可被描述如下:基于目标在帧与帧之间的运动有限和目标是可见的假设,跟踪器在连续的图像帧中估计目标的运动。如果目标移出相机视野,那么跟踪器就很容易失败并且不会恢复。检测器独立处理每一帧图像,扫描整个图像以集中在过去已经观测和学习过的所有外观特征。跟其它检测器一样,TLD的检测器犯两种类型的错误:假阳性与假阴性。学习模块观测跟踪器与检测器的性能,评估检测器的错误,并生成训练样本以避免在未来发生同样的错误。学习模块假设跟踪器与检测器会失败。基于学习模块的贡献,检测器泛化更多的目标外观和区别目标与背景。
4 P-N学习
这一节研究TLD工作框架中的学习模块。学习模块的目标是提高在线视频流处理中目标检测器的性能。在每一帧中,我们希望评估当前检测器,识别它的错误,并且更新检测器以避免在未来再次发生。P-N学习的关键思路是检测器的错误可以被两种类型的“专家”识别。P-专家仅识别漏报,N-专家仅识别误报。两个专家自己也都会发生错误;然而,它们之间的独立性使它们能相互弥补自己的错误。
4.1小节用公式表示了P-N学习是一个半监督学习方法。4.2小节把P-N学习建模为离散动态系统,找到通过学习能够保证提升检测器性能的条件。4.3小节利用综合生成的专家进行了一些实验。最后,4.4小节使用P-N学习来训练目标检测并提出在实际中能够使用的专家。
4.1 公式化
用x表示来自特征空间中的样本,y表示来自标签空间的标签。样本集X为无标签的样本集,Y是标签集,L={(x,y)}为样本标签集。输入到P-N学习模块的是样本标签集Ll和无标签的样本集Xu,l<<u。P-N学习模块的任务是从标签集Ll中对分类器f:X->Y进行学习,并通过无标签的样本集Xu加强它的性能。分类器函数f是来自带参数Θ函数集F。函数集F受到在实现过程中的限制,在训练中固定,因此,训练过程就是对参数Θ的估计。
P-N学习由下面四个部分组成。
• 学习分类器。
• 训练集—标签样本训练集。
• 监督训练—用训练集对分类器进行训练的方法。
• P-N专家—在学习过程中生成正负训练样本的函数。如图3所示。
训练过程通过将标签样本集L插入到训练集中来初始化。训练集输入到监督学习模块以训练分类器,估计初始化参数Θ。学习过程通过迭代级联加强。在第k次迭代中,被先前迭代训练后的分类器分类器无标签的测试集。通过P-N专家分析分类器,评估被错误分类的样本。这些样本之后被加入到训练样本集中。迭代以重新训练分类器结束。这个过程一直到迭代收敛或者其它停止迭代的条件为止。
P-N学习的关键部分是评估分类器的错误。关键的思路是分开漏报估计与误报估计。基于此,未标记的样本集基于分类器被分为两个部分,每一个部分都被独立的专家分析。P-专家分析被分类为负样本的样本,估计漏报情况,给它们添加正样本标签,并加入训练集中。在第k次迭代中,P-专家输出正样本。N-专家分析被分类为正样本的样本,估计虚报情况,给它们添加负样本标签,并加入到训练集中。在第k次迭代中,N-专家输出负样本。P-专家增加了分类器的普适性。N专家增加分类器的分辨力。
监督引导相关的内容。为了把P-N学习放到一个更加广阔的上下文中,我们考虑一个已知标签的测试集X。在这种假设下,识别误分类的样本、纠正它们的标签并加入训练集中到是容易的。这种策略通常被叫做监督引导。利用这样监督引导进行训练的分类器主要关心分类边界,性能常常比随机采样训练样本集训练分类器更好。P-N学习能被视为一个普适于无标记情况下的标准监督引导,样本没有标签,并利用P-N专家进行估计。跟其他过程一样,P-N专家也会在样本标签估计中犯错。这样的错误在训练中传递。将在下面的小节中从理论上对其进行分析。
4.2 稳定性
这一小节分析P-N学习在分类器性能上的影响。我们假设一个抽象的分类器(最近邻分类器(NN)),它的性能在测试集Xu上进行测量。分类器初始化分类随机的未标记样本,纠正分分类错误,并将错误样本返还到P-N专家。出于分析的目的,我们考虑样本集Xu的标签已知的情况。
7 结论
在本文中,我们研究了在视频流中进行未知目标跟踪的问题,其中目标外观改变频繁并在相机的视野中进进出出。我们设计了一个新的工作框架,将任务分解为三个模块:跟踪,学习和检测。对学习模块进行了详细分析。我们已经证明,对单独的样本和未标记视频流,目标检测器可以采用如下的策略进行训练:1)评估检测器,2)估计一对专家的误差和3)更新分类器。每一个专家都专门用来识别特别类型的分类器误差,同时允许自己犯错误。学习模块的稳定性可以通过设计专家补偿它们的误差来实现。该理论的贡献是将这个过程公式化描述为离散动态系统,这让我们可以指定确保学习过程提升分类器性能的条件。我们证明了这些专家能够利用视频的时空关系。本文详细描述了工作框架的实时移植过程,并进行了广泛的实验。与相近的跟踪算法进行对比,我们方法的优越性清楚的表现出来了。算法的实现代码和TLD测试集已在网上提供。
8 局限性和未来的工作
有若干挑战需要被提出,以得到基于TLD的更可靠和一般性的跟踪系统。例如,TLD对平面外的完全旋转的情况执行效果并不好。在这样的情况下,只有目标以已被观测/学习的外观再次出现,中值流跟踪器才能从目标偏移后重新初始化。当前实现的TLD仅在跟踪器和检测器保持固定时才进行训练。结果是跟踪器总是犯同样的错误。一个有趣的扩展还将是训练跟踪器模块。多目标跟踪是一个关于如何联合训练模型及共享特征以保持目标尺度的有趣问题。当前版本的TLD对于链接目标执行的并不好,比如行人。对于限制的场景,比如静态相机,TLD的一个有趣拓展将包括背景抽取以提高跟踪性能。
Traking-Learning-Detection TLD经典论文部分翻译的更多相关文章
- 经典论文翻译导读之《Google File System》(转)
[译者预读] GFS这三个字母无需过多修饰,<Google File System>的论文也早有译版.但是这不妨碍我们加点批注.重温经典,并结合上篇Haystack的文章,将GFS.TFS ...
- 经典论文系列 | 缩小Anchor-based和Anchor-free检测之间差距的方法:自适应训练样本选择
前言 本文介绍一篇CVPR2020的论文,它在paperswithcode上获得了16887星,谷歌学术上有261的引用次数. 论文主要介绍了目标检测现有的研究进展.anchor-based和 ...
- 【论文解析】MTCNN论文要点翻译
目录 0.论文连接 1.前言 2.论文Abstract翻译 3.论文的主要贡献 4.4 训练 5 模型性能分析 5.1 关于在线挖掘困难样本的性能 5.2 将人脸检测与对齐联合的性能 5.3 人脸检测 ...
- 巨经典论文!推荐系统经典模型Wide & Deep
今天我们剖析的也是推荐领域的经典论文,叫做Wide & Deep Learning for Recommender Systems.它发表于2016年,作者是Google App Store的 ...
- 经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷
前言: 目标检测的预测框经过了滑动窗口.selective search.RPN.anchor based等一系列生成方法的发展,到18年开始,开始流行anchor free系列,CornerNe ...
- PointCloud及其经典论文介绍
这篇博客会介绍点云的基本知识,重点介绍最近两年发表的部分经典论文,有什么建议欢迎留言! 点云基本介绍 点云是某个坐标系下的点的数据集,包含了丰富的信息,可以是三维坐标X,Y,Z.颜色.强度值.时间等等 ...
- Memory Networks01 记忆网络经典论文
目录 1.Memory Networks 框架 流程 损失函数 QA 问题 一些扩展 小结 2.End-To-End Memory Networks Single Layer 输入模块 算法流程 Mu ...
- 经典论文系列| 实例分割中的新范式-SOLO
前言: 这是实例分割中的一篇经典论文,以往的实例分割模型都比较复杂,这篇论文提出了一个简单且直接的实例分割模型,如何设计这种简单直接的模型且要达到一定的精度往往会存在一些困难,论文中有很多思路或思想值 ...
- Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)
摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...
随机推荐
- Bzoj 2154: Crash的数字表格(积性函数)
2154: Crash的数字表格 Time Limit: 20 Sec Memory Limit: 259 MB Description 今天的数学课上,Crash小朋友学习了最小公倍数(Least ...
- Java中的位运算及简单的算法应用介绍
众所周知,计算机底层是二进制.而java作为一门计算机编程语言,也对二进制的位运算提供了完整的支持. 在java中,int是32位的,也就是说可以用来实现32位的位运算.方便起见,我们一般用16进制对 ...
- Code Chef JUNE Challenge 2019题解
题面 \(SUMAGCD\) 先去重,易知答案一定是一个数单独一组剩下的一组,前缀后缀\(gcd\)一下就行了 //quming #include<bits/stdc++.h> #defi ...
- 数据结构实验之查找二:平衡二叉树 (SDUT 3374)
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { int data; ...
- Go工程项目方面注意
1.同一个文件夹下的包名必须相同 2.文件夹下go文件使用的包名不是必须同文件夹名,但建议包名同文件夹名 3.不用目录包名不同 4.调用不同包里面的函数格式:包名.函数名(...) 5.包导出给外部使 ...
- CF1215题解
E 假设从小到大排序,每次交换相邻两个,最小次数即冒泡排序也就是逆序对 考虑值域较小,把每个值映射到\([1,20]\) 设\(f_i\)为已经加入集合为\(i\)的值的最小逆序对个数,考虑填表法 即 ...
- 中山纪中集训Day4双是测试(划沝) 九校联考-DL24凉心模拟Day2
A组T1 锻造 (forging) 1.1 题目背景 勇者虽然武力值很高,但在经历了多次战斗后,发现怪物越来越难打于是开始思考是不是自己平时锻炼没到位,于是苦练一个月后发现......自己连一个史莱姆 ...
- Bootstrap select多选下拉框实现代码
前言 项目中要实现多选,就想到用插件,选择了bootstrap-select. 附上官网api链接,http://silviomoreto.github.io/bootstrap-select/. 没 ...
- java判断A字符串中是否包含B字符
java.lang.String类提供的方法 public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true. 例如: ...
- pdf 中内容的坐标系
PDF Page Coordinates (page size, field placement, etc.) AcroForm, Basics, Automation Page coordinate ...