yolov13+bytetrack的目標跟蹤實現

目錄

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;側重點是要理解及掌握我的“積木編程”思想。要靈活運用教程中的實例像搭積木一樣把自己喜歡的代碼…