Unsupervised person re‑identification via K‑reciprocal encoding and style transfer

1 Introduction

        该文献研究完全无监督的re-ID问题,设计的算法主要基于以下三个方面:(1)克服不同相机的图像风格差异,例如照明、遮挡和视点(使用StarGAN生成多张不同风格的图片,并随即选择一张作为输入);(2)为每个未标记的标识分配软伪标签(通过迭代应用k-倒数最近邻排除部分错误匹配,并根据特征相似性分配软伪标签);(3)从硬负样本中学习鉴别和鲁棒特征(挖掘硬负样本进行学习区分特征增强鲁棒性)。

2 Methodology

2.1  Camera style transfer       

        该文献采用StarGAN进行学习多个相机所拍摄图片的样式风格,通过该模块可以将一张图片转换成多个不同风格的图片,达到数据增强类似效果。特别的是文献中的模型在生成的不同风格图片中只采用随机一张,目的是减少样式转换模块带来的噪声和训练时长。

        StarGAN是有两个模块组成,分别是生成器G和鉴别器D。G将输入的图片x转化为目标予标签c,以此条件生成假图像y,而D用于区分真实图像z和假图像y,并将z映射到D对于的域中。

2.2  Feature extraction

        作者采用ImageNet中预训练的ResNet-50作为提取图像特征模块,最终提取的特征维度是2048。ResNet-50有两个基本块Conv块和ID块,本文模型采用了四层基本块组合串联,并对最后ID块进行规范化处理,从而得到2048维度的特征向量。

2.3 Overview of framework

        该文献的框架分为两个部分,分别是初始化和再训练。由于数据集是没有每个图的真实标签,所以首先对每个图像分配硬标签y_{i},用于图像推离。

y_{i}[j] =\left\{\begin{matrix} 1 & j=i\\ 0 & j\neq i \end{matrix}\right.

        然后通过CNN网络提取图像特征v_{i}存储到记忆库中,并计算与其他图像的相似度s_{i}

s_{i}[j]=v_{i}^{T}v_{j}

        在反向传播中,更新训练样本中的记忆库V的特征:

V^{T}[i]=\alpha V^{T}[i]+(1-\alpha )v_{i}

V^{T}[i]\leftarrow \left \| V^{T}[i] \right \|_{2}

         在再训练阶段,将CNN提取的特征向量看作探针,应用KR-encoding获得K-倒数最近邻,计算特征相似度分配软伪标签:

L_{i}[j]=\left\{\begin{matrix} e^{s_{i}[j]-1} &x_{j}\in R(x_{i},k) \\ 0 & x_{j}\notin R(x_{i},k) \end{matrix}\right.

         KNNL计算相似度和软伪标签的欧几里得距离,拉近两者距离:

L_{KNNL}=\sum_{i=1}^{N}\frac{1}{\left | R(x_{i},k) \right |}\sum_{x_{j}\in R(x_{i},k)}^{}\left \| S_{i}[j]-L_{i}[j] \right \|_{2}

2.4  K‑reciprocal encoding

        定义探针获得k近邻,表示集合中的元素与探针相似:

E(x_{i},k)=\begin{Bmatrix} p_{1},p_{2},\cdots ,p_{k} \end{Bmatrix},\left | E(x_{i},k) \right |=k

        k-最近邻指与探针最相似的k个邻居,可定义为:

R(x_{i},k)=\begin{Bmatrix} p_{j}|(p_{j}\in E(x_{i}, k))\wedge (x_{i}\in E(p_{j},k)) \end{Bmatrix}

         由于图像之间的误差,可能导致真实匹配的图像被排除,所以递增添加候选对象的最近邻,组合成一个更加稳健的集合:

R^{*}(x_{i}, k)=R(x_{i},k)\cup R(p_{j}, \epsilon k)

         所以软伪标签和KNNL修改为:

L_{i}[j]=\left\{\begin{matrix} e^{s_{i}[j]-1} &x_{j}\in R^{*}(x_{i},k) \\ 0 & x_{j}\notin R^{*}(x_{i},k) \end{matrix}\right.

L_{KNNL}=\sum_{i=1}^{N}\frac{1}{\left | R^{*}(x_{i},k) \right |}\sum_{x_{j}\in R^{*}(x_{i},k)}^{}\left \| S_{i}[j]-L_{i}[j] \right \|_{2}

2.5   K‑reciprocal nearest neighbors loss

         因为存在硬负样本,所以集合N用作表示硬负样本集合,长度公式为:

\left | N(x_{i}) \right |=d%\cdot (N-\left | R^{*}(x_{i},k) \right |)

        硬负损失可以表示为:

L_{HN}=\sum_{i=1}^{N}\frac{1}{\left | N(x_{i}) \right |}\sum_{x_{j}\in N(x_{i})}^{}\left \| S_{i}[j] \right \|_{2}

         因此最后的KNNL可以定义为:

L_{KNNL}^{*} = \lambda L_{KNNL}+L_{HN}

3 Experimental Studies

3.1 Datasets

        该研究使用了三个大规模的re-ID数据集,分别是Market-1501、DukeMTMC-reID和MSMT17。

3.2  Performance evaluation

        评估模型的好坏采用累计匹配特征(CMC)曲线和平均精度(mAP)。 CMC的top-k精度为:

Acc_{k}=\left\{\begin{matrix} 1 &x\in S \\ 0 &x\notin S \end{matrix}\right.

         mAP的一组查询可以定义为:

mAP=\frac{\sum_{x=1}^{Q}AveP(x)}{Q}

        计算AP的精度有真正实例的分数与总数比而得:

precision=\frac{TP}{TP+FP}

        计算AP公式如下:

AveP(x)=\frac{1}{GTP}\sum_{q=1}^{Q}p@k\times rel@k

3.3 Experimental Results 

        粗体值表示此列中最佳方法的等级精度值或映射值。斜体值表示此列中“设置”列中第二最佳方法的等级精度值或映射值。“无监督”表示无监督方法“UDA”表示无监督的域自适应方法OneEx”表示使用一个示例注释的方法,其中数据集中的每个人都用一个标记的示例注释。

         

         粗体值表示此列中最佳方法的排名精度或真实值。

         粗体值表示当训练数据集和测试数据集相同时,此列中最佳方法的秩精度或映射值,这意味着训练和测试都在同一数据集上执行。

4 Conclusion

        该文提出了一种基于k-倒数编码和风格转换的方法来解决不需要任何注释信息的完全无监督的person-ReID问题。通过k-倒数编码,我们可以直接获得k-倒数最近邻并过滤掉错误匹配的污染。根据被探测人与其邻居的特征相似性,为被探测人分配软伪标签。引入带硬负损失的KNNL学习鲁棒鉴别特征,提高re-ID模型的精度。在三个大规模数据集上的实验验证了我们的方法在无监督人员身份识别中的有效性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值