【論文解讀】Deformable DETR | Deformable Transformers for End-to-End Object Detection

圖片
論文地址:https://arxiv.org/pdf/2010.04159
代碼地址:https://github.com/fundamentalvision/Deformable-DETR

摘要

DETR最近被提出,旨在消除物體檢測中許多手工設計的組件的需求,同時展示出良好的性能。然而,由于Transformer注意力模塊在處理圖像特征圖方面的限制,它存在收斂速度慢特征空間分辨率有限的問題。為了緩解這些問題,本研究提出了Deformable DETR,其注意力模塊僅關注參考點周圍的一小部分關鍵采樣點。Deformable DETR能夠以比DETR少10倍的訓練周期實現更好的性能(尤其是在小物體上)。在COCO基準上的大量實驗證明了本研究方法的有效性。

圖片

引言

現代目標檢測器通常依賴于手工設計的組件,如anchor生成基于規則的訓練目標分配非極大值抑制(NMS)后處理,這使得它們并非完全端到端。為了解決這個問題,DETR被提出,它通過結合卷積神經網絡(CNN)Transformer編碼器-解碼器,構建了第一個完全端到端的目標檢測器,并在性能上具有競爭力。DETR利用Transformer強大的關系建模能力來替代手工設計的規則,并在精心設計的訓練信號下工作。

盡管DETR的設計和性能引人關注,但它也存在一些問題。首先,DETR需要比現有目標檢測器更長的訓練周期才能收斂。例如,在COCO基準測試中,DETR需要500個epoch才能收斂,這比Faster R-CNN慢10到20倍。其次,DETR在檢測小目標時的性能相對較低。現代目標檢測器通常利用多尺度特征,在高分辨率特征圖上檢測小目標。然而,高分辨率特征圖會導致DETR無法接受的復雜度。這些問題主要歸因于Transformer組件在處理圖像特征圖方面的不足。在初始化時,注意力模塊幾乎對特征圖中的所有像素賦予均勻的注意力權重,因此需要長時間的訓練才能使注意力權重學習到聚焦于稀疏且有意義的位置。此外,Transformer編碼器中注意力權重的計算相對于像素數量是二次方的,因此處理高分辨率特征圖的計算和內存復雜度非常高。

為了解決上述問題,本研究提出了Deformable DETR。該方法結合了可變形卷積的稀疏空間采樣Transformer的關系建模能力。本研究提出了可變形注意力模塊,該模塊只關注參考點周圍的一小部分關鍵采樣點,作為從所有特征圖像素中篩選出顯著關鍵元素的一種預處理方式。該模塊可以自然地擴展到聚合多尺度特征,而無需FPN的幫助。在Deformable DETR中,本研究利用多尺度可變形注意力模塊來替代Transformer注意力模塊,以處理特征圖。

Deformable DETR的快速收斂以及計算和內存效率為本研究探索各種端到端目標檢測器變體提供了可能。本研究探索了一種簡單有效的迭代邊界框細化機制,以提高檢測性能。此外,本研究還嘗試了一種兩階段Deformable DETR,其中區域提議也由Deformable DETR的變體生成,并進一步饋送到解碼器以進行迭代邊界框細化。

論文創新點

本研究提出了一種名為Deformable DETR的新型端到端目標檢測器,旨在解決DETR在收斂速度慢和特征空間分辨率受限方面的問題。DETR在目標檢測領域取得了顯著進展,但其Transformer注意力模塊在處理圖像特征圖時存在局限性,導致訓練緩慢且對小目標檢測性能不佳。為了克服這些限制,本研究做出了以下創新:

  1. 💡 可變形注意力模塊(Deformable Attention Module): 💡

    • 本研究設計了一種新的注意力機制,即Deformable Attention Module。
    • 與傳統Transformer的注意力機制不同,該模塊僅關注參考點周圍的一小部分關鍵采樣點,從而顯著減少了計算量和內存需求。
    • 這種稀疏空間采樣的方式借鑒了可變形卷積的思想,使得模型能夠更有效地處理圖像特征圖,加速收斂過程,并提升對小目標的檢測能力
  2. 🔍 多尺度可變形注意力模塊(Multi-scale Deformable Attention Module): 🔍

    • 為了更好地適應不同尺度上的目標檢測,本研究將Deformable Attention Module擴展到多尺度特征圖。
    • 該模塊能夠自然地聚合來自不同尺度特征圖的信息,無需借助傳統的特征金字塔網絡(FPN)。
    • 通過在多個尺度上進行可變形采樣,模型能夠更全面地捕捉目標的上下文信息,進一步提升檢測性能
  3. ?? 可變形Transformer編碼器(Deformable Transformer Encoder): ??

    • 本研究將DETR中的Transformer注意力模塊替換為本研究提出的多尺度可變形注意力模塊。
    • 編碼器的輸入和輸出均為多尺度特征圖,且分辨率相同。
    • 這種設計使得編碼器能夠有效地處理多尺度特征,并提取出更具代表性的特征表示
  4. 📈 迭代邊界框優化(Iterative Bounding Box Refinement): 📈

    • 本研究探索了一種簡單有效的迭代邊界框優化機制,以進一步提高檢測性能。
    • 通過在解碼器的每一層逐步優化邊界框的預測結果,模型能夠更準確地定位目標,并獲得更精確的檢測結果
  5. 🚀 雙階段Deformable DETR(Two-Stage Deformable DETR): 🚀

    • 為了進一步提升性能,本研究嘗試了一種雙階段的Deformable DETR。
    • 第一階段生成區域提議,第二階段利用解碼器對提議進行迭代優化。
    • 這種雙階段方法借鑒了傳統目標檢測器的思想,并將其與Deformable DETR相結合,從而進一步提高了檢測精度

論文實驗

圖片
圖片

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

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

相關文章

從0到1上手Trae:開啟AI編程新時代

摘要:字節跳動 2025 年 1 月 19 日發布的 Trae 是一款 AI 原生集成開發環境工具,3 月 3 日國內版推出。它具備 AI 問答、代碼自動補全、基于 Agent 編程等功能,能自動化開發任務,實現端到端開發。核心功能包括智能代碼生成與補全、…

Vue項目打包常見問題

vue的前端項目中,有時候需要多個不同項目合并到一起。有時候有一些特殊要求。 1、打包后不允許生成帶 .map的文件 正常使用npm run build命令打包生成的dist文件中,js文件總會生成一個同名的.map文件,原因如下: ?總結?&#xf…

Linux 學習-模擬實現【簡易版bash】

1、bash本質 在模擬實現前,先得了解 bash 的本質 bash 也是一個進程,并且是不斷運行中的進程 證明:常顯示的命令輸入提示符就是 bash 不斷打印輸出的結果 輸入指令后,bash 會創建子進程,并進行程序替換 證明&#x…

GitHub 趨勢日報 (2025年05月31日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖 1153 prompt-eng-interactive-tutorial 509 BillionMail 435 ai-agents-for-begin…

“人單酬“理念:財稅行業的自我驅動革命

引言:當薪酬不再是"固定數字",而是"成長標尺" "為什么有人拼命工作卻收入停滯?為什么企業總在人才流失中掙扎?"這些問題背后,往往隱藏著傳統薪酬體系的僵化。而"人單酬"&…

AI大模型賦能,aPaaS+iPaaS構建新一代數智化應用|愛分析報告

01 aPaaS和iPaaS成為企業用戶關注重點 PaaS市場定義 根據Gartner的定義,PaaS(Platform as a Service)平臺是應用基礎架構(中間件)服務的廣泛集合, 包含應用平臺、集成、業務流程管理、數據服務和AI應用等…

WPS快速排版

論文包括(按順序):封面(含題目)、摘 要、關鍵詞、Abstract(英文摘要)、Keywords、目錄、正文、參考文獻、在讀期間發表的學術論文及研究成果,致 謝 題目(黑小一加粗&…

python第39天打卡

1.灰度圖像 作為圖像數據,相較于結構化數據(表格數據)他的特點在于他每個樣本的的形狀并不是(特征數,),而是(寬,高,通道數) # 先繼續之前的代碼 import torch import torch.nn as nn import t…

win11小組件功能缺失的恢復方法

問題說明:重置了win11系統,結果小組件功能找不到了,最后用以下辦法解決。 1. 以管理員身份打開 PowerShell 或 CMD。 2. 運行以下命令: winget install 9MSSGKG348SP 注:如果報錯,可嘗試先卸載再安裝…

Kali Linux從入門到實戰:系統詳解與工具指南

一、Kali Linux簡介 Kali Linux是一款基于Debian的Linux發行版,專為滲透測試和網絡安全審計設計,由Offensive Security團隊維護。其前身是BackTrack,目前集成了超過600款安全工具,覆蓋滲透測試全流程,是網絡安全領域…

C語言 — 文件

目錄 1.流1.1 流的概念1.2 常見的的流 2.文件的打開和關閉2.1 fopen函數2.2 fclose函數2.3 文件的打開和關閉 3.文件的輸入輸出函數3.1 fputc函數3.2 fgetc函數3.3 feof函數和ferror函數3.4 fputs函數3.5 fgets函數3.6 fwrite函數3.7 fread函數3.8 fprintf函數3.9 fscanf函數 4…

Pull Request Integration 拉取請求集成

今天我想要把我創建的項目,通過修改yaml里面的內容,讓我在main分支下的其他分支拉取請求的時候自動化測試拉取的內容,以及將測試結果上傳到控制臺云端。 首先我通過修改yaml文件里面的內容 name: Build and Teston:push:branches:- mainjobs:…

NodeJS全棧開發面試題講解——P3數據庫(MySQL / MongoDB / Redis)

3.1 如何用 Node.js 連接 MySQL?你用過哪些 ORM? 面試官您好,我先介紹如何用 Node.js 連接 MySQL,然后補充我常用的 ORM 工具。 🔌 原生連接 MySQL 使用 mysql2 模塊: npm install mysql2 const mysql …

Redis最佳實踐——性能優化技巧之數據結構選擇

Redis在電商應用中的數據結構選擇與性能優化技巧 一、電商核心場景與數據結構選型矩陣 應用場景推薦數據結構內存占用讀寫復雜度典型操作商品詳情緩存Hash低O(1)HGETALL, HMSET購物車管理Hash中O(1)HINCRBY, HDEL用戶會話管理Hash低O(1)HSETEX, HGET商品分類目錄Sorted Set高O…

題單:最大公約數(輾轉相除法)

題目描述 所謂 “最大公約數(GCD)” ,是指所有公約數中最大的那個,例如 12 和 1818 的公約數有 1,2,3,6 ,所以 12 和 18 的最大公約數為 6 。 輾轉相除法,又名歐幾里德算法(Euclidean Algorit…

hadoop完整安裝教程(附帶jdk1.8+vim+ssh安裝)

本篇帶領大家在uabntu20虛擬機上安裝hadoop,其中還包括jdk1.8、ssh、vim的安裝教程,(可能是)史上最全的安裝教程!!!若有疑問可以在評論區或者私信作者。建議在虛擬機上觀看此博客,便…

Flutter、React Native、Unity 下的 iOS 性能與調試實踐:兼容性挑戰與應對策略(含 KeyMob 工具經驗)

移動端跨平臺開發逐漸成為常態,Flutter、React Native、Unity、Hybrid App 等框架在各類 iOS 項目中頻繁出現。但隨之而來的,是一系列在 iOS 設備上調試難、性能數據采集難、日志整合難的問題。 今天這篇文章,我從實際項目出發,聊…

PyCharm接入DeepSeek,實現高效AI編程

介紹本土AI工具DeepSeek如何結合PyCharm同樣實現該功能。 一 DeepSeek API申請 首先進入DeepSeek官網:DeepSeek 官網 接著點擊右上角的 “API 開放平臺“ 然后點擊API keys 創建好的API key,記得復制保存好 二 pycharm 接入deepseek 首先打開PyCh…

Cinnamon開始菜單(1):獲取應用數據

看了半天:/usr/share/cinnamon/applets/menucinnamon.org,終于挖到了精髓。 Cinnamon.AppSystem.get_default() 獲取系統應用數據 get_tree() 獲取樹機構 get_root_directory() 獲取根目錄 iter() 遍歷 get_name() 獲取名稱 get_desktop_file_id()…

git reset --hard HEAD~1與git reset --hard origin/xxx

git reset --hard HEAD~1與git reset --hard origin/xxx git reset --hard origin/xxx有時候會太長,手工輸入略微繁瑣,可以考慮: git reset --hard HEAD~1 替代。 或者使用這種方式 git reset撤銷當前分支所有修改,恢復到最近一…