【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪

2023-11-18

【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪

【论文原文】:ByteTrack: Multi-Object Tracking by Associating Every Detection Box

论文地址:https://arxiv.org/abs/2110.06864
代码:https://github.com/ifzhang/ByteTrack
Leaderboard:https://motchallenge.net/results/MOT17/?det=Private

博主关键词: 多目标跟踪,YoloX,Sort

推荐相关论文:

Sort: Simple Online and Realtime Tracking
DeepSort: Simple Online and Realtime Tracking with a Deep Association Metric

摘要:

多目标追踪(MOT)的目的是估计视频中目标的边界框和id。大多数方法是通过关联分数高于阈值的检测框来获得id的。检测置信度较低的物体,例如被遮挡的物体,会被简单地去除,这就带来了不可忽略的真实目标漏检和轨迹碎片化。为了解决这个问题,我们提出了一种简单、有效和通用的关联方法,通过关联几乎所有的检测框而不是只关联高分的检测框进行跟踪。对于低分检测框,我们利用它们与轨迹的相似性来恢复真正的物体并过滤掉背景检测框。当应用于9个不同的最先进的跟踪模型时,我们的方法在IDF1得分上取得了一致的改进,范围从1到10个点。为了展示在MOT上的先进性能,我们设计了一个简单而强大的跟踪器,名为ByteTrack。我们首次在单台V100 GPU上以30 FPS的运行速度在MOT17的测试集上实现了80.3 MOTA、77.3 IDF1和63.1 HOTA。ByteTrack在MOT20、HiEve和BDD100K跟踪benchmark上也取得了最先进的性能。源代码、带有部署版本的预训练模型以及应用于其他跟踪方法的教程发布于 https://github.com/ifzhang/ByteTrack。

关键词 多目标跟踪,YoloX,Sort

简介:

基于检测的跟踪(tracking-by-detection)是目前多目标跟踪(MOT)最有效的范式。由于视频中的复杂场景,检测器很容易做出不完美的预测。最先进的MOT方法[1-3, 6, 12, 18, 45, 59, 70,72,85]需要处理检测结果中的真阳性/假阳性权衡,以消除低置信度检测框[4,40]。然而,消除所有低置信度检测框是正确的方法吗?我们的答案是否定的:正如黑格尔所说:“合理的东西就是真实的;真实的东西才是合理的。”低置信度检测框有时表示物体的存在,例如被遮挡的物体。滤除这些目标会导致MOT的不可逆误差,并带来不可忽略的漏检和碎片化轨迹。

在这里插入图片描述

Fig. 1.MOTA-IDF1-FPS comparisons of different trackers on the test set of MOT17. The horizontal axis is FPS (running speed), the vertical axis is MOTA, and the radius of circle is IDF1. Our ByteTrack achieves 80.3 MOTA, 77.3 IDF1 on MOT17 test set with 30 FPS running speed, outperforming all previous trackers. Details are given in Table 4.

图2 (a)和(b)显示了这个问题。在帧t1中,我们初始化三个不同的tracklet,因为它们的分数都高于0.5。但是,在帧t2和帧t3中,当遮挡发生时,红色轨迹对应的检测框得分降低,分别为0.8 ~ 0.4和0.4 ~ 0.1。这些检测框被阈值机制消除,红色轨迹随之消失。然而,如果我们将每个检测框都考虑为1,则会立即引入更多的假阳性,例如图2 (a)中帧t3中最右的框。据我们所知,MOT中很少有方法[30,63]能够处理这种检测困境。在本文中,我们发现,在低分检测结果中,与tracklet的相似性为区分物体和背景提供了强有力的线索。如图2 c所示,两个低分数检测框通过运动模型的预测框与轨迹进行匹配,从而正确恢复对象。同时,背景框被移除,因为它没有匹配的轨迹。

为了在匹配过程中充分利用从高分到低分的检测结果,我们提出了一种简单有效的关联方法,该跟踪方法对每个检测框进行赋值。每个检测框都是tracklet的一个基本单位,正如字节在计算机程序中称为byte一样,我们方法名为BYTE。首先根据运动相似度或外观相似度将高分检测盒与轨迹进行匹配。与[6]类似,我们采用卡尔曼滤波[29]来预测轨迹在新帧中的位置。相似度可以通过预测盒与检测盒的IoU或Re-ID特征距离来计算。图2 (b)就是第一次匹配后的结果。然后,我们在未匹配的tracklet(即红框中的tracklet)与使用相同运动相似度的低分检测框之间进行第二次匹配。图2 c显示了第二次匹配后的结果。检测分数低的被遮挡的人被正确地匹配到前面的轨迹,并且背景(在图像的右侧)被移除。

在这里插入图片描述

Fig. 2.. Examples of our method which associates every detection box. (a) shows all the detection boxes with their scores. (b) shows the tracklets obtained by previous methods which associates detection boxes whose scores are higher than a threshold, i.e. 0.5. The same box color represents the same identity. (c) shows the tracklets obtained by our method. The dashed boxes represent the predicted box of the previous tracklets using Kalman Filter. The two low score detection boxes are correctly matched to the previous tracklets based on the large IoU.

MOT作为目标检测与关联的综合课题,一个理想的解决方案绝不是使用检测器及其后续关联;此外,设计好它们的接口也很重要。BYTE的创新之处在于检测和关联的接口设计,其中低分检测框是促进两者的桥梁。得益于这种集成创新,当BYTE应用于9种不同的最先进的跟踪方法时,包括基于re -ID的跟踪器[33,47,69,85],基于运动的跟踪器[71,89],基于链的[48]和基于注意力的跟踪器[59,80],几乎所有的指标都取得了显著的改进,包括MOTA, IDF1分数和ID-s。例如,我们将Center Track[89]的MOTA从66.1增加到67.4,IDF1从64.2增加到74.0,id-s从528减少到144。

为了推进MOT的最先进的性能,我们提出了一个简单而强大的跟踪方法,称为ByteTrack。我们采用了最近的高性能检测器YOLOX [24]来获得检测结果,并将它们与我们提出的BYTE相关联。在MOT挑战中,ByteTrack在MOT17 [44]和MOT20 [17]上排名第一,在MOT17上获得了77.8MOTA,77.3IDF1和63.1 HOTA,V100GPU上运行速度30fps,在更拥挤场景的MO20上获得了77.8 MOTA,75.2 IDF1和61.3 HOTA。ByteTrack在HiEve [37]和BDD100K [79]跟踪基准测试上也取得了最先进的性能。我们希望ByteTrack的效率和简单性能够使它在社会计算等实际应用中具有吸引力。

【社区访问】

img 【论文速递 | 精选】

img阅读原文访问社区

https://bbs.csdn.net/forums/paper

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪 的相关文章

  • 一文精通常量池

    大家好 今天来和大家一起探索下Java的常量池 在阅读本篇之前 我为大家准备了一个测试 共15道判断题 每题1分 满分15分 大约花费1 2分钟时间 如果你全部答对了 那么恭喜你大神 本篇可能已经满足不了你了 如果结果不理想也不要气馁 读完
  • OpenCV进阶--图像变换(三)

    继上文 五 图像透视变换 首先透视变换是按照物体成像投影规律进行变换 即将物体重新投影到新的成像平面 在透视变换中 透视前的图像和透视后的图像之间的变换关系可以用一个3 3的变换矩阵表示 该矩阵可以通过两幅图像中4个对应点的坐标求取 因此透
  • 【Linux基础】stat函数

    stat函数 函数描述 获取文件属性 函数原型 include
  • iOS开发之数据存取(一)——SQLite

    概览 在iOS开发中数据存储的方式可以归纳为两类 一类是存储为文件 另一类是存储到数据库 例如前面IOS开发系列 Objective C之Foundation框架的文章中提到归档 plist文件存储 包括偏好设置其本质都是存储为文件 只是说

随机推荐

  • 计算机答卷方式 闭卷满分为90分,关于《计算机应用技术专业综合理论》考试说明.doc...

    计算机应用技术专业综合理论 考试大纲 一 考试性质 广东省高等职业院校对口自主招生考试是以中等职业技术学校对口专业应届毕业生和中等职业相关专业毕业 有两年以上实践经验的社会人员为对象的选拔性考试 二 考试内容 计算机应用技术专业综合理论 的
  • IDEA jdk 下载安装及项目中的配置

    进入 Oracle官网 的 Java 界面 Oracle官网地址 https www oracle com java 1 JDK下载 1 1 在网站页面滚动鼠标下拉定位到Java 选择Oracle JDK 1 2 选择Java archiv
  • Xcode警告、错误解决方法总结

    从sdk3 2 5升级到sdk 7 1中间废弃了很多的方法 还有一些逻辑关系更加严谨了 1 警告 xoxoxoxo is deprecated 解决办法 查看xoxoxoxo的这个方法的文档 替换掉这个方法即可 2 警告 Declarati
  • excel函数去重_Excel去除重复值方法汇总

    经常有人问到excel中去除重复值的问题 这个问题本来也一直有很多人讨论 现将做法汇总出来共大家参考 什么是重复值 顾名思义 重复值是指一组数据中有重复记录 去除这些重复的记录就叫去除重复值 具体有两种情况 源数据如图 去重后 结果一 所有
  • 蓝桥杯青少组python:第十三届省赛第一场

    选择题 1 下列二进制中最大数是 A 110 B 1010 C 1100 D 1001 2 以下方法 不是对文件读操作的是 A readline B readlines C readtext D read 3 以下对turtle库中函数描述
  • read_csv 与 to_csv方法

    1 read csv方法 1 1 返回数据类型 DataFrame 二维标记数据结构 列可以是不同的数据类型 是最常用的pandas对象 如同Series对象一样接受多种输入 lists dicts Series DataFrame Ser
  • JavaScript this关键字的理解

    JavaScript this 关键字的理解 仅供个人学习做笔记使用 大佬轻喷 1 全局环境直接输出this指向全局对象 console log this 2 全局函数输出this指向window 全局函数其实是window 全局对象 的方
  • 按键板的原理和实现--基于GPIO的按键板

    按键板的原理和实现 基于GPIO的按键板 上篇介绍简单的ADC实现 需要IC提供一个额外的ADC 但出于IC成本的考虑 无法提供这个的ADC时 但提供了多个额外的GPIO General Purpose Input Output 双向的 可
  • Windows平台下MingGW的网络socket编程模型

    Windows平台下MingGW的网络socket编程模型 1 TCP服务器 include
  • NSSCTF web题记录

    目录 web GXYCTF 2019 BabyUpload htaccess利用 NISACTF 2022 babyserialize pop链 NISACTF 2022 popchains pop链 NSSRound 4 SWPU 1zw
  • Linux删除文件每一行的首尾空格等操作——sed简明教程

    cat tmp txt 123456789 123456789 123456789 删除每行第一个字符 sed s tmp txt 23456789 23456789 23456789 删除每行前两个字符 并保存到tmp2 txt sed
  • Java秒杀系统方案优化 2 --第2章 实现用户登录以及分布式session功能

    第2章 实现用户登录以及分布式session功能 1 明文密码两次md5入库 分别使用签名如1a2b3c4d 分别用签名和密码使用MD5加密两次后 一次是最原始密码加密 一次是加密后再使用MD5和签名加密 才存入数据库 每个用户对应都有一个
  • Dynamics 365 DevOps CI/CD之Solution

    CI CD到了Soution就没太多可说的了 按部就班配置就行 我选择的工具是Power DevOps Tool 1 首先下载工具 然后设置连接字符串去连环境 连接字符串还是用ClientSecret的形式 2 当然导出前还是要发布下自定义
  • Ue4蓝图访问外部接口

    首先我们搭建一个服务 node express 注意电脑必须安装node mkdir test server cd test server npm init npm install express body parser chalk pat
  • 数组复制的三种方法(超详细)

    数组复制的三种方法 Arrays类 copyOf 方法 copyOfRangs 方法 System类 arraycopy Arrays类 copyOf 方法 copyOf 方法适用于从下标0开始 复制指定长度的元素到目标数组 源码如下 pu
  • jQuery实现下拉菜单[代码+详细讲解+效果图]

    文章目录 前言 一 案例功能描述 二 html代码讲解 三 css代码讲解 四 jQuery实现功能及代码讲解 五 效果图 总结 前言 下拉菜单也是每个网页基本都会用到的案例 所以知识点还是要我们掌握的 这个案例比较简单 主要还是我们的jQ
  • 基于ftp协议的文件变化主动监听

    基于ftp协议的文件变化主动监听 前言 实现思路 代码实现思路 具体代码实现 依赖引入 FTPService接口 FTPServiceImpl类 FileChangeEvent接口 FileChangeData实体类 FileChangeT
  • linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统 由于没法将数据写入到cd 所以一旦重启 之前操作过后的一切数据都会丢失 第二章 第三章 1 man手册使用快捷键 使用空格键翻页 2 man
  • linux(centos) cpu核心数信息汇总

    总核数 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看物理CPU个数 cat proc cpuinfo grep physical id sort uniq wc l
  • 【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪

    论文速递 ECCV2022 ByteTrack 通过关联每个检测盒来进行多对象跟踪 论文原文 ByteTrack Multi Object Tracking by Associating Every Detection Box 论文地址 h