CVHub | CVPR 2024 | 英偉達發布新一代視覺基礎模型: AM-RADIO = CLIP + DINOv2 + SAM

本文來源公眾號“CVHub,僅用于學術分享,侵權刪,干貨滿滿。

原文鏈接:CVPR 2024 | 英偉達發布新一代視覺基礎模型: AM-RADIO = CLIP + DINOv2 + SAM

標題:《AM-RADIO: Agglomerative Vision Foundation Model Reduce All Domains Into One》
論文:https://arxiv.org/pdf/2312.06709
源碼https://github.com/NVlabs/RADIO

1 導讀

AM-RADIO是什么?一張圖先來感受它的魅力:

簡單來說,AM-RADIO 是一個由英偉達提出的一個視覺基礎模型框架,其集成了多個預訓練的視覺基礎模型如 CLIP、DINOv2及SAM 的能力,以獲得強大的表征能力,同時也以幾乎可以忽略不計的額外成本實現了SOTA級別的零樣本分類或開集實例分割性能。

如上圖左邊所示的PCA特征可視化結果,RADIO 模型可以處理任何分辨率和寬高比,并產生語義豐富的稠密編碼;上圖中間則展示了 RADIO 的框架圖;右側顯示了在分類、分割和視覺語言建模任務上的基準測試。

2 背景

Visual Foundation Models,VFMs,即視覺基礎模型是一個非常重要的概念,諸如 CLIP、DINOv2、SAM 這樣的 VFMs 通過不同的目標進行訓練,已逐漸成為許多下游任務的核心。

例如,CLIP 這樣的預訓練視覺語言模型在不同的下游視覺任務上展現了強大的零樣本泛化性能。這些模型通常使用從網絡收集的數百上千萬圖像-文本對進行訓練,并提供具有泛化和遷移能力的表示。因此,只需通過簡單的自然語言描述和提示,這些預訓練的基礎模型完全被應用到下游任務,例如使用精心設計的提示進行零樣本分類。

除了此類大型視覺語言基礎模型外,一些研究工作也致力于開發可以通過視覺輸入提示的大型基礎模型。例如,最近 meta 推出的 SAM 能夠執行與類別無關的分割,給定圖像和視覺提示(如框、點或蒙版),指定要在圖像中分割的內容。這樣的模型可以輕松適應特定的下游任務,如醫學圖像分割、視頻對象分割、機器人技術和遙感等。

最后,像 DINOv2,這種用于在大型圖像數據集上預訓練圖像編碼器,以獲得具有語義的視覺特征。這些特征可用于廣泛的視覺任務,無需微調即可獲得與有監督模型相當的性能。

本文發現,盡管它們在概念上存在差異,但這些模型可以通過多教師蒸餾有效地合并成一個統一模型,稱為Agglomerative Model – Reduce All Domains Into One,AM-RADIO,即聚合模型,旨在將所有領域縮減為一個。

這種整合方法不僅超越了單個教師模型的性能,而且融合了它們的獨特特征,如零樣本視覺-語言理解、詳細的像素級理解以及開放詞匯分割能力。

此外,為了追求最硬件效率高的主干網絡,本文在多教師蒸餾流程中評估了多種架構,使用相同的訓練策略;最終得到的新框架其性能超過了此前的SOTA模型,并且至少比教師模型在相同分辨率下快6倍,同時也在各大視覺任務取得了非常不錯的性能表現。

關于“視覺大模型”的更多介紹,請參考萬字長文帶你全面解讀視覺大模型。

3 方法

如上所述,本文提出一個框架,旨在通過多教師蒸餾從零開始訓練視覺基礎模型。這種方法的核心思想是利用多個已經在不同領域或任務上表現優異的教師模型來共同訓練一個新的模型,這個新模型將集成所有教師模型的獨特屬性。

在選擇的教師模型方面,作者選定了 CLIP、DINOv2 和 SAM 這三個主流的視覺基礎模型,因為它們在各自的領域(如圖像-文本匹配任務上,自監督學習任務上,開集分割任務)上都展現出了SOTA性能。

在訓練過程中,本文沒有使用額外的標簽信息,而是將ImageNet、LAION-400M和DataComp1B等數據集中的圖像作為訓練數據。這樣的做法使得模型能夠在沒有明確標簽指導的情況下學習到圖像的豐富表征

為了評估模型的性能,作者采用了一系列度量標準,涵蓋了圖像級推理、像素級視覺任務、大型視覺-語言模型以及SAM-COCO實例分割等多個方面。

AM-RADIO: 多教師統一蒸餾框架

3.1 Adaptor Heads

在這一步中,作者選擇了簡單的設計方案,使用了一個簡單的2層多層感知機(MLP),中間夾雜著 LayerNorm 和 GELU 激活函數。Head 部分的輸入維度是學生模型嵌入的維度,中間維度是所有教師模型中最大的嵌入維度,輸出維度與特定教師模型相匹配。對于每個教師,作者使用了兩個 head,一個用于提取整體特征向量,另一個則用于保留空間特征。

3.2 Distillation Dataset

本文研究了不同數據集對下游指標的影響。雖然使用ImageNet-1K作為訓練數據集可以獲得最高的圖像分類指標,但作者認為這并不能公平地衡量“零樣本”性能,因為學生在評估域中直接學習到了教師的特征。因此,最終選擇了 DataComp-1B 數據集。

3.3 Loss Formulation

上面我們提到,這里訓練的時候不使用原有的GT,因此是通過選擇匹配來自每個教師視覺編碼器的特征。特別是,AM-RADIO 區分了每個教師的 Summary 特征向量和 Spatial 特征向量。

需要注意的是,對于CLIP和DINOv2,這里 Summary 特征向量使用的是“類 token”;而對于SAM,則不匹配此部分特征。

實驗發現,與 L1、MSE、Smooth-L1 相比,余弦距離損失能夠產生更好的結果。此外,通過匹配教師的空間特征來監督模型的 spatial features 不僅對下游密集任務重要,而且提高了模型的總體質量。

為此,對于匹配空間特征,作者采用了余弦相似性和Smooth L1的組合。

4 實驗細節

本文架構本質上沒有創新,只是對現有能力的充分利用,因此實驗的細節部分算是比較有價值的,下面簡單的總結羅列下,感興趣的可以看下原文。

  1. 訓練設置

    • 使用AdamW優化器、1024的批量大小、余弦退火學習率計劃和學習率基數為0.001。

    • 訓練600k步,共查看614M個樣本。

    • 最好的學生模型使用DFN CLIP ViT-H/14 378px、OpenAI CLIP ViT-L/14 336px、DINOv2 ViT-g/14 224px和SAM ViTDet-H 1024px作為教師。

    • 對學生和教師的輸入應用隨機縮放+裁剪。

    • 選擇DataComp-1B數據集,因為它在作者可訪問的網頁規模數據集中質量最高。

    • 分兩個階段訓練:首先用CLIP+DINOv2在256px訓練300k步,然后用CLIP+DINOv2在432px加上SAM在1024px訓練300k步。

  2. 學生模型架構

    • 研究了兩種學生模型架構設置:標準ViT架構以匹配教師架構,以及高效架構變體優先考慮GPU上的高吞吐量。

  3. 多尺度教師

    • 學生模型選擇ViT-H/16架構。

    • 為了匹配SAM特征的分辨率,學生模型輸入預期分辨率為1024^2。

    • 由于CLIP和DINOv2教師是patch-14模型,學生輸入選擇432^2,這是patch-14模型378^2分辨率的有效分辨率。

    • 發現插值DINOv2特征不會降低結果,因此教師以224px運行,并上采樣輸出以匹配學生。

  4. 排名/教師分區

    • 按照批次大小和輸入分辨率將教師模型分組,然后將這些組分配給不同的GPU,以便每個GPU處理一致的批次大小和輸入分辨率。

    • 對于包含SAM的訓練設置,使用64個GPU,其中一半處理CLIP+DINOv2組,每個GPU的批次大小為32,輸入分辨率為432,另一半處理SAM,每個GPU的批次大小為2,輸入分辨率為1024,有效批次大小為1,152。對于CLIP+DINOv2訓練,使用32個GPU,批次大小為1024。

  5. 多分辨率ViTs

    • 許多學生模型使用ViT作為基礎視覺架構。

    • 使用Cropped Position Embedding (CPE)增強,位置數等于128^2。

    • 即使在224分辨率下訓練CLIP+DINOv2,也發現這種技術對摘要指標的影響可以忽略不計,但提高了語義分割線性探測的mIOU。

  6. 高分辨率ViT學生模型

    • 在SAM中,使用ViTDet架構減少高分辨率下ViT模型的計算和內存負擔。

    • 將這種架構改寫為訓練增強,從中采樣窗口大小。

    • 發現高分辨率訓練不穩定,因此應用譜重參數化和0.02的權重衰減以防止注意力熵崩潰。

  7. 學生/教師分辨率不匹配

    • 當學生和教師通過處理堆棧以不同速率下采樣圖像時,輸出特征向量的分辨率會不同。

    • 對于Lfeatures,使用雙線性插值輸出以匹配學生和教師特征之間的較大分辨率。

5 實驗

如上圖所示,E-RADIO是一個高效的RADIO架構,通過融合卷積塊和Transformer,以及局部和全局注意力機制,實現了對密集型預測任務的高性能和快速推理,相比全ViT架構效率顯著提高。

從表1的結果可以明顯的看出基于 MetaCLIP 比 OpenCLIP 效果更好,DFN CLIP 則能取得最佳的零樣本分類性能。DINOv2 則有助于語義分割這種任務。

此外,所設計的 ERADIO-L 模型比所有ViT模型都要快得多。同時,它在匹配吞吐量的情況下,在大多數指標上都明顯優于 MetaCLIP,并且還實現了 DINOv2 和 SAM 中缺失的零樣本能力。最終,完整模型 ViT-H/16 可以表現得與教師模型一樣快,但在9項任務中有6項超過了它們,這足以證明所提出的蒸餾框架是高效的。

上圖展示了 RADIO 在分辨率增加時的“模式切換”。在圖表中,顯示了來自RADIO的DINOv2頭在不同分辨率下的特征之間的均方誤差(MSE),以及DINOv2在518px分辨率下實際產生的特征。通過將RADIO特征進行雙線性插值以匹配DINOv2特征的分辨率。在720px時,可以看出誤差突然增加,這對應于圖像中完全的顏色空間變化。

6 總結

大多數視覺基礎模型具有各自的優勢,例如語言定位(CLIP)、表征(DINOv2)和細粒度分割(SAM),但也存在各自的局限性。通過蒸餾,可以將所有這些優勢整合到一個模型中,該模型通常優于任何教師模型。

我們從實驗中還觀察到,更好的教師會產生更好的學生。此外,對于特征蒸餾損失。我們觀察到完整的特征蒸餾對于提高教師在密集圖像理解任務中的性能至關重要,例如在ADE20K上相對提高了18%。SAM與DINOv2的對比。

還有個有趣的結論,SAM 其實并不適合下游任務,而DINOv2在零樣本和少樣本任務中明顯優于前者,這大概還是得益于其強大的表征能力。不過,u1s1,SAM 在檢測邊緣和分割對象方面的表現還是非常出色的,但在高層對象描述和結合多個對象語義方面表現不佳。

本文提出的 RADIO 能夠產生高分辨率和低噪聲的特征。然而,我們可以發現的一個問題是,RADIO 似乎具有潛在的“低分辨率”和“高分辨率”模式,這可能是由于CLIP+DINO和SAM目標之間的分階段訓練導致的,這算是一個缺陷。

THE END !

文章結束,感謝閱讀。您的點贊,收藏,評論是我繼續更新的動力。大家有推薦的公眾號可以評論區留言,共同學習,一起進步。

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

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

相關文章

vscode 之 output 輸出中文亂碼,終端輸出中文正常

# 1. 背景 因為沒錢買正版的軟件,所以轉戰 vscode 編譯器。 在編譯 python 文件時,發現直接右鍵 runner code,輸出中文亂碼。 但是在 teiminal 終端 執行py test.py 時,輸出正常,中文正常。 output 輸出中文樣式(中文…

java相等忽略音調

來自百度,親測可用 java相等忽略音調 在Java中,如果你想比較兩個字符串而忽略它們的音調符號,你可以使用java.text.Collator類來進行區域敏感的字符串比較。Collator類提供了根據特定區域的規則進行字符串比較的能力,可以設置忽略音調的選項…

Go微服務: Prometheus性能監控與Grafana平臺的搭建

Prometheus 概述 promethues 是一套開源的監控&報警&時間序列數據庫的組合基本原理是通過http協議周期性抓取被監控組件的狀態適合Docker、Kubernetes環境的監控系統 Promethues 整體架構 一、抓取數據的兩種方式 1 )Short-lived jobs 短暫的任務 不會提…

RedisTemplate操作Redis詳解之連接Redis及自定義序列化

連接到Redis 使用Redis和Spring時的首要任務之一是通過IoC容器連接到Redis。為此,需要java連接器(或綁定)。無論選擇哪種庫,你都只需要使用一組Spring Data Redis API(在所有連接器中行為一致):…

面對.halo勒索病毒,如何有效防范與應對?

導言: 隨著網絡技術的不斷發展,網絡安全問題也日益凸顯。其中,勒索病毒作為一種極具破壞性的網絡攻擊手段,近年來在全球范圍內頻發。其中,.halo勒索病毒作為勒索病毒家族中的一員,其危害性和傳播性不容忽視…

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 論文閱讀

StNet: Local and Global Spatial-Temporal Modeling for Action Recognition 論文閱讀 Abstract1 Introduction2 Related Work3 Proposed Approach4 Experiments5 Conclusion 文章信息: 原文鏈接:https://ojs.aaai.org/index.php/AAAI/article/view/4…

Flutter 中的 Spacer 小部件:全面指南

Flutter 中的 Spacer 小部件:全面指南 在Flutter布局系統中,Spacer是一個Flex組件,用于占據可用空間,從而推動其他Widget到布局的開始或結束位置。Spacer通常與Row、Column或Flex一起使用,以實現靈活的布局設計。本文…

二叉樹專題(有關二叉樹的相關學習)

二叉樹 1.數概念及結構 1.1樹的結構 樹是一種非線性的數據結構,它是由n(n>0)個有限結點組成一個具有層次關系的集合。把它叫做樹是因 為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。 有一個特殊的結…

ollama離線部署llama3(window系統)

首先介紹下ollama是什么?Ollama是一個開源的大型語言模型服務工具,旨在為用戶提供本地化的運行環境,滿足個性化的需求。具體來說,Ollama是一個功能強大的開源框架,可以簡化在Docker容器中部署和管理大型語言模型&a…

【C++】內聯函數、auto、范圍for

文章目錄 1.內聯函數2.auto關鍵字2.1auto簡介2.2auto的注意事項2.3auto不能推導的場景 3.基于范圍的for循環(C11)4.指針空值nullptr(C11) 1.內聯函數 概念: 以inline修飾的函數叫做內聯函數,編譯時C編譯器會在調用內聯函數的地方展開,沒有函…

商場綜合體能源監管平臺,實現能源高效管理

商場作為大型綜合體建筑,其能源消耗一直是備受關注的問題。為了有效管理商場能耗,提高商場能源效率,商場綜合體能源監管平臺應運而生。 商場綜合體能源監管平臺可通過軟硬件一起進行節能監管,硬件設備包括各種傳感器、監測儀表和…

Matter 1.3版標準新出爐,支持更多智能家居/家電/能源等設備

5月8日,CSA連接標準聯盟正式發布了Matter 1.3標準,過去CSA一直保持約每六個月一次的標準更新節奏。 圖源CSA連接標準聯盟官方 獲得一系列改進的Matter 1.3標準,將提升設備的互操作性,擴展支持的設備類別,并增強整個智…

Android 幾種系統升級方式詳解

目錄 ◆ 概述 ● 幾種啟動模式 ● MISC分區 ● CACHE分區 ● 幾種系統升級方式 ◆ Recovery升級 ● 升級包構成,簽名,制作 ● 升級腳本 ● 升級過程 ◆ OTA升級 ● 升級包構成,制作 ● 升級腳本 ● 升級過程 ◆ fastboot升級 ◆ ADB升級 幾…

【研發日記】Matlab/Simulink技能解鎖(七)——兩種復數移相算法

復數移相,也稱為復數相位旋轉,就是在原有復數的基礎上,不改變模數,只把相位角做一定的偏移。 文章目錄 前言 三角函數移相 復數乘法移相 分析和應用 總結 前言 見《【研發日記】Matlab/Simulink技能解鎖(二)——在Function編…

(三)Spring教程——依賴注入與控制反轉

Spring框架是為了簡化企業級應用開發而創建的,其強大之處在于對Java SE和Java EE開發進行全方位的簡化,Spring還對常用的功能進行封裝,可以極大地提高Java EE的開發效率。 依賴注入是Spring的核心技術之一,也被稱為“控制反轉”&a…

【Linux】自動化編譯工具——make/makefile(超細圖例詳解!!)

目錄 一、前言 二、make / Makefile背景介紹 🥝Makefile是干什么的? 🍇make又是什么? 三、demo實現【見見豬跑🐖】 四、依賴關系與依賴方法 1、概念理清 2、感性理解【父與子👨】 3、深層理解【程序…

【JavaEE】HTTP 協議

文章目錄 一、HTTP 協議1、HTTP 是什么2、理解 "應用層協議"3、理解 HTTP 協議的工作過程4、HTTP 協議格式5、HTTP 請求 (Request)5.1 認識 URL 6、 二、HTTPS1、HTTPS是什么2、"加密" 是什么3、HTTPS 的工作過程3.1 對稱加密3.2 非對稱加密3.3 證書3.4 完…

零樣本身份保持:ID-Animator引領個性化視頻生成技術新前沿

在最新的研究進展中,由Xuanhua He及其團隊提出的ID-Animator技術,為個性化視頻生成領域帶來了突破性的創新。這項技術的核心在于其零樣本(zero-shot)人物視頻生成方法,它允許研究者和開發者根據單一的參考面部圖像生成…

深度解刨性能測試工具Locust

🍅 視頻學習:文末有免費的配套視頻可觀看 🍅 關注公眾號【互聯網雜貨鋪】,回復 1 ,免費獲取軟件測試全套資料,資料在手,漲薪更快 Locust安裝 …

Python3 筆記:range() 函數

range() 函數返回數字序列,默認從 0 開始,默認以 1 遞增,并以指定的數字結束。 它的語法格式:range(start,end,step) start是起始值,end是終止值,step是間隔值 上述語句可以產生一個[start,…, end-1]列…