### [AI / ML領域相關學習筆記入口頁面](https://hackmd.io/@YungHuiHsu/BySsb5dfp) --- ## [Multimodal] CVPR 2023。Multimodal Foundation Models : From Specialists to General-Purpose Assistants<br>多模態基礎模型研究回顧 本系列筆記筆記基於2023.07 CVPR研討會Recent Advances in Vision Foundation Models 視覺基礎模型回顧的論文,與研討會5場演講(附上投影片與影片連結),更新近期視覺與多模態模型的發展趨勢與前沿技術 #### [2023。CVPR。Recent Advances in Vision Foundation Models](https://vlp-tutorial.github.io/) | 主題 | 資源 | 演講者 | 個人筆記連節 | | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | --- | | Opening Remarks & Visual and Vision-Language Pre-training<br>**CH2 Visual Understanding** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhe_CVPR2023_Tutorial.pdf), [YouTube](https://youtu.be/hE135guhTQo) | Zhe Gan | [筆記連結](https://hackmd.io/@YungHuiHsu/S1nPk2eET) | | From Representation to Interface: The Evolution of Foundation for Vision Understanding<br>**CH2 Visual Understanding** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Jianwei_CVPR2023_Tutorial.pdf), [YouTube](https://youtu.be/wIcTyutOlDs) | Jianwei Yang | [筆記連結](https://hackmd.io/@YungHuiHsu/HyjAklf4T) | | Alignments in Text-to-Image Generation<br>**CH3 Visual Generation** | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Zhengyuan_Tutorial_T2I2023.pdf), [YouTube](https://youtu.be/iixMLxeuOqU) | Zhengyuan Yang | [筆記連結](https://hackmd.io/@YungHuiHsu/Bko4OHNNT) | | Large Multimodal Models | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Chunyuan_cvpr2023_tutorial_lmm.pdf), [Notes](https://arxiv.org/pdf/2306.14895.pdf), [YouTube](https://youtu.be/mkI7EPD1vp8) | Chunyuan Li | | | Multimodal Agents: Chaining Multimodal Experts with LLMs | [Slides](https://datarelease.blob.core.windows.net/tutorial/vision_foundation_models_2023/slides/Linjie_Multimodal%20Agents.pptx), [YouTube](https://youtu.be/Wb5ZkZUNYc4) | Linjie Li | | #### 會議論文[2023.09。Multimodal Foundation Models: From Specialists to General-Purpose Assistants](https://arxiv.org/abs/2309.10020) - [個人筆記](https://hackmd.io/@YungHuiHsu/HkOjXPg46) 各章詳細內容請見演講筆記 --- ## From Representation to Interface: The Evolution of Foundation for Vision Understanding - 對應會議論文CH2 Visual Understanding ### 摘要 * 視覺理解的進步:從 2018 年到 2022 年在一般視覺表徵學習方面的快速演變,這些進展受到諸如監督學習、CP3、GP 模型以及在支持人機互動方面的進步的影響。 * 視覺任務的挑戰:視覺任務的複雜性,包括從影像層級任務(如分類和標題生成)到像素層級任務(如分割和超解析度)。他們指出了輸出格式的多樣性,包括空間資訊(如邊界框、遮罩)和語義資訊(如類別標籤和文字描述),強調了從封閉分類到開放世界識別的轉變。 * 語言和視覺模型的整合:教學中強調了語言-影像模型如 CLIP 如何提高影像分類的轉移性。它強調了向能處理各種任務的通用模型的運動,擺脫了為特定任務設計的專家模型。 * 視覺與語言整合技術:包括**使用語言作為橋樑以減少歧義並增強理解**。它還討論了將粗粒度知識轉移到細粒度任務上,使用像 CLIP 這樣的模型,以及對於有效任務執行來說,**語義與空間資訊對齊的重要性**。 * 未來方向與挑戰: 強需要能夠統一不同類型視覺任務並處理多樣化輸入和輸出格式的模型的需求、更靈活和連貫的系統的潛力,這些系統能夠適應各種任務,以及**納入不同類型提示的重要性**,包括**空間提示**,以充分捕捉人類意圖。 ![image](https://hackmd.io/_uploads/HyCYWeGEp.png) ## A Lesson from LLMs ![image](https://hackmd.io/_uploads/H1vnZxMN6.png) - 如何將視覺模型轉變為更通用、更靈活、更易於提示的形式,即如何在基礎模型之上構建一個通用解決方案系統,以處理廣泛的區域任務 - 語言模型過去幾年的演變,如 GPT 和 ChatGPT,從專門化模型轉向使用轉換器(Transformer)架構的統一架構 - 從2018年到2022年,在短短四年間,這些模型不僅改變了研究社群,也深刻影響了社會,這激勵了計算機視覺研究人員思考如何建立統一的視覺模型 ## Unique Challenges in Vision: Modeling - 視覺任務需要處理各種輸入,包括靜態圖像、連續圖像,以及不同模態的組合,如視覺與語言。並且,視覺任務在粒度上各不相同,從影像層級任務(如分類、標題生成)到像素層級任務(如分割、超解析度) - 輸出格式多樣,包含空間資訊(如邊界框、遮罩)和語義資訊(如類別標籤、多層次文本或描述),這些挑戰使得統一不同計算任務變得困難。除了模型挑戰外,數據方面也存在挑戰,如不同類型數據的收集成本和數據規模,尤其是視覺數據與語言數據的規模差異 ![image](https://hackmd.io/_uploads/rklMQgMN6.png) ### Scales differ significantly across different types of annotations 不同類型的標註在尺度和語義上的顯著差異 ![image](https://hackmd.io/_uploads/rynE7lz4T.png =600x) > 上圖表展示視覺數據處理中的獨特挑戰,特別是關於數據標註的粒度和語義豐富度。它將數據標註分為三個層次: > > - 圖像標註(Image Annotation):位於金字塔的基座,代表最基本的標註層次,如 ImageNet 和 LAION 數據集所提供的標註。這些標註通常包含對圖像內容的基礎描述,語義相對貧乏。 > > - 框標註(Box Annotation):位於中層,表示更細粒度的標註,其中 COCO 和 O365 是例子。這些標註通過辨識圖像中物體的邊界框,提供了對物體空間位置的具體資訊,語義豐富度有所提高。 > > - 遮罩標註(Mask Annotation):位於金字塔頂端,代表最細粒度和最豐富語義的標註形式。COCO 和 LVIS 提供這類標註,它們不僅識別物體的精確輪廓(遮罩),而且能夠對物體進行更詳細的語義分析。 > > 圖表的兩側標註說明了標註類型從「粗糙到細緻」(From coarse to finer grain)和從「貧乏到豐富的語義」(From poor to richer semantics),突出了不同類型的標註在粒度和語義上的顯著差異 ## Clear Attempts towards General Vision - **Open-world**開放世界識別 - 試圖將傳統的封閉式識別轉變為開放世界識別。展示了語言-圖像模型(例如CLIP)在影像分類上的短距離轉移能力 - **Generalist**通用模型的發展 - 原先為不同任務開發不同模型(如物件偵測、分割),現在轉向開發能涵蓋多種任務的通用模型,如Pixel-to-Sequence、Unified IO和X Decoder - **Promptable Interface**可提示的介面 - 關注如何建立有益的系統或介面,超越傳統的表徵學習 - 在視覺模型中,提示(prompt)應該比語言模型更多樣化,例如可以使用手勢、繪圖等,以減少對人類意圖的誤解 ![image](https://hackmd.io/_uploads/BJQnBgM4p.png =400x) ![image](https://hackmd.io/_uploads/ry06SgGEa.png =400x) ![image](https://hackmd.io/_uploads/SypAHeMEa.png =400x) ![image](https://hackmd.io/_uploads/SkjQLezEp.png =600x) > 這張圖表展示了三個交互作用的領域,說明了將視覺與語言結合的直覺原則和益處。 > > - 橋接視覺與語言:直覺是**使用語言作為共享信息的共同空間**,其優點是能夠實現對新詞彙的零樣本轉移(Zero-shot transfer)。 > - 統一不同的粒度:直覺是視覺是多任務、多粒度的,其好處在於可以建立跨任務粒度的協同效應。 > - 接受各種提示:直覺是除了語言外,**還可以使用空間提示等,其益處是減少了表達人類意圖的模糊性**。 > 這三個領域相互重疊,指出了為了達成更高級別的視覺理解系統而必須探索的技術方向。在重疊的部分,我們可以看到集成這些原則的模型將如何在理解視覺信息與語言之間的聯繫、處理不同層次的任務、以及接收並理解多樣化的使用者提示方面發揮作用 ## Bridge Vision with Language ![image](https://hackmd.io/_uploads/BkBWMUm46.png =200x) ![image](https://hackmd.io/_uploads/BJkX9eGNT.png =500x) > 這張圖解釋了如何將視覺識別與語言結合,以及這種方法如何跨越不同精細度的任務。 > > - (a) **將標籤轉換為語言(Converting labels to language is agnostic to granularity)**: > - 這種轉換與任務的粒度無關,無論是圖像級別、區域級別還是像素級別。這意味著同樣的語言模型可以用於不同層次的任務,不需要特別的調整就能處理從大範圍(如整個圖像)到小範圍(如圖像中的特定區域或像素)的識別任務。 > > - (b) **粗粒度知識轉移到細粒度任務(Coarse-grained knowledge can be transferred to fine-grained tasks)**: > - 已有的粗粒度知識(例如,圖像分類中的概念識別)可以轉移到更細粒度的任務上(如像素級的圖像分割)。這展示了一種知識轉移,使得一個經過訓練識別大範圍概念的模型能夠適應更詳細的視覺任務。 ![image](https://hackmd.io/_uploads/rkuvqxzVT.png =500x) > 圖片中展示了一種特定的轉換方法。 > **Embedding** > 原始的方法是使用視覺編碼器將圖像映射到嵌入空間(embedding space),然後用標籤進行訓練。 > 視覺任務通常涉及將圖像通過一個視覺編碼器,並使用一組固定的標籤進行訓練。這些標籤是預先定義的,並通過嵌入矩陣$W$ 轉換成可用於分類的特徵空間 > - 在轉換之前的系統中: > - $U \in \mathbb{R}^{P \times |B|}$:這表示圖像經過視覺編碼器處理後的特徵,其中$P$代表特徵的維度,而$∣B∣$代表批量大小,即一批中圖像的數量 > - $W \in \mathbb{R}^{P \times K}$:表示將圖像特徵$U$映射到$K$個標籤的空間中。這裡的$K$代表分類任務中可能的類別數量。 > - $U^T W$:矩陣乘法,用於將圖像特徵與標籤空間相關聯,通常用於計算分類任務中的預測概率 > > **Text encoder/ concept names** > 新方法則是用**概念名稱(concept names)替換這些標籤(Labels)**,並使用文本編碼器(text encoder)將所有概念作為語言tokens進行編碼 :::info **使用語言概念(取代預定義的標籤)來描述圖像**,這樣可以使模型不僅識別視覺內容,還能理解與這些內容相關的豐富語言描述,從而提高跨任務轉移和零樣本學習的能力 Replace labels with concept names, and use text encoder to encode all concepts as they are language tokens ::: 近年來,許多研究試圖通過將標籤轉化為語言來建立視覺內容與語義的對應關係,從而達成視覺與語言的結合。CLIP模型對此有重要影響,它通過**將視覺內容映射到共享的語義空間來實現跨任務**的認識 * 任務的統一:通過統一不同粒度的視覺任務(如圖像分級、區域識別、像素級任務),實現了跨任務的能量轉移和功能整合。例如,使用像素到序列(Pixel-to-Sequence)、統一輸入輸出(Unified IO)、X decoder等模型來進行統一,以及通過創新的編碼解碼結構支持像素級預測。 * 多樣化的提示:視覺模型需要支持多樣化的提示方式,不僅限於文本,還可以包括手勢、繪圖等,以減少對人類意圖的歧義。這種多樣性對於有效地理解和反映人類指示至關重要。 ### Bridge Vision with Language for Segmentation - Segmentation tasks: - 通用分割 Generic segmentation (semantic/instance/panoptic segmentation) - 語義分割:將圖像中每個像素分類到預定義的類別。 - 實例分割:除了進行語義分割外,還需要區分不同的對象實例。 - 全景分割:結合了語義和實例分割,旨在同時識別和分類圖像中的所有物件,包括背景 - 指稱分割 Referring segmentation (segment image with specific text phrase) 這是一種交互式分割,其中模型基於特定的文本短語來分割圖像中相關的區域 - Methodologies: - Initialize from CLIP v.s. train from scratch - 從CLIP初始化: - 使用預先訓練的CLIP模型作為起點,CLIP模型因其強大的視覺-語言轉換能力而受到重視。這種方法允許快速轉移學習並利用CLIP的豐富語義理解 - 從零開始訓練: - 完全不依賴於預先訓練的模型,從基礎開始訓練模型以識別視覺內容與語言概念的關聯 - Weakly supervised training v.s. supervised training - 弱監督訓練: - 這種方法只使用有限的標注數據(如圖像和對應的文本標籤),而不是每個像素的標注 - 監督訓練: - 使用大量精確標注的數據,每個像素都有詳細的類別標籤,使模型能夠學習更精細的分割 - Two-stage v.s. end-to-end training - 兩階段訓練: - 首先生成區域建議,然後對這些建議進行分類和/或分割。這種方法在處理複雜任務時可能更為精確,但速度較慢 - 端到端訓練: - 這種方法直接對整個圖像進行分割,不需要中間的區域建議步驟,通常速度更快,但可能需要更大量的訓練數據來達到相同的精度 ![image](https://hackmd.io/_uploads/rkyyI-GVp.png) #### 案例分享 - GroupViT: Learn to group semantic similar regions by learning from image-text pairs from scratch: - Bottom-up grouping using a novel grouping block 自下而上的分組:利用一個創新的分組塊,將視覺內容中語義相似的區域進行分組。這意味著該模型將從圖像中的細節開始辨識,嘗試將相關的視覺特徵聚合在一起 - Top-down image-text supervision for visual-semantic alignment 自上而下的圖像-文本監督:這為視覺-語義對齊提供指導,確保模型學習到的視覺內容與提供的文本描述相符合 ![image](https://hackmd.io/_uploads/H17oqZzVa.png) > - 圖中的(a)部分顯示了GroupViT的架構和訓練管道: > - 圖像通過一系列的變換器層(Transformer Layers)進行處理,其中包括分組塊(Grouping Block)。 > - 處理過的**圖像特徵和文本特徵被用來進行對比損失(Contrastive Loss)計算**,這有助於模型學習如何將圖像中的區域與相應的文本概念對齊。 > - 學習到的特徵用於生成圖像分段,並進行零樣本轉移,即在沒有額外訓練的情況下將學習到的知識應用於新的、未見過的圖像-文本對。 > - (b)部分則詳細說明了分組塊的內部結構,顯示了它如何處理輸入的圖像和文本特徵,並通過一系列的線性投影(Linear Projection)和Gumbel-Softmax操作來產生最終的分組結果。 個人備註:YOLOv7中也有採用分組計算模快來促進表徵學習(單純分組有利於平行運算),但有進一步洗牌後再合併 - MaskCLIP: Extract free dense label from CLIP - Change attention pooling to a new adaptation strategy - Pseudo-label masks using CLIP as the teacher model MaskCLIP的目標是從CLIP模型中提取密集標籤,以及利用CLIP作為教師模型來生成偽標籤遮罩(pseudo-label masks)。以下是對其主要部分的簡要解釋: - **MaskCLIP**: - 利用CLIP的文本編碼器和圖像編碼器來生成文本和圖像的嵌入。 - 這些嵌入被用作分類器的卷積權重,以產生圖像的語義分割遮罩。 - 生成的遮罩被視為偽標籤,用於進一步訓練和微調模型。 - **MaskCLIP+**: - 在MaskCLIP的基礎上,增加了帶空洞卷積的主幹網絡(Dilated Backbone)和ASPP模塊,這些都是常見的深度學習架構,用於改進圖像的語義分割。 - 模型通過這些額外的組件進行分類和損失計算,以優化分割結果。 - MaskCLIP+只需要訓練特定的模塊,而不是整個網絡,這提高了效率。 ![image](https://hackmd.io/_uploads/S1qQ3-M46.png) > 圖中的(a)部分顯示了MaskCLIP模型的訓練流程。左側的註解說明了如何通過將注意力機制的池化(Attention Pooling)改變為新的適應策略來提高模型性能。這個過程包括將注意力矩陣平均(Avg.),然後通過線性層和1x1卷積層進行處理,以產生最終的輸出。這個適應過程使得MaskCLIP能夠處理來自CLIP模型的密集標籤,並生成更精確的語義分割遮罩。 - 「密集標籤」(dense labeling) - 指的是為圖像中的每個像素或某個小區域分配一個標籤,以便進行精確的物體識別、分類或分割 - OpenSeg: OpenSeg的核心概念**使用語言特徵來增強圖像分割模型的性能**,演算法如下: - 弱監督學習:OpenSeg通過強制細粒度對齊文本特徵與經過遮罩池化(mask-pooled)的視覺特徵來學習。這種方法不需要每個像素的精確標注,而是從圖像-文本對和局部敘述中學習。 - 預訓練的遮罩建議網絡:模型使用了一個已經預訓練的遮罩建議網絡,這有助於識別圖像中的可能區域,並提供初步的分割建議。 Weakly supervised learning by enforcing fine-grained alignment between textual features and mask-pooled features. - Learn from image-text pairs and local narrations. - A pretrained mask proposal network is used. ![image](https://hackmd.io/_uploads/BkMTiWfNa.png) > 圖中左側的模型架構包括: > - 單詞編碼器(Word encoder):將圖像中的文本(例如圖片下方的描述)轉換為特徵向量。 > - 主幹網絡(Backbone):處理圖像並提取視覺特徵。 > - 遮罩基於池化(Mask-based pooling)和交叉注意力模塊(Cross-attention module):進一步處理視覺特徵和文本特徵,對齊圖像區域與相關的詞彙。 > - 分割損失(Segmentation loss):量化模型輸出與真實分割之間的差異,用於訓練模型。 > - 圖中右側顯示了OpenSeg和其他方法的分割結果比較。這些結果顯示了模型如何處理不同的場景,並提供了不同模型配置下的分割精度(以平均交集過聯合比例(mIoU)衡量)和地面真實數據之間的對齊度(Grounding mIoU)。 - MaskCLIP (UCSD): Supervised training for panoptic segmentation with COCO using CLIP as the initialization - Two-stage training: 1) mask proposal network training; 2) CLIP model adaptation ![image](https://hackmd.io/_uploads/BJP2hBQNa.png) ![image](https://hackmd.io/_uploads/rkwanBQVT.png) MaskCLIP:UCSD開發的MaskCLIP進行監督訓練以進行全景分割,以CLIP模型為初始化。訓練分為兩階段: - 遮罩提議網絡訓練(mask proposal network training):生成初步的分類不明確的遮罩。 - Class-Agnostic Mask Proposal Network$f_M$:這是一個獨立於類別的遮罩提議網絡,生成初步的、粗略的遮罩,這些遮罩還沒有被指定為具體的類別 - Class-Agnostic「類別不可知」的遮罩提議網絡不會將遮罩與任何特定類別相關聯,而是簡單地識別出可能的物體邊界或區域。這些遮罩然後可以在後續的處理步驟中進一步細化,與特定的類別標籤相關聯 - CLIP模型適應(CLIP model adaptation):利用CLIP提供的語義理解能力來細化遮罩。 - 訓練流程: - 使用類別名稱輸入到CLIP的文本編碼器。 - 經過CLIP視覺編碼器處理的圖像與文本嵌入進行交叉注意力運算,獲得細化的分割結果。 - MaskCLIP視覺編碼器$f_1$: - 包含CLIP的視覺編碼器,負責處理圖像並提取視覺特徵。 - 通過注意力機制(Attention)和區域注意力模塊(Region Attention Module, RMA)來增強對特定區域的專注。 - RAM (Region Attention Module): 指的是一種注意力機制模塊,用於專注於圖像的特定區域,進行更精細的分析和處理。在分割任務中,這樣的模塊可能被用於對特定類別或區域進行更細緻的分割。 - 特徵經過投影(Projection)操作以與文本嵌入進行匹配。 - 精煉遮罩(Refined Masks):經過MaskCLIP處理的視覺特徵和文本嵌入合併後,得到更精細、更準確的分割遮罩。 - 效能提升: - 使用**標籤資訊可以顯著提升開放詞彙分割的表現**。 - 表中顯示了不同方法在COCO訓練數據集上的平均交集過聯合比(mIoU)成績,證明了結合標籤資訊的重要性。 - MaskCLIP(UCSD)模型透過結合CLIP模型的先進語義理解和傳統的遮罩提議技術,有效地提升了全景分割的準確度。這種**結合了弱標註和精確標註數據的策略**,對於提高開放詞彙分割的性能具有重要意義。 #### Put all together 本節討論如何將CLIP模型作為基礎來改善開放詞彙的圖像分割(open-vocabulary segmentation) - CLIP as the foundation helps a lot for open-vocabulary seg. CLIP模型被用作初始化,以及作為學習過程中的指導模型,對於訓練分割模型尤其有效。利用CLIP提供的豐富語義,即使在缺乏精確像素級標注的情況下,也能顯著提高模型對圖像分割的理解和性能。透過結合弱標註數據與精確的「金標」數據,模型的表現能得到進一步的提升。此外,當結合使用類似COCO數據集上的預訓練分割提議網絡(mask proposal network)以及豐富的圖像-文本對時,可以更精確地執行開放詞彙的分割任務。 - Combine weak annotations with golden ones for better performance 這些討論表明,將視覺數據與文本數據的語義對齊,對於訓練精準的分割模型非常重要。CLIP作為基礎,提供了一個強大的出發點,即使模型未直接針對像素級元素進行訓練,也能實現語義上的準確對齊。結合不同的監督策略,如圖像文本配對與高質量標註,可以進一步提升開放詞彙分割的性能。 ![image](https://hackmd.io/_uploads/Bkz6tB7ET.png =500x) ### Bridge Vision with Language for Core Vision ![image](https://hackmd.io/_uploads/HyZHVLQN6.png =400x) 在本節背景下,討論的模型旨在解決以下兩個主要問題 - These models are unleashed to recognize open world concepts but still mostly task-specif **識別開放世界概念**:當前的模型已經能夠識別出開放世界的概念,這意味著它們不僅限於識別訓練數據中的類別,而是能夠理解和分類新的、未見過的類別。這種能力為模型提供了更大的靈活性和應用範圍。 - Connect tasks horizontally across different granularities **橫向連接不同粒度的任務**:模型設計考慮了從圖像分類、物體檢測到圖像分割等不同粒度的任務。這種橫向連接允許模型**在這些不同的視覺任務之間共享學習到的知識**,從而提升了模型在處理各種任務時的效率和準確性。 個人備註:YOLOv7模型中的特徵金字塔也達到某程度的學習知識共享的效果,透過連接不同的neck與head即可對接不同尺度的任務。 ## Unify Different Granularities ![image](https://hackmd.io/_uploads/BkaaZLQVp.png =200x) ### Unify Different Granularities - Tasks we are considering: - Image-level: image recognition, image-text retrieval, image captioning, visual question answering, etc. - Region-level: object detection, dense caption, phrase grounding, etc. - Pixel-level: generic segmentation, referring segmentation, etc. - Two types of unifications: - Output unification: convert all outputs into sequence. - Functionality unification: share the commons maximally but with respect to the differences 當談論統一不同粒度時,主要指的是將視覺任務中的不同層次和細節進行整合,使模型能夠處理從全局到局部、從整體到細節的視覺信息。這些任務包括: * 圖像層次:涉及對整個圖像進行理解和分析的任務,如圖像識別、圖像-文本檢索、圖像標題生成、視覺問答等。 * 區域層次:集中於圖像中特定區域或對象的任務,例如物體檢測、密集標題生成、短語定位等。 * 像素層次:處理圖像中每個像素的任務,如一般分割、指稱分割等。 在這些不同粒度的任務中,統一可以通過以下兩種方式實現: * 輸出統一: * 將所有任務的輸出轉換為序列形式。這意味著無論任務是在圖像層次、區域層次還是像素層次,最終的輸出都將被格式化為一個統一的數據結構,如一系列的標籤或標記,從而便於後續處理和分析。 * 功能統一: * 在尊重每個任務特定差異的同時,最大限度地共享通用功能。這意味著在設計模型時,應該尋求共同的特徵或模塊,這些可以在各種任務中重複使用,同時為每個特定任務保留或添加必要的定制化元素。 * 註:比較像特徵金字塔的設計概念? 通過這樣的統一,模型不僅能夠提升在特定任務上的表現,還能夠增強跨任務的學習和適應能力,這對於建立真正的多功能視覺系統至關重要 ![image](https://hackmd.io/_uploads/BJtxrUmV6.png =600x) > 1. **輸出統一 (Output Unification)**: > - 輸入:從不同來源(A、B)接收的數據。 > - 過程:將所有不同的輸出轉換成一個統一的序列格式。 > - 操作:通過解碼過程(decode),將這些序列再轉換回相應的輸出格式。 > > 這意味著不論原始的輸出格式為何,系統都會將它們轉換成一個標準化的序列形式,然後根據需求將這個序列轉換回特定的輸出類型。 > > 2. **功能統一 (Function Unification)**: > - 輸入:同樣從不同來源(A、B)接收的數據。 > - 過程:預測共享的輸出類型。 > - 操作:將一個或多個輸出結合(combine)以產生最終的輸出。 ### Outputs Unification Convert both inputs and outputs into sequences: 輸出統一的目標是將輸入和輸出都轉換為序列格式: - Inputs: Text as it is or add some prefixes; Image into a sequence of tokens (not necessarily) - Outputs: Boxes: a sequence of coordinates (top left + bottom right); - Masks: a sequence of polygon coordinates encompassing mask; - Key points: a sequence of coordinates. - **輸入**: - 文本:保持原樣或添加一些前綴。 - 圖像:可轉換為一系列的代幣(tokens),但這不是必須的。 - **輸出**: - 方框(Boxes):坐標序列,包括左上角和右下角的坐標。 - 遮罩(Masks):多邊形坐標的序列,包圍整個遮罩區域。 - 關鍵點(Key points):點的坐標序列。 Other works like VisionLLM use LLM as the output interface - It unifies a wide range of vision tasks so that an encoder-decoder can be trained end-to-end - It also: - needs task-specific decoder to decode the sequence to final outputs: - E.g., extract coordinates and translate into a box, convert polygon/color map into mask - might be hard to interpret the interactions across different tasks of different granularities - may not be able to build a strong cross-task synergy as we expect 另外,像VisionLLM這樣的工作使用大型語言模型(LLM)作為輸出界面: - 它統一了廣泛的視覺任務,使得編碼器-解碼器可以端到端訓練。 - 同時它也需要: - 特定任務的解碼器,將序列解碼為最終輸出: - 例如,提取坐標並轉換成方框,將多邊形/顏色映射轉換成遮罩。 - 可能難以解釋不同粒度任務之間的交互作用。 - 可能無法如預期般建立強大的跨任務協同效應。 輸出統一試圖簡化和標準化模型處理的方式,使其能夠以一種統一的方式理解和生成信息,但實現這一目標仍面臨一些挑戰,特別是在跨任務交互和協同方面。 ### Functionality Unification 功能統一關注的是視覺任務之間的相互關聯和共享元素: - Vision tasks are not fully isolated: - Box outputs: shared by generic object detection, phrase grounding, regional captioning - Mask outputs: shared by instance/semantic/panoptic segmentation, referring segmentation, exemplar-based segmentation, etc. - Semantic outputs: shared by image classification, image captioning, regional captioning, detection, segmentation, visual question answering, image-text retrieval, etc. ![image](https://hackmd.io/_uploads/SygMLLXVp.png) - **視覺任務並非完全孤立**: - 視覺任務之間存在許多共通點,使它們可以共享某些輸出類型或特徵。 - **方框輸出 (Box outputs)**: - 被多個視覺任務共享,例如: - 通用物體檢測 (generic object detection) - 短語定位 (phrase grounding) - 區域標題生成 (regional captioning) - 這些任務都需要識別出圖像中的物體和它們的位置。 - **遮罩輸出 (Mask outputs)**: - 由多種分割任務共享,包括: - 實例分割 (instance segmentation) - 語義分割 (semantic segmentation) - 全景分割 (panoptic segmentation) - 指稱分割 (referring segmentation) - 以樣本為基礎的分割 (exemplar-based segmentation) 等。 - 這些任務需要在像素級別上識別和分類圖像的每一部分。 - **語義輸出 (Semantic outputs)**: - 被廣泛的視覺任務共享,如: - 圖像分類 (image classification) - 圖像標題生成 (image captioning) - 區域標題生成 (regional captioning) - 檢測 (detection) - 分割 (segmentation) - 視覺問答 (visual question answering) - 圖像-文本檢索 (image-text retrieval) 等。 - 這些任務都依賴於對圖像中的內容進行深層次的語義理解。 功能統一的目標是最大化這些共享元素的使用,同時考慮到各個任務的特定差異,從而提高模型的效率和泛化能力。通过這種方式,可以促進不同視覺任務之間的協同作用,並使模型更加強大和適應性更强。 - 補充YOLOv7與Functionality Unification :::info YOLOv7是目標檢測的最新模型之一,它能夠在單一的前向傳播中同時輸出物體的邊界框(bounding boxes)和分割遮罩(segmentation masks)。這種模型通常使用特徵金字塔網絡(Feature Pyramid Network, FPN)或類似結構,從不同尺度捕獲圖像的特徵,這有助於模型同時識別大型和小型物體,並對它們進行準確定位和分割。 這與功能統一(Functionality Unification)的概念相關聯,YOLOv7的設計展示了以下幾點: - 共享特徵提取:使用共享的背景特徵提取器(backbone network)從圖像中提取特徵,這些特徵將用於多個任務,如邊界框定位和分割。 - 多任務輸出:透過對相同的特徵集進行不同類型的處理,模型能夠生成不同形式的輸出,例如邊界框和分割遮罩。這證明了從相同的特徵提取過程中衍生出不同任務的可能性。 - 跨任務協同效應:在模型中同時處理檢測和分割任務可能導致不同任務之間的學習協同效應,其中一種任務的信息能夠輔助另一種任務的性能提升。 - 尺度感知:特徵金字塔設計允許模型在多個尺度上處理圖像,這有助於處理邊界框和分割任務所需的不同粒度。 ::: ### Computer Vision in the Wild ## Promptable Interface ![image](https://hackmd.io/_uploads/H1PFhI7N6.png =200x) ### How to Enable Vision Model to “Chat” ![image](https://hackmd.io/_uploads/HkYhnUX46.png =400x) We need to build a promptable interface with two important properties: 為了使視覺模型能夠進行“交談”,需要建立一個具備以下兩個重要特性的可提示接口(promptable interface): - Promptable for in-context learning: Instead of finetuning the model parameters, simply providing some contexts will make the model precit **適合情境學習的提示性**:這不是通過微調模型參數來適應特定任務,而是通過提供一些上下文來使模型能夠進行預測。這意味著模型能夠根據給定的情境提示進行即時學習,從而根據新的信息或指令來調整其行為。 - Interactive for user-friendly interface: multi-round of interaction between human and AI is important to finish complicated tasks. **用戶友好的交互式接口**:為了完成複雜的任務,人類與AI之間的多輪交互至關重要。一個好的交互式接口應該允許用戶與AI進行連續的溝通,這不僅使得AI能夠更好地理解用戶的需求,還允許它提供反饋,並根據用戶的回應進行調整。 研究者們正努力發展能與人類互動的視覺模型,這些模型不僅能執行特定任務,還能與人類進行互動。這種模型支援多樣化的互動方式,不僅限於文字提示,還包括指點、繪製框線、手勢等特殊互動​​。 進一步的應用包括將分割模型與圖像修補技術結合,以填充遮罩區域,或將追蹤模型應用於長視頻序列,甚至跨越多種任務應用於醫學影像。這種模型以其可擴展的互動能力而強大,但它主要支援特殊的互動形式,並不涵蓋語言或語義提示的能力​​。 為了實現這種互動介面,首先需要將視覺與語言連接起來。近年來,大量的研究努力已成功地重塑了用於分類、檢測和分割的計算機視覺研究。現在,研究者們不再將視覺與語言任務分開考慮,而是尋求統一這些核心分析任務,建立一個協同、靈活且通用的視覺理解系統介面​​ ### In-Context Learning for Vision 使用視覺提示(Visual Prompting)和上下文學習(in-context learning)來進行圖像處理的概念 ![image](https://hackmd.io/_uploads/rJIQCL7Vp.png) > **視覺提示通過圖像修補(Visual Prompting via Image Inpainting)**: > - 主要概念是將與任務相關的示例(上下文樣本)與查詢圖像拼接成單一圖像。 > - 然後要求模型填補(inpaint)圖像網格中遺漏的部分。 > - 這種方法可以用於邊緣檢測、上色、圖像修補、分割和風格轉換等多種圖像處理任務。 ![image](https://hackmd.io/_uploads/S1HERL74a.png) > **SegGPT:將一切作為上下文學習來分割(SegGPT: Segment Everything as in-context learning)**: > * SegGPT模型通過上下文學習來處理分割任務,這意味著它可以根據上下文資訊對圖像進行分割。 > * 模型學習從多個示例中辨識和分割出物體,例如分割出"大紅球"、"所有球體"、"頂部表面"、"陰影"等。 > * 這種方法不僅限於靜態圖像,還能夠處理視頻中的對象,以及執行像ADE20K語義分割這樣的複雜任務。 ### Interactive Interface for Vision - SAM(Segment Anything Model) 一種互動式視覺界面,能夠實現對任何事物的分割,以及對醫學影像的應用。 ![image](https://hackmd.io/_uploads/BkB6x4E4p.png) - **可提示的分割(Promptable segmentation)**: - 使用模型進行分割任務時,用戶可以通過提示(例如文字描述)指示模型分割出圖像中特定的物體或區域。 - 圖中展示了如何將用戶的提示與圖像結合,並通過模型生成有效的遮罩。 - SAM模型架構: - 包括輕量級的遮罩解碼器和圖像編碼器,能夠處理提示和圖像,生成分割遮罩。 - 圖中的數據引擎(Segment Anything IB,簡稱SA-IB)顯示了模型使用超過10億遮罩和1100萬圖像進行訓練。 ![image](https://hackmd.io/_uploads/rkQNZE44T.png) > - SAM在醫學影像中的應用: > 展示了SAM模型如何適用於多種醫學影像格式,包括CT、MRI、內窺鏡以及其他多格式影像。 > 這證明了模型能夠處理從肝臟腫瘤分段到腫瘤分割,以及其他更專門的醫學影像分割任務。 ## A quick recap 已有的視覺生成模型在垂直和水平方向上覆蓋了許多任務,想像如果這些模型被完善,將能夠與人工智能模型進行良好的互動。在視覺理解的對話社群中,開發針對上下文學習的互動界面是一個關鍵方向,旨在實現人與AI模型間的有效互動。 SAM模型被用於不同應用,例如與圖像修補技術結合來填充遮罩區域,或用於長視頻序列中追蹤對象,甚至可應用於多種醫學影像的任務,如分割和檢測。然而,SAM模型主要支持特殊的互動形式,並不包含語言或語義提示的能力。 ## Sparks of Artificial General Intelligence (AGI) 對人工通用智能(AGI)初步的探索,指出在GPT-4中發現了AGI的火花。這表明即使沒有視覺學習的訓練,模型也能展現出某些AGI特性 ## Drawing dots for generalist vision - Enable an intimate cooperation with LLMs for physic world task - Give GPT, ChatGPT, BioGPT the eyes! - Empower more grounded image/video manipulation - Let DALLE-1/2 not only imaging things but grounding to the realistic! - Achieve multi-sensory general intelligent agent! - A real agent that can see, talk, act! 目標是實現一種多感官的通用智能代理,它不僅能看和說,還能在數位和物理世界中行動。這是一個遠大的願景,但目前作為計算機視覺研究人員,我們還有很多空間去探索這方面的通用視覺理解模型