計算機視覺——通過 OWL-ViT 實現開放詞匯對象檢測

介紹

傳統的對象檢測模型大多是封閉詞匯類型,只能識別有限的固定類別。增加新的類別需要大量的注釋數據。然而,現實世界中的物體類別幾乎無窮無盡,這就需要能夠檢測未知類別的開放式詞匯類型。對比學習(Contrastive Learning)使用成對的圖像和語言數據,在這一挑戰中備受關注。著名的模型包括 CLIP,但將其應用于物體檢測,如在訓練過程中處理未見類別,仍然是一個挑戰。

本文使用標準視覺轉換器(ViT)建立了一個開放詞匯對象檢測模型——開放世界定位視覺轉換器(OWL-ViT),只做了極少的修改。該模型在大型圖像-文本對的對比學習預訓練和端到端檢測的微調方面表現出色。特別是,使用類名嵌入可以實現對未學習類別的零檢測。
OWL-ViT 在單次檢測方面也很強大,因為它可以使用圖像嵌入和文本作為查詢。特別是在 COCO 數據集中,對于未經訓練的類別,OWL-ViT 比以前的一流模型有了顯著的性能提升。這一特性對于檢測難以描述的對象(如特殊部件)非常有用。

我們還證明,增加預訓練時間和模型大小能持續提高檢測性能。特別是,我們發現,即使圖像-文本對的數量超過 200 億,開放詞匯檢測的性能改善仍在繼續。此外,通過在檢測微調中適當使用數據擴展和正則化,即使使用簡單的訓練配方,也能實現較高的零次和單次檢測性能。

建議方法

OWL-ViT 是一個兩階段的學習過程,具體如下:

  1. 使用大型圖像-文本對進行對比預訓練。
  2. 將學習過渡到檢測任務。

使用大型圖像-文本對進行對比預訓練

這樣做的目的是將視覺和語言模式映射到一個統一的表示空間中。學習過程使用圖像和文本編碼器進行訓練,以處理每種模態,使相關的圖像和文本嵌入相互靠近,并使不相關的圖像和文本嵌入相互遠離。

圖像編碼器采用視覺變換器(ViT)架構,該架構具有可擴展性和強大的表示能力。圖像被劃分為多個片段,每個片段都作為一個標記進行處理,從而實現具有空間關系的特征提取。在這一過程中,ViT 標記化過程將圖像轉換成一串固定長度的標記,并通過變換器層學習各補丁之間的關系。另一方面,文本編碼器處理標記化的句子,并生成濃縮整個句子含義的嵌入。文本表示通常是通過轉換器最后一層的句末標記(EOS 標記)輸出獲得的。

OWL-ViT 預訓練的一個重要設計特點是圖像和文本編碼器是獨立的。這種設計允許預先計算查詢文本和圖像的嵌入,從而大大提高了推理過程中的計算效率。這種獨立性還為在同一架構中處理查詢(無論是文本還是圖像)提供了靈活性。

將學習過渡到檢測任務

在這里,首先去掉了 ViT 中最后的標記池層(通常用于提取整個圖像的表示)。取而代之的是,將一個小型分類頭和一個盒式回歸頭直接連接到每個輸出標記。這種設計確保了 ViT 中的每個輸出標記都與圖像中的不同空間位置相對應,每個標記都代表一個潛在的候選對象。分類頭預測物體類別,而方框回歸頭則估算相應邊框的位置。

傳統的對象檢測模型在分類層中學習每個類別的固定權重,而 OWL-ViT 不使用固定的類別分類層。相反,對象類別名稱被輸入到文本編碼器中,生成的文本嵌入直接用作分類頭的權重。只要給出類名,即使是未經訓練的類,這種方法也能讓模型檢測到相應的對象。

轉換學習采用 DEtection TRansformer (DETR) 中使用的兩端匹配損失來預測物體的位置。這種損失是模型預測的邊框與正確邊框之間的最佳映射,并計算每一對邊框的損失。這樣可以調整模型,使預測的物體位置和實際的物體位置保持一致。

在分類方面,焦點 sigmoid 交叉熵用于考慮長尾分布數據集的不平衡。與經常出現的類別相比,這種損失函數對罕見類別的誤報懲罰更大,從而提高了罕見類別的檢測性能。

此外,對于聯合數據集,即并非所有圖像都注釋了所有類別,但每幅圖像中只注釋了有限數量的類別的數據集,對于每幅訓練圖像,查詢是注釋了的類別(正例明確標注為不存在的類別(負面示例)作為查詢。這樣,模型就能根據明確識別的信息進行學習,并減少對負面示例的錯誤處理。為了進一步避免對未注明類別的誤解,我們在訓練過程中隨機選擇類別并將其作為 “偽負例”,為每幅圖像準備了至少 50 個負例查詢。

試驗

實驗中使用了多個數據集。在訓練中,我們主要使用 OpenImages V4(約 170 萬張圖像,600 多個類別)、Visual Genome(8.45 萬張圖像,包括大量對象關系信息)和 Objects365(包含 365 個類別的大型檢測數據集)。一方面,評估使用了長尾分布。同時,評估主要使用了長尾分布的 LVIS v1.0,特別是用于驗證零鏡頭性能。此外,COCO 2017 用于比較標準對象檢測性能,Objects365 用于驗證一般檢測能力。

對開放詞匯對象檢測的評估主要集中在 LVIS 數據集上未經訓練類的性能上。在該實驗中,OWL-ViT 在零拍攝條件下的 APrare 達到了 31.2%,明顯優于現有的先進方法。這表明,在預訓練過程中使用圖像-文本對能夠從類名和描述中有效提取對象的語義特征。尤其是文本條件檢測法,只需輸入類別名稱的文本查詢,就能高精度地檢測出未學習過的類別,這是該方法與以往方法的主要區別。

Hewshot 圖像條件檢測實驗評估了 COCO 數據集上圖像查詢的檢測性能;OWL-ViT 比現有的最先進方法提高了 72%,AP50 分數從 26.0 提高到 41.8。這些結果表明,OWL-ViT 綜合利用了視覺和語言表征,即使對于沒有給出名稱的未知對象,也能提供出色的檢測性能。特別是,圖像條件檢測通過使用包含特定對象的圖像嵌入作為查詢,有效地檢測出了視覺上相似的對象。

對縮放特性的分析證實,增加預訓練中使用的圖像-文本對數量和模型大小可持續提高檢測性能。特別是,在預訓練中使用超過 200 億個圖像-文本對往往能顯著提高零點檢測性能。這一結果表明,在預訓練中使用大規模數據也能有效地過渡到物體檢測任務。同樣明顯的是,基于視覺轉換器的模型比其他架構具有更好的擴展性能,尤其是在模型規模較大的情況下。

拓展與增強

背景知識

  • 對比學習的重要性:對比學習通過將圖像和文本對齊到一個共享的嵌入空間,使得模型能夠理解視覺和語言之間的語義關系。這對于開放詞匯對象檢測至關重要,因為它允許模型通過文本描述來識別未見過的類別。
  • 視覺轉換器(ViT)的優勢:ViT 將圖像分割成固定大小的補丁,并將每個補丁視為一個標記,類似于自然語言處理中的單詞。這種設計使得 ViT 能夠捕捉圖像中的全局特征和局部特征,從而在視覺任務中表現出色。

相關工作

  • CLIP 模型:CLIP 是一個開創性的模型,它通過對比學習將圖像和文本嵌入到一個共享的向量空間中。雖然 CLIP 主要用于圖像分類和文本生成任務,但其思想為 OWL-ViT 提供了重要的啟發。OWL-ViT 在此基礎上進一步擴展,將對比學習應用于對象檢測任務。
  • DETR 模型:DETR 使用 Transformer 架構來處理對象檢測任務,通過端到端的方式學習對象的位置和類別。OWL-ViT 借鑒了 DETR 的思想,使用兩端匹配損失來優化檢測性能。

實際應用場景

  • 工業檢測:在工業環境中,OWL-ViT 可以用于檢測生產線上的缺陷或異常部件。通過提供圖像查詢或類別名稱,模型能夠快速定位并識別問題,從而提高生產效率和質量控制。
  • 自動駕駛:在自動駕駛場景中,OWL-ViT 可以幫助車輛識別道路上的未知障礙物或交通標志。通過實時檢測和識別,車輛可以做出更安全的決策。
  • 醫療影像分析:在醫療領域,OWL-ViT 可以用于分析醫學影像,如 X 光或 CT 掃描。通過提供疾病名稱或圖像示例,模型能夠幫助醫生快速定位病變區域,輔助診斷。

行業影響

  • 推動開放詞匯檢測的發展:OWL-ViT 的出現為開放詞匯對象檢測領域帶來了新的突破。它證明了通過對比學習和 Transformer 架構,可以有效地識別未見過的類別,為未來的研究提供了新的方向。
  • 促進多模態學習的發展:OWL-ViT 結合了圖像和文本兩種模態,展示了多模態學習的強大潛力。這種結合不僅提高了檢測性能,還為其他領域(如自然語言處理和計算機視覺的交叉領域)提供了新的思路。

總結

利用視覺轉換器進行簡單的開放詞匯對象檢測(OWL-ViT)是一項開創性的研究。這項研究的最大貢獻在于,它利用圖像和文本的大規模對比預訓練,實現了對未知類別的零次和一次對象檢測,而且準確率很高。特別是直接使用預訓練的文本編碼器輸出作為類嵌入,而不是使用固定的類分類層的設計,在靈活性和可擴展性方面取得了重大進展。

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

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

相關文章

大語言模型的“模型量化”詳解 - 04:KTransformers MoE推理優化技術

基本介紹 隨著大語言模型(LLM)的規模不斷擴大,模型的推理效率和計算資源的需求也在迅速增加。DeepSeek-V2作為當前熱門的LLM之一,通過創新的架構設計與優化策略,在資源受限環境下實現了高效推理。 本文將詳細介紹Dee…

排序算法詳解筆記

評價維度 運行效率就地性穩定性 自適應性:自適應排序能夠利用輸入數據已有的順序信息來減少計算量,達到更優的時間效率。自適應排序算法的最佳時間復雜度通常優于平均時間復雜度。 是否基于比較:基于比較的排序依賴比較運算符(…

【“星瑞” O6 評測】 — llm CPU部署對比高通驍龍CPU

前言 隨著大模型應用場景的不斷拓展,arm cpu 憑借其獨特優勢在大模型推理領域的重要性日益凸顯。它在性能、功耗、架構適配等多方面發揮關鍵作用,推動大模型在不同場景落地 1. CPU對比 星睿 O6 CPU 采用 Armv9 架構,集成了 Armv9 CPU 核心…

Ocelot的應用案例

搭建3個項目,分別是OcelotDemo、ServerApi1和ServerApi2這3個項目。訪問都是通過OcelotDemo進行輪訓轉發。 代碼案例鏈接:https://download.csdn.net/download/ly1h1/90715035 1.架構圖 2.解決方案結構 3.步驟一,添加Nuget包 4.步驟二&…

DeepSeek+Dify之五工作流引用API案例

DeepSeekDify之四Agent引用知識庫案例 文章目錄 背景整體流程測試數據用到的節點開始HTTP請求LLM參數提取器代碼執行結束 實現步驟1、新建工作流2、開始節點3、Http請求節點4、LLM節點(大模型檢索)5、參數提取器節點(提取大模型檢索后數據&am…

《從分遺產說起:JS 原型與繼承詳解》

“天天開心就好” 先來講講概念: 原型(Prototype) 什么是原型? 原型是 JavaScript 中實現對象間共享屬性和方法的機制。每個 JavaScript 對象(除了 null)都有一個內部鏈接指向另一個對象,這…

立馬耀:通過阿里云 Serverless Spark 和 Milvus 構建高效向量檢索系統,驅動個性化推薦業務

作者:廈門立馬耀網絡科技有限公司大數據開發工程師 陳宏毅 背景介紹 行業 蟬選是蟬媽媽出品的達人選品服務平臺。蟬選秉持“陪伴達人賺到錢”的品牌使命,致力于洞悉達人變現需求和痛點,提供達人選高傭、穩變現、速響應的選品服務。 業務特…

Android顯示學習筆記本

根據博客 Android-View 繪制原理(01)-JAVA層分析_android view draw原理分析-CSDN博客 提出了我的疑問 Canvas RenderNode updateDisplayListDirty 這些東西的關系 您的理解在基本方向上是對的,但讓我詳細解釋一下 Android 中 updateDisplayListDirty、指令集合、…

JavaWeb學習打卡-Day4-會話技術、JWT、Filter、Interceptor

會話技術 會話:用戶打開瀏覽器,訪問web服務器的資源,會話建立,直到有一方斷開連接,會話結束。在一次會話中可以包含多次請求和響應。會話跟蹤:一種維護瀏覽器狀態的方法,服務器需要識別多次請求…

讓數據優雅落地:用 serde::Deserialize 玩轉結構體實體

前言 想象一下,服務器突然飛來一堆 JSON 數據,就像一群無頭蒼蠅沖進辦公室,嗡嗡作響,橫沖直撞。此刻,你的任務,就是把這群“迷路數據”安置進正確的格子里,分門別類,秩序井然,不混不亂,不漏一只。 好在 Rust 早就為我們備好瑞士軍刀:serde::Deserialize。它不僅刀…

Virtio 技術解析 | 框架、設備實現與實踐指南

本文為 “Virtio” 相關文章合輯。 略作重排,如有內容異常,請看原文。 Virtio 簡介(一)—— 框架分析 posted 2021-04-21 10:14 Edver 1. 概述 在傳統設備模擬中,虛擬機內部設備驅動完全不知自身處于虛擬化環境&a…

云計算賦能質檢LIMS的價值 質檢LIMS系統在云計算企業的創新應用

在云計算技術高速發展的背景下,實驗室信息化管理正經歷深刻變革。質檢LIMS(實驗室信息管理系統)作為實驗室數字化轉型的核心工具,通過與云計算深度融合,為企業提供了高彈性、高安全性的解決方案。本文將探討質檢LIMS在…

【win11 安裝WSL2 詳解一遍過!!】

共有五個步驟,按部就班的做,保準成功! 1. 打開開發者模式 設置->系統->開發者模式 2. 打開linux的win子系統 找到控制面板-程序和功能-啟用或關閉Windows功能,選中“適用于Linux的Windows子系統”,“虛擬機…

Godot開發2D冒險游戲——第三節:游戲地圖繪制

一、初步構建游戲地圖 在游戲場景當中添加一個新的子節點:TileMapLayer 這一層稱為瓦片地圖層 根據提示,下一步顯然是添加資源 為TileMapLayer節點添加一個TileSet 將地板添加進來,然后選擇自動分割圖集 自定義時要確保大小合適 讓Godot自…

Django創建的應用目錄詳細解釋以及如何操作數據庫自動創建表

創建好Django項目后 如果要創建 python manage.py startapp 模塊名模塊 使用 我創建一個system模塊后是 注意:urls是我自己建的文件 1.migrations目錄 存放數據庫的遷移文件,當models.py中模型定義發生變化時,通過遷移操作能同步數據庫結構變化 __init__ 使該目錄…

將輸入幀上下文打包到下一個幀的預測模型中用于視頻生成

Paper Title: Packing Input Frame Context in Next-Frame Prediction Models for Video Generation 論文發布于2025年4月17日 Abstract部分 在這篇論文中,FramePack是一種新提出的網絡結構,旨在解決視頻生成中的兩個主要問題:遺忘和漂移。 具體來說,遺忘指的是在生成視…

STM32 串口USART

目錄 常見的通信方式 串行通信和并行通信 全雙工,半雙工和單工通信 同步通信和異步通信 通信速率 常見的通信協議 串口基礎知識 電平特性 串口傳輸協議 STM32F103的USART資源 端口引腳 數據寄存器單元 發送接收控制單元 實現串口發送 printf…

Taro on Harmony :助力業務高效開發純血鴻蒙應用

背景 純血鴻蒙逐漸成為全球第三大操作系統,業界也掀起了適配鴻蒙原生的浪潮,用戶遷移趨勢明顯,京東作為國民應用,為鴻蒙用戶提供完整的購物體驗至關重要。   去年 9 月,京東 AP…

gem5-gpu教程05 內存建模

memory-modeling|Details on how memory is modeled in gem5-gpu gem5-gpu’s Memory Simulation gem5-gpu在很大程度上避開了GPGPU-Sim的單獨功能模擬,而是使用了gem5的執行中執行模型。因此,當執行存儲/加載時,內存會被更新/讀取。沒有單獨的功能路徑。(順便說一句,這…

【python】lambda用法(結合例子理解)

目錄 lambda 是什么? 為什么叫 lambda? 語法 舉例 1. 最簡單的 lambda:單個數字處理 2. 用 lambda 排序一組字符串(按照長度排序) 3. 在列表里找出絕對值最小的數字 4. 給 map() 用 lambda 5. 組合使用:篩選出偶數 lambda 和 def 的對比 lambda 適合用在什么地…