端到端目標檢測 |從DETR 到 GroundingDINO

在這里插入圖片描述

文章目錄

  • 一,DETR
    • 1. 簡介
    • 2. 亮點
    • 3. 細節
    • 4. 總結一下
  • 二,GroundingDINO
    • Grounding DINO的整體流程
    • Grounding DINO的目標函數

一,DETR

之前的目標檢測框架,需要很多的人工干預,很多的先驗知識,而且可能還需要很復雜的普通的庫不支持的一些算子。

DETR 既不需要proposal, 也不需要anchor,用transformer這種能全局建模的能力,從而把目標檢測看成一個集合預測的問題。

因為有了這種全局建模的能力,DETR不會輸出那么多冗余的框,而不需要nms,做后處理,讓訓練和部署都簡單了不少。

1. 簡介

  • 把目標檢測 看成 集合預測 的問題。
    • 給定一堆圖片,預測這些框的坐標和類別
    • 這個框就是一個集合
    • 任務就是給定一個圖片,我要去把這個集合預測出來
  • 把目標檢測 做成了 端到端 的框架
    • 把之前目標檢測特別依賴人的部分 (設定anchor, nms) 去掉了,就沒有那么多的超慘需要去調,整個網絡就變得非常簡單了

2. 亮點

  1. DETR提出了一個目標函數
  2. 使用了transformer encoder-decoder架構
  3. 還有一個learned object queries
  • 而且是并行計算的,一起出框,而不是串行的

  • 新的模型很簡答,不需要特殊的庫,支持cnn和transformer庫就可以做

  • 在coco表現四十多,比當時最多的低了十個點。

  • DETR也可以去做前景分割,效果很好。

  • 建議去讀一下代碼

3. 細節

  • 之前的目標檢測器都是間接的去解決問題,用了anchor, proposal, 預測中心點,nms等等。
  • DETR 采用了端到端的方式,直接解決問題,簡化了目標檢測的流程。
  1. 用卷積神經網絡抽取一個圖像特征,拉直,送給一個transfomer
    • transfomer encoder學習一個全局的信息,為接下來的 decoder(出預測框)來做鋪墊
    • 使用transformer encoder, 就意味著每一個特征,都會與全局每一個特征有交互了,這樣她大概就知道哪塊是哪個物體,哪塊又是另外一個物體,對同一個物體來說,只需要出一個框,而不是好多個框。 這種全局的特征,特別有利于去除這種冗余的框。
  2. 用transfomer decoder 做框的輸出。當有了圖像的特征之后,還有一個object quirer, 它限定了你要出多少個框,通過queire和特征去做交互,在decoder里做自注意力操作,得到了最后輸出的框。
  3. 作者設定出100個框,100個框如何與ground truth做匹配,計算損失呢?他把這個問題看成一個集合預測的問題,用 二分圖匹配的方法計算這個loss。
    • 比如,ground truth有兩個框,通過這輸出的100個框計算與2個框的matching loss,而決定出,在這一百個預測中,哪兩個框是獨一無二的對應到這個紅色和黃色的ground truth框的。一旦匹配好之后,就計算bbox, cls的loss, 對于沒有匹配到的框就會被標記為背景類。
      在這里插入圖片描述
      在這里插入圖片描述

4. 總結一下

  • 四步:
  1. 用神經網絡抽特征
  2. 用transformer encoder學全局特征, 幫助后面做檢測
  3. 用transformer decoder 生成很多的預測框
  4. 把預測框與ground truth的框做匹配,在匹配上的這些框里面去算目標檢測的損失
  • 推理的時候:
    前三步都是一致的,直接用閾值,卡一下box preditions的置信度 > 0.7是前景物體, <0.7 就被當作背景物體了。

  • 在coco與faster rcnn AP結果差不多,對大物體表現非常好,對小物體小物體效果一般。半年之后有一篇論文解決了這個問題,也解決了DETR訓練太慢的問題。

損失函數:

  1. 匈牙利損失:基于匈牙利算法進行預測框和真實框之間的匹配,并計算匹配后的分類損失和框回歸損失。
  2. 分類損失:采用交叉熵損失,用于預測每個框的類別。
  3. 框回歸損失:采用GIoU損失和L1損失的組合,用于預測框的坐標。GIoU損失是IoU損失的一種改進,考慮了框的大小。
  4. DICE/F1損失:用于分割分支,用于預測每個框的分割掩碼。
  5. 輔助解碼損失:在解碼器每層之后添加預測頭,并計算匈牙利損失,有助于模型輸出正確數量的每個類別的對象。
    通過匈牙利匹配強制預測唯一對應真實框,同時利用分類、框回歸和分割損失來訓練模型,實現了端到端的檢測和分割。

二,GroundingDINO

GroundingDINO 論文總結

GroundingDINO 論文的總結,請點擊上方的 跳轉鏈接
  • 其實和DETR的結構一模一樣,各位reader從以下幾個方面可以自己對比一下。
  1. encoder-decoder
  2. object query
  3. 二分圖匹配

Grounding 與 DETR 的不同:就是引入了文本信息,把文本圖像相互融合了三次。做到文本指導圖片的這么一個能力。
在這里插入圖片描述

Language-guide Query Selection 給定圖像特征和文本特征,Language-guide Query Selection模塊首先計算兩者的相關性得分,然后根據得分選擇最相關的圖像特征作為queries。這些queries包含了圖像和文本的信息,隨后會被送入解碼器進行進一步處理。

Grounding DINO的整體流程

1. 特征提取: 首先,通過圖像backbone和文本backbone分別提取輸入圖像和文本的特征。
2. 特征增強: 接著,將提取的圖像特征和文本特征輸入特征增強模塊,通過自注意力、圖像到文本的交叉注意力和文本到圖像的交叉注意力實現跨模態特征融合。
3. 查詢選擇: 然后,利用語言指導的查詢選擇模塊,從增強后的圖像特征中選出與輸入文本更相關的特征作為解碼器的查詢。
4. 解碼器: 接著,將選擇的查詢輸入跨模態解碼器,解碼器包含自注意力層、圖像交叉注意力層、文本交叉注意力層和FFN層,用于進一步融合圖像和文本特征,并更新查詢表示。
5. 預測輸出: 最后,利用解碼器最后一層的輸出查詢進行目標框預測和對應短語提取。
6. 損失函數: 在整個流程中,使用對比損失、框回歸損失和GIOU損失進行多任務學習。
總體來說,Grounding DINO通過在特征增強、查詢選擇和解碼器等多個階段進行跨模態特征融合,實現了對任意文本指定的目標檢測。

Grounding DINO的目標函數

  1. 對比損失(Contrastive Loss):用于預測對象和語言標記之間的分類。使用點積計算每個查詢與文本特征之間的預測logits,然后計算每個logit的Focal loss。
  2. 框回歸損失(Box L1 Loss):用于預測對象的邊界框坐標。用于計算預測框和真實框坐標之間的絕對誤差。
  3. GIOU損失(GIOU Loss):用于預測對象邊界框的準確度。用于衡量預測框和真實框的形狀和位置重疊情況,考慮到重疊區域和整體框的面積。

這些損失首先用于進行預測與真值之間的匈牙利匹配,然后計算最終損失。 此外,在模型的每個解碼器層和解碼器輸出之后,還添加了輔助損失。對比損失、框回歸損失和GIOU損失在匹配和最終損失計算中的權重分別為2.0、5.0和2.0。

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

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

相關文章

Pandas格式化DataFrame的浮點數列

在呈現數據的同時&#xff0c;以所需的格式顯示數據也是一個重要而關鍵的部分。有時&#xff0c;值太大了&#xff0c;我們只想顯示其中所需的部分&#xff0c;或者我們可以說以某種所需的格式。 讓我們看看在Pandas中格式化DataFrame的數值列的不同方法。 例1&#xff1a;將…

?【純干貨】Matplotlib總結,任何項目都用得到呦?

Matplotlib 在很多人眼里是無敵的存在&#xff0c;而且可以說是無敵的存在。 走過數據科學的路&#xff0c;路上必然有Matplotlib 的風景在你周圍。 如果同一個項目&#xff0c;你的用了matplotlib 不僅有基本圖形、定制化圖形、多個坐標軸、3D繪圖&#xff0c;還有動態交互繪…

DNSlog環境搭建

阿里云域名公網VPS地址 購買阿里云域名后設置“自定義DNSHOST” DNS服務器填寫ns1和ns2 如&#xff1a;ns1.aaa.com IP地址填寫你的VPS地址 如&#xff1a;1.1.1.1 填寫解析記錄&#xff0c;一個A記錄、一個NS記錄 NS記錄就是*.域名指向記錄值ns1.域名 如&#xff1a;*.aaa…

服務器的遠程桌面無法連接,服務器遠程桌面無法連接問題處理教程

服務器的遠程桌面無法連接&#xff0c;服務器遠程桌面無法連接問題處理教程。 一、問題概述 服務器遠程桌面無法連接是日常運維中常見的問題之一。它可能由多種原因造成&#xff0c;如網絡問題、服務器配置錯誤、遠程桌面服務未啟動等。本教程將指導您逐步排查并解決這些問題。…

計算機算法中的數字表示法——原碼、反碼、補碼

目錄 1.前言2.研究數字表示法的意義3.數字表示法3.1 無符號整數3.2 有符號數值3.3 二進制補碼(Twos Complement, 2C)3.4 二進制反碼(也稱作 1 的補碼, Ones Complement, 1C)3.5 減 1 表示法(Diminished one System, D1)3.6 原碼、反碼、補碼總結 1.前言 昨天有粉絲讓我講解下定…

手推車式電纜故障定位系統

武漢凱迪正大一體化電纜故障高壓發生器用于測試各種型號的380V,600V,10kV,35kV,110kV,220kV,380kV電壓等級的銅鋁芯電力電纜、同軸通信電纜和市話電纜的各類故障&#xff0c;如電纜全長、開路、短路、斷線、低阻故障、高阻故障、高阻泄露、高低阻抗接地、接地故障、鎧裝接地故障…

工控一體機7寸顯示器電容觸摸屏(YR07JK)產品規格說明書

如果您對工控一體機有任何疑問或需求&#xff0c;或者對如何集成工控一體機到您的業務感興趣&#xff0c;可移步控芯捷科技。 一、硬件功能介紹 1.1 YR07JK介紹 YR07JK工控機是我公司推出的一款新型 Cortex-A17 架構&#xff0c;主頻達1.8GHz、具有高性能低能耗的工業控制板卡…

甩掉接口文檔煩惱!Spring Boot 集成 Knife4j,輕松玩轉 API 可視化

一、引言&#xff1a;跟接口文檔說拜拜 &#x1f44b; 作為一名 Java 開發者&#xff0c;你是否還在為編寫繁瑣的 API 文檔而頭疼&#xff1f;傳統的手動編寫方式不僅耗時費力&#xff0c;而且容易出錯&#xff0c;難以維護。今天&#xff0c;我們就來介紹一款神器 Knife4j&am…

win10雙網卡如何同時上內網和外網?

win10雙網卡如何同時上內網和外網? Chapter1 win10雙網卡如何同時上內網和外網?Chapter2 網絡基礎--win10雙網卡設置成訪問不同的網絡 Chapter1 win10雙網卡如何同時上內網和外網? 原文鏈接&#xff1a;https://www.jb51.net/os/win10/806585.html 場景&#xff1a;很多辦…

【計算機畢業設計】388微信小程序足球賽事及隊伍管理系統

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

QT7_視頻知識點筆記_67_項目練習(頁面以及對話框的切換,自定義數據類型,DB數據庫類的自定義及使用)

視頻項目&#xff1a;7----汽車銷售管理系統&#xff08;登錄&#xff0c;品牌車管理&#xff0c;新車入庫&#xff0c;銷售統計圖表&#xff09;-----項目視頻沒有&#xff0c;代碼也不全&#xff0c;更改項目練習&#xff1a;學生信息管理系統。 學生信息管理系統&#xff1…

大模型助力企業提效,九章云極DataCanvas公司聯合騰訊搜狗輸入法發布私有化解決方案

近日&#xff0c;九章云極DataCanvas公司與騰訊搜狗輸入法的合作再次升級。在搜狗輸入法開發者中心正式推出之際&#xff0c;九章云極DataCanvas公司作為搜狗輸入法的首批開發合作伙伴&#xff0c;雙方聯合發布“企業知識管理助手”私有化解決方案。 “企業知識管理助手”整體私…

Facebook的魅力:數字時代的社交熱點

在當今數字化時代&#xff0c;社交媒體已經成為人們日常生活中不可或缺的一部分&#xff0c;而Facebook作為其中的巨頭&#xff0c;一直以其獨特的魅力吸引著全球數十億用戶。本文將深入探討Facebook的魅力所在&#xff0c;以及它在數字時代的社交熱點。 1. 社交網絡的霸主&…

最新微信小程序面試題集結

1、微信小程序與H5的區別? 第一條是運行環境的不同 傳統的HTML5的運行環境是瀏覽器&#xff0c;包括webview&#xff0c;而微信小程序的運行環境并非完整的瀏覽器&#xff0c;是微信開發團隊基于瀏覽器內核完全重構的一個內置解析器&#xff0c;針對小程序專門做了優化&…

對于高速信號完整性,一塊聊聊啊(17)

再來對前仿和后仿的仿真內容回顧一下&#xff1a; 從概念上有個根本的理解 前仿真又可以分為布局前仿真和布局后仿真。前者是在設計的最初階段&#xff0c;建立和驗證詳細的電氣拓撲結構并以此制定出詳細的約束規則。后者是在布局完成的狀態下&#xff0c;在布線過程中遇到的…

隨機生成序列的某一排列

隨機生成1~n的某一排列&#xff0c;要求生成每種可能的排列的概率相同 。 算法描述&#xff1a; 給定數值分別為1~n的序列a&#xff0c; 循環變量i從1到n&#xff0c;每次循環將a[i]與a[i]~a[n]中的隨機某元素交換&#xff0c;最后a數組即為隨機生成的某一排列。 #include <…

【2024】C/C++框架和庫超全總結

本文分為2部分&#xff0c;第一部分&#xff1a;值得學習的C/C語言開源項目&#xff1b;第二部分是開源框架和庫 粉絲福利&#xff0c; 免費領取C/C 開發學習資料包、技術視頻/項目代碼&#xff0c;1000道大廠面試題&#xff0c;內容包括&#xff08;C基礎&#xff0c;網絡編程…

MATLAB分類與判別模型算法:基于LVQ神經網絡的乳腺腫瘤診斷分類程序【含Matlab源碼 MX_003期】

說明 實現基于LVQ&#xff08;Learning Vector Quantization&#xff0c;學習向量量化&#xff09;神經網絡的乳腺腫瘤診斷分類任務。LVQ是一種監督學習算法&#xff0c;通常用于模式識別和分類任務。 算法思路介紹&#xff1a; 導入數據&#xff1a; 加載名為"data.mat&…

2024下半年軟考報名人數較去年減少,僅52.77萬

2024下半年軟考報名人數 2024年上半年軟考考試共計報考52.77萬人&#xff0c;其中&#xff0c;初級資格5.12萬人、中級資格24.37萬人、高級資格23.28萬人。 根據往年報名人數&#xff0c;本次考試人數是減少了的&#xff0c;原因分析如下&#xff1a; 1、原來報名熱門專業系…

C++的unique_ptr::release

釋放給調用方返回的存儲指針的所有權&#xff0c;并將存儲的指針值設置為nullptr。 使用 release接管unique_ptr存儲的原始指針的所有權。 調用方負責返回的指針的刪除。 unique-ptr設置為空的默認構造狀態。 在調用到release后&#xff0c;您可以將兼容類型的另一個指針分配到…