reid论文阅读

论文1。(基于外观特征的)

将reid视为分类问题。来提取特征。将原先在imagenet上训练好的分类网络进行迁移学习,来做751个人的分类训练。网络分为4个部分。

一。特征提取网络:基于VGG16的googlenet。

二。防止过拟合进行dropout操作f=r*f。

三。分类网络训练,视不同的人为不同的类,将原有的imagenet分类网络中改造最后两层,输出为训练集中的人类总数N。

四。验证网络将视为一个二分类问题,输入两张图片。判断是否是同一个人。

多loss训练。多级调参,首先固定其他网络的参数不动,调分类网络的参数。再调验证网络,再联合调优。

 

 

reid论文阅读_第1张图片

reid论文阅读_第2张图片

论文2。(基于局部特征的reid)

首先将图片进行切片,切成一横条一横条的,一个行人被切成若干横条示例为六条,然后依次按照输入LSTM网络中。孪生网络由两条lstm网络组成,共享权重。对比损失函数(contrastive loss function)。

f(t)代表的是遗忘门,决定会从以前的状态信息中丢弃什么。i(t)和g(t)代表输入门,决定什么样的信息将被存放至细胞状态中。o(t)代表输出门,决定我们要将什么样的状态进行输出。

reid论文阅读_第3张图片

第一步,剪切图片,提取LOMO和color name特征作为input feature。之后把input feature 当做空间序列step by step输入LSTM中。下面顺便讲一下LSTM的结构(上图)。。。。Xt是每一个剪切过后经过特征提取的input feature,h(t-1)是上一层lstm输出的隐藏层。Xt和h(t-1)输入后会被加工成四个中间值,f(t)代表遗忘门,表示Xt和h(t-1)决定要遗忘上一层lstm状态的多少;i(t)和g(t)代表输入门,表示要从本次输入的Xt和h(t-1)中提取多少信息来作为输入,i(t)和g(t)的激活函数不一样,分别计算完之后还要进行元素相乘作为总的输入。o(t)代表输出门,决定要将本层lstm的状态值的多少作为输出来输出成为本层的隐藏层。本层lstm的状态值(记忆值)s(t)由两个输入i(t)和g(t)相乘的结果and遗忘门与上次lstm的状态值s(t)相乘之和决定。而本层的隐藏层h(t)由刚刚计算出来的状态值s(t)与输出门相乘决定。。。。(LSTM结构说完)。。至此,我们得到了图片每一个区域经过LSTM网络输出来的值h(t)。将这些值拼在一起,与一个转换矩阵Wm相乘,得到Sp,这里我理解的是与全连接层有点类似,Wm全是参数啦,需要训练的。有点度量学习的意思,目的是把相同的人聚类。OK。最终得到Sp了,这个就可以用来计算与别的Sq的欧式距离了。距离大代表不像,距离小代表像。最后是损失函数,contrastive loss。L(sp,sq,Yi) = (1 − Yi)1(Ds)2 + (Yi)1{max(0,m − Ds)}2。m是margin也是boundary。

论文[3](基于gan造图)

本文贡献之一是觉得pose是提取feature map时 导致难以衡量是否相同id的难点。因此决定将不同图片的行人改为相同的pose。

首先用openpose这个已训练好的网络来提取行人的pose,这样每张行人图片的pose就有了。之后训练GAN,生成器G需要输入一张人图Ii,和一个pose Ipj。这个pose Ipj对应一个主人Ij。G要生成一个新的行人图Ij_hat。D的任务就是区分Ij_hat与Ij那个是生成图。反复训练就能得到一个很好的G。辨别器D可以看成是一个二元分类模型,判断输入图片Ii和Ij(Ij_hat)是否同一个id。至此GAN就完成了。

接下来是pose的选择问题,用openpose将market-1501的pose都提取出来,然后用K-means聚类方法得到八个聚类中心,作为我们生成器的pose输入。特征提取网络,的输入有一张原始的行人图片和八张经过生成器G生成的八种不同pose的伪造图片。原始图片经过resnet-50-A提取特征,八张伪造图片经过resnet-50-B提取特征,最后九个feature map fuse 成一个完整的feature map。计算欧氏距离。

你可能感兴趣的:(Re-id,GAN,LSTM)