文章来源:Learning by Aligning- Visible-Infrared Person Re-identification using Cross-Modal Correspondences
本文主要解决了VI-ReID问题:从一系列跨模态的人物图像中找到目标可见或红外光图像。
假设人物图像粗略对齐,以前的方法是学习粗糙人物图像或固定部分级别的人物表示,而这些表示在不同模式中是有区别的,现有的方法裁剪的人物图像又不一定对齐,这会影响模型的效率。
本文提出了一种利用跨模态图像之间的密集对应关系,以统一的方式解决了问题,允许在像素级别解决跨模态差异,从而更有效地抑制来自行人表示的模态相关特征。也促进了跨模态特征之间的像素级关联。
特征提取和特征对齐和特征评估
相应的,评估可以分为三部分:ID loss, ID consistency loss, dense triplet loss.
后两者使用匹配概率并鼓励同一标签的两个模态的特征在像素级别相互重建。
浅层参数独立,深层参数共享
此处介绍IR-to-RGB对齐。
余弦距离:计算两个特征的远近
C ( p , q ) = f R G B ( p ) ⊤ f I R ( q ) ∥ f R G B ( p ) ∥ 2 ∥ f I R ( q ) ∥ 2 C(\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)∥2fRGB(p)⊤fIR(q)
∥ ⋅ ∥ \|\cdot\| ∥⋅∥表示L2 norm of a vector。 f R G B , f I R ∈ R h × 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)))
P P P则表示匹配可能性。 a r g m a x q P ( ( p , q ) ) argmax_q P(\mathbf {(p,q)}) argmaxqP((p,q))表示每一个RGB特征的匹配可能性。但是匹配可能会受到一些背景杂乱或者纹理遮挡的影响,==对背景等其他情况的鲁棒性不强。==作者提出只用前景进行对齐,原理如下所示:
f ^ R G B ( p ) = M R G B ( p ) W ( f I R ( p ) ) + ( 1 − M R G B ( p ) f R G B ( 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 W W是soft wrapping operator,使用匹配可能性聚集特征。
W ( f I R ( p ) ) = ∑ q P ( p , q ) f I R ( 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: g R G B ( p ) = ∥ f R G B ( p ) ∥ 2 \mathbf g_{RGB}(\mathbf p) = \|\mathbf f_{RGB}(\mathbf p)\|_2 gRGB(p)=∥fRGB(p)∥2。
然后定义行人掩码图: M R G B = f ( g R G B ) , 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).
作者认为:这样的处理有以下几个好处:
L = L I D + λ I C L I C + λ D T L D T \mathcal L = \mathcal L_{ID} + \lambda_{IC}\mathcal L_{IC} + \lambda_{DT}\mathcal L_{DT} L=LID+λICLIC+λDTLDT
使用GeM pooling operation. 具体应该是 FC + BN + softmax
对于重建出来的特征应该有以下要求:假设有两个模态的相同标签的特征, f ^ R G B \hat {\mathbf f}_{RGB} f^RGB可以从 f I R \mathbf f_{IR} fIR重建出来,而且 f ^ R G B \hat {\mathbf f}_{RGB} f^RGB应该和 f R G B , f I R \mathbf f_{RGB},\mathbf f_{IR} fRGB,fIR的gt有相同的标签。图像级别的表示在两个模态的正对方面应该有相同的标签。基于此,设计了图像级别的ID consistency loss,这作者说了个寂寞,感觉很难懂的样子,orz。ID一致性损失强调来自不同模态相同标签的行人图像的ID预测保持一致,从而允许抑制来自任务表示的模态相关特征。此外,重建后的特征为训练的分类器提供了额外的样本,进一步指导可判别型的特征表示学习。
ID loss学习区分性的特征表示,ID consistency loss缓解了跨模态的差异。但是这两者都专注于学习图像级别的特征表示,而没有注重于区别性的特征学习,特别是当任务图像被遮挡或没有对齐时。
所以引入DT loss,使用不同模态的特征对原始特征和重构特征进局部比较,鼓励最后图像级别的人物特征具有区分性,同时缓解像素级别的跨模态差异。
直接的解决方案是计算局部特征之间的L2距离,但是它没有考虑遮挡区域。描述不相关的行人特征使用部分区域对齐的方法不仅没有促进效果,反而会降低模型的精度。为解决此问题,提出一个co-attention map,突出RGB和IR中的行人区域。
A R G B ( p ) = M R G B ( p ) W ( M I R ( 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。也就是说,共同注意图是 M R G B ( p ) M_{RGB}(\mathbf p) MRGB(p)和 W ( M I R ( p ) ) \mathcal W(M_{IR}(\mathbf p)) W(MIR(p))的相交的部分。我们通过相同特征的正对定义共同注意图。也可以在共同注意图上使用min-max 标准化操作。
为简化操作,采样是取锚,正例和负例,其表示方式为: f ^ R G B p \hat {\mathbf f}^p_{RGB} f^RGBp是由 f R G B a 和 f I R p \mathbf f^a_{RGB}和\mathbf f^p_{IR} fRGBa和fIRp重建出来的。损失函数:
L D T = ∑ i ∈ { R G B , I R } ∑ p A i ( p ) [ d i + ( 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 α是预设的边界, d i + ( p ) , d i − ( p ) d^+_i(\mathbf p),d^-_i(\mathbf p) di+(p),di−(p)是anchor和重建的正例或负例之间的距离,
d i + ( p ) = ∥ f i a ( p ) − f ^ i p ( p ) ∥ 2 , d i − ( p ) = ∥ f i a ( p ) − f ^ i n ( p ) ∥ 2 d^+_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人物图像之间执行密集交叉模式的对齐。
– | 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% |
– | 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
阅读本文章的主要目的是学习self-attention和cross-attention的原理和使用。
现有的疑问:superglue输入的是两个特征相似的图像,在针对不同图像的特征则会出现很大的问题。
匹配两个集合中不同的局部特征。
图像之间的对应应该满足条件:
那么SuperGlue本质上就成为了一个优化问题,其成本由神经网络预测。
给定两张图片A和B,其中有一系列关键点和视觉描述符号 p , d \mathbf {p,d} p,d ——局部特征的表示则可以是 ( p , d ) \mathbf {(p,d)} (p,d).
其中,位置描述 p i : = ( x , y , c ) i \mathbf p_i := (x,y,c)_i pi:=(x,y,c)i包含了一个检测置信度。视觉描述 d i ∈ R D \mathbf d_i \in \mathbb R^D di∈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:
P 1 N ≤ 1 M P ⊤ 1 M ≤ 1 N \mathbf {P 1}_N \leq \mathbf 1_M \\ \mathbf {P^{\top}1}_M \leq \mathbf 1_N P1N≤1MP⊤1M≤1N
由此可得出神经网络的目的就是从两个局部特征集合中预测赋值矩阵 P \mathbf P P。
除了关键点的位置和视觉表示,其他的细节特征也能提高模型的准确性。第二张图的关键点可以通过比较候选匹配或者从总体明确线索来估计相对光或几何变换帮助解决歧义。
当有模棱两可的匹配时,人们会首先仔细观察两张图片,筛选暂定的匹配关键点,寻找有助于真实配对的可区分的上下文线索,这样就可以将注意力集中在特定的位置来执行迭代过程。
首先涉及一个注意力图卷积网络作为SuperGlue的主要模块,给定初始特征,通过计算结合这些特征计算匹配描述符 f i ∈ R D \mathbf f_i \in \mathbb R^D fi∈RD。模态内外大规模的特征聚集对鲁邦的匹配更重要。
关键点编码器:
每一个关键点i的最初表示 ( 0 ) x i ^{(0)}\mathbf x_i (0)xi包括其视觉表示和位置。将其关键位置嵌入到一个高维向量的MLP中。
( 0 ) x i = d i + M L P e n c ( p i ) ^{(0)}\mathbf x_i = \mathbf d_i + MLP_{enc}(\mathbf p_i) (0)xi=di+MLPenc(pi)
编码器使图网络结合外观和位置进行联合推理,尤其是与注意力结合时,也是语言处理中位置编码器的一个实例。
多维度图神经网络:
无向图的两种边:
使用message passing formulation来传播不同类型变的信息。
( l ) x i A ^{(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)∈ε}的集合, ε ∈ { ε s e l f , ε c r o s s } \varepsilon \in \{\varepsilon_{self},\varepsilon_{cross}\} ε∈{εself,εcross},A中所有i的更新公式可以表示为:
( l + 1 ) x i A = ( l ) x i A + M L P ( [ ( l ) x i A ∥ 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为奇数时 ε = ε s e l f \varepsilon = \varepsilon_{self} ε=εself.之后当l为偶数时, ε = ε c o r s s \varepsilon = \varepsilon_{corss} ε=εcorss.
注意力聚合:
使用注意力机制来计算 m ε → i \mathbf m_{\varepsilon \rarr i} mε→i。self-edges是基于自注意力,cross-edges是基于跨注意力。对于一次查询,i的表示,查询 q i \mathbf q_i qi,一些元素的值 v j \mathbf v_j vj是基于它们的属性 k j \mathbf k_j kj。具体公式如下:
m ε → i = ∑ j : ( i , j ) ∈ ε α i j v j \mathbf m_{\varepsilon \rarr i} = \sum_{j:(i,j)\in \varepsilon} \alpha_{ij}\mathbf v_j mε→i=j:(i,j)∈ε∑αijvj
α i j = S o f t m a x j ( q i ⊤ k j ) \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可以基于外观和关键点位置来检索因为他们在表示层 x i \mathbf x_i xi中编码。这包括关注附近的关键点并检索相似或显著得到关键点的相对位置。这将使得集合变化和赋值可以表示,最后的比配描述可以被描述为线性投影:
f i A = W ⋅ ( L ) x i A + 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
设计中,图卷积网络和优化匹配层是不同的,这使得从匹配到视觉描述的反向传播成为可能,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不匹配。给定标签的情况下,可以使用对数似然函数计算损失:
L o s s = − ∑ ( i , j ) ∈ M log P ‾ i , j − ∑ i ∈ I log P ‾ i , N + 1 − ∑ j ∈ J log P ‾ M + 1 , j Loss = - \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
这种损失的目的是最大限度的提高匹配精确度和召回率。