ByteTrack 论文学习

news2024/12/23 19:50:48

1. 解决了什么问题?

多目标跟踪是在给定的视频片段中,预测出目标的边框和 ID 信息。现有方法需要在 true positives 和 false positives 之间做取舍,将高于一定阈值的检测框关联起来,获取其 ID。而那些低得分的目标(如被遮挡物体)会被舍弃,造成一些真实目标丢失、轨迹断断续续的问题。

如下图,在 t 1 t_1 t1帧初始化了三个不同的 tracklets,其得分高于 0.5 0.5 0.5。但在 t 2 t_2 t2 t 3 t_3 t3帧出现了遮挡,红框对应的得分就从 0.8 0.8 0.8降到了 0.4 0.4 0.4,然后降到了 0.1 0.1 0.1。因为阈值是 0.5 0.5 0.5,红框就消失了。但是,如果我们将所有的检测框都考虑进来,会出现许多的 false positives,如 t 3 t_3 t3帧最右边的框。
在这里插入图片描述

2. 提出了什么方法?

提出了一个简单、有效、通用的目标关联方法,通过关联所有的检测框来实现跟踪,而不只考虑那些高得分的框。对于低得分的检测框,计算它们和 tracklets 的相似度,恢复真实目标,滤掉背景。首先,根据运动相似度匹配高置信度的检测框,利用 Kalman filter 预测新一帧中 tracklets 的位置,运动相似度可以用预测框和检测框的 IOU 计算。然后,对未匹配的 tracklets 和低置信度的检测框进行二次匹配。

2.1 算法细节

BYTE 的输入是一个视频序列 V \text{V} V,以及目标检测器 Det \text{Det} Det和 Kalman filter KF \text{KF} KF。作者设置了 3 个阈值 τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow ϵ \epsilon ϵ τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow是检测得分阈值, ϵ \epsilon ϵ是跟踪得分阈值。BYTE 的输出是视频的 tracks T \mathcal{T} T,每个 track 包含了每一帧中目标的 ID 和边框。

在这里插入图片描述

首先用 Det \text{Det} Det对图像做推理,预测出检测框和得分。根据 τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow将检测框分为 D h i g h , D l o w \mathcal{D}_{high},\mathcal{D}_{low} Dhigh,Dlow两个部分。 D h i g h \mathcal{D}_{high} Dhigh存放的是置信度高于 τ h i g h \tau_{high} τhigh的检测框, D l o w \mathcal{D}_{low} Dlow存放的是置信度在 τ l o w \tau_{low} τlow τ h i g h \tau_{high} τhigh之间的检测框。然后使用 KF \text{KF} KF预测 T \mathcal{T} T中每个 track 在新一帧的位置。

第一次匹配是在高得分检测框 D h i g h \mathcal{D}_{high} Dhigh和所有的 tracks T \mathcal{T} T(包括 lost tracks T l o s t \mathcal{T}_{lost} Tlost)之间进行。计算 D h i g h \mathcal{D}_{high} Dhigh检测框与 T \mathcal{T} T预测框之间的 IOU,得到相似度。然后用 Hungarian 算法基于相似度得分完成匹配。如果检测框和 tracklet 框之间的 IOU 低于 0.2 0.2 0.2,则匹配无效。将未匹配的检测框放入 D r e m a i n \mathcal{D}_{remain} Dremain,未匹配的 tracks 放入 T r e m a i n \mathcal{T}_{remain} Tremain

然后在低得分的检测框 D l o w \mathcal{D}_{low} Dlow T r e m a i n \mathcal{T}_{remain} Tremain进行第二次匹配。将未匹配的 tracks 放入 T r e − r e m a i n \mathcal{T}_{re-remain} Treremain,删除 D l o w \mathcal{D}_{low} Dlow中未匹配的低得分检测框,当作背景。

作者发现在第二次匹配时,将 IOU 作为相似度非常管用,因为低得分检测框通常包含严重遮挡或运动模糊的情况,而外观特征不可靠。因此在二次匹配时,BYTE 没有用外观特征来计算相似度。

第二次匹配后, T r e − r e m a i n \mathcal{T}_{re-remain} Treremain中未匹配的 tracks 会被放入 T l o s t \mathcal{T}_{lost} Tlost,这里面的 tracks 只会保留一定的帧数,如 30 30 30帧,随后就会从 T \mathcal{T} T中删除。否则,在 T \mathcal{T} T中暂时保留 T l o s t \mathcal{T}_{lost} Tlost
最后,对于第一次匹配后 D r e m a i n \mathcal{D}_{remain} Dremain未匹配的、高得分的检测框,创建新的 tracks。 D r e m a i n \mathcal{D}_{remain} Dremain的每个检测框,如果它的检测得分高于 ϵ \epsilon ϵ,并连续两帧出现,我们就会创建一个新的 track。

每一帧的输出就是当前帧的 tracks T \mathcal{T} T的边框和 ID,不输出 T l o s t \mathcal{T}_{lost} Tlost的边框和 ID。

2.2 ByteTrack

本文使用的目标检测器是 YOLOX,对 YOLO 系列做了改进,它采用了 anchor-free 的方式,其它改进包括 decoupled head、Mosaic 和 Mixup 数据增广策略、SimOTA 标签分配。

主干网络是 CSPNet,neck 是 PAN。主干网络后是两个 decoupled heads,一个负责回归,一个负责分类。在回归 head 又增加了一个 IoU 分支,用于预测检测框和 ground truth 框的 IOU。回归 head 直接预测特征图上每个位置的 4 个值,即网格左上角的两个偏移量,和预测框的宽高。回归损失使用了 G I o U GIoU GIoU损失,分类和 IoU 分支则使用了二元交叉熵损失。

SimOTA 标签分配策略根据预测结果和 ground truths 之间的代价矩阵,自动选取正样本。该代价矩阵由分类损失和边框定位损失的加权和组成。然后,选择目标中心点附近的 top-k 个正样本。

MOT17 需要标注框覆盖目标整体,即便它被遮挡了,或者部分位于图像之外。但 YOLOX 的默认操作会对检测框做裁剪,保证其位于图像内。因而作者修改了 YOLOX 的数据处理和标签分配的代码,在数据预处理和增广时,不对边框做裁剪。若数据增广后,边框完全超出了图像边界,则删掉。在 SimOTA 中,正样本需要位于目标的中心附近,而包含目标整体的边框的中心点可能位于图像之外,则对目标的中心点做裁剪,保证在图像内。

MOT20 则对边框标注做了裁剪,保证在图像内,与 YOLOX 一致。

2.3 实验

数据集

在 MOT17 和 MOT20 上进行实验。使用了训练集和测试集,没有用验证集。在消融实验,使用 MOT17 训练集里视频的前半部分作为训练,后半部分验证。

度量

使用了 CLEAR 度量(包括 MOTA、FP、FN、IDs),IDF1 和 HOTA 来评价跟踪性能。考虑到 FP 和 FN 的个数要大于 IDs,MOTA 更多关注在检测性能。IDF1 评价 ID 持续能力,更多关注匹配表现。HOTA 是最近提出的,综合考虑目标检测、匹配和定位的表现。

实现细节

τ h i g h \tau_{high} τhigh默认值为 0.6 0.6 0.6 τ l o w \tau_{low} τlow默认为 0.1 0.1 0.1 ϵ \epsilon ϵ 0.7 0.7 0.7。在线性分配步骤,如果检测框和 tracklet 框的 IOU 小于 0.2 0.2 0.2,匹配不成立。对于 lost tracklets,将其保留 30 30 30帧。

对于 ByteTrack,检测器 YOLOX 的主干网络为 YOLOX-X,COCO 预训练模型初始化权重。在 MOT17、CrowdHuman、CityPerson 和 ETHZ 结合的数据集上训练了 80 epochs。图像输入大小是 1440 × 800 1440\times 800 1440×800,多尺度训练时短边长度在 576 576 576 1024 1024 1024之间缩放。数据增广采用了 Mosaic 和 Mixup,在 8 张 Tesla V100 卡上训练,batch size 是 48。采用了 SGD,weight decay 是 5 × 1 0 − 4 5\times 10^{-4} 5×104,momentum 是 0.9 0.9 0.9。初始学习率是 1 0 − 3 10^{-3} 103,1 个 epoch 热身,学习率采用了余弦退火。总训练时间约12小时。

3. 有什么优点?

对于遮挡的目标或者短暂消失的目标,跟踪效果有明显提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1038887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全新的Windows12上线抢先体验

AIGC专栏/AI绘画教程/java面试题领取 win12太离谱了,win11还没用几天,win12就已经出来了,如此流畅的页面,很具有和苹果一拼的效果,流畅度也是一流。文末有领取方式。 WIN12系统在色差表现方面也超越了苹果。它采用了前…

华为数通方向HCIP-DataCom H12-831题库(单选题:141-160)

第141题 R3与R1的IS-IS邻居没有建立,根据本图的信息,可能的原因是? A、R3与R1的IS-Level不匹配 B、R3与R1的互连接口circuit-type不匹配 C、R3与R1的IIH认证失 D、R3与R1的System ID重复 答案: B 解析: 从上图的Bad Circuit Type:16 可知道R3与R1的互连接口circuit-type…

【EI会议征稿】第三届计算机图形学、人工智能与数据处理国际学术会议 (ICCAID 2023)

第三届计算机图形学、人工智能与数据处理国际学术会议 2023 3rd International Conference on Computer Graphics, Artificial Intelligence and Data Processing (ICCAID 2023) 第三届计算机图形学、人工智能与数据处理国际学术会议(ICCAID 2023)将于…

基于数据驱动的成本洞察,趣丸科技的FinOps进阶之路~

今年以来,我们注意到越来越多的单位开始积极实践FinOps,而随着FinOps的发展,大家对于其落地过程的关注也更加具体和深入,涉及了账单波动、FinOps的边际效应、成本模型、依赖工具等多个关键问题。 本月「UGeek大咖说」线上直播活动…

机器学习之泛化与过拟合的概念

文章目录 泛化(Generalization):过拟合(Overfitting):例子 泛化(Generalization): 泛化是指机器学习模型在未见过的新数据上表现良好的能力。换句话说,一个好…

【软件测试】Junit5

Selenium自动化测试框架Junit单元测试框架拿着一个技术写自动化测试用例 (Selenium3)拿着一个技术管理已经编写好的测试用例 (Junit5) Junit相关技术 Junit是针对java的一个单元测试框架。 注解 Test 表示当前的这个方法是一个测试用例 添加依赖: 不需要main方…

解决react使用redux toolkits时出现的数组对象长度始终为0的怪异问题

有个react项目在添加购物车后,立马白屏,看一下console报错properties of undefined(reading length) 那意思是说数组没有长度,然后定位Header.tsx的182行,果然是数组长度报错 回到具体代码中:发现shoppingCartItems实…

大模型存在“反转诅咒”现象,无法处理反向问题;Langchain课程资源

🦉 AI新闻 🚀 大模型存在“反转诅咒”现象,无法处理反向问题 摘要:最新研究发现,大语言模型存在“反转诅咒”现象,即明知道“A 是 B”,却答不出“B 是 A”。研究人员进行了两项实验&#xff0…

【RocketMQ专题】快速实战及集群架构原理详解

目录 课程内容一、MQ简介基本介绍*作用(解决什么问题) 二、RocketMQ产品特点2.1 RocketMQ介绍2.2 RocketMQ特点2.3 RocketMQ的运行架构2.4 消息模型 三、RocketMQ快速实战3.1 快速搭建RocketMQ服务3.2 快速实现消息收发3.3 搭建Maven客户端项目3.4 搭建R…

Linear Feedback Shift Register

线性反馈移位寄存器(Linear Feedback Shift Register,简称LFSR)是一种数字电路设计和密码学中常用的寄存器类型。它是一种简单而高效的方式,用于生成伪随机的二进制序列,并在数据混淆、错误检测和加密等领域中有应用。…

怎么用蜂邮EDM和Outlook批量发送邮件带附件

蜂邮EDM和Outlook批量发送邮件带附件的流程?有哪些邮件批量发送邮件附件的方法? 在现代社会中,电子邮件是一种广泛应用的沟通工具,而批量发送邮件带附件则是许多商业和个人用户的常见需求。本文将介绍如何使用蜂邮EDM和Outlook这…

时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-BiLSTM鹈鹕算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-BiLSTM鹈鹕算…

吉力宝:智能科技鞋品牌步力宝引领传统产业创新思维

在现代经济环境下,市场经济下产品的竞争非常的激烈,如果没有营销,产品很可能不被大众认可,酒香也怕巷子深,许多传统产业不得不面临前所未有的挑战。而为了冲出这个“巷子”,许多企业需要采用创新思维&#…

单片机外设-串口(UART)详情

目录 学习UART要先认识一些基础知识 一:什么是串行、并行通信? (1)串行通信 串行通信概念: 串行通信的特点: (2)并行通信 并行通信概念: 并行通信特点&#xff1…

FairMOT 论文学习

1. 解决了什么问题? 现有的多目标跟踪方案将目标检测和 reID 任务放在一个网络里面优化学习,计算效率高。目标检测首先在每一帧中检测出兴趣目标,要么将其与现有的轨迹关联起来,要么创建一个新的轨迹。这两个任务会相互竞争&…

ElasticSearch - 基于 JavaRestClient 操作索引库和文档

目录 一、RestClient操作索引库 1.1、RestClient是什么? 1.2、JavaRestClient 实现创建、删除索引库 1.2.1、前言 1.2.1、初始化 JavaRestClient 1.2.2、创建索引库 1.2.3、判断索引库是否存在 1.2.4、删除索引库 1.3、JavaRestClient 实现文档的 CRUD 1.3…

简单理解三极管导通条件(从电压角度考虑)

1、本文仅描述三极管如何使用,不对三极管的原理做讲解。 2、本文内容如有错误,欢迎交流指正。 3、本文仅作为本人学习笔记,部分内容来源于网络、书籍,如涉及侵权,请联系删除。 三极管的分类:NPN型、PNP型。…

2023中国国际缝制设备展,正运动助力智能缝纫设备“更快更准”更智能!

■展会名称: 2023中国国际缝制设备展览会 ■展会日期 2023年9月25日-28日 ■展馆地点 上海新国际博览中心E6馆 ■展位号 E6-N09 正运动技术,作为国内领先的运动控制企业,将于9月25日参展2023中国国际缝制设备展。展会将在上海新国际博…

【校招VIP】专业课考点之进程同步

考点介绍: 进程同步是指在多个进程之间进行协调,以确保它们在访问共享资源时能够正确、有序地执行。其中最常见的同步机制是互斥锁和信号量 专业课考点之进程同步-相关题目及解析内容可点击文章末尾链接查看! 一、考点试题 1.从执行状态挂…

商品秒杀系统思路

1、使用CAS乐观锁解决秒杀超卖问题。 一开始使用库存,但是发现库存,结果发现没卖完。然后就通过CAS判断库存大于0。 2、又发现问题,一个用户可以下好几单,所以想到用商品id和用户id做个唯一索引,解决了,但…