Tracking without bells and whistles
Tracking without bells and whistles
2019-08-07 20:46:12
Paper: https://arxiv.org/pdf/1903.05625
Code: https://github.com/phil-bergmann/tracking_wo_bnw
1. Background and Motivation:
本文提出一种很霸道的观点:A detector is all you need for Multi-Object Tracking。我们知道 MOT 的常规思路都是要先检测,在做数据连接(data association)。但是,作者发现,最近两年,虽然有很多方法被提出,但是悲剧的是,在几个公共的 MOT 数据集上,并没有很明显的提升(两年才提升了2点多:multiple object tracking accuracy has only improved 2.4% in the last two years on the MOT16 MOTChallenge benchmark)。作者发现通过仅仅利用物体检测算法,如 Faster rcnn,就可以达到 state of the art 的效果。这也引出了一个很有意思的问题:如果一个检测器就可以很好地完成 MOT 的任务,那么,tracking algorithm 有什么用呢?这还是必要的吗?我们先来看看作者提出的算法框架到底是怎么样的。
2. A detector is all you need:
有一些物体检测算法中包含通过 regression 的方式进行 bounding box refinement 的模块。作者提出使用这种 regressor 来进行 MOT。这种方式有如下两种优势:
1). 不需要任何关于 tracking 的训练;
2). 在测试阶段不进行任何复杂的优化,因为该算法是 online 的。
此外,本文的方法也可以达到 SOTA 的效果。
2.1 Object detector:
这个貌似没啥说的,就是用基于 Resnet-101 和 Feature Pyramid Networks 的方法在 MOT17Det pedestrian detection dataset 上进行预训练。得到这种物体检测器之后呢?一起来看 2.2 小节。
2.2 Trackor:
MOT 的挑战在于:提取给定的视频帧中的多个物体的时间和空间上位置信息,即:轨迹。这种轨迹信息被定义为:一系列有序的物体包围盒的集合。
在时刻 t=0,作者的 tracker 用第一组检测的结果进行初始化,即:$D_0 = {d^1_0, d^2_0, ... } = B_0$。在图 1 中,我们展示了两个随后的步骤:the bounding box regression and track initialization。
Bounding box regression.
第一步就是,如上图蓝色箭头所示,探索 bounding box regression 来拓展激活的轨迹。通过将 t-1 帧的 bounding box $b^k_{t-1}$ 进行回归,得到第 t 帧 新的位置 $b^k_t$。在 Faster RCNN 中,这就对应了在当前帧的 feature map 上进行 RoI Pooling 操作,但是用的是前一帧的 BBox。作者提出这种做法的一个假设就是:两帧之间的运动不是很明显,特别是在 high frame rates 的视频上。这个 identify 就自动的从之前的结果上迁移过来了,从而有效的得到了新的轨迹。这种操作可以对所有的视频帧进行重复处理。
在 BBox 回归以后,作者的跟踪器考虑两种情况来 kill 一个轨迹:
1). 一个物体在视频帧中消失了,或者被其他物体被遮挡了,即:如果新的 classification score 小于某一阈值;
2). 不同物体之间的遮挡,可以通过采用 NMS 来处理。
Bounding Box Initialization.
为了处理新出现的物体,物体检测器也提供了整个视频帧的检测结果 Dt。第二步,即图中红色箭头部分,类似于第一帧的初始化。但是,从 Dt 开始的检测,当且仅当 IoU 与任何已有的 active trajectories $b_t^k$ 小于某一阈值。即,我们考虑一个物体为新的 id,如果我们无法用任何已有的 trajectory 来描述该物体。
2.3 Tracking extensions.
作者将该模型进行了拓展,即:结合了 motion model 和 re-identification model。
Motion model. 作者之前的假设:两帧之间的变化不是很大,在有些情况下并不成立:large camera motion and low video frame rates. 在极端的情况下,BBox 从 frame t-1 在第 t 帧中可能根本不包含目标物体了。所以,作者设计了两种 motion model 来改善 BBox 的定位。对于运动相机,作者采用 相机运动补偿(camera motion compensation, CMC)的方式进行缓解。作者采用了 image registration 的方式来对齐视频帧,用的是 Enhanced Correlation Coefficient (ECC) maximization。对于低帧率的视频,作者采用 a constant velocity assumption (CVA)。这个也是别人提出的,不太了解,不知道有啥好处么?
Re-identification. 为了让 tracker 能够保持 online,作者提出利用 short-term re-ID 的方式(借助 Siamese Network 来进行 appearance feature 的匹配)来改善效果。为了达到这个目标,作者将杀死的目标,存储固定帧数的样本。然后将这些样本和新检测的目标在 embedding space 进行重识别。
3. Experiment:
Tracking without bells and whistles的更多相关文章
- paper 87:行人检测资源(下)代码数据【转载,以后使用】
这是行人检测相关资源的第二部分:源码和数据集.考虑到实际应用的实时性要求,源码主要是C/C++的.源码和数据集的网址,经过测试都可访问,并注明了这些网址最后更新的日期,供学习和研究进行参考.(欢迎补充 ...
- paper 14 : 图像视觉领域部分开源代码
做图像处理,没有一定的知识储备是不可能的,但是一定要学会“借力打力”,搜集一些很实用的开源代码,你们看看是否需要~~ 场景识别: SegNet: A Deep Convolutional Encode ...
- Best Practices for Speeding Up Your Web Site
The Exceptional Performance team has identified a number of best practices for making web pages fast ...
- Frontend Development
原文链接: https://github.com/dypsilon/frontend-dev-bookmarks Frontend Development Looking for something ...
- [转载]Best Practices for Speeding Up Your Web Site
原文:http://developer.yahoo.com/performance/rules.html 提升网站加载速度的一些优化技巧,大部分在前端层面. 不知道是多久以前写的,看起来有些已经过时了 ...
- ECCV 2014 Results (16 Jun, 2014) 结果已出
Accepted Papers Title Primary Subject Area ID 3D computer vision 93 UPnP: An optimal O(n) soluti ...
- PyTorch入门教程
https://www.zhihu.com/question/55720139 Deep Learning with PyTorch: A 60 Minute Blitz Author: Soumit ...
- 分享20个最新的免费 UI 设计素材给设计师
用户界面设计涉及到很多的创意,灵感以及需要与客户进行有效沟通的技能.良好的用户界面是一致的,可以使网站更容易理解和使用.UI设计的重点在于用户体验和互动,同时易于使用对于一个成功的移动应用程序来说非常 ...
- PS网页设计教程XXVIII——如何在PS中创建一个干净的网页布局
作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,“熟读唐诗三百首,不会作诗也会吟”. 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试 ...
随机推荐
- 红米手机使用应用沙盒一键修改sdk信息
前面文章介绍了怎么在安卓手机上安装激活XPOSED框架,XPOSED框架的极强的功能各位都介绍过,能不修改APK的前提下,修改系统内核的参数,打个比方在某些应用情景,各位需要修改手机的某个系统参数,这 ...
- Nginx proxy_set_header
配置示例 server{ server_name aaa.com location /api { proxy_pass http://xxx.com/api; proxy_set_header Hos ...
- unity shader入门(三)逐像素光照,Blinn-Phong模型
与上篇逐顶点光照很像,只是改为在片元着色器中计算光照,下为逐像素光照shader Shader "study/Chapter6/PixelShader"{ Properties{ ...
- SparkSQL之dataframe写入mysql报错
一.异常情况及解决方案 在使用Spark SQL的dataframe数据写入到相应的MySQL表中时,报错,错误信息如下: 代码的基本形式为: df.write.jdbc(url, result_ta ...
- 1M大概多少个字
<?php echo strlen("你"); 保存文件为gbk 输出2 保存文件为utf-8 输出3 说明不同编码占用字节不同 1M=1024kB 1KB = 1024B ...
- QuickStart系列:docker部署之Gitlab本地代码仓库
gitlab是可以在本地搭建的使用git作为源代码管理的仓库. 运行环境: win10+vmware14+docker7+docker 1. 使用命令拉取镜像(非必须,耗时比较久,这里以ce为准,ce ...
- windows下控制台程序实现窗口显示
windows下实现窗口显示,如果限定是C/C++语言,并且是原生Windows支持,需要使用GDI或GDI+.一般是在Visual Studio里新建Win32应用程序,而不是Win32 conso ...
- not syncing: Attempted to kill init
这个是selinux造成的原因. 解决方法: 键系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-2.6.23.1-42.fc8 ro roo ...
- Unity进阶之:MVC编程思想
版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...
- Spring boot集成Swagger2,并配置多个扫描路径,添加swagger-ui-layer
Spring boot集成Swagger,并配置多个扫描路径 1:认识Swagger Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目 ...