Domain Adaptation through Synthesis for Unsupervised Person Re-identification 论文笔记

这篇文章来自ECCV2018. 主要针对无监督的行人再识别任务,首先用3D引擎和环境渲染技术构建了一个多光照条件的虚拟行人数据集,接着用该合成数据集和其它大型真实数据集合并,共同预训练了一个模型。由于涵盖了各种光照情况,该模型具有良好的泛化性能。为了进一步提升无监督性能,该文章提出了一种域自适应技术(有约束的cycleGAN),选择和目标域的光照情况最相似的那些合成图像,迁移到目标域上,再利用迁移后的合成图像对预训练好的模型进行精调,最终大幅提升了reid的性能,超过其它无监督方法。

一. 摘要

跨监控摄像头的剧烈光照变化会使得行人再识别任务变得非常困难。当前的大型reid数据集有着非常多的行人训练样本,但是缺乏光照的多样性。因此,如果遇到没有见过的光照条件,一个训练好的模型需要进行精调才能变得有效。为了解决这个问题,本文引入了一个包含了上百种光照条件的合成数据集。具体地说,我们使用了100个虚拟人物,利用多个HDR环境图对其进行照明,从而准确建模出真实的室内和户外光照。为了在没见过的光照条件下取得更好的性能,我们提出一种新的域自适应技术,以一种完全无监督的方式利用了我们的合成数据并进行了精调。我们的方法和其它半监督和无监督方法相比,取得了很高的准确率,可以和有监督方法媲美。

 

二. 贡献

1.提出了一个新数据集,它包含了100个虚拟人物,并使用了140个HDR环境图进行渲染。我们展示了即使不经过fine-tuning,这个数据集也能够增强训练好的模型的泛化性能。

2.我们使用了一种新的三步式的域自适应技术,以无监督的方式提升了reid的性能。具体的说,我们使用了循环一致性迁移(cycleGAN),并增加了一个新的正则项以保证迁移前后行人身份信息不丢失。针对某一目标域迁移后的合成图像被用来fine-tune模型。

 

三. SyRI Dataset

要收集和标注一个涵盖所有光照条件的reid数据集的成本过高,因此本文提出采用合成数据集。构建这样一个数据集的难点在于如何创造出真实的光照条件的真实场景。我们使用高动态范围(HDR)环境图,它们可以看作是360度的真实世界的全景图,包含了准确

### 原型导向框架在无监督域适应中的应用 在机器学习领域,尤其是跨不同数据分布的任务迁移中,无监督域适应(Unsupervised Domain Adaptation, UDA)扮演着重要角色。UDA旨在利用源域中标记的数据来提高目标域上未标记数据的表现性能[^1]。 #### 实现原理 原型导向框架通过构建特征空间内的聚类中心即“原型”,使得模型能够捕捉类别间的内在结构并促进泛化能力。具体来说,在训练过程中不仅优化分类损失函数还引入了额外约束项用于拉近同属一类样本间距离的同时推远异类样本间距: ```python import torch.nn as nn from sklearn.cluster import KMeans class PrototypeOrientedFramework(nn.Module): def __init__(self, num_classes=10, feature_dim=256): super(PrototypeOrientedFramework, self).__init__() self.num_classes = num_classes self.feature_extractor = FeatureExtractor() self.classifier = Classifier(feature_dim, num_classes) def forward(self, x_s, x_t): # Source domain data & Target domain data f_s = self.feature_extractor(x_s) f_t = self.feature_extractor(x_t) prototypes = [] for i in range(self.num_classes): class_samples = f_s[y_s == i] kmeans = KMeans(n_clusters=1).fit(class_samples.cpu().detach()) prototype = torch.tensor(kmeans.cluster_centers_).cuda() prototypes.append(prototype) return f_s, f_t, torch.stack(prototypes), self.classifier(f_s), self.classifier(f_t) ``` 此代码片段展示了如何定义一个基于PyTorch的原型导向网络架构,其中包含了特征提取器以及分类器两部分,并实现了计算各类别的原型向量逻辑。 #### 应用场景 该方法广泛应用于图像识别、自然语言处理等领域内涉及跨域任务转换的问题解决当中。例如当面临新环境下缺乏标注样本的情况时,可以借助已有的大量有标签源域资料快速调整模型参数以适应新的工作条件而不必重新收集昂贵的人工标注信息。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值