change clip架构学习

整个框架主要由四个部分组成:

  1. 多模态数据 (Multimodal Data):准备图像和对应的文本提示。

  2. 多模态编码器 (Multi-modal Encoder):用 CLIP 的图像和文本编码器提取特征,并进行融合。

  3. 差分特征补偿 (Differential Features Compensation, DFC):专门计算两张图的差异特征。

  4. 视觉-语言驱动解码器 (Vision-Language Driven Decoder):结合前面的特征,逐步解码出最终的变化检测结果。


详细数据流向解析

我们将数据流向分为几个阶段来解释:

阶段一:输入准备 (Input Preparation)
  • 输入 (Input):

    • 双时态遥感图像 (Bitemporal Remote Sensing Images) :两张不同时间拍摄的同一地点的图像,我们记为 Image A 和 Image B。

    • 文本提示 (Text Prompts):由于现有的变化检测数据集没有文本标签,ChangeCLIP 用了一个巧妙的方法来生成。

      • 利用 CLIP 模型的零样本分类能力,对图像进行预测,找出图像中最可能存在的物体类别(例如"建筑物"、"森林"等)。

      • 根据预测结果构建文本提示。例如,前景描述为 "remote sensing image foreground objects, {预测类别}" ,背景描述为 "remote sensing image background objects"。

      • 这样,Image A 和 Image B 就分别有了对应的文本提示,记为 Text A 和 Text B。

  • 阶段总结 :输入是 (Image A, Text A) 和 (Image B, Text B) 两对图文数据。

阶段二:多模态编码 (Multimodal Encoder)

这一阶段的目的是分别提取图像和文本的特征,并将它们融合起来。为了利用 CLIP 的能力,这里使用了两个并行的编码器流,分别处理 A 时刻和 B 时刻的数据。

以 A 时刻的数据流为例(B 时刻同理):

  1. 图像特征提取:

    • Image A 被送入一个 图像编码器 (Image Encoder)(初始化自 CLIP 的图像端,可以是 ResNet 或 ViT)。

    • 编码器会输出一个多层级的特征金字塔 {Fa1, Fa2, Fa3, Fa4},分别代表不同分辨率和语义级别的特征图。

    • 其中最高级的特征图(语义最丰富)会被进一步处理:

      • 通过一个注意力池化模块 (Attention Pool Module)(如果是 ResNet)或直接使用(如果是 ViT),得到 全局特征 (global_feature) 和 视觉嵌入 (visual_embedding, V') 。这两个组合起来构成了图像序列特征。

      • 同时,为了弥补位置信息的丢失,还会加上位置编码 (pos_embedding)。

      • 「此处,ResNet要多一步的原因是,resnet是cnn,得到的是二维空间结构而不是序列。vit是transformer得到序列,可以直接和文本融合。


        」

  2. 文本特征提取:

    • Text A 被送入一个 文本编码器 (Text Encoder)(初始化自 CLIP 的文本端,基于 Transformer)。

    • 编码器输出 文本嵌入 (text embedding, t2),它代表了文本的语义信息。

  3. 图文特征融合 (Vision-Language Feature Fusion):

    • 将 图像序列特征 (包含 V') 和 文本嵌入 (t2) 一起送入一个 上下文解码器 (Context Decoder, Fcd)(基于 Transformer)。

    • 在这个解码器里,图像和文本特征进行交互,文本信息被融入到图像特征中。

    • 输出的融合特征 t3 既包含了图像的视觉信息,又包含了文本的语义信息。这个 t3 就是这一阶段得到的视觉-语言特征 (Vision-Language Feature) ,记为 VA (对应 Image A) 和 VB (对应 Image B)。

    • 此外,还会计算一个图像像素和文本之间的 得分图 (score_map),用来增强原始高层图像特征的语义信息。

  • 阶段输出:

    • 双时态的多层级图像特征图:{Fa1...Fa4} 和 {Fb1...Fb4}。

    • 双时态的视觉-语言融合特征序列:VA 和 VB。

阶段三:差分特征计算 (Differential Features Compensation, DFC)

这一阶段是变化检测的核心,目的是计算出 Image A 和 Image B 之间的差异。ChangeCLIP 认为传统的简单相减或拼接不够好,因此设计了 DFC 模块。

  1. 输入 :来自编码器阶段的特征图 Fa 和 Fb(这里指融合了视觉-语言信息后的特征)。

  2. 三种差异计算方式:

    • 相减 (Subtraction) :计算 abs(Fa - Fb),然后通过卷积层,得到 Fsub。这种方法直观地反映了像素值的差异。

    • 余弦相似度 (Cosine Similarity) :计算 Fa 和 Fb 在高维空间中的余弦距离,得到差异图 m。这种方法能捕捉特征向量方向上的语义差异。

    • 拼接 (Concatenation) :直接将 Fa 和 Fb 拼在一起,送入一个 FPN (Feature Pyramid Network) 结构,得到 X。这种方法保留了最原始的信息,让网络自己去学习差异。

  3. 加权融合:

    • 将上面三种方式得到的差异特征 Fsub , X * m (用余弦差异图加权拼接特征), 和 X 再次拼接起来。

    • 送入一个 通道注意力模块 (Channel Attention, CA)。这个模块会自动学习三种差异特征的重要性,给予不同的权重。

  4. 阶段输出 :融合并加权后的差分特征图 (Differential Feature Maps) ,记为 D1, D2, D3, D4,对应不同的特征层级。

阶段四:解码与输出 (Vision-Language Driven Decoder)

这一阶段的任务是将前面的差分特征逐步放大(上采样),恢复到原始图像的分辨率,并输出最终的变化检测结果。

  1. 输入:

    • 来自 DFC 模块的多层级差分特征图 D1, D2, D3, D4(从低级到高级)。

    • 来自编码器阶段的视觉-语言特征序列 VA 和 VB (统称为 text 特征)。

  2. 逐层解码:

    • 解码过程从最高级的特征 D4 开始,自顶向下进行。

    • 在每一层,都会使用一个 Swin Transformer Block (f) 来处理当前层的特征和上一层传下来的特征。Swin Transformer 能建立全局的注意力关系,增强特征表示。

    • 关键点:引入低秩双线性注意力模块 (Low-rank Bilinear Attention Module) 。在每一层,都会用这个模块将编码器传来的 视觉-语言特征 (text) 与当前层的解码特征进行融合。这相当于在解码过程中不断补充语义信息,指导模型更好地识别变化区域。

    • 融合后的特征会与下一级的差分特征(如 D3)进行拼接 (concat),然后送入下一层的 Swin Transformer Block。

    • 这个过程重复进行:F3 = f(D4, text) + D3 -> F2 = f(F3, text) + D2 -> F1 = f(F2, text) + D1。

  3. 最终输出:

    • 最后一层的特征 F1 经过一个 上采样 (Upsample) 操作,恢复到与原始输入图像相同的大小。

    • 输出 (Output) :一个变化检测掩膜 (Change Detection Mask)。这是一个黑白图像,白色区域表示检测到的变化区域,黑色表示未变化区域。


总的来说,就是image和text都经过encoder,然后特征融合,得到Va Vb;差异计算(只算图的差异)用了三种,然后三种加权,得到diff图;最后把diff图和V一起送进解码器,得到最终的mask图。

changeclip是在算diff的时候这样加权,而mmchange是在text和image特征融合的时候,各种注意力得到一个维度为bchw的权重,调控text和image的融合。

相关推荐
AI日报派送佬2 小时前
2026年10月14日AI行业日报|Gemini 4 Argon正式发布;小模型跨设备传播风险引发安全热议
网络·人工智能·openai·谷歌·deepseek·anthropic·ai日报
镜象科技3 小时前
职业院校AI心理健康解决方案怎么选?三个特殊场景与三类路线
人工智能
Leo.yuan3 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
朱涛的自习室3 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
米小虾4 小时前
上下文:Agent 的眼睛里到底装着什么
人工智能·agent
米小虾4 小时前
Agent = 大脑 + 眼睛 + 手脚:一篇看懂现代 AI Agent 的骨架
人工智能
小小测试开发4 小时前
安全评测得分 0.9556 掉到 0.3257,只改了 top_k 和 prompt_style 之外的题面比例
人工智能·安全·prompt
遇印记4 小时前
传输层,网络层
运维·服务器·网络·windows·学习
slacker-kian4 小时前
[实践]-用LLM对文本结构化:把多段文本描述变成规范的 JSON 知识库
人工智能·llm·prompt·结构化·pydantic·one-shot 提示