CVPR 2022: GroupViT 基于文本監督的語(yǔ)義分割算法
來(lái)源丨 GiantPandaCV
1. 論文信息
標題:GroupViT: Semantic Segmentation Emerges from Text Supervision
作者:Jiarui Xu, Shalini De Mello, Sifei Liu, Wonmin Byeon, Thomas Breuel, Jan Kautz, Xiaolong Wang
原文鏈接:https://openaccess.thecvf.com/content/CVPR2022/html/Xu_GroupViT_Semantic_Segmentation_Emerges_From_Text_Supervision_CVPR_2022_paper.html
代碼鏈接:https://github.com/NVlabs/GroupViT
2. 介紹
CLIP是近年來(lái)在多模態(tài)方面的經(jīng)典之作,得益于大量的數據和算力對模型進(jìn)行預訓練,模型的Zero-shot性能非??捎^(guān),甚至可以在眾多數據集上和有監督訓練媲美。簡(jiǎn)單來(lái)說(shuō),CLIP的high-level的idea非常直接,就是通過(guò)對比學(xué)習,對圖像特征空間和文本特征空間進(jìn)行對齊,給定任意圖像和文本都可以映射到這個(gè)空間中,然后這些圖像和文本就可以直接計算相似度。通過(guò)這種方式,CLIP填平了文本和視覺(jué)信息的gap。
CLIP是基于分類(lèi)任務(wù)完成的,那么相應的,我們就不免思考其在檢測和分割領(lǐng)域能否也發(fā)揮比較好的效果。如何不依賴(lài)于手工標注的分割標注,如何能真真的做到去用文本來(lái)作為監督信號來(lái)指導模型訓練,就是非常值得思考的一個(gè)問(wèn)題。下面我們就來(lái)介紹一個(gè)基于CLIP的zero-shot實(shí)例分割方法。
對于傳統做分割的模型的一種方法就是通過(guò)像素相似度進(jìn)行語(yǔ)義分割。
首先在圖上找一些中心點(diǎn),然后通過(guò)像素相似然后將附近像素給到不同的目標區域,最終獲得segmentation mask區域。如上圖所示,為了實(shí)現擺脫手工標注這一目標,論文提出將分割中經(jīng)典的group機制引入到深度網(wǎng)絡(luò )中,通過(guò)這種機制,語(yǔ)義的信息段可以在只需要文本監督的情景下自動(dòng)出現。
通過(guò)對具有對比損失的大規模成對vision-language數據進(jìn)行訓練,我們可以將模型zero-shot轉移到多個(gè)語(yǔ)義分割到word table中,而不需要進(jìn)一步的注釋或微調。
總結論文的貢獻如下:
- 在深度網(wǎng)絡(luò )中,我們超越了規則形狀的圖像網(wǎng)格,引入了一種新的Group ViT體系結構,將視覺(jué)概念分層自下而上地分組為不規則形狀的組。
- 在不依賴(lài)任何像素級的標注情況下,只采用圖像級文本監督,成功地學(xué)會(huì )了將圖像區域分組,并以zero-shot的模式遷移到多個(gè)語(yǔ)義分割詞匯表。
- 本文是第一份在不使用任何像素標簽的情況下探索從文本監督到多個(gè)語(yǔ)義分割任務(wù)的零鏡頭轉移的工作,并為這一新任務(wù)建立了堅實(shí)的基線(xiàn)。
3. 方法
如上圖所示,本文提出的結構在ViT基礎上進(jìn)行設計,是一個(gè)dual-encoder的結構。訓練過(guò)程主要分為三部:
第一步:把原始的image作為輸入,利用ViT結構的encoder進(jìn)行圖像編碼。將圖像分成若干個(gè)patch之后,將每個(gè)patch作為path embedding的向量信息,構建出 部分的數據矩陣,然后利用線(xiàn)性層映射出一個(gè)embedding的數據。然后將圖像中的不同patch得到的embedding進(jìn)行分類(lèi),構建出64*384大小的group token矩陣塊。
這里有兩種實(shí)現的方式,第一種,對于2-stage類(lèi)型的GroupViT,
- 在GroupViT的第一階段,經(jīng)過(guò)Transformer layers操作后可以得到64個(gè)group tokens,然后在6層Transformer層后插入grouping block。
- 在GroupViT的第二階段,grouping之后,都會(huì )得到8個(gè)segment tokens。對于1-stage類(lèi)型的GroupViT,就非常簡(jiǎn)單直接了,在grouping block之前,將64個(gè)group tokens通過(guò)MLP-Mixer layer映射成8個(gè)segment tokens。然后Grouping Block將學(xué)到的group tokens 和image segment tokens作為輸入,通過(guò)Grouping Block更新image tokens,利用這些tokens將相似的images歸并到一起。每經(jīng)過(guò)一個(gè)grouping stage,能夠得到更大更少的image segments。
第二步:基于上一步輸出的8384的group token后把文本數據和得到的數據聯(lián)合進(jìn)行訓練。為了和Text信息進(jìn)行關(guān)聯(lián),能夠機選Clip的內積,需要把8維映射為1維,為了方便簡(jiǎn)單,論文直接用avg pooling處理;
論文的訓練loss有兩項,包括image-text loss和multi-label contrastive loss with text prompting。
image-text loss包括image to text和text to image兩項:
multi-label contrastive loss with text prompting涉及到較為復雜的操作,可以參考原文進(jìn)一步了解:
第三步:通過(guò)設計好的GroupViT結構,模型能夠自動(dòng)將image分組成一個(gè)個(gè)的segment,所以可以很容易的zero-shot transfer到語(yǔ)義分割任務(wù)上,而不需要微調。由于GroupViT自動(dòng)將圖像分組為語(yǔ)義相似的片段,它的輸出可以很容易地轉移到語(yǔ)義分割,而無(wú)需進(jìn)一步的微調。如圖4所示。為了推斷圖像的片段屬于對象類(lèi)的有限詞匯table,論文通過(guò)Group VIT來(lái)傳遞一個(gè)測試圖像,而不對其最終的L輸出段應用AvgPool,并得到每個(gè)片段的嵌入為。每個(gè)段標記對應于輸入圖像的任意形狀的區域。然后,我們計算每個(gè)段標記的嵌入與數據集中所有語(yǔ)義類(lèi)的文本嵌入之間的相似性。我們將每個(gè)圖像片段分配給圖像文本embedding相似度最高的語(yǔ)義類(lèi)定為最終分割結果。
4. 實(shí)驗結果
在無(wú)監督的情況下,自然是相較于其他的對比學(xué)習方式有了比較明顯的提升,但顯然和有監督的setting表現還是有一定的gap的(如VOC可以達到80%+),由此可見(jiàn),無(wú)監督的語(yǔ)義分割還是有一定進(jìn)步的空間的。
為了將CLIP zero-shot轉換為語(yǔ)義分割,在推理過(guò)程中首先對其輸出特征進(jìn)行non-parametric的分組。然后計算每組的特征均值與數據集分割標簽的文本embeddings之間的相似度。這樣,任何結合CLIP的ViT非參數分組方法都可以被認為是一個(gè)零鏡頭的語(yǔ)義分割基線(xiàn)。如表4所示,分組ViT的性能大大優(yōu)于其他分組方法。這表明,與使用CLIP訓練的ViT相比,我們的GroupViT在zero-shot轉換到語(yǔ)義分割方面更有效。
5. 結論
本文邁出了學(xué)習零樣本語(yǔ)義分割的第一步,也是重要一步,在只有文本,沒(méi)有任何明確的人類(lèi)標注的監督下進(jìn)行自監督。我們證明,使用GroupViT,從大規模噪聲圖像-文本對中學(xué)習到的表示可以以零鏡頭的方式轉移到語(yǔ)義分割。這項工作也證明了除了圖像分類(lèi)之外,文本監督也可以轉移到更細粒度的視覺(jué)任務(wù)中,這是以前沒(méi)有探索過(guò)的,開(kāi)辟了一個(gè)非常有趣的研究方向。
本文僅做學(xué)術(shù)分享,如有侵權,請聯(lián)系刪文。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。