赞
踩
目录
Good appearance feature for multi-target-camera tracking CVPR2018
Human semantic parsing for person Re-identification CVPR2018
https://zhuanlan.zhihu.com/p/31921944
CVPR2018 ReID论文简评 - 罗浩.ZJU的文章 - 知乎 https://zhuanlan.zhihu.com/p/36379467
ECCV2018 ReID论文简评 - 罗浩.ZJU的文章 - 知乎 https://zhuanlan.zhihu.com/p/44212707
在监控视频中,由于相机分辨率和拍摄角度的缘故,通常无法得到质量非常高的人脸图片。当人脸识别失效的情况下,ReID就成为了一个非常重要的替代品技术。ReID有一个非常重要的特性就是跨摄像头,所以学术论文里评价性能的时候,是要检索出不同摄像头下的相同行人图片。方法可以分为大致以下几类:
基于表征学习的ReID方法
基于度量学习的ReID方法
基于局部特征的ReID方法
基于视频序列的ReID 方法
基于GAN造图的ReID 方法
基于度量学习的reid方法
度量学习不同于表征学习,度量学习旨在通过网络学习出两张图片的相似度。行人重识别问题中,具体为同一行人的不同图片相似度大于不同行人的不同图片。最后的网络损失使得相同行人图片(正样本对)的距离尽可能小,不同行人(负样本对)的距离尽可能大。常用度量学习损失包括:
对比损失(Contrastive loss)
三元组损失(Triplet loss)
四元组损失(Quadruplet loss)
难样本挖掘三元组损失(Triplet Hard loss with batch hard mining, Trihard loss)
边界挖掘损失(Margin sample mining loss, MSML)
首先,假如有两张输入图片 和 ,通过网络的前馈我们可以得到他们归一化后的特征向量 和 。我们定义这两张图片的特征向量的欧氏距离为:
(1)对比损失(Contrastive loss)
(2)三元组损失(Triplet loss)
(3)四元组损失(Quadruplet loss)
(4)难样本采样三元组损失(Triplet loss with batch hard mining, TriHard loss)
(5)边界挖掘损失(Margin sample mining loss, MSML)
(6)各种loss性能比较
在论文[11]之中,对上面提到的主要损失函数在尽可能公平的实验的条件下进行性能对比,实验结果如下表所示。作为一个参考
5.基于GAN造图的ReID方法
Reid一个非常大的问题就是数据获取困难,截止cvpr2018deadline之前,最大reid数据集也就小几千个ID,几万张图片(序列嘉定只算一张)。ICCV17 GAN造图做Reid挖了坑之后,就有大量GAN工作涌现。 Zheng Z, Zheng L, Yang Y. Unlabeled samples generated by gan improve the person re-identification baseline in vitro[J]. arXiv preprint arXiv:1701.07717, 2017.这篇文章发表在ICCV17,文章简单但作为挖坑鼻祖引出一系列很好的工作。如下图,这篇文章生成的图像质量还不是很高,另外一个问题就是由于图像是随机生成的,也就是说没有可以标注的label可以用。为解决这个问题,论文提出一个标签平滑的方法。就是把label vector每一个元素值都取一样,满足加起来为1.反正看不出属于哪个人,那就一碗水端平。生成的图像作为训练数据加入到训练之中,由于当时baseline不像现在这么高,所以效果还挺明显,至少数据量多了过拟合能避免很多。
除了摄像头bias,reid还有个问题就是数据集存在bias,这个bias很大一部分原因就是环境造成的。为了克服这个bias,论文 Wei L, Zhang S, Gao W, et al. Person Transfer GAN to Bridge Domain Gap for Person Re-Identification[J]. arXiv preprint arXiv:1711.08565, 2017.使用GAN把一个数据集的行人迁移到另外一个数据集。为了实现这个迁移,GAN的loss稍微设计了一下,一个是前景的绝对误差loss,一个是正常的判别器loss。判别器loss是用来判断生成的图属于哪个域,前景loss为了保证行人前景尽可能逼真不变。这个前景mask使用PSPNet来得到的,效果如下图。文章另外一个贡献就是提出了一个MSMT17数据集,不知道有没放出来。
reid其中一个难点就是姿态不同,为了克服这个问题论文 Qian X, Fu Y, Wang W, et al. Pose-Normalized Image Generation for Person Re-identification[J]. arXiv preprint arXiv:1712.02225, 2017.使用GAN造出了一系列标准的姿态图片。论文总共提取了8个pose,这8个pose基本涵盖了各个角度。每一张图片都生成这样标准的8个pose,那么pose不同的问题就可以解决。最终用这些图片的feature进行一个average pooling得到最终的feature,这个feature融合了各个pose的信息,很好的解决pose bias问题。无论从生成图还是从实验结果来看,这个工作都是很不错的。这个工作吧single query做成了multi query,但是无法反驳,这些图都是GAN生成的。除了生成这些图需要额外的时间开销以外,并没有利用额外的数据信息。当然这个工作也需要一个预训练pose estimation网络来进行pose提取。
总的来说,GAN造图都是为了从某个角度上解决Reid的困难,缺啥就让GAN来补啥,不得不说GAN还真是一个强大的东西。
论文包括两部分:
一个part-based的part-bsed convolutional based(PCB)框架,融合了水平切块的局部特征来得到一个强大的ReID特征
一个refined part pooling(RPP)方法,RPP会对水平切块边缘处的网格像素进行重新调整,将它们修正到正确的part分区。最终PCB+RPP不用任何re-ranking的方式来提点,在market1501上达到93.8%的rank-1.
Abstract:在行人检索中使用part-level features会给description提供细粒度(fine-grained)的信息。而part-level features能发挥作用的前提是每一个part都需要有正确的定位。人体姿势估计(humen pose estimation)是定位part的其中一种方法,单该论文利用的是每个part内部的上下文信息的一致性(content consistency)。
论文主要有两点贡献:
一是设计了PCB(part-based convolutional baseline)网络,其输入是一张图像,输出是包含数个均分的part-level的descriptor。
二是提出了RPP(refined part pooling)方法,由于PCB采用的是均分特征图的策略,这样就不可避免的在各个part中引用了outliers(outliers指的是其应该属于其他part,因为在信息的一致性上更接近于其他part),于是作者提出了RPP来重新分配这些outliers。
1.PCB:A Strong convolutional baseline。下图是PCB结构
PCB选用ResNet50作为backbone network,PCB在resnet50的基础上做了些修改。resnet50的GAP(global average pooling)之前的层保持不变,PCB修改的是GAP层以及之后的层。
首先输入图像经过backbone network得到tensor T,定义channel维的列向量为f。然后,把PCB把T水平均分成p份,经过average pooling得到p个列向量g,再使用1x1的卷积核降维得到p个比g低维的h。最后把每个h输入到由FC(fully-connected layer)和softmax function构成的classifier中,从而预测输入的ID(注意,这里有p个参数不共享的classifier,实验发现参数不共享的效果更好)
在训练时,PCB使用p个classifier的交叉熵(cross-entropy)的和作为损失函数
在测试时,PCB可以选择吧p个g或者p个h进行连接得到最后的descriptor G或者H,其中G=[g1,g2,...,gp],H=[h1,h2,...,gp]
PCB的均分策略是简单地有效的,并且仍可以进行改进(Refined)从而有所提升的。
在PCB中,T是被均分成p个part的。而这样的直觉是同一个part中的f理应是近似的,不同part中的f是不相似的,而事实却不是如此。
作者做了一个这样的实验,在训练PCB收敛之后,然后计算每个f和gi(i=1,2,3....,p)的相似度,例如可以使用余弦距离作为度量标准。
把p设置为6,并绘制出每个f最接近的gi,在这里,用颜色相同来表示f属于哪个part。通过下图可以得出两个结论。
一是在同一个part中的大部分f是最近似的
二是有些f似乎和其他part更接近,这就是论文所说的Within-part inconsistency现象。比如,左上角那个蓝色的f就是outlier,它在位置上属于Part1,但在语义上更接近Part5
既然存在Within-Part Inconsistency的问题,那么可以重新分配outliers的位置从而解决这个问题,于是作者提出了RPP(Refined part pooling)。添加了RPP的PCB修改成下图的结构。
此结构相对于原来的PCB结构的变化是把原来的average pooling变成了GAP并添加了part classifier。(也就是由对每个g或h分类变为对每个f分类,将f类为p中的某一类)
首先,在PCB收敛的基础上,对T中的每个f执行分类的操作,具体操作可以看如下公式:其中Wi是全连接层的参数矩阵,上面这个公式是预测每个f属于Pi的概率。然后使用来计算每个Pi的值:其中F是tensor T的集合。这个公式的具体含义是对所有的f加权得到Pi,而这个权重是f属于该Pi的概率。
通过上述操作,RPP修正了由于PCB的均分策略而产生的outliers。
这部分主要介绍如何来训练part classifier中的W参数。具体算法如下:
1.训练标注你的PCB至收敛
2.移除PCB中T后面的average pooling层并添加part classifier和GAP
3.固定PCB中除了part classifier以外的所有其他参数,在数据集上重新训练2中的PCB至收敛
4.在数据集上微调整个网络的所有参数至收敛
3.Conclusion:文章主要有两点贡献,一是提出了PCB学习part-level features,二是提出了RPP进一步提升了PCB的性能。
摘要:这是一篇将Multi-target multi-camera tracking(MTMCT)和Reid结合起来的文章。论文训练一个很好的特征表达,可以同时在MTMCT和Reid任务上取得很好的效果。算法上,文章在triplet loss基础上提出了一种新的hard mining思想,谈久了reid模型性能对MTMCT任务准确度的影响。主要贡献:
为训练设计一个自适应权重的三重损失。
一种新的难样本挖掘技术
文章先给出了一个用Reid做MTMCT的pipeline。这个pipeline和大多数人做法一样,先将人检测出来,然后用Reid模型提取特征,之后根据特征相似度将单摄像头和多摄像头轨迹关联起来。
文中针对triplet loss提出了一个新的改进方案,其中包括两个特性:自适应的权重和新的难样本挖掘方法。首先文章分析了最流行的triple loss 和 trihard loss,认为triplet loss对于batch里每一对正负样本都是一视同仁,权重是相同的1/N,而另外一个改进版的trihard loss则是挑选batch里最难的正负样本对,即只有一对正负样本对的权重是1,其他都是0.论文提出了一种新的自适应权重方法,首先计算每对样本对特征之间的距离,然后根据距离做一个softmax归一化。对于负样本对,距离越小的样本对则权重越大;同理,对于正样本对,距离越大的样本对则权重越大。这样能保证难样本对所占的权重较大,并且每对样本对都参与了loss的计算。
论文第二个改进点是改变了样本对选择的方式,传统的triplet我们都是从训练样本中随机组成。论文将hard mining的思想进一步扩展到采集样本这一环节。针对每一个id,论文挑选出一些非常相似的负样本组成样本池,当训练模型挑选样本的时候,就选择这些非常难区分的样本来当negtive。这种做法进一步强化了hard mining的思想。结果显示非常有效。
摘要:论文提出了SPReID,通过一个预训练的Human Semantic Paarsing网络得到person图像的每一个语义部分。之后将图片分为前景,头部,上身,下身和鞋子五个部分,提取每个部分的局部特征。容易想到也能work
SPReID网络有两个分支,一个是正常的ReID分支,另外一个语义分割分支。对于语义分割分支,SPReID在刚发布不久的Looking into Person(LIP)上预训练,最后得到五个语义部分,前景,头部,上身,下身和鞋子。之后将语义分割得到的结果和ReID分支得到的feature map相乘,经过global pooling分别得到5个feature,然后concatenate到一起得到最终的feature。总体来说还是比较简单的。
开源代码:https://github.com/xfanplus/Open-SCPNet
https://zhuanlan.zhihu.com/p/56418084
摘要:全身reid取得了很好进展,但一些场景中会有遮挡情况,这种场景就需要局部reid(partial reid)。本文提出了spatial-channel parallelism network(SCPNet)。SCPNet中每组channel的特征提供了行人身体某一块空间区域的reid特征,并利用空间-通道相关性来监督网络学习一个鲁棒的特征。这个特征在全身行人重识别和遮挡行人重识别两个任务上均达到了sota性能。
PCB和Aligned reid是local feature的代表方法。PCB最终要的贡献就是发现,对图像的每个水平local feature进行loss监督训练可以提高特征的性能。而SCPNet给了我们启示,为什么监督local feature能够提高网络的性能。直观上感觉,遮挡区域主要会影响遮挡区域的local feature,剩下的local feature应该还不错。而global pooling会导致遮挡区域影响整个global feature。因此local feature可能是解决遮挡的一个思路。
AlignedReID [2]是我们的另外一篇工作,我个人认为AlignedReID里面有个很不错的思路是利用local feature来监督global feature,然后在使用的时候只用global feature,达到提速的效果。而SCPNet同样传承了AlignedReID的这个思路。
然这些方法基本都是在Market1501和DukeMTMC这些数据集下完成的,这些数据集都是经过数据清洗的,总体来说行人图像比较完整。但是在真正实用场景下,遮挡一直是若干个痛点中的一个很大的痛点。如下图,partial-ILIDS是机场场景下拍摄的图片,行人被行李箱遮挡是非常频繁的。而遮挡场景下,行人的表观特征会被遮挡物污染,造成特征产生变化,从而使得识别错误。
CVPR2018何凌霄师兄的DSR工作把partial ReID重新拉了回来。虽然最近出现了少量partial ReID的工作,但是有大部分都是专门针对于partial ReID的,并没有对person ReID(备注:下文person ReID就默认指全身ReID,而ReID指person ReID和partial ReID)有任何促进,甚至不能应用于person ReID。而从实用的角度来讲,我们当然希望一个方法既能提高person ReID的性能,又能提高partial ReID的性能。而这就是SCPNet的设计的初衷。
综上,SCPNet产生的motivation有如下几点:
PCB显示对每个local feature监督能够提高reid的性能,(并且在直观上我们认为local feature有助于遮挡条件下partial ReID)
Aligned Reid显示了用local feature监督global feature是可行的,希望继续传承这一思路
从实用角度考虑,我们希望设计一个网络,既能提高person reid的性能,又能提高partial reid的性能
SCPNet
上图是SCPNet的结构图,总体来说是比较简单的,backbone用的是大家都用的Resnet50。和AlignedReID一样,SCPNet总共有两个分支,一个是local分支,一个是global分支。local分支也是比较传统的水平pooling得到local features。而global分支做了一点点的轻微改变,就是用一个1×1的conv层将feature map的通道维度从C维提升到4C维。
接下来是SCPNet的核心了,对于local分支,我们通过水平pooling可以得到四个局部特征,就是上图右上角的蓝、红、黄、绿的四个特征向量,也就是按照spatial分块得到的特征。另外,对于global分支,我们通过升维可以得到一个 的feature map,经过pooling之后得到4C维的全局特征, 然后我们按照channel进行分组,同样分为四组,也能得到4个global features,就是上图右下的蓝、红、黄、绿的四个特征向量,这是按照channel分组得到的特征。
传承AlignedReID的思想,我们设计了SCP loss将local分支的spatial信息传递给global分支,这一点后面再详细介绍。因为我们已经将local features的信息传递global features了,传承PCB的结论,我们对每个global特征进行ReID loss的监督。根据目前主流的作为,每个global feature都计算ID loss和triplet loss。
接下来我们可视化feature map的激活性,我们按照channel维度将feature map分为四块,然后用local feature进行监督,最后我们可视化了这四个feature map。结果发现,每个feature map都重点关注图像的某个空间区域,而这也验证了我们的想法,SCP loss将空间信息传递给了global feature的channel维度。
由上面这个激活图可以猜测一下PCB有效原理:经过水平池化之后得到的局部特征,他们都会重点关注图像中的某一块区域,但是由于网络很深,其实感受野是很大的,所以他们是能看见整张图像的,结果就是每个局部特征都重点关注于某个区域却又能看见整张图像,通过监督若干个这种既有专攻又有全局的特征,网络能够学习到更鲁棒的特征。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。