EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读笔记

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第1张图片
code: github
作者原文介绍:知乎

做了什么?

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第2张图片

即PCB这种直接切块不行,如a中间那个直接有两块背景拿去做分类,当然不合理了(但其实PCB切的是特征图,不是原图,而原图下采样到特征图时已具有一定的感受野。因此切的块其实也还是有全局信息的)。于是作者希望能像b那样只对人切块。

那怎么实现呢?
把人抠出来吧,于是直接上COCO训练一个关键点模型,到reid数据集上预测,即为c的效果。

具体做法就是:
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第3张图片

首先是其中的R1~R9,这在reid中很常见了,很多都考虑了多粒度/尺度(不同方法切特征图)。

部件分割约束(PS Constraint):
作者发现不同区域提取出来的特征(特别是相邻区域)具有很高的相似度。另外,把遮挡掉一半(上半部或下半部)的图片送进网络,基于part的模型(PCB、PAP)Conv5的特征在被遮挡区域仍有很大的响应。作者猜测是以下原因造成的:
(1)Conv5的感受野很大;
(2)每个part的id约束非常强,从每个part区域提取出来的特征必须具备足够多的信息才能满足id分类的约束。

因此,从一个part区域池化得到的特征很可能表示好几个part的特征。区域划分得越小,则每个区域的id约束越是加重了这个问题。

存在这个问题的模型,虽然也能提取到多个判别性很强的特征,但是作者觉得让conv5失去了定位能力的特征,造成(1)对于part对齐的性能还是有折扣,(2)不同区域得到的特征之间冗余度较高。

为了让模型从一个区域池化得到的特征尽量以这个区域为重点,降低部件之间的冗余度,那就不妨把part直接分割出来吧,于是提出在Conv5的特征图上施加部件分割的约束。直觉解释是,如果从Conv5每个空间位置的特征可以区分出来其属于哪个part类别,那么说明这些特征是具有部件区分性的。因此,还必然做一个part分类的步骤,简单地在Conv5的特征上加一个部件分割的小模块(Part Segmentation Head)来达到这个目的,分类的损失(交叉熵)即计算为 L k p s L_k^{ps} Lkps,然后得到:
在这里插入图片描述
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第4张图片

PS模块由一个stride=2的3x3反卷积层(上采样)和一个1x1的卷积层(预测分类)组成。为了得到部件分割的监督信号,我们在COCO上训练了一个部件分割模型,然后在ReID数据库上进行预测,得到部件伪标签,如下图所示(基于关键点就可以分割出各个part):

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第5张图片

因此,PS分支其实就是由训练好的分割模型来打标签,不需要reid的标签,无论是源域和目标域都可以加。
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第6张图片

对ID分支,就是和PCB类似的过程,不过还是由些许差别,
首先是ID损失的计算从PCB的:
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第7张图片
变成了:
在这里插入图片描述
其中只有 v p v_p vp需要解释一下,其余都是PCB一样的。那 v p v_p vp是什么呢?其只能从0,1两个值里选择。那怎么选择?

回到图1,不难看到,图1b中其实有的是6个part,有的是5个part,而5个part的原因是脚部的part在行人检测时丢了,因此即为不可见,对于这些不可见的part,设置 v p v_p vp为0,其余的可见则设为1。

注意:图1是为了和PCB对比才设置成6个part的,但其实作者最好的结果时图2中的9个part(还包含了多粒度信息)。而可见不可见,在关键点定位+抠部件的时候(其实相当于分割或行人解析的作用了),根据置信图就可以知道了。但其实根据可见层度让 v p v_p vp在[0,1]区间上取值应该是一个更好的选择。

那测试时咋办呢?直接给出距离计算:
在这里插入图片描述
其中p表示part的index,P是总part数。而cos_dist表示计算余弦距离,而q表示query,g表示gallery。

对于query,如果这张query图像的某个part不可见,那这和part的v设置为0,不参与计算;而如果对于一张gallery图像的某个part不可见但在query上可见,则让这些gallery图像的这个part的e的结果为0.

优化目标

在这里插入图片描述

实验

这篇文章的实验部分相当充足,
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第8张图片

PAP-6P表示和PCB一样设置6个part,PAP表示9个part。PAP-S-PS表示在PAP+源域上的PS,PAP-ST-PS表示在PAP+源域和目标域上的PS, PAP-S-PS-SA表示PS损失的计算不是按式4(每个part内部逐像素计算损失算,然后加起来做内部平均作为这个part的损失,然后各个part损失相加,对part数再取平均,即作者提到的避免不同part不一样大,导致大的part起主导作用的现象),而是整张图像中的像素的损失相加,再除以整个图像的像素数,作为最终损失,最好结果显示没有作者的那个好(但没有好太多)。

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第9张图片

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第10张图片

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第11张图片
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第12张图片

SPGAN做的就是风格迁移,DomainAdaptiveReID做的时CFT。

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第13张图片
EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第14张图片

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第15张图片
实验很足。

EANet: Enhancing Alignment for Cross-Domain Person Re-identification阅读总结_第16张图片

你可能感兴趣的:(reid,阅读笔记,分割,分割约束,跨域)