zoukankan      html  css  js  c++  java
  • 论文阅读笔记(二十七)【AAAI2019】:A Bottom-Up Clustering Approach to Unsupervised Person Re-Identification

    Introduction

    本文有如下3个贡献:

    ① 提出了一个自下而上(bottom-up)的聚类框架(BUC)来解决无监督的ReID问题;

    ② 采用repelled损失来优化模型,repelled损失直接优化了样本、聚类之间的余弦距离,可以挖掘聚类之间的相似性以及最大化不同身份之间的差异性;

    ③ 提出了一个多样性正则化项来保证每个聚类内部图像数量的平衡性,使得聚类结果更符合真实环境下的分布规律。

    开源【https://github.com/L1aoXingyu/Bottom-up-Clustering-Person-Re-identification

    Approach

    (1)背景介绍:

    假设训练集包含 N 张图片,目标是不带任何标记从 X 中学习一个特征映射函数。特征映射的测试集合(也就是gallery集合)为,query集合为。在评估过程中,使用query集合中的图片通过特征映射函数来搜寻test集合中的相似的图片特征,并用欧氏距离进行rank排序,即

    传统的方法是采用手动标注的方法来学习参数,即每个 x 都对应一个标签 y,采用以下目标函数进行优化:

    其中 l 为softmax交叉熵损失,f 为分类器。

    但是在无监督学习中,y 并不能获得,因此需要重新构造损失函数。

    (2)BUC框架:

    ① 总体框架:

    ② Repelled Loss:

    初始化每张图片的标签:,定义图片 x 属于第 c 个聚类的概率值为:

    其中 ,理解为这张图片的特征进行正规操作;是一个查找表(lookup table),存储各个聚类的特征,这里可以作为每个聚类的质心;C 为聚类的数量,在初始阶段是控制分布的参数,这里设置为 0.1。

    在前向传播过程中,计算余弦相似度;在反向传播中,更新第列的 V 为,可以理解为将分配到该聚类的特征和质心融合,获得新的质心。得到损失函数为:

    ③ 聚类合并:

    最小距离标准(minimum distance criterion)把两个不同聚类中图片的最短距离作为两者的差异度,这种方式只考虑最近的两者,并不考虑除了最近图片外的其它图片。优点是:相同行人的图片在同一个摄像头下通常是相近的,容易划分到同一个聚类中。计算如下:

    其中 

    最大距离标准(maximum distance criterion)把两个不同聚类中图片的最大距离作为两者的差异度,存在缺点:同一个行人在不同摄像头下可能存在较大的差异,用最大距离标准难以划分到相同聚类中。

    平均距离标准(centroid distance criterion)对每个聚类中的图片特征求均值,存在缺点:损失了聚类一些的特征信息。

    在每次聚类合并过程中,限制单次迭代下降的聚类数为 m,定义,mp为聚类合并系数,在 t 次迭代后,聚类的数量为

    ④ 动态网络更新:

    (3)多样性正则化:

    现实场景中,聚类之间的元素数量差异不会太大,为了避免出现聚类元素过多的情况,设置了多样性正则化项,即:

    最终两个聚类之间的距离计算为:

    Experiment

    (1)实验设置:

    ① 数据集设置:Market1501、DukeMTMC-reID、MARS、DukeMTMC-VideoReID;

    ② 实验细节:采用ResNet-50来作为CNN的主干网络;

    ③ 参数设置:训练epoch数量 = 20,batch size = 16,dropout rate = 0.5,mp = 0.05,λ = 0.005,momentum = 0.9,learning rate = 0.1,并在15次迭代后降为0.01.

    (2)实验结果:

     

  • 相关阅读:
    c++ socket发送数据时,sendData = char * string 导致的乱码问题
    c++ sprintf() 用法
    c++ 将float 类型转换成string 类型
    c++中 string类型 转为 char []类型
    c++ 去掉所有空格及换行符
    c++处理字符串string.find()与string::npos
    C1010 unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source
    C++ socket bind() 函数绑定错误
    windows 全局安装 composer
    VMware Tools (ubuntu系统)安装详细过程与使用
  • 原文地址:https://www.cnblogs.com/orangecyh/p/12485834.html
Copyright © 2011-2022 走看看