Learning Discriminative Model Prediction for Tracking 论文地址

写在前面

又是MD大神的一个作品,发现MD大神也把Siamese的框架用起来了,而且一用就解决了Siamese这个框架的三大固有问题,论文还是延续了我看不懂的风格,很多机器学习和概率统计中的知识,自己基础不够扎实了。

Motivation

  • Siamese的网络框架一般都只是把模板割出来,忽略了背景信息的利用,而背景的信息对目标的检测定位也是至关重要的;
  • 因为跟踪一般都是很多没有见过的类,通过offline学习的相似性度量可能不是很适用;
  • Siamese的框架没有一个合适的模型更新方式。

Contribution

  • 解决了上面三个问题。。。
  • 速度很快,40帧左右,在各大benchmark上都是state-of-the-art的结果。

Algorithm

这块比较难懂,我就简单讲一下。这篇文章的理论基础在于:1)一个判别力强的损失函数可以指导网络学到鲁棒的特征;2)一个powerful的优化器可以加快网络收敛

上图就是本文的网络结构,前面的额backbone网络就是用来提特征的,然后这个特征后面加了一个卷积block来对特征进行分类?(文章里好像就没说这个东西,就在ablation实验中做了)。训练用的是一个集合的方式,得到多个不同的feature map,然后再通过Model Predictor D来预测最终用来分类的模型f,接下来简单介绍一下文中的各个部分。

1 Discriminative Learning Loss

他们提出了一个概念,就是单纯以图片对方式训练,传统的岭回归问题只会让网络过分注意于优化负样本的影响,而忽略了学到的正样本的特征本身的判别能力。为了解决这个问题,他们用了SVM中使用的hinge-like 损失,就是不仅将前景背景分开,更加使得两类之间有一定的距离,使得分类结果更好。
最后他们将背景类的loss都量化成 >=0 的,其实就像focal loss那样,不过他们是直接把那些简单的负样本去掉,最后的损失函数定义如下:

其中mc代表target的mask,正样本就用正样本的score,负样本的话就用大于零的,即被错分的样本。这里和别人的文章不一样的地方是,它的 m c , v c , λ , y c m_c, v_c, \lambda, y_c mc​,vc​,λ,yc​ 都是网络中自己学到的,并不是人工指定的。

2 Optimization-Based Architecture

他们表示使用固定的学习率不仅会导致模型迭代次数多,获得的精度也不够理想,所以他们自己设计了一个梯度下降的方式,自适应的学到学习率。这里的策略就是希望梯度下降沿着最陡的方向走(好像是很多年前机器学习理论里的优化方式),这一块文章里贴了公式和说明,但是我看不懂,就不详细讲了。

3 Initial filter prediction

这个模型初始化就是将所有的bbox里面的东西取平均,就像原始的Siamese网络一样,只不过在这里只用于初始化,后面还会训练更新。

4 Learning the Discriminative Loss

这个部分就解释了刚刚公式2和其中的参数是如何学习的, m c , v c , λ , y c m_c, v_c, \lambda, y_c mc​,vc​,λ,yc​ 都是根据与目标中心距离决定的,不过不是简单的高斯,而是转化到对偶空间求,啊~看不懂。反正这些东西都是自适应的,代码开源了之后会更容易懂一些吧。

5 Offline Training

训练的时候是用多个图片对训练的 ( M t r a i n , M t e s t ) (M_{train}, M_{test}) (Mtrain​,Mtest​), 这些样本是从同一个序列中抽样出来的,对于给定的样本对,先是用特征提取网络提取到对应的特征 ( S t r a i n , S t e s t ) (S_{train}, S_{test}) (Strain​,Stest​),得到的特征输入到D网络中得到滤波器f, 这个文章的目的就是学到一个可以推广到没见过帧的特征。然后将f 在 S t e s t S_{test} Stest​上测试,然后计算一个损失:

这里就是之前提到的Hinge-like损失函数,T表示前景和背景,所以这里只惩罚背景样本。这里他们为了提升模型鲁棒性,不仅最小化每个损失,而是对每次迭代的损失都做约束,这就相当于一个中间的监督:

迭代次数也不是指定的,而是自适应的。上诉公式中 z c z_c zc​ 是一个高斯型的mask中心位于bbox的中心,在BBOX回归的地方,他们用了IOUNet来做。最终的损失函数为:
L t o t = β L c l s + L b b L_{tot} = \beta L_{cls} + L_{bb} Ltot​=βLcls​+Lbb​

6 Online Tracking

对于给定的第一帧,他们用数据增强方式添加了15个样本,然后用10次梯度下降来学习f,在模型更新过程中,他们保持最新的50个样本,每20帧更新一次。

Experiment

效果很好,用一张GTX 1080能跑到57FPS(ResNet-18),43FPS(ResNet-50)。


总结

解决了Siamese这个结构的三大毛病,可以说是很厉害了,然后里面的一些想法也值得我们借鉴,比如扩大前景和背景的距离,使得特征分类更好。

【DiMP】Learning Discriminative Model Prediction for Tracking论文阅读相关推荐

  1. Deep Meta Learning for Real-Time Target-Aware Visual Tracking 论文阅读

    这篇文章是韩国的一个组做的,一直没中, 直到19年中了ICCV,据说是第一篇将元学习引入目标跟踪的文章,用的架构是siamese网络的架构,但是在模型在线更新的时候使用了meta-learning的思 ...

  2. RLT-DiMP: Robust Long-Term Object Tracking via Improved Discriminative Model Prediction

    今天准备分享的论文是一篇长时跟踪论文- 最后更新时间:2021.1.5 文章题目:Robust Long-Term Object Tracking via Improved Discriminativ ...

  3. 《NAIS: Neural Attentive Item Similarity Model for Recommendation》论文阅读及解析

    <NAIS: Neural Attentive Item Similarity Model for Recommendation>论文阅读及解析 论文翻译 NAIS模型论文解析 NAIS模 ...

  4. Capture, Learning, and Synthesisof 3D Speaking styles论文阅读笔记 VOCA

    Capture, Learning, and Synthesisof 3D Speaking Styles论文阅读笔记 摘要 制作了一个4D面部(3D mesh 序列 + 同步语音)数据集:29分钟, ...

  5. Learning Multiview 3D point Cloud Registration论文阅读笔记

    Learning multiview 3D point cloud registration Abstract 提出了一种全新的,端到端的,可学习的多视角三维点云配准算法. 多视角配准往往需要两个阶段 ...

  6. 【代码注释】Scan2CAD:Learning CAD Model Alignment in RGB-DScans 论文代码注释

    这里写目录标题 前言 代码运行顺序 可视化 编译 转换网络输入量 网络预测输出heatmap 依据heatmap对齐 前言 https://github.com/skanti/Scan2CAD 文章项 ...

  7. MediaPipe Hands: On-device Real-time Hand Tracking 论文阅读笔记

    设备端实时手部追踪 0. 摘要 (Abstract) 1. 简介 (Introduction) 2. 架构 (Architecture) 2.1 手部检测器 2.2 手部坐标预测模型 (Hand La ...

  8. A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking论文阅读

    A Novel Two-stage Separable Deep Learning Framework for Practical Blind Watermarking Abstract 数字水印是一 ...

  9. A Survey on Deep Learning Techniques for Stereo-based Depth Estimation论文阅读

    第一次校正,改正了一些错误和生硬的翻译(像机器翻译一样).一定会有一些笔误.翻译不准确甚至错误的地方.还望批评指正. 1. 摘要 估计RGB图片的深度一直以来都是棘手的问题,计算机视觉.图形学.机器学 ...

最新文章

  1. Python的range()函数
  2. 《强化学习导论》经典课程10讲,DeepMind大神David Silver主讲
  3. Kamp;R练习题6-1统计关键词出现的次数
  4. maven项目的pom文件中各标签理解
  5. socket,与粘包
  6. c++中sort()的用法
  7. [phaser3入门探坑]使用phaser3制作山寨马里奥
  8. 预处理中的头文件stdio.h在哪?里面有什么?
  9. 知名歌手凌晨跳楼自杀:他为什么要走上绝路
  10. 微信联盟链接不到服务器怎么,LOL微信登不上去怎么办?微信登不上解决方法推荐...
  11. 腾讯云即时通讯im之获取userSig
  12. unity Color和Hex转化
  13. android快速复制粘贴,Android开发复制和粘贴
  14. UE4中实现鼠标单选空间中的模型、Ctrl键多选、空间打点框选功能。
  15. 美国如果把根域名服务器封了,中国会从网络上消失?
  16. c++工厂机器安排(贪心)
  17. CCT Camera Tuning
  18. 002 Figuring in C/C++
  19. 2020.9.30 PYTHON 自复习笔记
  20. GDAL/OGR/OSR 坐标系ERROR 4: Unable to open EPSG support file gcs.csv osr.SpatialReference()

热门文章

  1. Illustrator CS5初学者必读(3)——渐变填充
  2. 打开微型计算机电源时,试卷2013.doc
  3. 查看某个IP端口是否开放
  4. Linux指令之vi编辑保存退出
  5. Google Pixel 2夺得DxOMark排名第一,是否说明双摄并没什么用?
  6. C++ 编写求函数区间平均值的通用函数
  7. 华为耳机如何关闭早问候
  8. “双一流”中国地质大学(北京)雄安校区,2025年投用
  9. python自动化测试实战 无涯_Python自动化测试实战
  10. 建造者2全部岛屿_勇者斗恶龙:建造者2空荡岛相关任务及剧情攻略分享