【深度學習】計算機視覺(CV)-目標檢測-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目標檢測

1.什么是 DETR?

DETR(DEtection TRansformer) 是 Facebook AI(FAIR)于 2020 年提出的 端到端目標檢測算法,它基于 Transformer 架構,消除了 Faster R-CNN、YOLO 等方法中的 候選框(Anchor Boxes)非極大值抑制(NMS) 機制,使目標檢測變得更簡單、高效。

論文:End-to-End Object Detection with Transformers


2.DETR 的核心特點

  • 基于 Transformer 進行目標檢測,擺脫了 CNN 傳統的 Anchor 機制
  • 端到端訓練,無需像 Faster R-CNN 額外使用 RPN 進行候選框生成
  • 全局注意力機制(Self-Attention),可以建模遠距離依賴關系,提高檢測精度
  • 自動去重,不需要 NMS 后處理步驟
  • 適用于復雜場景,如密集目標檢測

3.DETR 的工作流程

DETR 由 三部分 組成:

  • CNN 提取圖像特征(ResNet-50 / ResNet-101)
  • Transformer 進行目標檢測(編碼器 + 解碼器)
  • 最終預測目標類別和邊界框(分類 + 位置回歸)

?DETR 結構示意圖

輸入圖片 -> CNN 提取特征 -> Transformer 處理特征 -> 預測目標類別 + 邊界框

4.DETR 代碼示例

使用 PyTorch 進行 DETR 目標檢測

import torch
import torchvision.transforms as T
from PIL import Image
import requests# 載入 DETR 預訓練模型
detr = torch.hub.load('facebookresearch/detr', 'detr_resnet50', pretrained=True, trust_repo=True)
detr.eval()# 加載圖片并進行預處理
image_path = r"D:\Pictures\test.jpeg"
image = Image.open(image_path)transform = T.Compose([T.Resize(800), T.ToTensor()])
img_tensor = transform(image).unsqueeze(0)# 進行目標檢測
with torch.no_grad():outputs = detr(img_tensor)# 輸出檢測結果
print(outputs)

運行結果?

{'pred_logits': tensor([[[-17.4480,  -1.4711,  -6.0746,  ..., -10.0646,  -7.2832,  11.1362],[-17.7877,  -1.7454,  -5.9165,  ..., -11.6356,  -8.4581,  10.7261],[-18.3903,  -1.3194,  -7.6447,  ..., -11.3595,  -6.6635,  11.2573],...,[-18.0295,  -1.6913,  -6.6354,  ..., -11.4836,  -7.7729,  10.9814],[-14.4323,   1.3790,  -4.2558,  ..., -11.5297,  -7.8083,   8.1644],[-17.6349,  -1.6041,  -6.4100,  ..., -11.2120,  -7.4216,  10.7064]]]), 'pred_boxes': tensor([[[0.4990, 0.5690, 0.4764, 0.7080],[0.5039, 0.5219, 0.4657, 0.6124],[0.3920, 0.5463, 0.2963, 0.6085],[0.5231, 0.5180, 0.4489, 0.6110],[0.4986, 0.5346, 0.4989, 0.5883],[0.5145, 0.5258, 0.5162, 0.6123],[0.4251, 0.5273, 0.3235, 0.5911],[0.4012, 0.5339, 0.2816, 0.5804],[0.4025, 0.5263, 0.2526, 0.5638],[0.5153, 0.5249, 0.4807, 0.6065],[0.6775, 0.8235, 0.0436, 0.0436],[0.4380, 0.5365, 0.3368, 0.5919],[0.5044, 0.5242, 0.4791, 0.6314],[0.7352, 0.8131, 0.0248, 0.0464],[0.4567, 0.8361, 0.0448, 0.0530],[0.4981, 0.5287, 0.4715, 0.6199],[0.5047, 0.5239, 0.4570, 0.6045],[0.6295, 0.5182, 0.2367, 0.6062],[0.5980, 0.5261, 0.2878, 0.6313],[0.5106, 0.5218,

代碼解析

  • 載入 Facebook 預訓練的 DETR 模型detr_resnet50
  • 使用 ResNet 預處理輸入圖像
  • 利用 Transformer 進行目標檢測 并輸出檢測框

5.DETR vs Faster R-CNN vs YOLO

模型方法檢測方式速度(FPS)mAP(COCO)特點
Faster R-CNN雙階段RPN + ROI 池化? 5-10🎯 76.4%高精度,速度慢
YOLOv8單階段直接預測類別 + 邊界框? 60+🎯 92%速度快,適合實時檢測
DETR端到端Transformer 進行檢測? 15🎯 94%無 Anchor / NMS
  • DETR 適用于端到端目標檢測,適合大規模數據和復雜場景。
  • YOLO 適用于實時檢測,而 Faster R-CNN 適用于高精度任務。

6.DETR 的優化方向

  • DETR 速度較慢,可優化 Transformer 計算效率(如 Deformable DETR)
  • 提升小目標檢測能力(DETR 需要更大數據集進行訓練)
  • 輕量化 DETR(如 Mobile-DETR)以適應移動端部署

7.結論

  • DETR 通過 Transformer 解決了目標檢測中的 Anchor 機制問題,簡化了流程。
  • 它具有端到端訓練的優勢,但速度較慢,適用于高精度目標檢測任務。
  • 隨著 Transformer 在計算機視覺中的應用(如 ViT),DETR 可能成為未來目標檢測的主流。?

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

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

相關文章

IDEA + 通義靈碼AI程序員:快速構建DDD后端工程模板

作者:陳榮健 IDEA 通義靈碼AI程序員:快速構建DDD后端工程模板 在軟件開發過程中,一個清晰、可維護、可擴展的架構至關重要。領域驅動設計 (DDD) 是一種軟件開發方法,它強調將軟件模型與業務領域緊密結合,從而構建更…

責任鏈模式原理詳解和源碼實例以及Spring AOP攔截器鏈的執行源碼如何使用責任鏈模式?

前言 本文首先介紹了責任鏈的基本原理,并附帶一個例子說明責任鏈模式,確保能夠理解責任鏈的前提下,在進行Spring AOP執行責任鏈的源碼分析。責任鏈模式允許將多個處理對象連接成鏈,請求沿著鏈傳遞,直到被處理或結束。每…

React 與 Vue 對比指南 - 上

React 與 Vue 對比指南 - 上 本文將展示如何在 React 和 Vue 中實現常見功能&#xff0c;從基礎渲染到高級狀態管理 Hello 分別使用 react 和 vue 寫一個 Hello World&#xff01; react export default () > {return <div>Hello World!</div>; }vue <…

大模型開發實戰篇7:語音識別-語音轉文字

語音識別大模型&#xff0c;是人工智能領域的一項重要技術&#xff0c;它能夠將人類的語音轉換為文本。近年來&#xff0c;隨著深度學習技術的不斷發展&#xff0c;語音識別大模型取得了顯著的進展&#xff0c;并在各個領域得到了廣泛應用。 主流語音識別大模型 目前&#xf…

向量的點乘的幾何意義

源自AI 向量的點乘&#xff08;Dot Product&#xff09;在幾何和圖形學中有重要的意義。它不僅是數學運算&#xff0c;還可以用來描述向量之間的關系。以下是點乘的幾何意義及其應用&#xff1a; 1. 點乘的定義 對于兩個向量 a 和 b&#xff0c;它們的點乘定義為&#xff1a;…

國產芯片汽車氣壓表pcba方案

汽車氣壓表的基本原理是利用氣壓傳感器將氣體氣壓轉換為電信號&#xff0c;再通過電子芯片電路進行處理傳輸&#xff0c;再將這些信息轉發給顯示屏顯示。常見的傳感器包括模擬氣壓傳感器和數字氣壓傳感器。其中&#xff0c;模擬氣壓傳感器是目前應用最廣泛的傳感器之一&#xf…

解鎖機器學習核心算法 | K -近鄰算法:機器學習的神奇鑰匙

一、引言 今天我們繼續學習機器學習核心算法 —— K - 近鄰&#xff08;K-Nearest Neighbors&#xff0c;簡稱 KNN&#xff09;算法。它就像是一位經驗豐富的 “老江湖”&#xff0c;以其簡單而又強大的方式&#xff0c;在眾多機器學習任務中占據著不可或缺的地位。 K - 近鄰…

如何在Windows 10操作系統中安裝并配置PHP集成軟件XAMPP

步驟1&#xff1a;下載XAMPP安裝包 訪問XAMPP官網&#xff1a; 打開瀏覽器&#xff0c;進入XAMPP官方網站&#xff1a;https://www.apachefriends.org/index.html 選擇XAMPP版本&#xff1a; 在XAMPP的下載頁面上&#xff0c;選擇適合Windows的最新穩定版本下載&#xff08;例…

【DeepSeek】本地部署,保姆級教程

deepseek網站鏈接傳送門&#xff1a;DeepSeek 在這里主要介紹DeepSeek的兩種部署方法&#xff0c;一種是調用API&#xff0c;一種是本地部署。 一、API調用 1.進入網址Cherry Studio - 全能的AI助手選擇立即下載 2.安裝時位置建議放在其他盤&#xff0c;不要放c盤 3.進入軟件后…

Python 入門教程(2)搭建環境 | 2.3、VSCode配置Python開發環境

文章目錄 一、VSCode配置Python開發環境1、軟件安裝2、安裝Python插件3、配置Python環境4、包管理5、調試程序 前言 Visual Studio Code&#xff08;簡稱VSCode&#xff09;以其強大的功能和靈活的擴展性&#xff0c;成為了許多開發者的首選。本文將詳細介紹如何在VSCode中配置…

Oracle EBS 12.1和APEX 集成時 Apache的配置代理

在有些場景下&#xff0c;apex的前端服務不是和oracle EBS 應用部署在同一個服務器上或者要求apex和訪問地址和EBS公用同一個域名同一個端口&#xff0c;那么怎么才能做到用EBS 的域名和端口來實現對apex的訪問呢 通過配置代理規則解決&#xff0c;以Oracle EBS 12.1.3 為例&am…

【第二節】C++設計模式(創建型模式)-抽象工廠模式

目錄 引言 一、抽象工廠模式概述 二、抽象工廠模式的應用 三、抽象工廠模式的適用場景 四、抽象工廠模式的優缺點 五、總結 引言 抽象工廠設計模式是一種創建型設計模式&#xff0c;旨在解決一系列相互依賴對象的創建問題。它與工廠方法模式密切相關&#xff0c;但在應用…

ubuntu20.04重啟后不顯示共享文件夾

ubuntu20.04重啟后不顯示共享文件夾 主要參見這兩篇博客 Ubuntu重啟后不顯示共享文件夾_ubuntu 20.04 共享目錄無法使用-CSDN博客 ubuntu22.04 配置共享文件夾 找不到/mnt/hgfs_ubuntu安裝tools 后mnt文件夾在哪-CSDN博客 重啟Ubuntu20.04后&#xff0c;發現共享文件夾進不去…

halcon機器視覺深度學習對象檢測,物體檢測

目錄 效果圖操作步驟軟件版本halcon參考代碼本地函數 get_distinct_colors()本地函數 make_neighboring_colors_distinguishable() 效果圖 操作步驟 首先要在Deep Learning Tool工具里面把圖片打上標注文本&#xff0c; 然后訓練模型&#xff0c;導出模型文件 這個是模型 mod…

9.PG數據庫層權限管理(pg系列課程)第2遍

一、PostgreSQL數據庫屬主 Postgres中的數據庫屬主屬于創建者&#xff0c;只要有createdb的權限就可以創建數據庫&#xff0c;數據庫屬主不一定擁有存放在該數據庫中其它用戶創建的對象的訪問權限。數據庫在創建后&#xff0c;允許public角色連接&#xff0c;即允許任何人連接…

2.19學習(php文件后綴)

misc buu-后門查殺 下載附件&#xff0c;我們用火絨安全掃一下然后點擊詳情進入該文件所在文件夾&#xff0c;再用記事本打開該文件&#xff0c;搜索flag無果&#xff0c;再試試pass&#xff08;由題目中的密碼聯系到pass&#xff0c;password&#xff0c;key等&#xff09;&a…

PMBOK第7版整體架構全面詳解

1. 引言 7月1日對于項目管理從業者和研究者而言&#xff0c;是個非凡意義的一個時間&#xff0c;這一天&#xff0c;翹首以待的《 項 目管理知識體系指南 》&#xff08;PMBOK&#xff09;第七版終于發布了。 總體而言&#xff0c;PMBOK第七版集百家之所長&#xff0c;成一…

C++:類與對象,定義類和構造函數

#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //如何讓定義一個類 // 封裝 // 1、將數據和方法定義到一起。 // 2、把想給你看的數據給你看&#xff0c;不想給你看的封裝起來。 通過訪問限定符來實現 class Stack { public: //1.成…

nginx 部署前端vue項目

?? 主頁&#xff1a; ?? 感謝各位大佬 點贊?? 收藏 留言?? 加關注! ?? 收錄于專欄&#xff1a;前端工程師 文章目錄 一、??什么是nginx&#xff1f;二、??nginx 部署前端vue項目步驟 2.1 ??安裝nginx 2.1.1 ??windows環境安裝2.1.2 ??linux環境安裝 2.2 …

藍橋杯備考策略

備賽策略 (1-2周):基礎算法數據結構 (3-5周):動態規劃/貪心圖論 (6-8周):全真模擬查漏補缺 階段1:基礎鞏固(第1-2周) **目標:**掌握基礎數據結構和必考算法&#xff0c;熟悉藍橋杯題型。 學習內容: 數據結構:數組、字符串、棧、隊列、哈希表、二叉樹(遍歷與基本操作)。 基礎…