YOLO-World:基于YOLOv8的開放詞匯目標檢測

文章目錄

  • 前言
  • 1、出發點
  • 2、方法
    • 2.1.TextEncoder
    • 2.2.ReparmVLPAN
    • 2.3.輸出頭
  • 3、實驗
    • 3.1.數據集
    • 3.2.LVIS測試集
  • 總結


前言

?本文介紹一篇來自騰訊的開放詞匯檢測工作,發表自CVPR2024,論文鏈接,開源地址。

1、出發點

?GroundingDINO在開放詞匯檢測任務中大放異彩,因此本文希望在輕量化的YOLOv8上也搞一個輕量化的開放詞匯檢測算法。最終效果吧,是模型又快而且精度基本持平。
在這里插入圖片描述

2、方法

?模型總體結構比較簡單,主體檢測網絡采用的是YOLOv8,為了實現開放詞匯檢測任務,將分類頭替換成“特征之間比對頭”,具體來說就是將檢測網絡每個anchor所對應的特征向量和文本嵌入向量做對比,計算相似性,進而實現開放詞匯檢測目的。
在這里插入圖片描述

2.1.TextEncoder

?首先說下TextEncoder,在訓練階段,需要帶著龐大的TextEncoder,而在部署階段,則可以首先離線提取出文本的嵌入向量,這樣在部署階段就能省一個TextEncoder的計算量,使其更加輕量。

在這里插入圖片描述

2.2.ReparmVLPAN

?在得到TextEmbedding和圖像特征向量C3-C5后,本文設計了一個VLPAN交互模塊,簡單來說:用圖像特征向量更新文本,在用文本更新圖像特征向量。當然,在部署階段,TextEmbedding也是可以被作為權重寫入到onnx里面的。
在這里插入圖片描述
?本人不想在此過多介紹這個模塊,因為在實際應用中,建議還是用PAN比較好,因為這個模塊收益不多,而且若檢測的文本順序不同,會導致檢測結果不同。原因是Max-Sigmoid算子,讀者有興趣可自己check下。

2.3.輸出頭

?樣本分配策略是SIMOTA,跟v8一樣。檢測頭就是yolov8,每個anchor預測4個上下左右距離,損失用的是DFL Loss;而分類頭則是對比損失頭,最終輸出維度為: n u m _ a n c h o r ? 80 num\_anchor * 80 num_anchor?80,做二元交叉熵損失,即對應正樣本anchor為1,其余為0。

3、實驗

3.1.數據集

在這里插入圖片描述

? 數據集采用O365+GoldG(GQA+Flickr)。

3.2.LVIS測試集

在這里插入圖片描述
?沒啥可說的,FPS高,而且精度跟一系列開放詞匯檢測算法持平。但paper中指標跟git開源有出入,后續改進論文均以git為準。

總結

?總之是一篇不錯的輕量化OVD算法,算是挖了個新坑。每個模塊其實都有值得探索改進的空間,包括后來的YOLOE , YOLOUniOW等,后續會逐個介紹,包括這類算法的一些不足,敬請期待。

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

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

相關文章

華為網路設備學習-21 IGP路由專題-路由過濾(filter-policy)

一、路由過濾(filter-policy) 1、用于控制路由更新、接收的一個工具 2、只能過濾路由信息,無法過濾LSA 二、路由過濾(filter-policy)與動態路由協議 1、距離矢量路由協議 RIP動態路由協議 交換的是路由表&#xff0…

美化IDEA注釋:Idea 中快捷鍵 Ctrl + / 自動注釋的縮進(避免添加注釋自動到行首)以及 Ctrl + Alt + l 全局格式化代碼的注釋縮進

打開 Settings 界面,依次選擇 Editor -> Code Style -> Java,選擇 Code Generation, 取消 Line comment at first column 和 Block comment at first column 的勾選即可, 1、Line comment at first column (行注釋在第一列…

服務器數據恢復—硬盤壞道導致EqualLogic存儲不可用的數據恢復

服務器存儲數據恢復環境&故障: 一臺EqualLogic某型號存儲中有一組由16塊SAS硬盤組建的RAID5陣列。上層采用VMFS文件系統,存放虛擬機文件,上層一共分了4個卷。 磁盤故障導致存儲不可用,且設備已經過保。 服務器存儲數據恢復過程…

openharmony系統移植之gpu mesa3d適配

openharmony系統移植之gpu mesa3d適配 文章目錄 openharmony系統移植之gpu mesa3d適配1. 環境說明2. gpu內核panfrost驅動2.1 使能panfrost驅動2.2 panfrost dts配置 3. buildroot下測試gpu驅動3.1 buildroot配置編譯 4. ohos下mesa3d適配4.1 ohos下mesa3d編譯調試4.1.2 編譯4.…

Kafka生產者send方法詳解

Kafka生產者send方法詳解 1. send方法的工作原理 1.1 基本流程 #mermaid-svg-EXvKiyf8oSlenrxK {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-EXvKiyf8oSlenrxK .error-icon{fill:#552222;}#mermaid-svg-EXvKiyf…

【sdkman】sdk命令使用簡介

SDKMAN! 使用指南 SDKMAN! 是一個用于管理多個軟件開發工具包版本的命令行工具。 基本命令 安裝 SDK # 安裝最新穩定版 sdk install java# 安裝特定版本 sdk install scala 3.4.2# 安裝本地版本 sdk install groovy 3.0.0-SNAPSHOT /path/to/groovy-3.0.0-SNAPSHOT sdk ins…

開源字體設計工具字玩 FontPlayer

開源字體設計工具字玩 FontPlayer 內測版 v0.2.0 于 2025 年 5 月 9 日發布 基礎功能:用戶可以使用該工具繪制字體并導出 otf 字體文件,設計屬于自己的字庫。腳本功能:提供了腳本功能,用戶可以用程序的方式繪制字形組件&#xff0…

快速入門深度學習系列(3)----神經網絡

本文只針對圖進行解釋重要內容 這就是入門所需要掌握的大部分內容 對于不懂的名詞或概念 你可以及時去查 對于層數 標在上面 對于該層的第幾個元素 標在下面 輸入層算作第0層 對于第一層的w b 參數 維度如下w:4*3 b:4*1 這個叫做神經元 比如對于第一層的神經元 這里說的很…

【Python 算法零基礎 2.模擬 ⑤ 基于棧和隊列】

目錄 基于棧 Ⅰ、1441. 用棧操作構建數組 算法與思路 ① 初始化操作序列 ② 遍歷數字范圍 ③ 判斷并添加操作 ④ 提前結束循環 ⑤ 返回操作序列 基于隊列 Ⅰ、1700. 無法吃午餐的學生數量 思路與算法 ① 統計學生對三明治的需求: ② 遍歷三明治供應順序:…

管家婆實用貼-如何在Excel中清除空格

我們在使用管家婆軟件時,經常會用到Excel表格導入導出數據,在使用Excel整理數據時,數據中的空格可能會導致計算和分析出現問題。無論是多余的前導空格、尾部空格還是單元格中的不必要空格,清除它們都是確保數據準確性的關鍵。今天…

uniapp-商城-53-后臺 商家信息(更新修改和深淺copy)

1、概述 文章主要討論了在數據庫管理中如何處理用戶上傳和修改商家信息的問題,特別是通過深淺拷貝技術來確保數據更新的準確性和安全性。 首先,解釋了深拷貝和淺拷貝的區別:淺拷貝使得兩個變量共享相同的內存地址,而深拷貝則創建新…

numpy模塊綜合使用

一、numpy模塊的綜合使用方法 # 使用矩陣的好處,矩陣對于python中列表,字典等數據類型一個一個拿來計算是會方便計算很多的,底層使用的是c語言 # 在數據分析和數據處理的時候也經常常用 import numpy as np array np.array([[1,2,3],[2,3,4…

【github分享】開發者學習路線圖

地址:GitHub - kamranahmedse/developer-roadmap: Interactive roadmaps, guides and other educational content to help developers grow in their careers. 介紹:涵蓋了所有領域的開發者路線圖,前端、后端、運維、全棧、編程語言、AI等。…

《Linux命令行大全(第2版)》PDF下載

內容簡介 本書對Linux命令行進行詳細的介紹,全書內容包括4個部分,第一部分由Shell的介紹開啟命令行基礎知識的學習之旅;第二部分講述配置文件的編輯,如何通過命令行控制計算機;第三部分探討常見的任務與必備工具&…

[Java實戰]Spring Boot 解決跨域問題(十四)

[Java實戰]Spring Boot 解決跨域問題(十四) 一、CORS 問題背景 什么是跨域問題? 當瀏覽器通過 JavaScript 發起跨域請求(不同協議、域名、端口)時,會觸發同源策略限制,導致請求被攔截。 示例場…

MyBatis快速入門——實操

默認:電腦搭建好了Maven環境 本次入門實驗使用的idea版本:ideaU2022.1 目錄 一:前期準備工作 1. 創建一個springboot工程 2. Maven環境配置 3. 在mysql數據庫中創建一個user表 4. 編寫實體類User 二: 引入MyBatis的相關依賴…

IPLOOK超輕量核心網,助力5G專網和MEC邊緣快速落地

隨著5G深入千行百業,行業客戶對核心網的靈活性、可控性和部署效率提出了更高要求。IPLOOK面向數字化轉型需求,推出了超輕量級核心網解決方案,具備體積小、資源占用少、部署靈活、易于維護等特性,廣泛適用于專網、實驗室、MEC邊緣云…

【前端】【HTML】【總復習】一萬六千字詳解HTML 知識體系

?? HTML 知識體系 一、HTML 基礎入門 1. HTML 簡介與作用 HTML(HyperText Markup Language,超文本標記語言)是構建網頁的基礎語言。它的核心作用是: 定義網頁內容的結構(標題、段落、圖片、表格等)提供語義化標簽,幫助搜索引擎與輔助設備理解頁面內容配合 CSS 實現…

VC++ 獲取CPU信息的兩種方法

文章目錄 方法一:使用 Windows API GetSystemInfo 和 GetNativeSystemInfo (基本信息)編譯和運行代碼解釋 方法二:使用 __cpuid(CPU序列號、特性等)代碼解釋: 開發過程中需要使用 VC獲取電腦CPU信息,先總結…

Docker Compose 的歷史和發展

這張圖表展示了Docker Compose從V1到V2的演變過程,并解釋了不同版本的Compose文件格式及其支持情況。以下是對圖表的詳細講解: Compose V1 No longer supported: Compose V1已經不再支持。Compose file format 3.x: 使用了版本3.x的Compose文件格式。 …