BUC

《A Bottom-up Clustering Approach to Unsupervised Person Re-identification》2019 AAAI

BUC是一种自底向上聚类方法(bottom-up clustering)来联合优化CNN和无标签样本间的关系。最开始把每张行人图像作为单独的一类,来最大化每类的diversity,然后逐渐把相似的类合并为同一类,来提升每类的similarity。

loss计算

图像xxx的属于簇ccc的概率p(c∣x,V)=exp(VcTv/τ)∑j=1Cexp(VjTv/τ)p(c|x,V)=\frac {exp(V^T_cv/\tau)} {\sum^C_{j=1}exp(V^T_jv/\tau)}p(c∣x,V)=∑j=1C​exp(VjT​v/τ)exp(VcT​v/τ)​。VVV是size=C×Dsize=C \times Dsize=C×D的查找表,存储每个簇的中心特征,CCC为当前簇的总数,DDD为特征的维度。vvv是图像xxx的归一化特征,VcTvV^T_cvVcT​v为vvv与簇ccc中心特征的余弦相似度,τ\tauτ是温度系数。根据这个公式就能计算CrossEntropy Loss,然后按Vy^i←12(Vy^i+vi)V_{\hat y_i}\leftarrow \frac 1 2(V_{\hat y_i}+v_i)Vy^​i​​←21​(Vy^​i​​+vi​)更新查找表,以得到更准确的簇心。

合并类

每次迭代完成后合并一小部分相似度最高(即类间距离最近)的类别。为了避免一个类太大和促进小的类合并,进行合并时还加入了一个多样性正则项,样本数多的两个类距离会被拉远。D(A,B)=Ddistance(A,B)+λDdiversity(A,B)D(A,B)=D_{distance}(A,B)+\lambda D_{diversity}(A,B)D(A,B)=Ddistance​(A,B)+λDdiversity​(A,B)。

聚类无监督


基于聚类的伪标签法首先用聚类算法(K-Means, DBSCAN等)对无标签的目标域图像特征进行聚类,从而生成伪标签,再用该伪标签监督网络在目标域上的学习。以上两步循环直至收敛。
基于聚类的伪标签法可以一定程度上随着模型的优化改善伪标签质量,但是模型的训练往往被无法避免的伪标签噪声所干扰,并且在初始伪标签噪声较大的情况下,模型有较大的崩溃风险。伪标签噪声主要来自于源域预训练的网络在目标域上有限的表现力、未知的目标域类别数、聚类算法本身的局限性等等。

K-Means

K-Means的主要目的是将nnn个样本点划分为kkk个簇,使得相似的样本尽量被分到同一个聚簇。K-Means衡量相似度的计算方法为欧氏距离。K-Means算法的类别个数需要事先人为给定,对异常点敏感性高。由于采用欧氏距离来衡量样本之间相似度,所以得到的聚簇都是凸的,就不能解决其他类型数据分布的聚类。K-Means算法是局部最优的,容易受到初始簇心的影响。

步骤

在nnn个样本点中随机选择kkk个样本点作为中心点,将剩余的样本点按欧式距离划分到kkk个簇中,将这kkk个簇的中心点坐标修改为各个簇的平均值。以新的kkk个簇心重新划分样本和更新簇心。重复此步骤,直至簇心不再发生变化,即算法收敛。

DBSCAN

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于密度的聚类算法。密度聚类算法一般假定类别可以通过样本分布的紧密程度决定。同一类别的样本之间是紧密相连的。DBSCAN能够将足够高密度的区域划分成簇,可以发现任意形状的聚簇,其核心思想是从某个核心点出发,不断向密度可达的区域扩张,从而得到一个包含核心点和边界点的最大化区域,区域中任意两点密度相连。DBSCAN不需要提供类别数,聚类结果几乎不依赖于结点遍历顺序,能够有效的发现噪声点。但邻域值epsepseps对聚合结果影响较大。在类中的数据分布密度不均匀时,epsepseps较小时,密度小的簇会被划分成多个性质相似的簇;epsepseps较大时,会使得距离较近且密度较大的簇被合并成一个簇。

步骤

任意选择一个没有类别的样本作为核心对象,然后找到所有这个核心对象能够密度可达的样本集合,即为一个聚类簇。接着继续选择另一个没有类别的核心对象去寻找密度可达的样本集合,这样就得到另一个聚类簇。重复此步骤,直到所有核心对象都有类别为止。一些异常样本点或者说少量游离于簇外的样本点,这些点不在任何一个核心对象在周围,一般将这些样本点标记为噪音点。

性能测试

结果未经过细调,仅用作参考。

Methods Market1501
BUC 55.61% 69.15% 75.33% 31.50%
聚类(k-means)
聚类(DBSCAN) 74.79% 88.18% 92.19% 55.25%

【学习笔记】无监督行人重识别相关推荐

  1. 【论文阅读笔记】无监督行人重识别中的采样策略

    参考论文<Rethinking Sampling Strategies for Unsupervised Person Re-identification> 一.问题背景 无监督行人重识别 ...

  2. 最强无监督行人重识别方法 Cluster Contrast ReID

    https://github.com/xiaomingzhid/sskd GitHub - JDAI-CV/fast-reid: SOTA Re-identification Methods and ...

  3. 最强无监督行人重识别方法 Cluster Contrast ReID,rank-1 94.6%

    代码连接: https://github.com/alibaba/cluster-contrast-reid 看了一下,主要是resnet50,resnet101训练的. 在行人重识别领域,如何获取海 ...

  4. ​无需聚类,杭电学者提出基于软化相似度学习的无监督行人再识别

    请点击: 无需聚类,杭电学者提出基于软化相似度学习的无监督行人再识别 查看详情. 标注成本越来越高,无监督学习越来越受重视. 该文有非官方实现的开源代码,欢迎参考.

  5. CVPR2018——以属性为指导的无监督行人重识别

    Transferable Joint Attribute-Identity Deep Learning for Unsupervised Person Re-Identification(CVPR20 ...

  6. 摄像机域内监督行人重识别问题

    本文是对『Intra-Camera Supervised Person Re-Identification』一文的详细解读,IJCV接收论文. 作者信息: 论文链接:https://arxiv.org ...

  7. 综述2 | 基于深度学习的行人重识别

    文章目录 1. 概念 2. 有监督学习 2.1 基于图像的有监督学习 2.2 基于视频的有监督学习 3. 半监督学习 4. 弱监督学习 5. 无监督学习 6. 生成对抗网络 7. 注意力机制 8. 评 ...

  8. 中山大学提出新型行人重识别方法和史上最大最新评测基准

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 导读:行人重识别,是利用 CV 技术判断图像或视频序列中是否存在特定行人的技术.常规的行人重识 ...

  9. 中山大学提出新型行人重识别方法和史上最大评测基准

    本文转载自机器之心. 导读:行人重识别,是利用 CV 技术判断图像或视频序列中是否存在特定行人的技术.常规的行人重识别方法往往需要高昂的人工标注成本,计算复杂度也很大.在本文中,中山大学研究者提出的弱 ...

最新文章

  1. 安卓绿色联盟两项免费福利重磅发布:EMUI9.0和绿色应用2.0测试能力
  2. CMAKE_MAKE_PROGRAM is not set
  3. 小学生python入门-如何看待小学生开始学Python?
  4. 浏览器兼容性 问题收集
  5. kubernetes 集群部署
  6. java编译时注解_简单介绍 Java 中的编译时注解
  7. 拓端tecdat|Excel中计算票面利率Coupon Rate
  8. ansys 命令流学习
  9. 视频直播的购物平台,网站,app
  10. 细菌感染和抗生素使用
  11. Python字符串底层原理
  12. PCI-E基础知识学习
  13. OSI七层模型功能及相关设备
  14. 基于C#的AE二次开发之主界面设计
  15. ElasticSearch-7.5.1集群3master-3data-3client环境搭建
  16. 经理人与元老能双赢联动吗?
  17. “拼多多”惊爆重大 Bug!程序员的眼泪,羊毛党的狂欢
  18. 基于stm32人脸识别和红外测温
  19. 应用计算机行业历史,计算机应用行业:浩历史指引未来 看好
  20. linux-版本相关

热门文章

  1. Oracle把一个表的某个字段更新到另一张表中
  2. Xilinx官网大全__PowerPC 架构
  3. android.os.FileUriExposedException: file:///storage/emulated/0/myxmpp/154094
  4. 各位大佬,canoe9.0安装报错显示无法正确检索许可证信息,怎么解决!在线等挺急的!
  5. c语言开发套路-怎样快速调用别人的一套接口 api模型的抽象
  6. matlab读取RGB888或RGB565像素文件并绘图
  7. SQL语句(六)_NUIST
  8. 推流用本地地址收报错,http://127.0.0.1:1935/live/test:connection refused
  9. 0510课堂笔记--数组-面向对象
  10. 重装系统win7旗舰版教程