Pseudo Label Based on Multiple Clustering for Unsupervised Cross-Domain Person Re-Identification

本文主要是介绍Pseudo Label Based on Multiple Clustering for Unsupervised Cross-Domain Person Re-Identification,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Pseudo Label Based on Multiple Clustering for Unsupervised Cross-Domain Person Re-Identification

这次分享一下2020年3-7月份的工作量——一篇自己的paper。
文章链接
主要是基于cross-domain Re-ID基于聚类的方法上提出了一个小trick。

主要思路

基于聚类的跨域行人重识别方法主要是利用在源域上训练好的模型提取目标域数据集上的特征,并基于特征进行聚类生成伪标签,利用伪标签来微调模型,使模型达到跨域适应的效果。

但这类方法大多在一个训练周期内只进行了一次聚类,且每周期聚类参数都不变,这样的话聚类参数设置不佳会严重影响聚类的质量。所以这篇文章针对这个问题,提出了基于多次聚类提取伪标签的方法来提升每个周期的伪标签质量。

PLMC框架

framework
上图为本篇文章的提出PLMC方法的主要框架图,大致为:

(一)预训练阶段:用在ImageNet上预训练好的ResNet在源域有标签数据集上进行有监督训练,得到一个预训练模型。

(二)跨域训练阶段
跨域训练阶段分为两个训练阶段:①Global Training Stage ②Local Training Stage,利用交替训练的方法进行两个阶段的跨域训练微调模型。

①Global Training Stage
这个跨域训练阶段是针对全局特征的,利用预训练好的ResNet网络对源域(有标签)以及目标域(无标签)进行特征提取,然后利用 k-reciprocal encoding 计算目标域图像之间的距离,公式如下所示:
公式1
D J D_J DJ是目标域图像的距离矩阵, J i J_i Ji为第 i i i张图像与其他图像之间的距离向量, d ( x i , x j ) d(x_i,x_j) d(xi,xj)是第 i i i张图像与第 j j j张图像之间的距离,其中 d j ( x i , x j ) d_j(x_i,x_j) dj(xi,xj)是利用k-recipreocal encoding计算出来的Jaccard距离, d W ( x i ) d_W(x_i) dW(xi)是度量目标域 x i x_i xi与源数据集中最近图像之间的置信度。

基于以上距离矩阵,对目标域图像进行多次聚类。多次聚类的过程如下图所示:
多次聚类
可以简单的发现,每一次聚类的簇数是不同的,这里通过修改每次聚类的参数来实现,设计多次聚类的时候有一个简单的设想:每一种分类方式都隐含着一定的信息,即:根据不同的侧重点进行聚类。所以不同参数的每一次聚类结果多多少少都对Re-ID具有一定的意义。通过多次聚类,逐渐把整个人图像信息拼凑全(当然这是一种理想状态)

N次聚类后,一张图像会对应N个伪标签,就得到一个N维的伪标签向量,最终构成了伪标签矩阵。如公式(2)然后这里采用一个汉明距离公式来计算图像之间的伪标签向量之间的距离,如公式(3):
伪标签矩阵
伪标签距离
然后基于上述得到的伪标签距离,来更新原始距离,如下式所示:
最终距离
基于最终距离,再利用聚类进行提取伪标签,这里的伪标签质量就会比之前的单次聚类得到的伪标签聚类要好很多。

②Local Training Stage
这个训练阶段是在全局特征的基础上加入了局部特征支路,三个支路分别进行多次聚类,聚类过程跟Global Training Stage相似,然后将得到的伪标签矩阵进行拼接如公式(5)所示,然后计算一个伪标签距离,最终利用公式(6)更新距离。
在这里插入图片描述
在这里插入图片描述
(三)交替训练
交替训练跨域阶段①跟②,这里的交替训练其实不是严格意义上的①阶段训练1次,紧接着训练②阶段1次,而是①阶段训练 ι 1 ι_1 ι1次,接着②阶段训练 ι 2 ι_2 ι2次,然后重复I次直到模型最优。

总结

其实这篇文章有很多不足,比如其实在局部特征训练的阶段,没有仔细考虑局部划分以及多次聚类的伪标签之间的关联,而是做一个简单的拼接,还有在交替训练阶段没有很好的去调参,且没有提出适合这个框架的损失函数。也是未来想要改进的地方。

这篇关于Pseudo Label Based on Multiple Clustering for Unsupervised Cross-Domain Person Re-Identification的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165182

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{

Stripe data files across multiple physical devices and locations

Stripe data files across multiple physical devices and locations 如果在没有做条带的磁盘(即从存储到OS没有做raid),那么就需要手工去做I/O的分布。切记,不应该将频繁使用的table和其index分开,这样会正大I/O; 针对tables、indexes、temp tablespace,首先调优SQL,其次如果真心无法再

013.Python爬虫系列_re正则解析

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

数据标注:批量转换json文件,出现AttributeError: module ‘labelme.utils‘ has no attribute ‘draw_label‘错误

labelme版本更换为3.11.2 "D:\Anaconda3\Lib\site-packages\labelme\utils\draw.py"缺失?: import ioimport os.path as ospimport numpy as npimport PIL.Imageimport PIL.ImageDrawimport PIL.ImageFontdef label_co

Error: label vector and instance matrix must be double的解决方法

在使用uci下载的数据时,建模时出现这个错误的解决方法 首先现在UCI上面下载数据 然后右键另存为就行了。这样我们就从UCI里面下载到了训练数据 在matlab 点 导入数据,数据类型要记得选第二个, 如果选择最后一个table就会出现这个问题 最后附上代码 %%之前先import wine.date IMPORTED DATA 设为Numeric Matrix (数值矩