1. BaseInfo

Title CRIS: CLIP-Driven Referring Image Segmentation
Adress https://arxiv.org/pdf/2111.15174v2
Journal/Time CVPR 2022
Author 悉尼大学,OPPO,北邮,快手
Code https://github.com/DerrickWang005/CRIS.pytorch

2. Creative Q&A

  1. 受到CLIP的启发,设计了一个visual-language decoder以促进两种模态之间的一致性。直接对齐->注意力-> 模态一致性
  2. 文本到像素的对比学习。
    在这里插入图片描述
    Related Work : Vision-Language Pretraining、Contrastive Learning、Referring Image Segmentation

3. Concrete

在这里插入图片描述

3.1. Model

3.1.1. Input

图+文

3.1.2. Backbone

ResNet + Transformer (提取语言特征和全局文本表示)

3.1.3. Neck

Cross-modal Neck.
给定多个视觉特征和全局文本表示FsF_sFs,可以通过融合Fv4F_{v4}Fv4以及FsF_sFs得到简单的多模态特征
Fm4=Up(σ(Fv4Wv4)⋅σ(FsWs))(1) F_{m4} = Up(\sigma(F_{v4}W_{v4}) \cdot \sigma(F_{s}W_{s})) \tag{1} Fm4=Up(σ(Fv4Wv4)σ(FsWs))(1)
其中UpUpUp是上采样两倍,将两个模态的特征变换到同一个特征空间,类似得到 Fm3F_{m3}Fm3Fm2F_{m2}Fm2
Fm3=[σ(Fm4Wm4),σ(Fv3Wv3)]Fm2=[σ(Fm3Wm3),σ(Fv2′Wv2)],Fv2′=Avg(Fv2) \begin{align} F_{m3} &= [\sigma(F_{m4}W_{m4}), \sigma(F_{v3}W_{v3})] \\ F_{m2} &= [\sigma(F_{m3}W_{m3}), \sigma(F_{v2}'W_{v2})], F_{v2}' = Avg(F_{v2}) \tag{2} \end{align} Fm3Fm2=[σ(Fm4Wm4),σ(Fv3Wv3)]=[σ(Fm3Wm3),σ(Fv2Wv2)],Fv2=Avg(Fv2)(2)
拼接后的特征通过1×11 \times 11×1卷积进行聚合得到FmF_{m}Fm
Fm=Conv([Fm2,Fm3,Fm4])(3) F_{m} = Conv([F_{m2}, F_{m3}, F_{m4}]) \tag{3} Fm=Conv([Fm2,Fm3,Fm4])(3)
其中Fm∈RH8×W8×CF_{m} \in \mathbb{R}^{\frac{H}{8} \times \frac{W}{8} \times C}FmR8H×8W×C。最后,作者将2D的空间坐标特征Fcoord∈RH8×W8×2F_{coord} \in \mathbb{R}^{\frac{H}{8} \times \frac{W}{8} \times 2}FcoordR8H×8W×2FmF_{m}Fm拼接并通过3×33 \times 33×3卷积进行融合:
Fv=Conv([Fm,Fcoord])(4) F_{v} = Conv([F_{m}, F_{coord}]) \tag{4} Fv=Conv([Fm,Fcoord])(4)
其中Fv∈RH8×W8×CF_{v} \in \mathbb{R}^{\frac{H}{8} \times \frac{W}{8} \times C}FvR8H×8W×C

3.1.4. Decoder

Vision-Language Decoder
vision-language decoder由n个layer组成,每个layer包括一个多头自注意力,一个多头交叉注意力以及前馈网络。
加上了正弦位置编码
Fv′=MHSA(LN(Fv))+Fv(5) F_{v}' = MHSA(LN(F_{v})) + F_{v} \tag{5} Fv=MHSA(LN(Fv))+Fv(5)

Fc′=MHCA(LN(Fv′),Ft)+Fv′Fc=MLP(LN(Fc′))+Fc′ \begin{align} F_{c}' &= MHCA(LN(F_{v}'), F_{t}) + F_{v}' \tag{7}\\ F_{c} &= MLP(LN(F_{c}')) + F_{c}' \end{align} FcFc=MHCA(LN(Fv),Ft)+Fv=MLP(LN(Fc))+Fc(7)

3.1.5. Loss

Text-to-Pixel Contrastive Learning
zv=Fc′Wv+bv,Fc′=Up(Fc)zt=FsWt+bt \begin{align} z_{v} &= F_{c}'W_{v} + b_{v}, &F_{c}' = Up(F_{c}) \\ z_{t} &= F_{s}W_{t} + b_{t} & \tag{8} \end{align} zvzt=FcWv+bv,=FsWt+btFc=Up(Fc)(8)
其中 zt∈RDz_{t} \in \mathbb{R}^{D}ztRD, zv∈RN×Dz_{v} \in \mathbb{R}^{N \times D}zvRN×D, N=H4×W4N = \frac{H}{4} \times \frac{W}{4}N=4H×4W
目的是让 ztz_{t}zt 和与之对应的 zvz_{v}zv 尽可能相似:
Lconi(zt,zvi)={−log⁡σ(zt⋅zvi),i∈P−log⁡(1−σ(zt⋅zvi)),i∈N(9) L_{con}^{i}(z_{t}, z_{v}^{i}) = \begin{cases} -\log \sigma(z_{t} \cdot z_{v}^{i}), &i \in \mathcal{P} \\ -\log(1 - \sigma(z_{t} \cdot z_{v}^{i})), &i \in \mathcal{N} \end{cases} \tag{9} Lconi(zt,zvi)={logσ(ztzvi),log(1σ(ztzvi)),iPiN(9)
Loss 计算
Lcon(zt,zv)=1∣P∪N∣∑i∈P∪NLconi(zt,zvi)(10) L_{con}(z_{t}, z_{v}) = \frac{1}{|\mathcal{P} \cup \mathcal{N}|} \sum_{i \in \mathcal{P} \cup \mathcal{N}} L_{con}^{i}(z_{t}, z_{v}^{i}) \tag{10} Lcon(zt,zv)=PN1iPNLconi(zt,zvi)(10)

3.2. Training

名称
文本和图像编码器权重 使用CLIP
用于消融研究的图像编码器 ResNet - 50
输入图像调整后的尺寸 416×416
RefCOCO和RefCOCO+输入句子的最大长度 17
G - Ref输入句子的最大长度 22
Transformer Decoder层的头数 8
前馈隐藏层维度 2048
训练轮数 50
优化器 Adam
初始学习率 0.0001
第35轮时学习率调整因子 0.1(即学习率降为原来的0.1)
训练的批量大小 64
推理时预测结果的上采样操作 上采样回原始图像大小
推理时的二值化阈值 0.35
推理时是否有其他后处理操作

3.2.1. Resource

8块显存为16GB的Tesla V100 GPU

3.2.2 Dataset

RefCOCO , RefCOCO+ , and G-Ref .

3.3. Eval

在这里插入图片描述

3.4. Ablation

  1. 解码器和对比学习的有效性
  2. Decoder 的 layers
    在这里插入图片描述

比较有趣的是这些failure case。第一种导致failure的原因是输入的表达具有歧义,其次是标签标注问题,最后是遮挡问题。

4. Reference

5. Additional

很早的工作了,之前也读过,重新整理一下。

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐