Schwertlilien
As a recoder: notes and ideas.

2025-9-2

CVPR2024: OVFoodSeg: Elevating Open-Vocabulary Food Image Segmentation via Image-Informed Textual Representation

以two-stage训练

一、Stage I:FoodLearner Pre-training 的 Loss

总目标

Stage I 是 FoodLearner 预训练,要解决的问题:

  • ITC Loss → 图文全局对齐(image-text matching at embedding level)
  • ITM Loss → 图文局部匹配(二分类 matching/not matching)
  • LM Loss → 保证 FoodLearner 真的把视觉知识“注入”到文本中

1. ITC Loss (Image-Text Contrastive Loss)

公式

$L_{ITC} = \frac{1}{2}\big(CE(p_{t2i}, GT_{t2i}) + CE(p_{i2t}, GT_{i2t})\big)$

符号

  • $\hat{T}_{query}$:图像经过 FoodLearner 得到的 query tokens(视觉增强后的表示)。
  • $\hat{T}_{text}$:文本经过 FoodLearner 得到的文本 tokens。
  • $\phi$:温度参数,控制分布的尖锐程度(越大越“硬”)。
  • $\langle a, b \rangle$:余弦相似度(cosine similarity)。
  • $p_{t2i}$:text-to-image 相似度概率分布,表示给定一段文本,它和不同图像匹配的概率。
  • $p_{i2t}$:image-to-text 相似度概率分布,表示给定一张图,它和不同文本匹配的概率。
  • $GT_{t2i}, GT_{i2t}$:真实标签(1 表示配对正确,0 表示错误)。

设计 ITC?

  • CLIP 训练的核心思想就是用 对比学习 让图像和文本 embedding 在语义空间对齐。
  • 在 FoodLearner 里保留 ITC,可以保证增强后的 embedding 仍然能维持这种 跨模态对齐能力

2. ITM Loss (Image-Text Matching Loss)

公式

$L_{ITM} = CE(p_{itm}, GT_{itm})$$p_{itm} = \frac{1}{Q}\sum_{t=1}^Q FC(\tilde{T}^t_{query})$

符号解释

  • $Q$:query token 的数量。
  • $\tilde{T}_{query}$:图像 embedding + 文本 token 一起输入 FoodLearner 后得到的 multimodal token 表示。
  • $FC(\cdot)$:全连接层输出一个概率。
  • $p_{itm}$:预测的图文是否匹配的概率。
  • $GT_{itm}$:ground truth(1 表示匹配,0 表示不匹配)。

为什么设计 ITM?

  • ITC 是全局对齐,但可能忽略了细节。
  • ITM 强制模型 逐对判断 “这张图片和这句话是不是一对”,
  • 能让模型更细粒度地学习对齐关系。
  • 这也是很多 VLM(比如 BLIP2)常用的 trick。

3. LM Loss (Language Modeling Loss)

公式

$L_{LM} = \frac{1}{W}\sum_{w=1}^W CE(p^w_{word}, GT_{word})$

符号解释

  • $W$:句子中的 token 数。
  • $T_{text}$:文本 tokens。
  • $\hat{T}_{query}$:FoodLearner 生成的 query tokens,包含视觉信息。
  • $\tilde{T}_{text} = FL(NULL, \hat{T}_{query}; T_{text})$:融合 query 和文本后得到的新文本 token 序列。
  • $p^w_{word} = FC(\tilde{T}^w_{text})$:预测第 $w$ 个 token 的概率分布(softmax over vocabulary)。
    • 含义:在看到前面 token 和 query 的条件下,预测第 $w$ 个词是哪个词。
  • $GT_{word}$:真实的第 $w$ 个词。

为什么设计 LM?

  • 如果只做 ITC/ITM,FoodLearner 可能只学到 embedding 层面的对齐,而没有真正把视觉知识“写进”文本 embedding。
  • LM loss 让模型尝试 在文本生成中使用视觉信息,从而保证文本 embedding 真正带有图像特征。
  • 类似于“图像指导下的语言建模”。

Stage I 总损失

$L_{StageI} = L_{ITC} + L_{ITM} + L_{LM}$

👉 三者结合:

  • ITC 保证语义空间对齐
  • ITM 保证图文匹配更精细
  • LM 保证视觉信息融入文本

二、Stage II:Segmentation Learning 的 Loss

Stage II 主要任务是 open-vocabulary segmentation,所以损失函数分为两个部分:分类 + 掩码


1. 分类损失(Cross-Entropy)

公式

$P^i_{cls} = \frac{\exp(\tau \cdot \langle T_{proposal}, \tilde{E}^i_{text}\rangle)}{\sum_j \exp(\tau \cdot \langle T_{proposal}, \tilde{E}^j_{text}\rangle)}$$L_{cls} = CE(P_{cls}, GT_{cls})$

符号解释

  • $T_{proposal}$:来自 SAN 的 region-level token(对应图像某个区域)。
  • $\tilde{E}^i_{text}$:image-informed 的第 $i$ 类文本 embedding。
  • $\langle \cdot, \cdot \rangle$:余弦相似度。
  • $\tau$:温度参数(论文里设为 100)。
  • $P^i_{cls}$:proposal 属于第 $i$ 类的概率。
  • $GT_{cls}$:proposal 的真实类别。

为什么用 Cross-Entropy?

  • 分类任务标准做法就是 softmax + CE。
  • 能最大化正确类别的概率,同时压低错误类别的概率。

2. 掩码损失(Dice Loss)

公式

$L_{mask} = Dice(P_{mask}, GT_{mask})$

符号解释

  • $P_{mask}$:预测的二值 mask(像素概率)。
  • $GT_{mask}$:真实的分割掩码。

Dice 系数公式(用于衡量两个集合的重叠度):

$Dice(A, B) = \frac{2|A \cap B|}{|A| + |B|}$

Dice Loss = $1 - Dice$。

为什么选 Dice Loss?

  • 在分割任务里,类别经常不平衡(前景小,背景大)。
  • Dice Loss 专门解决这个问题,因为它直接衡量 预测区域和真实区域的重叠程度
  • 比 CE 更适合 mask 预测。

Stage II 总损失

$L_{StageII} = L_{cls} + L_{mask}$

三、总结

  • Stage I (FoodLearner Pre-training)
    • ITC:全局语义对齐(保证 embedding 匹配)。
    • ITM:细粒度对齐(二分类匹配任务)。
    • LM:把图像知识融入文本表示。
  • Stage II (Segmentation Learning)
    • CE 分类损失:保证区域分类正确。
    • Dice 掩码损失:保证像素分割正确,特别适合前景稀疏的场景。
搜索
匹配结果数:
未搜索到匹配的文章。