【大模型DA】Unified Language-driven Zero-shot Domain Adaptation

article/2025/8/4 12:39:12

请添加图片描述

Motivation

本文动机在于解决现有方法对 domain-ID 和多模型的依赖问题,提出一个更实用、更通用的新设定 ULDA,使模型仅通过语言描述就能在不访问目标图像的前提下一次性适应多个未知目标域

这篇文章的方法部分提出了一个统一框架来解决Unified Language-driven Zero-shot Domain Adaptation (ULDA)问题。这个框架包含三个核心模块,目标是在不访问目标域图像、没有 domain ID 的情况下,利用语言描述让单个模型适应多个目标域。


🧠 方法总览

目标:给定源域图像 + 目标域文本描述,训练一个能泛化到多个目标域的单一模型

挑战:没有目标图像,只用“语言”进行引导,还不能知道“这张图像来自哪个目标域”
解决方案:提出三大模块👇


🔧 方法组成

1️⃣ Hierarchical Context Alignment(HCA)

解决 语义丢失 问题,提高图像与文本的对齐精度

传统方法只在场景级别(scene-level)对齐图像特征和文本嵌入,这样容易忽略不同对象的语义差异。HCA引入三级对齐策略:

层级对齐方式目的
场景级别(Scene-level)整图特征与整体文本对齐粗粒度对齐(类似PØDA)
区域级别(Region-level)以“bus in rain”等描述对区域原型进行对齐保留类间语义结构
像素级别(Pixel-level)每个像素与对应类别文本对齐精细粒度、增强判别性

每层都设计了相应的损失函数,整体损失为:
L H C = λ r L r + λ p L p + L μ , σ \mathcal{L}_{HC} = \lambda_r \mathcal{L}_r + \lambda_p \mathcal{L}p + \mathcal{L}{\mu, \sigma} LHC=λrLr+λpLp+Lμ,σ


2️⃣ Domain Consistent Representation Learning(DCRL)

解决 跨域类别关系不一致 问题,保持语义结构一致性

不同场景中,同一类别(如 “bus”)与其他类别(如 “rider”)的语义关系可能发生变化,DCRL通过计算原型之间的关系矩阵(相似性),在视觉空间和文本空间分别建图,对这两个矩阵做 MSE 最小化,保持结构一致:

L D C = MSE ( C C T ∥ C ∥ 2 , T T T ∥ T ∥ 2 ) \mathcal{L}_{DC} = \text{MSE}\left( \frac{CC^T}{\|C\|^2}, \frac{TT^T}{\|T\|^2} \right) LDC=MSE(C2CCT,T2TTT)


3️⃣ Text-Driven Rectifier(TDR)

解决 模拟特征与真实目标域之间存在偏差 的问题

训练中,PØDA 的模拟特征(通过 text-guided normalization)并不完全等于真实目标域特征。TDR通过使用文本嵌入生成一组均值与方差对模拟特征进行校正,进一步逼近真实分布:

f ~ s → t = β ( f s → t − μ ( f s → t ) σ ( f s → t ) ⋅ σ ~ + μ ~ ) + f s → t \tilde{f}{s \to t} = \beta \left( \frac{f{s \to t} - \mu(f_{s \to t})}{\sigma(f_{s \to t})} \cdot \tilde{\sigma} + \tilde{\mu} \right) + f_{s \to t} f~st=β(σ(fst)fstμ(fst)σ~+μ~)+fst

注意:TDR 只用于 Stage-2 的 fine-tuning 阶段,不能用于模拟阶段(Stage-1),否则会导致训练目标被破坏。


⚙️ 总体训练流程

Stage-1:特征模拟阶段

  • 输入源图像与文本描述
  • 使用 PIN 模拟目标特征
  • 应用 HCA + DCRL + Segmentation Loss
    L stage1 = λ H C L H C + λ D C L D C + λ s e g L s e g \mathcal{L}{\text{stage1}} = \lambda{HC} \mathcal{L}{HC} + \lambda{DC} \mathcal{L}{DC} + \lambda{seg} \mathcal{L}_{seg} Lstage1=λHCLHC+λDCLDC+λsegLseg

Stage-2:fine-tuning 阶段

  • 使用 TDR 修正模拟特征
  • 微调共享 segmentation head
  • 只使用 cross-entropy segmentation loss

✅ 总结一句话

ULDA 通过 HCA 保留多层次语义、通过 DCRL 保持跨域语义一致性、通过 TDR 弥补模拟误差,最终训练出一个无需 domain ID、可泛化多个场景的统一模型


CLIP 本身并没有图像分割能力,它只是一个预训练的图文对齐模型(Image-Text Contrastive Model)。但这篇文章巧妙地结合了 CLIP 的文本理解能力和一个标准的图像分割模型,从而实现了“仅通过语言描述”进行语义分割的跨域迁移。


CLIP 在这里的角色是:

提供具有语义结构的“文本嵌入”,作为目标域的语言指导。


🤔 但 CLIP 本身不能做 segmentation?

没错,CLIP 是做分类用的,它输出的是一个图像/文本的全局表示,用于做相似度匹配 —— 它不能输出像素级的分割掩码


✨ 解决方案:把 CLIP 和 DeepLabV3+ 结合

模型结构如下:

  1. 编码器(Encoder)
    • 使用了 CLIP-ResNet-50 的视觉编码器作为特征提取 backbone
    • 把源图像提取成中间特征 f s f_s fs
  2. PIN模块 + 文本描述
    • 用 CLIP 的文本编码器将 prompt(如“driving in snow”)转成嵌入
    • 作为引导信号生成归一化参数(μ, σ)
    • 对 f_s 做归一化,生成模拟的“目标域特征” f s → t f_{s \rightarrow t} fst
  3. 语义分割头(Segmentation Head)
    • 使用标准的 DeepLabV3+ segmentation head
    • 输入模拟后的特征 f s → t f_{s \rightarrow t} fst,输出像素级分割结果
    • 在源域图像 + GT 标签上训练(有监督)
  4. 文本辅助监督
    • 把“bus in rain”“road at night”等文本转成嵌入

    • 用于和区域特征、像素特征对齐(通过相似度损失)


📌 图示理解(逻辑流程)

          Source Image↓┌─────────────────────┐│ CLIP Visual Encoder │ → f_s└─────────────────────┘↓+---------------------------+| Prompt: "driving in snow"|+---------------------------+↓┌──────────────────────┐│ CLIP Text Encoder    │ → TrgEmb└──────────────────────┘↓→ 生成 μ, σ  →  模拟特征 f_{s→t}↓┌─────────────────────┐│ Segmentation Head   │ → Pixel-wise Prediction└─────────────────────┘

✅ 总结一句话:

本文不是用 CLIP 做分割,而是用 CLIP 的语言理解能力作为“目标域提示器”,结合主干分割网络(如 DeepLabV3+),通过多级语义对齐实现“仅靠语言”的跨域语义分割迁移。

📚 数据集使用概览

🔧

训练阶段(Source domain)

  • 使用数据集:Cityscapes
    • 城市街景语义分割数据集(真实图像)
    • 提供图像 + 像素级标签
  • 监督方式有监督训练
    • 利用 Cityscapes 中图像和 GT 分割标签对模型进行训练
    • 同时利用目标域的**语言描述(text prompt)**来引导模拟特征
  • 不使用任何目标域图像

🧪

测试阶段(Target domains)

文章设置了两个主要评测场景👇


🧪 1.

Clear-to-Adverse Weather(真实图像 → 恶劣天气)

  • 源域:Cityscapes

  • 目标域:ACDC 数据集中 4 个子域

    • Night(夜间)

    • Rain(雨天)

    • Snow(雪天)

    • Fog(雾天)

  • 目标域图像仅用于测试

📌目标域的监督情况

  • 测试时使用目标域图像 + Ground Truth 分割掩码来评估性能(如 mIoU、mAcc)

  • 训练过程中从未使用目标域图像或标签


🧪 2.

Synthetic-to-Real(合成图像 → 真实图像)

  • 源域:GTA5(合成游戏画面,有语义分割标签)

  • 目标域

    • Cityscapes(真实街景)

    • ACDC(各种真实复杂天气)

  • 目标域监督情况

    • 同样,训练不使用目标域图像,测试用来评估泛化能力

🧾 补充说明

阶段使用数据是否使用标签是否访问目标域图像
训练(源域)Cityscapes / GTA5✅ 有❌ 不访问目标域图像
训练(目标域)❌ 无❌ 无❌ 无
测试(目标域)ACDC / Cityscapes✅ 有(用于评估)✅ 用于评估阶段

✅ 总结一句话:

本文采用有监督训练在 Cityscapes 或 GTA5(源域),不使用目标域图像或标签,只提供目标域的语言描述;在测试阶段,使用 ACDC 和 Cityscapes 的图像和标注进行性能评估,完全符合 Zero-shot Domain Adaptation 设定。


http://www.hkcw.cn/article/witJDXghSZ.shtml

相关文章

Tomcat 线程模型详解性能调优

1. Tomcat I/O模型详解**(了解)** 1.1 Linux I/O模型详解 I/O要解决什么问题 I/O:在计算机内存与外部设备之间拷贝数据的过程。 程序通过CPU向外部设备发出读指令,数据从外部设备拷贝至内存需要一段时间,这段时间CPU就…

Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory

文章目录 摘要Abstract1. 引言2. Mem03. graph-based Mem0参考总结 摘要 Mem0是一种针对AI智能体的长时记忆架构,旨在解决大型语言模型固定上下文窗口导致的跨会话连贯性问题。其基础版本采用两阶段处理范式:提取阶段通过结合对话摘要、近期消息序列和新…

C++构造函数详解:从基础到高级

文章目录 1. 摘要2. 默认构造函数3. 无参构造函数4. 带参构造函数5. 拷贝构造函数6. 移动构造函数 (C11)7. 委托构造函数 (C11)8. 转换构造函数9. 默认拷贝构造函数10. 总结 1. 摘要 构造函数是C类的重要组成部分,负责对象的初始化工作。本文将详细讲解8种构造函数…

day16 leetcode-hot100-32(链表11)

138. 随机链表的复制 - 力扣(LeetCode) 1.哈希表 思路 第一次遍历创建新节点并将原节点与新节点同时放入哈希表中 第二次遍历为新节点加入next与random 具体代码 /* // Definition for a Node. class Node {int val;Node next;Node random;public N…

52. N-Queens II

题目描述 52. N-Queens II 回溯法 这道题与第51题是一样的。51. N-Queens-CSDN博客 class Solution {int columns; //从低位到高位起算,第i位为0表示棋盘第i列可以放置皇后,第i位为1表示棋盘第i列不能放置皇后//边长为n的棋盘分别有2n-1条正斜线和反…

关于adb devices无法找到设备:error: device not found 的解决办法

一、此类问题出现的原因,一般是设备所使用的端口被占用,需要找到被占用的端口。 二、操作步骤 1、打开命令窗口。 2、输入adb shell 会发现提示error:device not found! 3、输入adb kill-server ,然后启动adb start-server 4、输入 net…

关于不同平台微信多开的解决方案(WIN/MAC/IOS/Andriod)

日常生活跟工作中需要用到多开微信,本次分享下在不同平台上解决微信多开的方法。这些方法我都用了超过1年以上,都比较稳定。中间遇到的一些问题我也有说明,包括每个方法的优缺点,每个平台的操作等。 先说下我自己体验下来的结论&a…

Flutter项目兼容鸿蒙Next系统

一、环境搭建: 1.1 下载鸿蒙DevEco Studio开发工具。 下载地址:下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态 下载之前需要先登录,后面的模拟器创建还要开发者验证、审核啥的,好在审核进度还可以&am…

无需密码强制移除Apple ID 工具! iOS 11.3以下可用 ipad和iphone通用!还不快快收藏起来

无需密码强制移除Apple ID 工具! iOS 11.3以下可用 ipad和iphone通用!还不快快收藏起来 ✅ 支持的设备范围注意事项使用方法如何下载? 很多朋友在不再使用某个Apple 帐户或是转卖旧的iPhone,为了防止 ID 被盗导致个人信息泄露&…

Mac 散热救星:Macs Fan Control,让你的苹果电脑“冷静”又安静!

各位果粉们,是不是经常遇到这样的烦恼:用着用着电脑,突然就发热卡顿,风扇狂转噪音大得跟拖拉机似的?别担心,今天给大家安利一款超实用的软件 —— Macs Fan Control,它可是让苹果电脑“冷静”又…

mac 安装idea,碰到“已损坏,无法打开,您应该推出磁盘映像”的解决办法

1.打开终端,先输入如下命令,之后回车操作,碰到输入密码时,正常输入密码即可 sudo spctl --master-disable 2.打开系统设置-安全与隐私性-找到‘允许以下来源的应用程序’ ,更改为任何来源,碰到输入密码时&…

k8s 四种Service类型(ClusterIP、NodePort、LoadBalancer、ExternalName)详解

🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、k8s概述 2、Service在Kubernetes中的作用 二、ClusterIP类型 1、ClusterIP 类型的特点和用途 2、ClusterIP 的工作机制 3、…

Android studio 模拟器运行时弹窗显示The emulator process for AVD 模拟器的名字 has terminated 的解决方法

Android studio 问题解决方案 一:.运行模拟器报错展示二.解决步骤第一步:找到.android的文件夹第二步:剪切该文件到SDK的下载路径第三步:点开该文件第四步:找到配置文件第五步:编辑配置文件 三:设置环境变量…

Android Studio快速配置国内镜像源和HTTP代理

最近开始学习Android Studio开发,发现老是连接超时,下面配置下国内镜像源和HTTP代理,而且通过尝试发现最快下载速度方法 一.配置 SDK 镜像源 打开 Android Studio。 进入 File > Settings 然后点击 System Settings,点击 Android SDK。 …

mac/Windows安装python+pycharm【小白操作】

macOS通常自带Python,但建议安装最新版本的Python。你可以通过Homebrew来安装Python。 方法一:通过Homebrew安装Python 安装Homebrew(如果尚未安装): 打开终端,输入以下命令并按回车: /bin/bas…

Mac电脑安装Postman教程

Postman 是一款非常常用的 API 调试工具,支持接口测试、自动化测试等功能,本文将分享在 Mac 电脑上安装 Postman 的完整步骤。 1. 下载 Postman 安装包 方法一:官网下载 打开 Postman 官方网站:https://www.postman.com/downlo…

MySQL连接报错处理:1130-host ... is not allowed to connect to this MySql server

在MySQL安装完成后,很多开发者会遇到这样一个问题: 错误代码 1130:host xxx.xxx.xxx.xxx is not allowed to connect to this MySql server 这个错误通常出现在你尝试通过远程工具(如 Navicat、DBeaver 等)连接 MySQL …

五、单元测试-概述入门

目录 main方法测试缺点: 在pom.xm中,引入junit的依赖。,在test/java目录下,创建测试类,并编写对应的测试方法,并在方法上声明test注解。 练习:验证身份证合法性 测试成功 测试失败 main方法测试缺点&am…

Python中的None值是什么?——浅析“无”的哲学与编程智慧

在Python编程世界中,None是一个极其特殊且基础的概念。它既是一个对象,又是表达“无”与“空”的唯一标识符。它的设计和应用不仅反映了Python对“无”这一哲学问题的简洁处理方式,也蕴含着深刻的编程理念和实践智慧。 本文将深入剖析Python…

Linux正则三剑客篇

一、历史命令 history 命令 :用于输出历史上使用过的命令行数量及具体命令。通过 history 可以快速查看并回顾之前执行过的命令,方便重复操作或追溯执行过程。 !行号 :通过指定历史命令的行号来重新执行该行号对应的命令。例如,若…