美文网首页
[读paper]ICCV2019-Unsupervised Gr

[读paper]ICCV2019-Unsupervised Gr

作者: 北小卡 | 来源:发表于2019-11-05 23:50 被阅读0次

题目: Unsupervised Graph Association for Person Re-identification
作者:Jinlin Wu, Yang Yang, Hao Liu, Shengcai Liao, Zhen Lei , and Stan Z. Li
code repository:Unsupervised-Graph-Association-for-Person-Re-identification

1.前言

本文是在Tracklet的基础上进行拓展,Tracklet 的相关文章为:
1.ECCV 2018: Unsupervised Person Re-identification by Deep Learning Tracklet Association
2.TPAMI 2019 Unsupervised Tracklet Person Re-Identification
主要创新点为:
①. 单摄像头沿用Tracklet的用法,由于Tracklet对是假设单摄像头下每个人的图片是已知的,这种做法对Image RE-ID是能带来很高的效果提升的.(类似弱监督)
②. 跨摄像头通过构造一个轻量的图来挖掘跨摄像头的正样本,通过改进softmax loss 来拉近彼此之间的距离

The framework

2.方法

总体框架如上图所示,主要分为两部分,分别为各个摄像头内部Tracklet的学习(为后续跨摄像头学习服务)和跨摄像头间候选正样本的学习.
(1) Intra-camera learning

模型结构为多分支,前面抽特征的骨干网络为各个摄像头共享,后面分类的时候, 对每个摄像头内部各自进行分类. 即Softmax的归一化是针对每个摄像头内部的归一化,使用的loss如下:
l_{ce}^t(I_n^{s_t^i})=-\sum_{j=1}^{M_t}log(\frac{e^{(W_t^j)^T\phi(I_n^{s_t^i})}}{\sum_{k=1}^{M_t}e^{(W_t^k)^T\phi(I_n^{s_t^i})}})
l_{intra}=\frac{1}{N_{bs}}\sum_{N_{bs}}l_{ce}^t(I_n^{s_t^i})
其中t指摄像头,s_t^i为摄像头t的第i个轨迹, n为轨迹s_t^i的第n张图片,M_t为该摄像头总共有M_t个轨迹, W_t为摄像头t的最后一层全连接(即分类层)的权重. N_{bs}为batch size 大小. \phi(I_n^{s_t^i})为骨干网络抽取视觉模型.
小结: 正常Softmax+cross entropy 训练各个摄像头的"分类"结果.

(2)Inter-camera learning

在(1)的基础上,由于前面抽视觉特征的模型共享,所以骨干网络已经大概学习到了一些跨摄像的信息.现在就是来把跨摄像头的信息连结起来.
由于单摄像头下面每个人图片已经按照Tracklet组在一起了,在寻找跨摄像头的联系的时候,可以从Tracklet 与 Tracklet 的这个粒度取去找寻,而不用图片与图片之间.
所以先计算每个Tracklet 的代表特征,文中使用的是轨迹下面图片的平均特征:
c_t^i=\frac{\sum_{n=1}^{N_{s_t^i}}\phi(I_n^{s_t^i})}{N_{s_t^i}}
之后寻找跨摄像头的正样本,采用的办法为阈值切断+对称约束, 其中对称约束就是互为top-K:
{(c_t^i, c_m^j)}_K=\{c_m^j\in\{c_t^i\}_K^m \& c_t^i\in\{c_m^j\}_K^t\}
K文中取1.
所以最终样本的目标权重设置为:
\begin{equation} e(c_t^i,c_m^j) = \begin{cases} cos(c_t^i, c_m^j), & if & cos(c_t^i, c_m^j) > \lambda & \& & (c_t^i, c_m^j)_K \\ 1, & if & c_t^i = c_m^j\\ 0, & other \end{cases} \end{equation}
下面应该去拉近跨摄像头的距离,同样采用多分支的结构.
这里有个比较漂亮的式子.就是现在把多分支的分类层的权重值每一行设为c_t^i,即每个Tracklet的核心,然后衡量t摄像头下的第n图片与m摄像头的第a个人之间的相似性, 其中m摄像头的第a个人用tracklet的核心来表示.优化的loss为:
l_{ce}(I_n^{s_t^i}, s_m^a)=-\sum_{j=1}^{M_m}log(\frac{e^{(c_m^j)^T\phi(I_n^{s_t^i})}}{\sum_{k=1}^{M_m}e^{(c_m^k)^T\phi(I_n^{s_t^i})}})
l_{inter}(I_n^{s_t^i})= \sum_{N(s_t^i)}e(c_t^i, c_m^a)l_{ce}(I_n^{s_t^i}, s_m^a)
s_m^a \in N(s_t^i), N(s_t^i)=\{(s_m^a, y_m^a) | if e(c_t^i, c_m^a)\ne0\}
在每个摄像头内部都去做跨摄像头的拉近.代码写起来也好写,跟第一阶段比较承接.
同时现在每个摄像头的分类层是预设了权重的,预设权重为每个tracklet的核心,但是这个分类层同样是可以训练的,非常巧妙!!!!
不会因为挖掘的信息是"过时"的,而导致训练的时候容易学了几个batch size 就过拟合.

3.实验

(1)阈值的范围:


阈值超参数

(2)消融实验:


消融实验
可以见到,只有intra-camera的label,效果已经很爆炸了.

4.总结

Tracklet 的方法其实是比较"偷走一步"的方法,在这基础上可以拓展的实验效果都是非常爆炸,几乎接近有监督的.这对我们来说是非常妙的事情.
REID之所以要做无监督/弱监督,就是因为跨摄像头的数据是难以获取的,所以只是知道同摄像头的label就能达到这么爆炸的效果,还是非常有影响力的.

相关文章

网友评论

      本文标题:[读paper]ICCV2019-Unsupervised Gr

      本文链接:https://www.haomeiwen.com/subject/xfesbctx.html