CLIP 改進工作串講(上)【論文精讀·42】


CLIP

藍色為正樣本,其他是負樣本
推理:最大相似度的標簽
分割
像素級分類
Language-driven semantic segmentation[ICLR2022]
有監(jiān)督的訓練:并沒有把文本當作一個監(jiān)督信號來使用,還是依賴于手工標注的分割groundtruth mask


Text encoder采用的就是CLIP訓練好的文本編碼器(數(shù)據(jù)集很小,finetune效果反而會變差)
Image encoder用CLIP的那個不太行
zero-shot分割和有監(jiān)督分割相差至少十個點

失敗原因:用了CLIP,本質(zhì)都是計算圖像和文本特征之間的相似性,并不是真正在做分類,而是選擇最接近的那個
groupViT: [CVPR2022]
從頭訓練,使用了CLIP的loss
grouping:有一些聚類的中心點,從中心點發(fā)散,把周圍相似的點逐漸擴充成一個group,這個group就是一個segmentation mask (自下而上的方式 )
group token: 用來代表整個圖片
64個:過去用一個是因為想代表整個圖片僅有一個特征;但是做分割,是要每個小塊都有一個特征表示
通過transformer layers里的自注意力學習到底哪些 patch(粉色的)屬于哪個group token
經(jīng)過六層transformer layers,group token和聚類中心學的差不多了。通過Grouping block把patch直接assign到64個group token(即做了分配,得到64個聚類中心)

grouping block: 類似自注意力,首先計算了相似度矩陣,來幫助patch做聚類中心的分配

gumbel softmax: 將不可導的聚類中心的分配變?yōu)榭蓪У?> can end-to-end
由于分割種類就不多,加了新的8個group tokens,再聚一聚(通過transformer layers將64個segment token再次映射到這8個聚類中心上)。
經(jīng)過3層transformer layers,通過Grouping block把64+8的序列assign到8*384的token上
文本端一個特征,但是圖片是8個group embedding:對8塊直接平均即Avg pooling,得到1*384的特征
接下來就是CLIP
zero-shot推理:

最多能檢測8類(8個group embedding)
一個group token對應一個類,起到了聚類中心的作用:

局限:
- 是圖像編碼器的結(jié)構(gòu),沒有很好地利用dense prediction的特性。
- 背景類:分割做的很好,分類差了。因為CLIP學不到很模糊的概念如背景。。group embedding和文本的相似度必須超過閾值,再取最大的。若group embedding和文本的相似度都沒有超過閾值,groupvit就認為該group embedding是背景。當在COCO等類別非常多的數(shù)據(jù)集上時,置信度都比較低,閾值的設(shè)置就比較麻煩。(加一個約束把背景類融到里面。閾值可學習)
改進:+ deep fusion
檢測
ViLD
訓練量很大
Open-vocabulary object detection via vision and language knowledge diatillation
能夠檢測任意類別的新物體,zero-shot(肯定要文本)
Baseline: 兩階段的Mask RCNN(1.get n proposal 2.對proposal進行分類)
文本來自于物體的類別base類,其實還是有監(jiān)督的。

文本端(Text Embeddings)是鎖住的,和圖像特征(N region embeddings)做點乘 相似性,相似度當作最后分類的logics, 再交叉熵。注:還是有監(jiān)督的,因此不在基類中的其他類別就歸入Background了

ViLD-image: 從基類CB到基類CB+新類CN:
使左邊圖像編碼器輸出的region embedding和CLIP image encoder輸出盡可能近->知識蒸餾

右邊是teach,輸入的proposal既可以是基類也可以是新類(監(jiān)督信號來自CLIP,而不是人工標注)
N->M proposal:加快訓練。
對每張圖片,提前先用訓練好的rpn將M個proposal預抽取出來。teach淺橘色是離線部分,訓練時僅需要load M個image embedding
而左邊出來的N個proposal是隨時可以變化的


LVIS: 有些可能只有一個標注,會越訓練越差,不如直接zero-shot


glip: Grounded Language-Image Pre-training
圖像文本對易收集。
Vision grounding: 根據(jù)一句話,定位出物體
結(jié)合了detection和Vision grounding
偽標簽:將推理出來的bounding box當作ground truth ->擴大數(shù)據(jù)集
有監(jiān)督的,時刻都有bounding box annotation

Fusion(cross-attention): 使圖像文本特征更加的有關(guān)聯(lián)性,joint embeding space
Alignment loss: ViLD text分支


GLIPv2:
