当前位置: 首页 > news >正文

面向无监督行人重识别的摄像头偏差消除学习

原文标题:CDE-Learning: Camera Deviation Elimination Learning for Unsupervised Person Re-identification

原文作者:Jinjia Peng(彭锦佳), Songyu Zhang(张淞瑜), Huibing Wang*(王辉兵)

发表会议:AAAI 2025

原文链接:https://ojs.aaai.org/index.php/AAAI/article/view/32691

原文发表时间:2025年1月

原文代码地址:https://github.com/zsszyx/CDE-Learning

摘要

无监督行人重识别(Re-ID)旨在无需任何标注数据的情况下,识别来自非重叠摄像头拍摄的同一行人。在此任务中,摄像头的对比度、饱和度、分辨率等属性会导致目标特征出现偏差。由于摄像头标签易于获取,在模型训练阶段,这些标签常被用于实现跨摄像头约束,以缓解特征偏差问题。然而,来自同一摄像头的特征因相机属性一致,易产生假阳性结果,进而在伪标签分配过程中引入摄像头偏差。为解决这一问题,本文提出一种新颖的无摄像头偏差方法 —— 摄像头偏差消除学习(CDE-Learning)。该方法中,摄像头偏差补偿(CDC)模块用于对齐不同摄像头的数据分布,这种对齐能在伪标签分配阶段将摄像头信息与身份信息解耦;摄像头偏差平衡(CDB)模块将不同摄像头约束整合到统一损失函数中,并通过构建摄像头内与摄像头间的对比样本对,动态调整摄像头约束强度;经过显式约束后,摄像头属性辅助(CAA)任务通过预测一对图像是否来自同一摄像头,隐式提升模型区分摄像头偏差的能力。本文在基准数据集上验证了所提 CDE-Learning 方法的优越性能。

1、来自同一摄像头的特征因相机属性一致,易产生假阳性结果,进而在伪标签分配过程中引入摄像头偏差

想象一下,不同摄像头就像不同的 “滤镜”,有的偏亮、有的偏暖、有的分辨率不一样。如果两个人分别在同一个摄像头下被拍到,哪怕他俩不是同一个人,因为这个摄像头的 “滤镜”(相机属性)是一样的,他们的照片特征(比如颜色、细节风格)就会显得很像。

在给这些照片打伪标签(相当于先 “猜测” 哪些是同一个人)的时候,模型就容易被这种 “滤镜相似性” 误导,把不同人但同摄像头的照片错误地当成同一个人(这就是假阳性),这样就把摄像头本身的偏差带到了标签分配里,影响了后续识别的准确性。

而咱们的方法就是要把这种 “滤镜干扰” 去掉,让模型真正关注行人本身的特征,而不是摄像头的 “滤镜”。

框架介绍:

CDE-Learning 的三大核心模块(CDC、CDB、CAA)与基础组件(编码器、聚类、字典记忆)协同工作,分别解决 “伪标签分配偏差”“跨摄像头特征学习偏差”“摄像头背景区分能力弱” 三大问题。


图 2:CDE-Learning 通用框架示意图。该方法通过聚类与训练的持续迭代优化编码器,其中 CDC 模块和 CDB 模块分别在伪标签分配与跨摄像头不变特征学习过程中优化摄像头偏差。聚类阶段编码器参数保持固定,最终实现无摄像头偏差的不变特征学习。

框架组成

模块 / 组件核心功能在框架中的作用位置
编码器(Encoder)从图像中提取特征(初始为 ResNet50 预训练模型),是特征学习的核心载体。贯穿全流程:训练前提取初始特征用于聚类,训练中根据损失反向更新参数,推理时直接输出特征。
CDC 模块(摄像头偏差补偿)对齐不同摄像头的特征分布:计算各摄像头域质心与全局质心,消除域间偏差。聚类前的 “特征预处理” 环节:对原始特征修正后,再输入 DBSCAN 聚类生成伪标签。
DBSCAN 聚类基于修正后的特征(CDC 输出)划分聚类,为无标签图像分配 “伪身份标签(PID)”。连接 “特征预处理” 与 “训练” 的桥梁:伪标签是后续对比学习的核心监督信号。
CDB 模块(摄像头偏差平衡)

1. 构建 “多原型字典”(存储摄像头内 / 间特征);

2. 生成自适应对比对;

3. 用统一损失(偏差平衡损失 + 质心交叉熵损失)整合摄像头约束。

训练阶段的 “核心损失计算” 环节:通过动态对比对优化特征,避免手动调参。
CAA 任务(摄像头属性辅助)构建特征对,用多 MLP 模型预测 “是否来自同一摄像头”,隐 式增强摄像头偏差区分能力。训练阶段的 “辅助监督” 环节:与 CDB 损失联合优化,提升模型对 “摄像头背景” 与 “行人身份” 的区分度。
字典记忆(多原型字典 + 质心字典)

1. 多原型字典:存储聚类的 k 个原型特征,动态更新;

2. 质心字典:存储聚类质心,更新时优先保留难样本信息。

训练阶段的 “特征缓存与更新”:为对比对生成提供特征来源,保证学习的连续性。

字典

字典类型存储内容更新方式作用
多原型字典存储每个聚类的k个 “原型特征”(即该聚类中最具代表性的k个特征)。动量更新:\(X_{\text{new}} = \alpha \cdot x_{\text{encoder}} + (1-\alpha) \cdot X_{\text{old}}\)为 CDB 模块生成 “对比样本对” 提供历史特征,避免仅用当前 batch 特征导致的学习片面性。
质心字典存储每个聚类的 “质心特征”(即该聚类所有特征的均值)。优先更新 “难样本”:当新特征与质心相似度低时,强制更新质心(保证质心能代表难区分样本)。为 CDC 模块提供 “全局质心” 参考,同时为\(L_c\)损失提供监督目标(样本特征需向质心靠拢)。

CDC 模块 

CDC 模块:是 特征预处理工具,在聚类前对编码器输出的原始特征做 “分布对齐”,核心是消除不同摄像头域之间的特征偏差,从而让后续聚类生成的伪标签更准确(减少同摄像头假阳性、跨摄像头假阴性)。

  1. 按摄像头标签划分 “摄像头域”:同一摄像头的特征归为一个域 Fᵢ(共 μ 个域,μ 为摄像头数);
  2. 计算各域质心 sᵢ(公式 1)与全局质心 s₉(公式 2);
  3. 修正特征:每个域的特征减去 “域质心 - 全局质心”(Fᵢ' = Fᵢ - (sᵢ - s₉)),得到对齐后的特征 F',消除摄像头域间偏差。

CDB、CAA 模块

  • 是 训练阶段的监督器”。

1、CDB 模块的损失构成

你提到的 “偏差平衡损失L_d+ 质心交叉熵损失L_c” 是 CDB 的核心损失项,具体作用如下:

  • 偏差平衡损失 L_d通过对比 “摄像头内特征对” 和 “摄像头间特征对” 的相似度,让模型学习 “同一身份特征要近,不同身份 / 同摄像头干扰特征要远” 的约束。
  • 质心交叉熵损失 L_c:计算 “样本特征与所属聚类质心” 的相似度,强制特征向质心聚拢,保证同一聚类(伪身份)的特征一致性。

2. CAA 任务的作用环节

CAA 任务在 CDB 损失计算的同时”并行工作,属于 “辅助监督支路”:

  • 从当前 minibatch 中抽取特征对(如随机选两张图的特征),输入由多个 MLP 组成的分类器,预测 “这对特征是否来自同一摄像头”。
  • 用真实摄像头标签计算二分类交叉熵损失 L_t,并将 L_t与 CDB 的 L_c + L_d联合作为总损失,反向更新编码器。
  • 这样做的目的是让编码器在学习 “身份特征” 的同时,隐式增强对 “摄像头背景” 的区分能力,从而进一步削弱摄像头偏差对身份识别的干扰。

总结

  • CAA 是 曲线救国”:通过练 “区分摄像头” 的能力,最终让 “身份特征” 更纯净;
  • CDB 的L_c是 正面攻坚:直接让同一身份的特征聚成一类;
  • CDB 的L_d是 扫清障碍:把 “摄像头偏差造成的干扰” 作为反面约束,让身份特征的聚类更准确。

CDB 通过 “对比学习 + 损失函数” 直接优化编码器参数;

CAA 通过 “辅助任务” 间接增强编码器对 “摄像头偏差” 的区分能力,两者从 “显式 + 隐式” 两个维度提升模型性能。

训练流程

1、特征提取

加载预训练 ResNet50 作为初始编码器,输入无标签图像,提取原始特征矩阵 F

2、CDC模块

按摄像头标签划分 “摄像头域”:同一摄像头的特征归为一个域 Fᵢ(共 μ 个域,μ 为摄像头数);
计算各域质心 sᵢ(公式 1)与全局质心 s₉(公式 2);
修正特征:每个域的特征减去 “域质心 - 全局质心”(Fᵢ' = Fᵢ - (sᵢ - s₉)),得到对齐后的特征 F',消除摄像头域间偏差。

3、DBSCAN 聚类 —— 生成伪标签

对对齐后的特征 F' 进行聚类,划分为 m 个聚类(每个聚类对应一个 “伪身份 PID”);
为每张图像分配伪标签(即所属聚类的 PID),此时编码器参数保持固定(避免聚类受未优化编码器影响)。


4、CDB+CBA 联合训练(优化编码器)

针对每个训练轮次(epoch),内部循环 num_iters 次迭代,每次迭代步骤如下:
1)采样与特征提取:

从伪标签数据集中采样 p×k 个特征(构成 minibatch Q),用当前编码器提取 minibatch 特征;
CDB 损失计算:
从 “多原型字典” 中调用对应特征,生成摄像头内 / 间对比对;
2)计算两类损失:

① 偏差平衡损失 Ld(优化原型特征相似度);

② 质心交叉熵损失 Lc(优化质心与特征的相似度);
3)CAA 任务损失计算:
拼接 minibatch 中的特征对(如 q₂ₖ与 q₂ₖ₊₁),输入多 MLP 模型预测 “是否同摄像头”;
用二分类交叉熵计算辅助损失 Lt(标签为真实摄像头是否相同);
4联合优化与参数更新:
总损失 L = Lc + Ld + Lt,通过反向传播更新编码器参数;
5)更新字典记忆:

① 多原型字典用动量更新(公式 5:X₊ ← α・xₑ + (1-α)・qₑ);

② 质心字典优先更新难样本对应的质心(公式 7:保留与质心相似度最远的特征)。

5、迭代循环

重复 “步骤 2(重新提取特征并对齐)→步骤 3(重新聚类更新伪标签)→步骤 4(训练优化)”,直到完成 num_epochs 轮训练,伪标签精度与模型 mAP(平均精度均值)逐步提升(如图 3 所示,CDE-Learning 的伪标签精度与 mAP 显著高于基线)。

个人感悟:

编码器就是一些特征提取模型;我们最终要用他执行推理任务;
但是在训练阶段先让他提取无标签图像的特征;进行特征对齐消除摄像头差距之后再聚类生成伪标签,从而再由监督信号(CDB,CAA模块)反向训练编码器;
编码器参数得到训练后,接收下一批图片就会有更好的特征提取,从而后面的模块得以受益;而这样的效果也是后面模块促进的;从而是一个闭环的促进;

推理阶段:

轻量特征提取流程


推理阶段无需聚类与损失计算,仅用训练好的编码器直接输出可用特征,流程简洁:
输入:单张待识别行人图像(无需摄像头标签);
特征提取:将图像输入微调后的编码器,输出维度为 d 的特征向量;
身份匹配:将输出特征与 “目标库中的行人特征” 计算相似度(如余弦相似度),相似度最高的目标即为匹配结果。

关键特点:

推理时完全脱离 “摄像头标签” 依赖 —— 因训练阶段已通过 CDC、CDB、CAA 消除摄像头偏差,编码器输出的特征仅保留 “行人身份信息”,可直接用于跨摄像头行人匹配。

后处理阶段

在 Re-ID(行人重识别)模型的推理流程中,“特征相似度计算与排序” 通常是独立于模型训练阶段模块的 “后处理环节”,既不包含在训练时的 CDC、CDB、CAA 等核心模块中,也不属于编码器本身,而是在编码器输出最终特征后,通过专门的相似度计算逻辑与排序模块完成。在工程实现中通常作为独立的后处理代码块存在(如 Python 中的scipy.spatial.distance.cosine计算相似度,再用numpy.argsort排序)。

 核心功能 1:相似度计算(关键是选择合适的度量方式)

常用的相似度计算方法需适配 Re-ID 的特征特性(高维、需区分细微身份差异),主流方式有两种:

  • 余弦相似度(Cosine Similarity):最常用的度量方式,计算两个特征向量的夹角余弦值,取值范围为 [-1,1],值越接近 1 表示特征越相似。
  • 优势:能抵消特征尺度差异(如编码器输出特征的绝对值大小波动),更聚焦于特征的 “方向一致性”(即身份特征的匹配度)。
  • 欧氏距离(Euclidean Distance):计算两个特征向量在高维空间中的直线距离,距离越小表示特征越相似。
2. 核心功能 2:相似度排序

在计算完 Query 与 gallery 中所有图像的相似度后,模块会按 “相似度从高到低”(余弦相似度)或 “距离从低到高”(欧氏距离)对 gallery 图像进行排序,生成排序列表。

例如:若 gallery 库有 1000 张图像,排序后列表的第 1 位是与 Query 最相似的行人,第 1000 位是最不相似的行人,最终通过 “前 K 位匹配准确率(如 R1、R5、R10)” 评估 Re-ID 性能(对应文档中表 1-4 的评估指标)。

结论

综上所述,所提出的 CDE-Learning 方法有效降低了无监督行人重识别中的摄像头偏差。具体而言,我们的 CDC 模块在伪标签分配阶段对摄像头偏差进行优化;此外,所提出的 CDB 模块能有效平衡摄像头偏差,避免个体样本中冗余摄像头信息的干扰;同时,CAA 任务使模型在训练过程中能够同时专注于区分背景信息。我们的方法在通用数据集上经过了严格测试,实验结果证实了其有效性。


http://www.dtcms.com/a/603646.html

相关文章:

  • 网站建设程序策划书wordpress外贸询盘插件
  • 创建公司网站难吗新浪云怎么做淘宝客网站
  • 网站开发公司地址中国城乡建设部人力网站首页
  • 西安建站免费模板品牌设计logo图片
  • 西宁网站搭建能源网站模板
  • 沈阳做网站的科技公司tp框架做商城网站怎么用缓存
  • 苏州网站建设永阳网络网站如何调用手机淘宝做淘宝客
  • 网站上线倒计时 模板网站里面的数据库是怎么做的
  • 网站推广优化技巧可以将自己做的衣服展示的网站
  • 移动网站开发语言WordPress搜索引擎链接提交
  • 蓝色脚手架织梦企业网站模板手工做衣服网站
  • MySQL不停机迁移完全指南
  • 网页截图快捷键ctrl+shift重庆seo管理平台
  • 使用python做网站变装小说wordpress
  • c++小游戏编程
  • 建模网站素材怎么做网站门户
  • 示范学校建设专题网站网站开发技术服务合同范本
  • 自己做网站用花钱么北京网站建设外包
  • 邯山手机网站建设wordpress显示空白页
  • 做网站需要用什么语言开发微采服企腾网
  • 宁夏建设教育协会网站天津重型网站建设方案公司
  • Go语言反编译工具: 深入理解Go语言反编译的技术与应用
  • 服务器512m内存做网站国家中小学智慧教育平台
  • 网站建设公司swot分析wordpress 4.4.2漏洞
  • 做网站需要学多久wordpress的菜单和页面
  • 网站托管服务适用于创建全国文明城市时间
  • 客户端Android八股
  • Lua学习记录(2) --- Lua中的复杂变量类型_function
  • 外贸网站一站式海外推广家具做网站
  • IT做网站工资怎么样优质ppt模板免费下载