目录

1. 介绍

2. 相关工作 (Related Works)

3. 方法 (Method)

4. 统计和结果

5. 技术实现

 ByteTrack: Multi-Object Tracking by Associating Every Detection Box

1. Motivation

2. BYTE

3. ByteTrack

具体代码

UI界面设计

历史记录

完整代码实现+UI界面


1. 介绍

  • 背景: 实时目标检测领域由以 YOLO 系列为代表的单阶段检测器主导,它们在速度和精度之间取得了优异的平衡。
  • 现有方法的局限性:

    • 卷积架构 (至 YOLOv11): 其感受野受限于卷积核大小和网络深度,本质上是局部信息聚合。
    • 自注意力机制 (YOLOv12): 虽然扩大了感受野,但高计算成本使其只能在局部区域上进行计算,无法实现真正的全局建模。更重要的是,自注意力只能建模像素间的“成对(pairwise)”关系。
    • 现有超图方法: 虽然超图能建模“多对多(multi-to-multi)”高阶关系,但现有方法通常依赖手工设定的阈值来构建超边,鲁棒性差。
  • YOLOv13 概览:

    • HyperACE: 提出自适应超图相关性增强机制,克服了手工构建超图的限制,用于自适应地学习高阶视觉相关性。
    • FullPAD: 提出新的全流程聚合与分发架构范式,将增强后的特征反馈到整个网络,改善梯度传播和检测性能。
    • 轻量化模块: 设计了一系列基于深度可分离卷积的模块,以提高模型效率。
  • 主要贡献总结:

    1. 提出 YOLOv13,一个使用自适应超图探索高阶相关性的卓越实时目标检测器。
    2. 提出 HyperACE 机制用于自适应超图计算,以及 FullPAD 范式用于全流程特征聚合与分发。
    3. 提出一系列基于深度可分离卷积的轻量化模块,以降低模型复杂性。
    4. 实验证明 YOLOv13 在保持轻量化的同时,在 MS COCO 数据集上达到了SOTA性能。

2. 相关工作 (Related Works)

  • 2.1. YOLO 检测器的演进 (Evolution of YOLO Detectors)

    • 简要回顾了从初代 YOLO 到 YOLOv12 的发展历程,包括 DarkNet 骨干网、CSP 结构、SPP、PANet、无锚点(anchor-free)头部等关键技术的引入。
    • 指出现有所有 YOLO 系列模型及其变体都存在一个共同的局限性:它们仅限于建模局部的成对相关性。
  • 2.2. 高阶相关性建模 (High-Order Correlation Modeling)

    • 视觉数据中存在复杂的、超越成对关系的高阶(群组)相关性。
    • 超图(Hypergraph)是表示这种多对多高阶关系的有效工具,而超图神经网络(HGNNs)是主要的建模方法。
    • 指出现有的视觉超图方法大多采用手工制作(handcrafted)的超边构建方式,缺乏鲁棒性。本文提出的自适应机制旨在解决此问题。

3. 方法 (Method)

  • 3.1. 整体架构 (Overall Architecture)

    • 打破了传统的“骨干→颈部→头部”单向计算范式。
    • 流程:

      1. 轻量化的骨干网络(使用 DS-C3k2 模块)提取多尺度特征。
      2. 将骨干网络的高层特征(B3, B4, B5)送入 HyperACE 模块进行高阶相关性建模和特征增强。
      3. 通过 FullPAD 隧道,将增强后的特征分发回网络的不同位置(骨干与颈部连接处、颈部内部、颈部与头部连接处)。
      4. 颈部网络融合特征后送入检测头进行多尺度检测。
  • 3.2. 基于超图的自适应相关性增强 (Hypergraph-Based Adaptive Correlation Enhancement - HyperACE)

    • 核心思想: HyperACE 包含一个全局高阶感知分支和一个局部低阶感知分支。
    • 3.2.1. 自适应超图计算 (Adaptive Hypergraph Computation)

      • 自适应超边生成: 通过一个可学习的模块,根据输入特征动态生成超边原型,并计算每个顶点(像素)对每个超边的参与度,形成一个连续的参与度矩阵 A,而非传统的二进制关联矩阵。
      • 超图卷积: 采用两阶段消息传递(顶点到超边聚合,超边到顶点传播)来更新顶点特征,从而实现基于高阶相关性的特征增强。
    • 3.2.2. 用于自适应高阶相关性建模的 C3AH 模块 (C3AH for Adaptive High-Order Correlation Modeling)

      • 将自适应超图计算模块(AHC)嵌入到一个 CSP 瓶颈结构中,实现了高效的全局高阶语义聚合。
    • 3.2.3. HyperACE 的结构 (Structure of HyperACE)

      • 将融合后的多尺度特征图分为三路:一路通过并行的 C3AH 模块进行高阶建模,一路通过堆叠的 DS-C3k 模块进行低阶建模,还有一路作为直连(shortcut)。最后将三路输出拼接融合。
  • 3.3. 全流程聚合与分发范式 (Full-Pipeline Aggregation-and-Distribution - FullPAD)

    • 将 HyperACE 输出的增强特征,通过可学习的门控融合机制,注入到主干网络、颈部和头部的多个关键节点。
    • 这种设计实现了全网络范围内的精细化信息流动和表征协同。
  • 3.4. 基于深度可分离卷积的模型轻量化 (Model Lightweighting with Depth-Separable Convolution)

    • DSConv: 基础的深度可分离卷积块。
    • DS-Bottleneck: 由两个 DSConv 块串联构成的瓶颈结构。
    • DS-C3k/DS-C3k2: 将 DS-Bottleneck 嵌入 CSP 结构中,形成新的轻量化特征提取模块,并被广泛用于骨干和颈部网络。

4. 统计和结果

5. 技术实现

  • 问题: 现有的 YOLO 系列模型(包括 YOLOv11 和 YOLOv12)在架构上受限于局部信息聚合(卷积)和成对相关性建模(自注意力),无法捕捉复杂的全局、多对多高阶相关性。
  • 核心方案: 提出了 YOLOv13,一个精确且轻量级的实时目标检测器。
  • 关键技术 1: HyperACE: 提出了一种基于超图的自适应相关性增强机制(Hypergraph-based Adaptive Correlation Enhancement),它能自适应地利用潜在的高阶相关性,实现高效的全局跨位置和跨尺度的特征融合与增强。
  • 关键技术 2: FullPAD: 提出了一种全流程聚合与分发范式(Full-Pipeline Aggregation-and-Distribution),将 HyperACE 增强后的特征分发至整个网络(骨干、颈部、头部),以实现更精细的信息流和表征协同。
  • 关键技术 3: 轻量化设计: 使用深度可分离卷积替代传统的标准大核卷积,并设计了一系列新的轻量化模块,在不牺牲性能的前提下显著减少了参数量和计算复杂度。
  • 成果: 在 MS COCO 基准上取得了SOTA性能。具体来说,YOLOv13-N 在 mAP 指标上比 YOLOv11-N 提升了 3.0%,比 YOLOv12-N 提升了 1.5%。

 ByteTrack: Multi-Object Tracking by Associating Every Detection Box

沿着多目标跟踪(MOT)中tracking-by-detection的范式,我们提出了一种简单高效的数据关联方法BYTE。 利用检测框和跟踪轨迹之间的相似性,在保留高分检测结果的同时,从低分检测结果中去除背景,挖掘出真正的物体(遮挡、模糊等困难样本),从而降低漏检并提高轨迹的连贯性。BYTE能轻松应用到9种state-of-the-art的MOT方法中,并取得1-10个点不等的IDF1指标的提升。基于BYTE我们提出了一个跟踪方法ByteTrack,首次以30 FPS的运行速度在MOT17上取得80.3 MOTA,77.3 IDF1和63.1 HOTA,目前位居MOTChallenge榜单第一。我们还在开源代码中加入了将BYTE应用到不同MOT方法中的教程以及ByteTrack的部署代码。

Paper: http://arxiv.org/abs/2110.06864

​​

纵轴是MOTA,横轴是FPS,圆的半径代表IDF1的相对大小


1. Motivation

Tracking-by-detection是MOT中的一个经典高效的流派,通过相似度(位置、外观、运动等信息)来关联检测框得到跟踪轨迹。由于视频中场景的复杂性,检测器无法得到完美的检测结果。为了处理true positive/false positive的trade-off,目前大部分MOT方法会选择一个阈值,只保留高于这个阈值的检测结果来做关联得到跟踪结果,低于这个阈值的检测结果直接丢弃。但是这样做合理吗?答案是否定的。黑格尔说过:“存在即合理。”低分检测框往往预示着物体的存在(例如遮挡严重的物体)。简单地把这些物体丢弃会给MOT带来不可逆转的错误,包括大量的漏检和轨迹中断,降低整体跟踪性能。

2.BYTE

为了解决之前方法丢弃低分检测框的不合理性,我们提出了一种简单、高效、通用的数据关联方法BYTE (each detection box is a basic unit of the tracklet, as byte in computer program)。直接地将低分框和高分框放在一起与轨迹关联显然是不可取的,会带来很多的背景(false positive)。BYTE将高分框和低分框分开处理,利用低分检测框和跟踪轨迹之间的相似性,从低分框中挖掘出真正的物体,过滤掉背景。整个流程如下图所示:

(1)BYTE会将每个检测框根据得分分成两类,高分框和低分框,总共进行两次匹配。

(2)第一次使用高分框和之前的跟踪轨迹进行匹配。

(3)第二次使用低分框和第一次没有匹配上高分框的跟踪轨迹(例如在当前帧受到严重遮挡导致得分下降的物体)进行匹配。

(4)对于没有匹配上跟踪轨迹,得分又足够高的检测框,我们对其新建一个跟踪轨迹。对于没有匹配上检测框的跟踪轨迹,我们会保留30帧,在其再次出现时再进行匹配。

我们认为,BYTE能work的原因是遮挡往往伴随着检测得分由高到低的缓慢降低:被遮挡物体在被遮挡之前是可视物体,检测分数较高,建立轨迹;当物体被遮挡时,通过检测框与轨迹的位置重合度就能把遮挡的物体从低分框中挖掘出来,保持轨迹的连贯性。

​​

3. ByteTrack

ByteTrack使用当前性能非常优秀的检测器YOLOX得到检测结果。在数据关联的过程中,和SORT一样,只使用卡尔曼滤波来预测当前帧的跟踪轨迹在下一帧的位置,预测的框和实际的检测框之间的IoU作为两次匹配时的相似度,通过匈牙利算法完成匹配。这里值得注意的是我们没有使用ReID特征来计算外观相似度:

(1)第一点是为了尽可能做到简单高速,第二点是我们发现在检测结果足够好的情况下,卡尔曼滤波的预测准确性非常高,能够代替ReID进行物体间的长时刻关联。实验中也发现加入ReID对跟踪结果没有提升。

(2)如果需要引入ReID特征来计算外观相似度,可以参考我们开源代码中将BYTE应用到JDE,FairMOT等joint-detection-and-embedding方法中的教程。

(3)ByteTrack只使用运动模型没有使用外观相似度能在MOT17,20取得高性能的本质原因是MOT数据集的运动模式比较单一

具体代码

​​​​​​

UI界面设计

  ​​

​​

历史记录

​​

完整代码实现+UI界面

视频,笔记和代码,以及注释都已经上传网盘,放在主页置顶文章

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO类型转换与断言面试题及参考答案

Go 中类型转换与类型断言的区别是什么? 在Go语言里,类型转换和类型断言是两个不同的概念,它们在应用场景、语法格式以及底层实现上都存在明显差异。 类型转换主要用于将一种数据类型转变为另一种数据类型,一般适用于基本数据类型之间的转换,像整数与浮点数、字符串与字节…

【力扣 中等 C】79. 单词搜索

目录 题目 解法一&#xff1a;回溯 题目 解法一&#xff1a;回溯 void swap(char* a, char* b) {char tmp *a;*a *b;*b tmp; }void reverse(char* str) {int start 0, end strlen(str) - 1;while (start < end) {swap(&str[start], &str[end--]);} }bool se…

【数据标注师】分类标注

目录 一、 **分类标注的认知底层逻辑**1. **三大核心挑战2. **四维评估标准** 二、 **五阶成长体系**▶ **阶段1&#xff1a;分类体系深度内化&#xff08;2-4周&#xff09;**▶ **阶段2&#xff1a;标注决策流程固化**▶ **阶段3&#xff1a;场景化标注策略**▶ **阶段4&…

大数据时代UI前端的智能化转型策略:以用户为中心的设计思维

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;大数据驱动的 UI 前端变革浪潮 在数字化体验竞争白热化的今天&#xff…

【python实用小脚本-122】Detect Gender Webcam:基于Python和Keras的实时性别检测工具

在计算机视觉和人工智能领域&#xff0c;实时性别检测是一个具有广泛应用前景的技术。从安防监控到智能广告&#xff0c;性别检测可以帮助系统更好地理解和响应用户需求。为了实现这一功能&#xff0c;我们开发了一个基于Python和Keras的实时性别检测工具——detect_gender_web…

Redis4

Redis除了缓存&#xff0c;还有哪些应用? Redis实现消息队列 **使用Pub/Sub模式&#xff1a;**Redis的Pub/Sub是一种基于发布/订阅的消息模式&#xff0c;任何客户端都可以订阅一个或多个频道&#xff0c;发布者可以向特定频道发送消息&#xff0c;所有订阅该频道的客户端都会…

LEFE-Net:一种轴承故障诊断的轻量化高效特征提取网络

一、研究背景与挑战 轴承作为旋转机械的核心部件&#xff0c;其健康状态直接影响设备运行的安全性和可靠性。传统的故障诊断方法&#xff08;如振动分析、油液检测&#xff09;依赖人工经验&#xff0c;效率低且易受主观因素影响。近年来&#xff0c;基于深度学习的数据驱动方…

springboot+Apache POI 写共导入导出

SpringBoot Apache POI 实现数据导入导出 功能特点&#xff1a; 智能列匹配&#xff1a; 支持精确列名匹配 支持忽略大小写的列名匹配 自动匹配字段名&#xff08;当未指定ExcelProperty时&#xff09; 强大的类型转换&#xff1a; 支持基本数据类型&#xff08;Integer/Lon…

Games101 Lecture3,Lecture4

旋转矩阵逻辑推导 齐次坐标&#xff0c;解决平移的特殊情况 引入一个维度&#xff08;无物理意义&#xff1f;&#xff09;&#xff0c;辅助表达平移&#xff0c;为零时&#xff0c;表示向量&#xff0c;不为零时&#xff0c;表示点&#xff08;/w&#xff09; 三维旋转矩阵 相…

折线图多数据处理

前言&#xff1a; skline1有年份和新申请单位数&#xff0c;skline2有年份和有效期内单位数&#xff0c;我想要把1和2的年份放在一起从小到大放&#xff0c;没有重复的&#xff0c;新申请单位数和有效期内单位数和年份的排列顺序一致 实现&#xff1a; // 获取原始数据 List…

documents4j导出pdf

一、前言 上一篇我们介绍了导出word&#xff0c;既然有了导出word&#xff0c;那么到处pdf也将会出现&#xff0c;导出word和pdf基本上是配套的需求&#xff0c;跑不了&#xff0c;那么本次我就简单介绍一下导出pdf。 二、代码实现 2.1、依赖引入 导出pdf是基于documents4j实现…

从零到一体验 Qwen-TTS:用四川话合成语音的全流程技术实录

今天很高兴看到Qwen-TTS开源。试一试四川方言&#xff08;大概是成都版&#xff09;效果如何。本人无法判断、有兴趣的伙伴可以帮忙听一听。 四川方言TTS "胖娃胖嘟嘟&#xff0c;骑马上成都&#xff0c;成都又好耍。胖娃骑白马&#xff0c;白马跳得高。胖娃耍关刀&…

php数据导出pdf文件

一.导出pdf文件&#xff0c;首先要安装相关的类库文件&#xff0c;我用的是dompdf类库。 1.安装类库文件&#xff1a; composer require dompdf/dompdf 2.引入类库文件到你的控制器中&#xff0c;创建方法&#xff1a; public function generatePdf(){//你需要打印的查询内容…

Beam2.61.0版本消费kafka重复问题排查

1.问题出现过程 在测试环境测试flink的job的任务消费kafka的情况&#xff0c;通过往job任务发送一条消息&#xff0c;然后flink web ui上消费出现了两条。然后通过重启JobManager和TaskManager后&#xff0c;任务从checkpoint恢复后就会出现重复消费。当任务不从checkpoint恢复…

关于 java:9. Java 网络编程

一、Socket 编程 Socket&#xff08;套接字&#xff09;是网络通信的端点&#xff0c;是对 TCP/IP 协议的编程抽象&#xff0c;用于实现两台主机间的数据交换。 通俗来说&#xff1a; 可以把 Socket 理解为“电话插口”&#xff0c;插上后客户端和服务端才能“通话”。 Sock…

主流零信任安全产品深度介绍

腾讯 iOA 零信任安全管理系统 功能&#xff1a;提供零信任接入、终端安全、数据防泄密等十余种功能模块。可实现基于身份的动态访问控制、终端安全一体化防护、数据防泄密体系等。核心优势&#xff1a;基于腾讯内部千万级终端实践打磨&#xff0c;沉淀丰富场景方案&#xff0c…

LabVIEW装配车体挠度无线测量

针对轨道交通车辆装配过程中车体挠度测量需求&#xff0c;基于LabVIEW开发无线快速测量系统&#xff0c;采用品牌硬件构建高精度数据采集与传输架构。系统通过 ZigBee 无线传输技术、高精度模数转换模块及激光位移传感器&#xff0c;实现装配车体挠度的实时、自动、非接触测量&…

java微服务-linux单机CPU接近100%优化

你这个场景&#xff1a; 4核16G 机器 同时运行了 8个 Spring Boot 微服务&#xff0c;每个 JAR 文件 100多 MB 导致 CPU 接近100% 确实是一个常见但资源紧绷的部署情境。下面是分层的优化建议&#xff0c;包括 JVM、系统、服务架构等多个方面&#xff0c;帮助你 降 CPU、稳…

MySQL表的约束和基本查询

一.表的约束 1.1空属性 当我们填写问卷的时候,经常会有不允许为空的问题,比如电话号,姓名等等.而mysql上我们可以在创建表的时候,如果想要某一列不允许为空,可以加上not null来加以限制: mysql> create table myclass( -> class_name varchar(20) not null, -> cla…

VBA代码解决方案第二十六讲:如何新建EXCEL工作簿文件

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程&#xff0c;目前已经是第三版修订了。这套教程定位于入门后的提高&#xff0c;在学习这套教程过程中&#xff0c;侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…