Prompt-Anchored Vision–Text Distillation for Lifelong Person Re-identification¶
会议: CVPR 2026
arXiv: 2605.05027
代码: https://github.com/zu-zi/PAD (有)
领域: 人体理解 / 行人重识别 / 持续学习
关键词: 终身行人重识别, 无样本回放, 视觉-文本蒸馏, 提示学习, CLIP
一句话总结¶
PAD 把 CLIP 冻结文本编码器当成跨域不变的"语义锚",用一套非对称的视觉-文本蒸馏——文本侧弱蒸馏保语义稳定、视觉侧强 EMA 蒸馏保持塑性——在无样本回放的终身行人重识别上同时压住灾难遗忘和语义漂移,在已见域平均 mAP 70.7、未见域 78.6,全面超过此前 SOTA。
研究背景与动机¶
领域现状:终身行人重识别(LReID)要在按域顺序到达的数据流上训一个能不断吸收新身份、又不忘旧身份的模型。现实监控系统不断遇到新相机、新场景、新时段的数据,从头重训不现实,所以必须做增量学习。
现有痛点:为规避存原始图像带来的隐私/存储问题,主流的"无样本"(exemplar-free)方法靠存类原型或分布统计,做纯视觉模态的知识蒸馏(如 LSTKC、DKP)或参数正则。但只在视觉空间里做蒸馏有个根本缺陷:当域分布漂移时,特征空间会"局部仍可区分、但整体逐渐偏离身份语义"——即语义漂移(semantic drift),原本可分的身份慢慢混淆。行人 ReID 尤其敏感,因为类内差异大(光照、视角、遮挡)、类间差异小(细粒度),稳定的身份语义本就难维持。
核心矛盾:稳定性(不忘旧域)与塑性(学好新域)之间的 trade-off。纯视觉蒸馏要想稳,就得强约束 backbone,反过来压制新域适应;要想适应新域,又会冲掉旧语义。两者在同一个视觉空间里互相打架。
切入角度:作者注意到一个被忽视的资源——预训练视觉-语言模型(CLIP)里冻结的文本编码器本身就是一个跨域不变的稳定语义坐标系。"一个穿红夹克的人"这种文本描述不会因为姿态、光照变化而改变。如果把视觉表征锚定到这个固定文本空间上,就能把"保稳定"和"保塑性"两个任务解耦到两个模态去做,不必在视觉一个空间里硬权衡。
核心 idea:用一套非对称视觉-文本框架——文本侧只负责语义锚定(弱蒸馏、防过约束),视觉侧负责域适应(强 EMA 蒸馏 + 可增长的提示池),让冻结文本空间充当贯穿整个终身序列的"全局参考",而不是主导学习信号。
方法详解¶
整体框架¶
PAD(Prompt-Anchored vision–text Distillation)由一条文本支路和一条视觉支路组成,两条支路角色非对称:文本支路保跨域语义、视觉支路保新域塑性。输入是当前域的行人图像流,训练时两支路协同,但推理时只保留图像编码器(文本支路只在训练期提供语义引导),因此部署开销小。
整体流程:冻结的 CLIP 文本编码器定义一个固定语义坐标系,可学习的 TA-Prompt(Text-Anchor Prompt)在这个坐标系里为每个身份生成类级文本嵌入,用对称的图文 SupCon 损失把视觉特征拉向这些文本锚;跨域时再叠加一个弱文本蒸馏 TEXKD,用上一域的冻结文本教师防止 TA-Prompt 的类得分漂离历史。视觉侧,图像编码器只解冻最后几层 + 分类头 + 一个可增长的 VA-Prompt 提示池,由一个 EMA 动量教师做强视觉蒸馏 VISKD(特征级 MSE + 文本锚定的 logit 级 KL),压住细粒度漂移。新域到来时 VA-Prompt 分配一批新槽位、冻结旧槽位,实现"长而不忘"的提示池增长。
整体训练目标为 $\(\mathcal{L}_{\mathrm{overall}}=\mathcal{L}_{\mathrm{supcon}}+\mathcal{L}_{\mathrm{ID}}+\mathcal{L}_{\mathrm{triplet}}+\mathcal{L}_{\mathrm{KD}},\)$ 其中 \(\mathcal{L}_{\mathrm{KD}}=\lambda_{\text{text}}\mathcal{L}_{\text{TEXKD}}+\lambda_{\text{feat}}\mathcal{L}_{\text{featKD}}+\lambda_{\text{logit}}\mathcal{L}_{\text{logitKD}}\) 把文本侧和视觉侧的所有蒸馏项汇总。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["当前域图像流<br/>(无旧域回放)"] --> B
A --> D
subgraph T["非对称视觉-文本框架"]
direction TB
B["冻结文本编码器<br/>跨域语义锚"] --> C["TA-Prompt 文本侧蒸馏<br/>SupCon 对齐 + 弱 TEXKD"]
end
subgraph V["视觉支路"]
direction TB
D["VA-Prompt 提示池<br/>逐域新增槽 + 冻旧槽"] --> E["EMA 视觉蒸馏<br/>featKD + logitKD"]
end
C -->|图文对齐 拉向文本锚| E
E --> F["仅图像编码器<br/>(推理部署)"]
关键设计¶
1. 非对称视觉-文本框架:把"保稳定"和"保塑性"拆到两个模态
这是整篇的设计哲学,直接针对"在视觉单一空间里硬权衡稳定-塑性"的痛点。PAD 让文本和视觉分工:冻结的 CLIP 文本编码器提供一个跨域不变的语义坐标系,作为全局参考;而视觉支路保持可适应。关键在于"非对称"——文本侧只施加弱约束(充当语义锚而非主导学习信号),视觉侧施加强蒸馏(视觉表征粒度细、对域漂移敏感,需要强锚定)。这跟以往要么纯视觉蒸馏、要么在视觉空间里做提示适应的工作根本不同:文本空间天然就是稳定的,不需要额外正则去"保"它,于是稳定性几乎免费获得,视觉侧就能放心地腾出塑性去学新域。作者强调 PAD 不是"提示 + 蒸馏"模块的简单拼接,而是为 LReID 的稳定-塑性权衡量身设计的视觉-文本表述。
2. TA-Prompt 文本侧:隐式 SupCon 对齐 + 刻意保弱的显式蒸馏
文本侧做的是双层语义对齐:隐式对齐 + 显式蒸馏,且显式部分故意保弱。隐式部分——对每个身份 \(y_i\) 取视觉特征 \(\mathbf{v}_i\),把 TA-Prompt 生成的类专属 token 插进固定文本模板、过冻结文本编码器得到文本特征 \(\mathbf{t}_i\),二者 \(\ell_2\) 归一化后用对称图文监督对比损失优化: $\(\mathcal{L}_{\mathrm{supcon}}=\mathrm{SupCon}(\mathbf{v}\!\to\!\mathbf{t})+\mathrm{SupCon}(\mathbf{t}\!\to\!\mathbf{v}).\)$ 因为文本编码器冻结,这一步只更新 prompt 参数,却把所有域都绑到同一个由冻结文本骨干决定的跨模态语义空间上——视觉簇被一致地拉向一组跨域共享的类级文本锚。作者实验发现,即便完全关掉显式文本蒸馏,光这个 SupCon 隐式对齐就已经是个很强的域无关语义正则(这解释了为何 baseline 已很稳)。
显式部分 TEXKD 只是轻量补丁:对每个域,载入上一 checkpoint 只保留其文本支路当冻结教师,把所有身份标签过教师得到全局文本库 \(t^{\mathrm{tea}}\in\mathbb{R}^{C\times d}\)(缓存复用)。定义温度缩放的 softmax 余弦相似度 $\(q(v,t,\tau,\gamma)=\frac{\exp(\gamma\,(v\cdot t_{+})/\tau)}{\sum_{i=1}^{K}\exp(\gamma\,(v\cdot t_{i})/\tau)},\)$ 其中 \(K\) 是采样身份子集大小(batch 身份 + 随机负身份),\(\gamma\) 是可学习的 logit 缩放因子。然后用温度缩放 KL 让学生 TA-Prompt 的得分分布对齐教师:\(\mathcal{L}_{\mathrm{TEXKD}}=\tau^2 D_{\mathrm{KL}}\!\left(q(v,t^{\mathrm{tea}},\tau,\gamma)\,\|\,q(v,t^{\mathrm{stu}},\tau,\gamma)\right)\)。一个细节是:文本侧故意不用 EMA 教师——因为文本编码器冻结、只更新 prompt,EMA 教师几秒就会塌缩成学生使 KL 项消失,所以用固定的旧域教师当稳定参考。TEXKD 权重刻意取小(\(\lambda_{\text{text}}=0.5\)),因为太强的文本约束会过度束缚新域的 prompt 适应。
3. VA-Prompt 视觉提示池 + 选择性解冻:可增长却不互扰的塑性来源
视觉侧的塑性靠 VA-Prompt,借鉴 DualPrompt,分两部分:G-Prompt(全局共享 token)+ E-Prompt(专家提示池)。对图像编码器每一层,当前输入表征当 query,按余弦相似度选出 Top-\(k\) 最相关的专家,拼成 \([\text{CLS},G,E,\text{patches}]\) 的扩展序列过 transformer 块,处理完再把插入的 prompt 剥掉,保证不污染原始视觉表征结构。跨域时每个新域激活一批全新槽位、冻结旧域槽位,于是提示池随域增长却互不干扰——这是"长而不忘"的机制核心。实现上用 6 个 general + 6 个 expert token/层、池大小 36、Top-K=4。
配套的选择性解冻:进入终身序列前,先在首域上把 CLIP backbone 不带蒸馏地适配到 ReID 任务(从通用特征转到 ReID 专用特征);后续域只解冻最后几个 transformer 块 + 分类头(遗忘和迁移最集中的地方),低层冻结以保域不变表征。这避免了纯提示法不能容纳大规模解冻、而传统蒸馏法又依赖深层微调的两难,既省算力又不过约束。
4. EMA 视觉蒸馏 VISKD:特征级 + logit 级双重锚定防细粒度漂移
视觉表征粒度细、对域漂移最敏感,所以视觉侧用强蒸馏。维护一个动量教师,每次迭代后更新 \(\theta_{tea}\leftarrow\alpha\theta_{tea}+(1-\alpha)\theta_{stu}\)(\(\alpha=0.997\)),提供时间平滑的目标、滤掉噪声波动。从学生和 EMA 教师各取三层视觉表征 \(\{v_{11},v_{12},v_{proj}\}\)(倒数第二层 token、最后一层 token、最终投影嵌入),用 MSE 回归对齐: $\(\mathcal{L}_{\mathrm{featKD}}=\frac{1}{3}\sum_{i=1}^{3}\|v_i^{stu}-v_i^{tea}\|_2^2.\)$ 同时做一个 logit 级蒸馏,但锚在域专属文本库上:把学生和教师的图像特征都投到同一组固定文本嵌入上,得到两个视觉-文本相似度分布(这里用纯内积、不带可学习缩放因子),再用温度平滑 KL 对齐:\(\mathcal{L}_{\mathrm{logitKD}}=\tau^2 D_{\mathrm{KL}}\!\left(q(v^{\mathrm{tea}},t,\tau)\,\|\,q(v^{\mathrm{stu}},t,\tau)\right)\)。视觉蒸馏权重取得相对大(\(\lambda_{\text{feat}}=\lambda_{\text{logit}}=0.5\),\(\tau=4.0\)),配合选择性解冻的后几层,既给新域足够塑性,又用 EMA 教师当锚防止特征空间塌缩或漂离旧知识。
损失函数 / 训练策略¶
- 总损失:\(\mathcal{L}_{\mathrm{overall}}=\mathcal{L}_{\mathrm{supcon}}+\mathcal{L}_{\mathrm{ID}}+\mathcal{L}_{\mathrm{triplet}}+\mathcal{L}_{\mathrm{KD}}\),其中 ID 为 logit 级交叉熵、triplet 为特征级三元组损失。
- 蒸馏权重:\(\lambda_{\text{text}}=0.5\)(文本侧只用 logit 级 KL,\(\tau=0.07\)、\(\gamma\) 初始化 7.0);\(\lambda_{\text{feat}}=\lambda_{\text{logit}}=0.5\)(视觉侧 \(\tau=4.0\))。文本弱、视觉强,体现非对称设计。
- 骨干:CLIP ViT-B/16,图像 resize 到 \(256\times128\),随机翻转 + 擦除增强,身份均衡采样;Adam,batch 64,单张 RTX 3090,backbone 基础学习率 \(5\times10^{-6}\),EMA 动量 \(\alpha=0.997\)。
- 协议:5 个已见域顺序训练,无任何旧域回放,每阶段后在当前+已见域以及全部未见域上评测。
实验关键数据¶
数据集:5 个已见域(Market1501、CUHK-SYSU、DukeMTMC-reID、MSMT17、CUHK03)+ 7 个未见域(CUHK01/02、VIPeR、PRID2011、i-LIDS、GRID、SenseReID),共 12 域。采用 AKA-order1 / order2 两种顺序,指标为 mAP 与 Rank-1。
主实验¶
AKA-order1(Market→CUHK-SYSU→Duke→MSMT17→CUHK03)最终阶段平均结果:
| 方法 | 来源 | 已见域 mAP | 已见域 R1 | 未见域 mAP | 未见域 R1 |
|---|---|---|---|---|---|
| LSTKC | AAAI'24 | 50.0 | 63.1 | 57.0 | 49.9 |
| DKP | CVPR'24 | 51.8 | 64.1 | 59.2 | 51.6 |
| PAEMA | IJCV'24 | 61.8 | 72.7 | 70.3 | 63.2 |
| DAFC | Arxiv'25 | 65.6 | 75.9 | — | — |
| PAD(本文) | — | 70.7 | 81.0 | 78.6 | 71.4 |
AKA-order2(Duke→MSMT17→Market→CUHK-SYSU→CUHK03):
| 方法 | 已见域 mAP | 已见域 R1 | 未见域 mAP | 未见域 R1 |
|---|---|---|---|---|
| PAEMA | 60.4 | 71.1 | 69.4 | 62.5 |
| DAFC | 64.7 | 76.2 | — | — |
| PAD(本文) | 69.3 | 80.0 | 76.2 | 68.6 |
两个顺序下 PAD 在已见域和未见域都拿到最优平均。尤其在最难的 MSMT17 上,PAD 的 mAP 46.9(order1)大幅领先次优 DAFC 的 27.1。7 个随机种子上 order1 最终阶段稳定在 70.30±0.49 mAP / 80.98±0.31 R1。
消融实验¶
从全微调 CLIP-ReID baseline 出发,逐步叠加冻结方案(Freeze)、VA-Prompt、TEXKD、VISKD(AKA-order1,已见域平均):
| ID | Freeze | VA | TEXKD | VISKD | Seen mAP | Seen R1 | 说明 |
|---|---|---|---|---|---|---|---|
| S0 | 66.2 | 78.5 | 全微调 baseline,适应新域好但旧域遗忘强 | ||||
| S1 | ✓ | 66.8 | 78.4 | 只冻结,偏旧域保持、牺牲适应 | |||
| S2 | ✓ | ✓ | 68.2 | 80.1 | 加 VA-Prompt 恢复塑性 | ||
| S3 | ✓ | ✓ | ✓ | 68.4 | 80.4 | 文本侧 TEXKD 进一步稳语义 | |
| S4 | ✓ | ✓ | ✓ | 69.9 | 80.4 | 视觉侧 VISKD 提升更明显 | |
| S5 | ✓ | ✓ | ✓ | ✓ | 70.7 | 81.0 | 完整 PAD,最佳稳定-塑性平衡 |
文本蒸馏强弱对比(AKA-order1,已见域 mAP/R1):
| 配置 | 弱设置 | 强设置 |
|---|---|---|
| No KD | 68.2 / 80.1 | 68.2 / 80.1 |
| TEXKD only | 68.4 / 80.4 | 67.6 / 79.3 |
| VISKD only | 69.9 / 80.4 | 69.9 / 80.4 |
| TEXKD + VISKD | 70.7 / 81.0 | 69.5 / 80.2 |
关键发现¶
- VISKD 比 TEXKD 贡献更大:S2→S4(加 VISKD)涨 1.7 mAP,S2→S3(加 TEXKD)只涨 0.2 mAP。印证非对称设计——视觉侧需要强蒸馏,文本侧只需弱锚定。
- TEXKD 必须保弱:强设置反而把 TEXKD+VISKD 从 70.7 拉低到 69.5。因为冻结文本编码器 + SupCon 已提供强隐式锚定,再加强文本约束只会过度正则、压制 prompt 适应。
- 语义漂移被实证压住:用图像嵌入与冻结文本原型的最大余弦相似度量化漂移,PAD 在代表性域上平均提升约 +0.09(Duke 0.151→0.243、Market 0.188→0.277、CUHK-SYSU 0.192→0.287)。
- 提示路由有语义意义:VA-Prompt 激活相似度与域间特征相似度强相关(\(\rho=0.77\))。
- 开销极小:5 域 AKA 上提示存储峰值仅 13.71M 参数(FP16 约 26.1 MiB),多数域可训练比例仅 1–1.6%(CUHK-SYSU 因身份长尾密集约 7.8%),远低于需全模型训练的旧方法。
亮点与洞察¶
- "冻结文本空间当全局锚"是真正的巧思:以往无样本 LReID 都在视觉空间里硬权衡稳定-塑性,PAD 发现 CLIP 文本编码器本身就是个免费的、跨域不变的稳定坐标系,于是把"保稳定"的活外包给文本模态,视觉侧就能轻装上阵学新域。这个"换个模态来稳定"的思路可迁移到任何带语义漂移的持续学习场景。
- 非对称权重是点睛之笔:同样是蒸馏,文本弱、视觉强不是拍脑袋——消融显示强文本蒸馏反而掉点。背后逻辑是"哪边天生稳就少管哪边",这种"按模态固有稳定性分配约束强度"的原则很有启发。
- 文本侧不用 EMA 的工程洞察:因为文本编码器冻结、只更新 prompt,EMA 教师会秒塌缩成学生使 KL 消失——所以改用固定旧域教师。这个细节说明蒸馏教师的更新策略要看被蒸馏对象的可塑性,不能无脑套 EMA。
- 推理零额外开销:文本支路只在训练用,部署时只留图像编码器,这让方法在落地上很友好。
局限性 / 可改进方向¶
- 作者承认:部分域(如 CUHK03)仍然有挑战,未来可做自适应蒸馏权重、以及扩展到多模态/换装等更复杂设置。
- 自己发现:① 蒸馏权重 \(\lambda\)、温度 \(\tau\)、缩放 \(\gamma\) 都是手调固定值,论文也承认"自适应加权"是未来工作,说明当前对超参敏感且需要 per-benchmark 调;② 依赖 CLIP 这类预训练 VLM 的文本编码器,若文本编码器本身对某些细粒度行人属性(如换装、罕见服饰)覆盖不足,文本锚的稳定性就打折扣;③ 评测仍限于标准 5 域 AKA 协议,域数更多、序列更长时提示池增长和槽位冻结策略能否持续有效未充分验证。
- 改进思路:可探索让 TEXKD 强度随域间语义距离自适应(域差大时多约束、域差小时放松),而非全局固定弱权重。
相关工作与启发¶
- vs CLIP-ReID:CLIP-ReID 用文本语义做静态 ReID(两阶段训练学习提示),但不考虑持续适应。PAD 把它的跨模态对齐思想扩展到终身设置,关键加了 TA-Prompt 的跨域蒸馏和视觉侧 EMA 蒸馏来抗遗忘。
- vs 纯视觉无样本法(LSTKC / DKP / DKP++):它们存特征原型/分布做纯视觉蒸馏,只在视觉模态内操作,域漂移时难维持身份语义一致性。PAD 引入文本模态当稳定锚,已见域 mAP 从 ~50 提到 70.7。
- vs PAEMA:同样是无样本 LReID + 提示引导 + EMA 知识保持,但 PAEMA 仍在视觉空间内做,PAD 的差异是围绕冻结文本语义空间这个持久锚来组织、且文本-视觉非对称分工,order1 已见域 mAP 70.7 vs 61.8。
- vs DualPrompt:PAD 的 VA-Prompt 直接借鉴 DualPrompt 的 G-Prompt/E-Prompt 互补提示设计,但把它放进视觉-文本框架并加了逐域槽位冻结来抗遗忘。
- vs DAFC:DAFC 强调无样本 LReID 的分布感知遗忘补偿,是 order1 上次优(已见 mAP 65.6)。PAD 用文本锚 + 非对称蒸馏在已见域(70.7)和未见域上都更强。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ "冻结文本空间当跨域语义锚 + 视觉-文本非对称蒸馏"在 LReID 上是新颖且自洽的框架,不是模块拼接。
- 实验充分度: ⭐⭐⭐⭐⭐ 两种顺序 × 12 域、7 种子方差、组件/强弱/参数三类消融、语义漂移定量与提示路由相关性分析都齐备。
- 写作质量: ⭐⭐⭐⭐ 动机推导清晰、非对称设计讲得透,但部分超参/教师塌缩细节藏在正文,框架图需对照才好读。
- 价值: ⭐⭐⭐⭐⭐ 大幅刷新无样本 LReID SOTA,推理零额外开销、提示存储极小,落地友好且思路可迁移。