LTMU论文解析
LTMU
第零部分:前景提要
一般来说,单目标跟踪任务可以从以下三个角度解读:
- A matching/correspondence problem.把其视为前后两帧物体匹配的任务(而不考虑在跟踪过程中物体外观的改变,也就是不会因为物体外观更改而更改模型)。
- An appearance learning problem.外观学习的任务(需要在测试时fine-tune网络)。例如MDNet
- A prediction problem.一个目标检测的任务,例如:ROLO = CNN + LSTM。就是使用LSTM来模拟物体在整个视频中的运动状态。
LTMU主要关注的是外观学习的任务中模型更新的机制,即第二个任务。
而对于第二个任务,其模型按照定位目标框的方式通常分为两类:稀疏采样和密集采样。
稀疏采样——以MDNet为例:
由于第二个会对模型的外观信息进行实时更新,因此我们不妨优先来看一下MDNet:

训练过程:简单来说,对于K个视频序列,该网络会设置K个fc_6层,对于每次迭代,会输入第k个视频序列,去训练相应的第k个fc_6层。这样,一个epoch,就是每个fc_6层被依次训练一次。训练实际上是一个分类问题,这也就意味着具有位置信息的框是训练前就生成的。对于每一个序列,在训练前会根据GT,抽取该视频中的8帧,每一帧会生成4个正框(IoU>0.7)以及12个负框(IoU<0.5),即一个序列生成32个正例和96个负例。每次迭代根据交叉熵损失更新各层。

测试过程:在第一帧的框周围生成一系列框,通过上面的分类器得到最优的那个框(得到之后可以通过BBox regression调整一下位置),再用一些正例去更新网络,再次进入下一帧。
而测试过程中,后面框更新是由前一帧框的周边进行随机采样,选取得分最高的那个获得的,也就是稀疏采样。
密集采样——以ATOM为例:

ATOM则是采用“分类即定位”(类似RPN网络),通过前后景分类得到物体可能在的一个置信度分布图得到最高置信度点。之后在这个点周围,按照参考帧(上一帧)的框的大小随机生成一些不同尺度(变化不会特别大)的框,将这些框送入到IoU预测器中,去预测这些框的IoU得分值
IoU预测器:IoUNet的方式是有类别信息的,比如对于狗这个类,该预测期能够得到该框覆盖狗的IoU。而本文的IoU预测器,则是先把模板帧的图和BBox得到IoU Modulation中,获取到相应的向量,最后和当前的框获得相应的IoU。
而LTMU则是针对密集采样的Online部分模型更新的策略进行改进的一个机制,以使得模型能够处理long-term tracking的任务。
下面进入论文解析阶段:
第一部分:引入
对于long-term跟踪器,一般需要满足以下要求:
long-term跟踪器要求具备处理目标频繁消失和出现的能力,即需要有较强的再检测能力。因此,需要能够选择何时进行在线部分的更新,何时不需要。
- 为了表示跟踪错误或者当前帧没有目标存在而拒绝更新这一机制,作者提出了一个指标TNR,即所有跟踪错误的帧不进行更新的比例。像上面ATOM有一定的拒绝更新的能力,ATOM能够根据分类得到置信图来判断是否需要更新。
跟踪器由于存在长时间更新的要求,可能会有目标跟的位置、尺度上的偏差,背景的变化从而可能累计误差,被噪声样本污染模型。因此需要有对抗污染的机制。
本文做的工作:
- 提出一种元更新器指导如何更新在线部分的模型。
- 提出一套long-term tracking的框架。
第二部分:元更新器MU

如上图,定义了一些记号。

如上图所示,第二个小图中,从人类角度看来,跟的是比较准的,但是其在置信图中,其峰值比较低。同样,在第三张图中出现了双峰值,但其实也是能跟着目标点,而其最大相应值则处于更低的状态(以至于完全可以视为更丢了)。而最后一张图已经更丢了,却有一个较高的相应值。
即有两种问题:
- 目标对但是置信值低
- 目标错但是置信值高
为了解决这两个问题,作者考虑到希望能够设计一个网络,去学习到是否要更新,即所谓的元更新器。为此作者考虑了以下的信息:
几何信息:

判别信息:
得分(峰值):

得分图:![image-20201103224503978]

一般会通过一个CNN层提取到整个图的特征,为了应对目标对但置信值低。
外观信息

即当前图和第一张图之间的外观差距(度量距离),用来处理目标错但是置信值高的现象。时序信息:利用三级级联的LSTM,将上面三者得到的vector(同时concat前面一段帧数的特征)作为输入,输出是否要进行更新的值。
总体如此图:

而其中的一些网络,都是与预训练好的。然后对于LSTM级联则是下面这种训练方式:
- 如何训练?

- 先用一般的跟踪器跑一下送入的视频序列,这样能够得到第一遍的每个样本BBOX。前面已经讲了,每次送入到MU中的是[t-ts+1,t]这ts帧的特征。而该二分类网络的GT则是按照

也就是在第一遍的时候,我们获得了训练这个网络的所需内容。于是可以进行第一轮的训练。 - 之后跑的时候,由于存在了MU可以告知是否应该用该BBOX对跟踪器进行训练,因此跟踪器会得到fine-tune,此时再次进行第一步中的方式:跑一遍视频序列,得到可能与上次不尽同的label,再次训练MU。
于是MU就训练完毕。
由上面的MU就可以得到一个长期更新框架。
第三部分:长期跟踪框架

现在,我们拥有了一个一个MU用来控制模型的更新,等于解决了要不要更新问题,而对于啥时候跟丢我们直接采用使用另外一个不同的跟踪器进行确认,因此我们就知道了什么时候应该重新找目标和什么时候应该fine-tune我们的tracker。
对于什么时候应该fine-tune我们的tracker:即上图Local tracking部分,其中local tracker和verifier都是tracker(一般会使用不同的跟踪器)。视频序列输入时,由local tracker控制跟踪,由verifier验证跟的位置对不对,由MU控制更新(对两个跟踪器都要)。然后就能够得到置信度。根据置信度去选择继续fine-tune还是全局搜索,重新寻找目标。
对于什么时候应该重新找目标:即上图Global search部分。当需要重新寻找目标时,会使用一个检测器(如faster-rcnn)得到一些候选框,选取每个候选框的周边区域,然后用SiamRPN利用模板帧和该区域进行搜索,看看是不是能找得到目标,找不到,就直接跳到下一帧,重复该过程。找到了,就进入Local tracking部分。
个人认为该框架有冗余,其实存在优化的地方。
第四部分:结果

注:作者使用的是自己魔改过的RTMDNet(即表中的MBMD)作为local tracking。


注:TNR是错误帧中不更新的比例,TPR是正确帧更新的比例,MaxGM是前两者权衡
而对于一般的跟踪器,在long-term任务上,MU也能够做到一个比较大的提升:

LTMU论文解析的更多相关文章
- [Network Architecture]Mask R-CNN论文解析(转)
前言 最近有一个idea需要去验证,比较忙,看完Mask R-CNN论文了,最近会去研究Mask R-CNN的代码,论文解析转载网上的两篇博客 技术挖掘者 remanented 文章1 论文题目:Ma ...
- CVPR2020论文解析:实例分割算法
CVPR2020论文解析:实例分割算法 BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation 论文链接:https://arxiv ...
- 人脸真伪验证与识别:ICCV2019论文解析
人脸真伪验证与识别:ICCV2019论文解析 Face Forensics++: Learning to Detect Manipulated Facial Images 论文链接: http://o ...
- 人体姿态和形状估计的视频推理:CVPR2020论文解析
人体姿态和形状估计的视频推理:CVPR2020论文解析 VIBE: Video Inference for Human Body Pose and Shape Estimation 论文链接:http ...
- 视频教学动作修饰语:CVPR2020论文解析
视频教学动作修饰语:CVPR2020论文解析 Action Modifiers: Learning from Adverbs in Instructional Videos 论文链接:https://a ...
- 分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析
分层条件关系网络在视频问答VideoQA中的应用:CVPR2020论文解析 Hierarchical Conditional Relation Networks for Video Question ...
- 慢镜头变焦:视频超分辨率:CVPR2020论文解析
慢镜头变焦:视频超分辨率:CVPR2020论文解析 Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resol ...
- CVPR2020论文解析:视觉算法加速
CVPR2020论文解析:视觉算法加速 GPU-Accelerated Mobile Multi-view Style Transfer 论文链接:https://arxiv.org/pdf/2003 ...
- CVPR2020论文解析:视频语义检索
CVPR2020论文解析:视频语义检索 Fine-grained Video-Text Retrieval with Hierarchical Graph Reasoning 论文链接:https:/ ...
随机推荐
- ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)
一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...
- lerna管理前端模块实践
最近在工作中使用了 lerna 进行前端包的管理,效率提升了很多.所以打算总结一下最近几个月使用 lerna 的一些心得.有那些不足的地方,请包涵. 该篇文章主要包括在使用 lerna 的一些注意事项 ...
- 源代码 VS 汇编代码 VS 目标代码 VS 字节码 VS 机器码
1.源代码(source code) 源代码就是平时我们开发的代码:比如C.Java.Python.Shell...等 public class HelloWorld { public static ...
- 彻底理解RSA加密算法
RSA是非常典型的非对称加密算法 它的算法是这样的 加密是我们把明文M转化成密文C 需要用到加密运算 而解密时我们要用解密运算将密文C转化成M 从表达式中 可以看出 e和d使我们需要确定的参数 而N是 ...
- javascript常见面试题之一:数组的冒泡排序;
var arr=[32,2,7,78,90,10]; //外层循环控制轮数: for (var i = 0; i < arr.length; i++) { //内层循环控制次数: for (va ...
- 基于Python与命令行人脸识别项目(系列二)
接着系统一,继续开始我们face_recognition. Python 模块:face_recognition 在Python中,你可以导入face_recognition模块,调用丰富的API接口 ...
- Graph-to-ID task
首先图像是一个二维的结构,CNN提取图片的特征,但是是local的,通过kenel的形式,不断的图上移动,通过卷积的形式, 无论移动到哪个位置,内部的结构都是不变的,这就是参数共享. 这个所说的图像显 ...
- Tomcat8升级后URL中特殊字符报错出现原因
请求带上花括号等字符,请求无法送达服务端,报错: Failed to load resource: the server responded with a status of 400 () https ...
- 使用 Dockerfile 文件但是不使用缓存生成镜像
前一段时候使用 Dockerfile 重新部署 NetCore3.1 项目的时候很顺利,由来由于一些原因,我把以前的镜像删除,如果我们大家继续使用 docker build 命令去生成镜像的话就会报 ...
- mysql增删改查语法
MySQL 关注公众号"轻松学编程"了解更多. MySQL是关系型数据库,对大小写不敏感. MySQL属于关系型数据库, 优点: 复杂查询 可以用SQL语句方便的在一个表以及多个表 ...