文章来源:Learning by Aligning- Visible-Infrared Person Re-identification using Cross-Modal Correspondences

1. 解决的问题&总结

1.1 解决的问题

本文主要解决了VI-ReID问题:从一系列跨模态的人物图像中找到目标可见或红外光图像。

假设人物图像粗略对齐,以前的方法是学习粗糙人物图像或固定部分级别的人物表示,而这些表示在不同模式中是有区别的,现有的方法裁剪的人物图像又不一定对齐,这会影响模型的效率。

本文提出了一种利用跨模态图像之间的密集对应关系,以统一的方式解决了问题,允许在像素级别解决跨模态差异,从而更有效地抑制来自行人表示的模态相关特征。也促进了跨模态特征之间的像素级关联。

1.2 总结

  • 解决多模态的方式值得借鉴:就是使用fRGB\mathbf f_{RGB}fRGB​生成f^RGB\hat {\mathbf f}_{RGB}f^RGB​然后二者进行比较生成Dense Triplet loss。
  • CMAlign对齐的方式,原理值得推敲:首先经过跨模态的特征相似性模块,然后通过匹配可能性模块最后通过soft warp结合Mask生成特征。啥意思就是把背景扣掉然后对人物进行特征生成,和原来的没有扣掉背景的特征进行衡量。
  • 比较迷的就是LIC\mathcal L_{IC}LIC​这个损失函数的设计,是为了啥,计算生成后的特征进行池化后与原来ID损失进行比较?希望有大佬看懂的解释一下。
  • 看起来这个效果能比较好一点,我看到那个参数共享的论文结果也比较好,应该有个对比的。

2. 原理

2.1 网络结构

特征提取和特征对齐和特征评估

相应的,评估可以分为三部分:ID loss, ID consistency loss, dense triplet loss.

后两者使用匹配概率并鼓励同一标签的两个模态的特征在像素级别相互重建。

2.2 特征提取模块

浅层参数独立,深层参数共享

2.3 CMAlign

此处介绍IR-to-RGB对齐。

余弦距离:计算两个特征的远近
C(p,q)=fRGB(p)⊤fIR(q)∥fRGB(p)∥2∥fIR(q)∥2C(\mathbf {p,q}) = \frac {\mathbf f_{RGB}(\mathbf p)^{\top} \mathbf f_{IR}(\mathbf q)} {\|\mathbf f_{RGB}(\mathbf p)\|_2 \|\mathbf f_{IR}(\mathbf q)\|_2} C(p,q)=∥fRGB​(p)∥2​∥fIR​(q)∥2​fRGB​(p)⊤fIR​(q)​
∥⋅∥\|\cdot\|∥⋅∥表示L2 norm of a vector。fRGB,fIR∈Rh×w×d\mathbf f_{RGB},\mathbf f_{IR} \in \mathbb R^{h \times w \times d}fRGB​,fIR​∈Rh×w×d

基于相似度,可以计算出RGB-to-IR的匹配可能性:
P(p,q)=exp⁡(βC((p,q)))∑q′exp⁡(βC((p,q′)))P\mathbf {(p,q)} = \frac {\exp(\beta C(\mathbf {(p,q)}))} {\sum_{\mathbf q'}\exp(\beta C(\mathbf {(p,q')}))} P(p,q)=∑q′​exp(βC((p,q′)))exp(βC((p,q)))​
PPP则表示匹配可能性。argmaxqP((p,q))argmax_q P(\mathbf {(p,q)})argmaxq​P((p,q))表示每一个RGB特征的匹配可能性。但是匹配可能会受到一些背景杂乱或者纹理遮挡的影响,==对背景等其他情况的鲁棒性不强。==作者提出只用前景进行对齐,原理如下所示:
f^RGB(p)=MRGB(p)W(fIR(p))+(1−MRGB(p)fRGB(p))\hat {\mathbf f}_{RGB}(\mathbf p) = M_{RGB}(\mathbf p)\mathcal W(\mathbf f_{IR}(\mathbf p)) + (1-M_{RGB}(\mathbf p)\mathbf f_{RGB}(\mathbf p)) f^RGB​(p)=MRGB​(p)W(fIR​(p))+(1−MRGB​(p)fRGB​(p))
W\mathcal WW是soft wrapping operator,使用匹配可能性聚集特征。
W(fIR(p))=∑qP(p,q)fIR(q)\mathcal W(\mathbf f_{IR}(\mathbf p)) = \sum _{\mathbf q}P(\mathbf {p,q}) \mathbf f_{IR}(\mathbf q) W(fIR​(p))=q∑​P(p,q)fIR​(q)
上述操作能确保行人区域特征通过概率方式聚集红外特征来重建。要推断masks,假设特征从ID标签和reid任务中学到,而且在行人区域比其他区域高度活跃,在局部特征的L2范数上计算activation map:gRGB(p)=∥fRGB(p)∥2\mathbf g_{RGB}(\mathbf p) = \|\mathbf f_{RGB}(\mathbf p)\|_2gRGB​(p)=∥fRGB​(p)∥2​。

然后定义行人掩码图:MRGB=f(gRGB),f(x)=x−min⁡(x)max⁡(x)−min⁡(x)M_{RGB} = f(\mathbf g_{RGB}), f(\mathbf x) = \mathbf {\frac {x - \min(x)} {\max(x) - \min(x)}}MRGB​=f(gRGB​),f(x)=max(x)−min(x)x−min(x)​.

作者认为:这样的处理有以下几个好处:

  • 跨模态对齐有助于减轻模态带来的影响。
  • 这种处理能使重心放在局部特征的处理,提高准确性。

2.4 损失函数

L=LID+λICLIC+λDTLDT\mathcal L = \mathcal L_{ID} + \lambda_{IC}\mathcal L_{IC} + \lambda_{DT}\mathcal L_{DT} L=LID​+λIC​LIC​+λDT​LDT​

2.4.1 ID loss

使用GeM pooling operation. 具体应该是 FC + BN + softmax

2.4.2 ID consistency loss

对于重建出来的特征应该有以下要求:假设有两个模态的相同标签的特征,f^RGB\hat {\mathbf f}_{RGB}f^RGB​可以从fIR\mathbf f_{IR}fIR​重建出来,而且f^RGB\hat {\mathbf f}_{RGB}f^RGB​应该和fRGB,fIR\mathbf f_{RGB},\mathbf f_{IR}fRGB​,fIR​的gt有相同的标签。图像级别的表示在两个模态的正对方面应该有相同的标签。基于此,设计了图像级别的ID consistency loss,这作者说了个寂寞,感觉很难懂的样子,orz。ID一致性损失强调来自不同模态相同标签的行人图像的ID预测保持一致,从而允许抑制来自任务表示的模态相关特征。此外,重建后的特征为训练的分类器提供了额外的样本,进一步指导可判别型的特征表示学习。

2.4.3 Dense Triplet loss

ID loss学习区分性的特征表示,ID consistency loss缓解了跨模态的差异。但是这两者都专注于学习图像级别的特征表示,而没有注重于区别性的特征学习,特别是当任务图像被遮挡或没有对齐时。

所以引入DT loss,使用不同模态的特征对原始特征和重构特征进局部比较,鼓励最后图像级别的人物特征具有区分性,同时缓解像素级别的跨模态差异。

直接的解决方案是计算局部特征之间的L2距离,但是它没有考虑遮挡区域。描述不相关的行人特征使用部分区域对齐的方法不仅没有促进效果,反而会降低模型的精度。为解决此问题,提出一个co-attention map,突出RGB和IR中的行人区域。
ARGB(p)=MRGB(p)W(MIR(p))A_{RGB}(\mathbf p) = M_{RGB}(\mathbf p)\mathcal W(M_{IR}(\mathbf p)) ARGB​(p)=MRGB​(p)W(MIR​(p))
这种情况下计算两个模态之间的匹配概率,person masks用于soft warping。也就是说,共同注意图是MRGB(p)M_{RGB}(\mathbf p)MRGB​(p)和W(MIR(p))\mathcal W(M_{IR}(\mathbf p))W(MIR​(p))的相交的部分。我们通过相同特征的正对定义共同注意图。也可以在共同注意图上使用min-max 标准化操作。

为简化操作,采样是取锚,正例和负例,其表示方式为: f^RGBp\hat {\mathbf f}^p_{RGB}f^RGBp​是由fRGBa和fIRp\mathbf f^a_{RGB}和\mathbf f^p_{IR}fRGBa​和fIRp​重建出来的。损失函数:
LDT=∑i∈{RGB,IR}∑pAi(p)[di+(p)−d−+i(p)+α]+\mathcal L_{DT} = \sum_{i \in \{RGB,IR\}} \sum_{\mathbf p} A_i(\mathbf p)[d^+_i(\mathbf p)-d^-+i(\mathbf p)+ \alpha]_+ LDT​=i∈{RGB,IR}∑​p∑​Ai​(p)[di+​(p)−d−+i(p)+α]+​
α\alphaα是预设的边界,di+(p),di−(p)d^+_i(\mathbf p),d^-_i(\mathbf p)di+​(p),di−​(p)是anchor和重建的正例或负例之间的距离,
di+(p)=∥fia(p)−f^ip(p)∥2,di−(p)=∥fia(p)−f^in(p)∥2d^+_i(\mathbf p) = \|\mathbf f^a_i(\mathbf p)-\hat{\mathbf f}^p_i(\mathbf p)\|_2,\\ d^-_i(\mathbf p) = \|\mathbf f^a_i(\mathbf p)-\hat{\mathbf f}^n_i(\mathbf p)\|_2 di+​(p)=∥fia​(p)−f^ip​(p)∥2​,di−​(p)=∥fia​(p)−f^in​(p)∥2​
重建的特征正负图像和锚点的相似特征的集合。我们的损失函数迫使负样例中的相似特征聚集在嵌入空间中,只是和正例相比距离较远。这类似于三元组损失,但是,此处会惩罚锚和正例负例中的距离。这种局部关联有可能是因为CMAlign模块以概率的方式在RGB和IR人物图像之间执行密集交叉模式的对齐。

3. 实验结果对比

3.1 SYSU-MM01

mAP Rank1 Rank5 Rank10 Rank20 mINP
expAT 38.61% 38.57% 76.64% 86.39%
HeCenLoss 53.57% 56.59% 82.48% 89.17% 94.35% 37.81%
LbA 57.51% 61.68% 93.10% 97.17% 57.51%

3.2 RegDB(T->V)

mAP Rank1 Rank5 Rank10 Rank20 mINP
expAT 66.51% 67.45%
HeCenLoss 81.46% 89.30% 96.41% 98.16% 64.81%
LbA 67.64% 74.17%

后面的实验结果效果比较理想具体可以参考原论文。
阅读图像匹配的相关原理SuperGlue

4. SuperGlue

阅读本文章的主要目的是学习self-attention和cross-attention的原理和使用。

现有的疑问:superglue输入的是两个特征相似的图像,在针对不同图像的特征则会出现很大的问题。

4.1 解决的问题

匹配两个集合中不同的局部特征。

4.2 架构原理解析

图像之间的对应应该满足条件:

  • 一个关键点在另一张图片中最多只能找到一个对应
  • 有效的匹配模型不仅能够找到相应的对应点,该应该识别出不匹配的关键点

那么SuperGlue本质上就成为了一个优化问题,其成本由神经网络预测。

4.2.1 模型形式化

给定两张图片A和B,其中有一系列关键点和视觉描述符号p,d\mathbf {p,d}p,d ——局部特征的表示则可以是(p,d)\mathbf {(p,d)}(p,d).

其中,位置描述pi:=(x,y,c)i\mathbf p_i := (x,y,c)_ipi​:=(x,y,c)i​包含了一个检测置信度。视觉描述di∈RD\mathbf d_i \in \mathbb R^Ddi​∈RD可以由传统的网络提取出来。A和B有局部特征:A:={1,...,M},B:={1,...,N}\mathcal A:=\{1,...,M\},\mathcal B:=\{1,...,N\}A:={1,...,M},B:={1,...,N}。

Partial Assignment:

两个约束表示来自于两组关键点应该存在部分赋值,为了整合到之后的模块并且提高可解释性,每一对对应点都应该有一个置信度,这样就出现了软赋值矩阵P∈[0,1]M×N\mathbf P \in [0,1]^{M\times N}P∈[0,1]M×N:
P1N≤1MP⊤1M≤1N\mathbf {P 1}_N \leq \mathbf 1_M \\ \mathbf {P^{\top}1}_M \leq \mathbf 1_N P1N​≤1M​P⊤1M​≤1N​
由此可得出神经网络的目的就是从两个局部特征集合中预测赋值矩阵P\mathbf PP。

4.2.2 注意力结构神经网络

除了关键点的位置和视觉表示,其他的细节特征也能提高模型的准确性。第二张图的关键点可以通过比较候选匹配或者从总体明确线索来估计相对光或几何变换帮助解决歧义。

当有模棱两可的匹配时,人们会首先仔细观察两张图片,筛选暂定的匹配关键点,寻找有助于真实配对的可区分的上下文线索,这样就可以将注意力集中在特定的位置来执行迭代过程。

首先涉及一个注意力图卷积网络作为SuperGlue的主要模块,给定初始特征,通过计算结合这些特征计算匹配描述符fi∈RD\mathbf f_i \in \mathbb R^Dfi​∈RD。模态内外大规模的特征聚集对鲁邦的匹配更重要。

关键点编码器:

每一个关键点i的最初表示 (0)xi^{(0)}\mathbf x_i(0)xi​包括其视觉表示和位置。将其关键位置嵌入到一个高维向量的MLP中。
(0)xi=di+MLPenc(pi)^{(0)}\mathbf x_i = \mathbf d_i + MLP_{enc}(\mathbf p_i) (0)xi​=di​+MLPenc​(pi​)
编码器使图网络结合外观和位置进行联合推理,尤其是与注意力结合时,也是语言处理中位置编码器的一个实例。

多维度图神经网络:

无向图的两种边:

  • intra-image edges/self edges:连接同一图片中关键点k和其他所有关键点。
  • inter-image edges/cross edges:连接不同图片中关键点和其他所有的关键点。

使用message passing formulation来传播不同类型变的信息。

(l)xiA^{(l)}\mathbf x_i^A(l)xiA​是l层中A图片元素i的中间表示。message mε→i\mathbf m_{\varepsilon \rarr i}mε→i​是所有关键点{j:(i,j)∈ε}\{j:(i,j)\in \varepsilon\}{j:(i,j)∈ε}的集合,ε∈{εself,εcross}\varepsilon \in \{\varepsilon_{self},\varepsilon_{cross}\}ε∈{εself​,εcross​},A中所有i的更新公式可以表示为:
(l+1)xiA=(l)xiA+MLP([(l)xiA∥mε→i])^{(l+1)}\mathbf x_i^A = ^{(l)}\mathbf x^A_i + MLP([^{(l)} \mathbf x^A_i \| \mathbf m_{\varepsilon \rarr i}]) (l+1)xiA​=(l)xiA​+MLP([(l)xiA​∥mε→i​])
[⋅∥⋅][\cdot \| \cdot][⋅∥⋅]表示拼接操作。

将具有不同参数的固定数量的层连接起来,并沿不同类型的边交替聚合,从第一层l=1开始,之后当l为奇数时ε=εself\varepsilon = \varepsilon_{self}ε=εself​.之后当l为偶数时,ε=εcorss\varepsilon = \varepsilon_{corss}ε=εcorss​.

注意力聚合:

使用注意力机制来计算mε→i\mathbf m_{\varepsilon \rarr i}mε→i​。self-edges是基于自注意力,cross-edges是基于跨注意力。对于一次查询,i的表示,查询qi\mathbf q_iqi​,一些元素的值vj\mathbf v_jvj​是基于它们的属性kj\mathbf k_jkj​。具体公式如下:
mε→i=∑j:(i,j)∈εαijvj\mathbf m_{\varepsilon \rarr i} = \sum_{j:(i,j)\in \varepsilon} \alpha_{ij}\mathbf v_j mε→i​=j:(i,j)∈ε∑​αij​vj​
αij=Softmaxj(qi⊤kj)\alpha_{ij} = Softmax_j (\mathbf q^{\top}_i \mathbf k_j)αij​=Softmaxj​(qi⊤​kj​)

关键字,查询和值通过类似于图神经网络中深度特征的线性投影进行计算,考虑到查询关键点i是Q图像和S中所有源关键点。(Q,S)∈{A,B}2(Q,S) \in \{A,B\}^2(Q,S)∈{A,B}2,我们可以这样表示:
KaTeX parse error: Unknown column alignment: \ at position 85: …[\begin{array} \̲ ̲{\mathbf k_j} \…
每一层l都有自己对应的参数,所有图像中的关键点都学习共享参数,实践中通过multi-head来提高表现力。

网络学习基于特定属性的关键点子集,公式提供最大可能的灵活性。SuperGlue可以基于外观和关键点位置来检索因为他们在表示层xi\mathbf x_ixi​中编码。这包括关注附近的关键点并检索相似或显著得到关键点的相对位置。这将使得集合变化和赋值可以表示,最后的比配描述可以被描述为线性投影:
fiA=W⋅(L)xiA+b,∀i∈A\mathbf f^A_i = \mathbf W \cdot \ ^{(L)}\mathbf x^A_i + \mathbf b, \forall i \in \mathcal A fiA​=W⋅ (L)xiA​+b,∀i∈A

4.2.3 损失函数

设计中,图卷积网络和优化匹配层是不同的,这使得从匹配到视觉描述的反向传播成为可能,SuperGlue从真实值匹配M={(i,j)⊂A×B}\mathcal M= \{(i,j) \subset \mathcal {A \times B}\}M={(i,j)⊂A×B}。使用姿态和深度图或相近特征来估计真实值的相对变换,如果他们在附近没有任何投影,那么可以让标记的关键点I⊆A,J⊆B\mathcal {I \subseteq A , J \subseteq B}I⊆A,J⊆B不匹配。给定标签的情况下,可以使用对数似然函数计算损失:
Loss=−∑(i,j)∈Mlog⁡P‾i,j−∑i∈Ilog⁡P‾i,N+1−∑j∈Jlog⁡P‾M+1,jLoss = - \sum_{(i,j) \in \mathcal M} \log \overline {\mathbf P}_{i,j} \\ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~~~ ~~~~ ~~~~~~~~~~~~~~ -\sum_{i \in \mathcal I} \log \overline {\mathbf P}_{i,N+1} - \sum_{j \in \mathcal J} \log \overline {\mathbf P}_{M+1,j} Loss=−(i,j)∈M∑​logPi,j​                                          −i∈I∑​logPi,N+1​−j∈J∑​logPM+1,j​
这种损失的目的是最大限度的提高匹配精确度和召回率。

行人重识别论文阅读14-Learning by Aligning- Visible-Infrared Person Re-identification相关推荐

  1. 【行人重识别论文阅读笔记——VPM】

    [阅读心得] 行人重识别经典论文--VPM 写在前面 1. Abstract 2. Introduction 3. VPM 3.1 Architecture 3.2 Inference 3.3 Sel ...

  2. 行人重识别论文阅读2-视频中基于时空相关性和拓扑学习的行人重识别(CTL)

    视频中基于时空相关性和拓扑学习的行人重识别 Spatial-Temporal Correlation and Topology Learning for Person Re-Identificatio ...

  3. [行人重识别论文阅读]无监督学习发展与小结

    Unsupervised domain adaptation (UDA) for person re-ID. UDA methods have attracted much attention bec ...

  4. [行人重识别论文阅读]Fine-Grained Shape-Appearance Mutual Learning for Cloth-Changing Person Re-Identification

    论文地址 论文代码:暂无 文章思想 在上篇文章中我们引入了sketch(行人轮廓图)的思想去解决换衣问题,但是我们会在实践中发现sketch的优劣性严重影响了最后实验结果的好坏.此篇论文的核心思想就提 ...

  5. [行人重识别论文阅读]Invariance Matters: Exemplar Memory for Domain AdaptivePerson Re-identification

    论文链接:https://arxiv.org/abs/1904.01990 代码:https://github.com/zhunzhong07/ECN Abstract 1.传统的无监督方法只关注于缩 ...

  6. 行人重识别论文阅读(2021.7.3-7.11)

    一 各种方法性能比较 Method Key Market  r1 Market mAP Duke r1 Duke mAP (1)BOT global+BNNeck 94.5 84.5 86.4 76. ...

  7. [行人重识别论文阅读]AlignedReID: Surpassing Human-Level Performance in Person Re-Identification

    论文地址: 代码地址: Abstract 摘要部分明确提出了本文的重要思想,利用局部特征学习影响全局特征学习,并指出局部特征的学习方法是通过计算局部特征间的最短距离进而aligned局部特征. 原文: ...

  8. 行人重识别 代码阅读(来自郑哲东 简单行人重识别代码到88%准确率)

    来自郑哲东 简单行人重识别代码到88%准确率 阅读代码 prepare.py 数据结构 部分代码 一些函数 model.py ClassBlock ResNet50 train.py 一些参数 使用f ...

  9. 行人重识别论文--A Bottom-up Clustering Approach to Unsupervised Person Re-identification

    A Bottom-up Clustering Approach to Unsupervised Person Re-identification 目录 A Bottom-up Clustering A ...

  10. ECCV2022 行人重识别论文汇总

    跨模态reid 971 Optimal Transport for Label-Efficient Visible-Infrared Person Re-Identification 3677 Cou ...

最新文章

  1. mysql-4.0.20 use on scounix 5.0.7 error :dynamic linker:..:could not open libgthreads.so help!!!!
  2. python培训班靠谱的-Python培训机构就业靠不靠谱?
  3. 基于Linux C的socketEthereal程序和Package分析 (一个)
  4. 1.c++中初始化列表和构造函数初始化的区别是什么?2.类的成员变量的初始化顺序是按照声明顺序吗?
  5. 查看oracle 用户执行的sql语句历史记录
  6. Netty 的基本简单实例【服务端-客户端通信】
  7. spring resttemplate中的转码
  8. 区块链技术:颠覆性革命浪潮的开始
  9. 解决自己电脑VMware打开虚拟机黑屏问题
  10. 二叉搜索树第k小元素
  11. 【限时免费】云计算时代的安全和智能运维(11月18日周六|广州)
  12. 如何用Python实现杨辉三角和心
  13. 计算机组成原理白中英第四章,白中英计算机组成原理第四章答案.ppt
  14. iOS项目内购(IAP)纯代码
  15. Python(六)基于 TCP/UDP 协议通信的简单套接字编程
  16. 为什么光标停在表格中间_在word光标处粘贴一表格,结果表格跑到别的位置,为啥?...
  17. HackerRank python练习——Quartiles
  18. 哪种机械键盘更适合打游戏? 机械键盘5种常用机械轴详细介绍
  19. 高层建筑的定义及分类
  20. 超强PCB布线设计经验谈附原理图

热门文章

  1. 威联通 ※ 群晖 虚拟机性能对比 我可能要碰瓷 eSir
  2. java实现上传寸照并剪裁,给寸照换背景_用java处置图片(jpg,png,gif.)的背景颜色
  3. google 常用的技术搜索关键词
  4. 3DMax制作下雨场景
  5. 关于springboot自动注入出现Consider defining a bean of type 'xxx' in your configuration问题解决方案...
  6. 3D图像线性插值算法实现
  7. 8、共射放大电路一般性质与放大电路的直流偏移
  8. Qualcomm MPM introduction
  9. wireshark TCP协议首选项配置详解
  10. 《菜根谭》原文附译文