目標檢測新紀元:DETR到Mamba實戰解析

🚀【實戰分享】目標檢測的“后 DE?”時代:DETR/DINO/RT-DETR及新型骨干網絡探索(含示例代碼)

目標檢測從 YOLO、Faster R-CNN 到 Transformer 結構的 DETR,再到 DINO、RT-DETR,近兩年出現了許多新趨勢:更高效的端到端結構、更少的手工設計(比如不再需要 NMS)、以及新型輕量化骨干網絡(比如 Mamba、ConvNeXt、ViT 等)被引入檢測任務中。

作為從事目標檢測的小伙伴,我最近在研究并實踐了這些新方法,本文結合理論與實戰,系統梳理最新進展,并給出部分實戰代碼示例,希望對大家有所幫助。


📌 DETR 的革命:端到端檢測

2019 年底,Facebook AI 提出 DETR(Detection Transformer),通過 Transformer 的 encoder-decoder 和 bipartite matching loss,把目標檢測變為一個序列到序列的預測問題。

優點:

  • 不需要 NMS 和 anchor

  • 端到端優化

缺點:

  • 收斂慢(通常需要 500 epoch)

  • 對小目標不友好

后續很多工作都在解決 DETR 的缺點,如:

  • Deformable DETR:引入可變形注意力,加速收斂到 50 epoch

  • Conditional DETR、DN-DETR:加快收斂

  • DAB-DETR:引入動態 anchor box

  • DINO:加速收斂 + 大幅提升精度


🐬 DINO:更快更準的 DETR

DINO(DETR with Improved DeNoising Anchor boxes)是 2022 年 IDEA 提出的改進版本,關鍵點:

  • 引入 denoising training(對 GT 加噪聲,引導模型學習魯棒性)

  • 使用雙頭結構(兩個 decoder head,一個負責 denoising loss,一個負責 matching loss)

DINO 的 COCO AP 達到 50+,并且收斂更快。

? 實際體驗:在 MMDetection 中用 DINO,比原始 DETR 收斂速度明顯快很多,并且小目標檢測性能也有提升。


? RT-DETR:實時 DETR

2023 年 Ultralytics 和 IDEA 合作推出了 RT-DETR

  • 完全保留 DETR 思路(encoder-decoder)

  • 用更輕量的骨干網絡(如 CSPDarknet、ConvNeXt)

  • 引入多層解碼器特征融合

  • 支持實時檢測:COCO AP50 達到 53.3%,速度可達 70+ FPS

RT-DETR 實現了 端到端結構也能做到實時檢測,對工程落地意義重大。


🧬 新趨勢:新型骨干網絡與檢測結合

檢測算法的進步不僅在檢測頭、損失設計,還在骨干網絡:

  • ConvNeXt:純卷積結構,接近 ViT 表現

  • Swin Transformer / ViT:用自注意力捕捉全局特征

  • Mamba:最近非常熱的狀態空間模型(SSM),輕量高效

比如最近 IDEA 提出了 Mamba-DETR,把 Mamba 結構替代傳統 Transformer 作為 backbone,也取得了不錯結果。


🧪 小試牛刀:用 RT-DETR 檢測自定義數據集

下面用 Ultralytics 的 rtdetr(官方 PyTorch 實現)做個示例:
假設你已經準備好了 COCO 格式的數據集。

📦 安裝

pip install ultralytics

🏗? 新建訓練腳本 train_rtdetr.py

from ultralytics import RTDETR# 加載 RT-DETR 模型
model = RTDETR('rtdetr-l.pt')  # 官方訓練好的大模型# 開始訓練
model.train(data='data.yaml',        # COCO 格式數據集配置文件epochs=50,imgsz=640,batch=16,lr0=1e-3,device=0
)

?? data.yaml 內容示例:

train: ./images/train
val: ./images/val
nc: 3
names: ['apple', 'banana', 'orange']

? 測試與預測

# 驗證
metrics = model.val()# 單張圖片預測
results = model.predict('test.jpg', conf=0.5)
results.show()  # 展示結果
results.save()  # 保存結果

?? 工程小經驗

  • 小數據集:嘗試凍結 backbone,只微調檢測頭

  • 分辨率:增大 imgsz 能提高 AP,但顯存需求更高

  • 小目標:多用多尺度特征;或用 DINO

  • 部署:RT-DETR 支持導出 ONNX / TensorRT,非常適合邊緣設備


📚 更多參考

  • DETR 原論文

  • DINO 論文

  • RT-DETR GitHub

  • Mamba: Linear-Time Sequence Modeling with Selective SSMs


? 結語

目標檢測正進入后 DETR 時代:端到端、無 NMS、輕量化、多模態正成為趨勢。
不論是 DINO 還是 RT-DETR,都極大降低了工程落地門檻。
未來也許會有更多與狀態空間模型(如 Mamba)結合的新檢測器,值得關注和嘗試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87852.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87852.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87852.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【IOS】XCode創建firstapp并運行(成為IOS開發者)

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 這篇文章主要介紹XCode創建firstapp并運行 學其所用,用其所學。——梁啟超 歡迎來到我的博客,一起學習,共同進步。 喜歡的朋友可以關注一下,下次更新不迷路…

class類和style內聯樣式的綁定 + 事件處理 + uniapp創建自定義頁面模板

目錄 一.class類的綁定 1.靜態編寫 2.動態編寫 二.style內聯樣式的綁定 三.事件處理 1.案例1 2.案例2 四.uniapp創建自定義頁面模板 1.為什么要這么做? 2.步驟 ①打開新建頁面的界面 ②在彈出的目錄下,新建模板文件 ③用HBuilderX打開該模板…

android 卡頓和丟幀區別

Android 卡頓(Jank)與丟幀(Frame Drop)的核心區別在于問題本質與用戶感知,以下是分層解析: ? 一、本質差異 維度卡頓(Jank)丟幀(Frame Drop)定義用戶可感知…

【python實用小腳本-125】基于 Python 的 Gmail 郵件發送工具:實現高效郵件自動化

引言 在現代辦公和開發環境中,郵件通信是一種重要的溝通方式。自動化發送郵件可以大大提高工作效率,例如發送通知、報告或文件。本文將介紹一個基于 Python 的 Gmail 郵件發送工具,它能夠通過 Gmail 的 SMTP 服務器發送郵件,并支持…

gateway斷言配置詳解

一、Predicate - 斷? 1、簡單用法 spring:cloud:gateway:routes:- id: after_routeuri: https://example.orgpredicates:- After2017-01-20T17:42:47.789-07:00[America/Denver] 2、自定義斷言 新建類VipRoutePredicateFactory,注意VipRoutePredicateFactory名字…

基于大模型的尿毒癥全流程預測與診療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與方法 1.3 國內外研究現狀 二、尿毒癥相關理論基礎 2.1 尿毒癥的定義、病因與發病機制 2.2 尿毒癥的癥狀與診斷標準 2.3 尿毒癥的治療方法概述 三、大模型技術原理與應用 3.1 大模型的基本概念與發展歷程 3.2 大模型…

裸金屬服務器租用平臺-青蛙云

企業對服務器性能與靈活性的要求與日俱增。青蛙云M-啟強裸金屬服務器租用平臺應運而生,為企業提供了一種兼具物理機性能和云計算彈性的解決方案。裸金屬服務器租用平臺的優勢?(一)高配性能,無虛擬化開銷?裸金屬服務器直接運行在物理硬件之上&#xff0…

[Terence Tao訪談] AlphaProof系統 | AI嗅覺 | 研究生學習 | 龐加萊猜想(高維) | 復雜問題簡單化

玩這些有趣的東西。通常情況下什么也得不到,你必須學會說:“好吧,再試一次,什么都沒發生,我會繼續前進。” DeepMind的AlphaProof系統 Q:DeepMind的AlphaProof系統是通過強化學習訓練的,使用的…

Aseprite工具入門教程4之動畫導入Unity

1、時間軸功能 (1)眼睛圖標 顯示/隱藏圖層圖層隱藏時無法繪制 (2)鎖定圖標 鎖定后無法移動或編輯圖層防止意外在錯誤圖層上繪制 (3)單元格圖標 兩個點代表幀分開,一個橢圓代表幀統一。分開就…

移動硬盤頻繁提示格式化?解決異常故障的正確方法

移動硬盤作為數據存儲的重要工具,不少人都習慣將照片、文檔、項目資料甚至整臺電腦的備份都放在里面。但有時,一件令人頭疼的事悄然發生: 插上硬盤,系統卻突然提示:“使用驅動器中的光盤之前需要將其格式化。是否要將…

Java泛型筆記

1 為什么需要泛型 Java5之前,是沒有泛型的。通過兩段代碼我們就可以知道為何我們需要泛型 public int addInt(int a, int b) {return a b; }public double addDouble(double a, double b) {return a b; } 實際開發中,經常有數值類型求和的需求&…

mysql 圖形化界面工具 DataGrip 安裝與配置

安裝地址: Download DataGrip: Cross-Platform IDE for Databases & SQLhttps://www.jetbrains.com/datagrip/download/?sectionwindows 添加數據源: 下載驅動文件:直接點擊下載即可 點擊測試連接:成功后點擊確定 顯示所有數…

linux下進程之間socket通信c程序例程

以下是一個基于 Linux 的 C 程序示例,展示了如何使用 Unix 域套接字(Unix domain socket)在不同進程之間互傳 JSON 消息。我們將實現一個簡單的客戶端 - 服務器模型,服務器監聽連接,客戶端連接到服務器并發送 JSON 消息…

高云GW5AT-LV60 FPGA圖像處理板|MIPI攝像頭幀率測試

高云GW5AT-LV60 FPGA圖像處理板套件中附帶了三個攝像頭模組,這三個模組真是各有千秋,接下來我通過簡單的一些測試來看看這幾個攝像頭的差異。 VS-SC130GS 、 VS-SC2210 這兩個模組是手動對焦,在使用時需要手動轉動鏡頭調整焦距,這…

機器學習在智能能源管理中的應用:需求響應與可再生能源整合

隨著全球能源需求的不斷增長和環境問題的日益突出,智能能源管理成為實現可持續發展的關鍵。智能能源管理系統通過整合先進的信息技術,如物聯網(IoT)、大數據和機器學習,能夠優化能源的分配和使用,提高能源效…

【網絡】Linux 內核優化實戰 - net.ipv4.tcp_timestamps

目錄 net.ipv4.tcp_timestamps 詳解1. 功能與作用2. 參數取值與含義3. 啟用/禁用的影響4. 配置方法5. 適用場景建議6. 注意事項總結 net.ipv4.tcp_timestamps 詳解 net.ipv4.tcp_timestamps 是 Linux 內核中一個與 TCP 協議相關的網絡參數,用于控制是否啟用 TCP 時…

第一個Flink 程序:詞頻統計 WordCount(流處理)

本文重點 本文將通過一個統計詞頻的小程序來看一下flink是如何對數據進行批處理的,需要聲明的是,一般我們使用Flink常常用于流式處理,即使是有界的數據,我們也將其看成是無界數據進行流式處理,所以批量處理并不是很常用,這里只是為了了解一下Flink是如何進行批處理的。 …

在 Kodi 中添加 AList 搭建 WebDav 的方法

文章目錄 一、問題背景二、使用方法(一)開啟 AList 的 WebDav(二)在 Kodi 添加 WebDav1. 打開設置跳轉到媒體設置添加指定類型的媒體庫2. 選擇添加媒體庫3. 添加新的網絡位置 一、問題背景 AList 是一種使用 Gin 和 Solidjs 編寫…

DAY 49

CBAM 是一種能夠集成到任何卷積神經網絡架構中的注意力模塊。它的核心目標是通過學習的方式,自動獲取特征圖在通道和空間維度上的重要性,進而對特征圖進行自適應調整,增強重要特征,抑制不重要特征,提升模型的特征表達能…

LLM:位置編碼詳解與實現

文章目錄 前言一、絕對位置編碼二、相對位置編碼三、旋轉位置編碼 前言 由于attetnion運算的特性,Transformer本身不感知順序,位置編碼是彌補這一缺陷的關鍵。 一、絕對位置編碼 絕對位置編碼的方式是通過將每個位置映射到一個高維空間中,該…