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

视频中基于时空相关性和拓扑学习的行人重识别

Spatial-Temporal Correlation and Topology Learning for Person Re-Identification in Videos
论文地址:Paper

解决的问题:

本文提出一个新的时空相关性和拓扑学习框架(CTL),通过建立跨尺度的时空相关性来追求有区别的和鲁棒的表示。

  • 利用一个CNN主干和一个关键点估计其从人体中提取多个粒度的语义局部特征作为图节点。通过考虑全局上下文信息和人体的物理联系,探索了一种上下文增强拓扑来构造多尺度图。
  • 设计三维图形卷积和跨尺度图形卷积,有助于跨时空和跨尺度信息的直接传播,以捕获分层的时空相关性和结构信息。通过执行这两个卷积,CTL有效挖掘与外观信息互补的综合线索,以增强表示能力。
本文的创新点:
  • 提出一个时间-空间相关联的拓扑式学习框架
  • 学习上下文增强的拓扑结构构造多尺度图,同时考虑从人体全局上下文信息和物理连接
  • 提出3D图卷积和跨尺度图形卷积模拟高阶时空依赖性和拓扑信息
细小的知识点:

行人重识别分类:

基于图像的方法:利用没有时间信息的静态图像来检索行人。

基于视频的方法:包含一段时间丰富的时空信息。可为解决这些问题提供清晰而丰富的线索。

针对遮挡问题,有文献采用姿态估计模型自适应定位行人关键点,以提取对准的行人特征,但是剧烈的视点和姿态变化以及视频中的遮挡会影响姿态估计的准确性。

本文提出一种时空相关、拓扑学习框架基于视频的行人重识别方法,有区分性和强代表性。CTL从多粒度级别提取特征,为了捕获不同的有区别的语义和不稳定的估计框架学习身体部位间的潜在跨尺度空间时间依赖性和结构信息,它可以增强特征表示,CTL使用CNN作为主干,用关键的点估计从人体中提取语义特征,将三个关键节点作为图节点,提出具有拓扑结构的上下文骨架来建立多层次图。通过考虑人体的全局背景信息和物理信息有效地模拟节点之间固有的时空关系。

使用3D图形卷积核跨尺度图形卷积有利于跨时空和跨尺度信息传播,以适应更高层的时空相关性和结构信息,通过联合执行不同的卷积,CTL可以有效地发现和总和有区别的线索,这些线索不完整且没有外观信息。

基于图片的ReID:设计有区别的手工标注的标签,距离度量学习,深度学习技术。

部分遮挡问题,不准确的检测,姿态变化的鲁棒估计:刚性条纹分割,注意机制

通常用于建模节点之间的关系。

算法概述:

在这里插入图片描述

模型的组成:关键点估计器的主干网络,上下文块,多级别3D图形卷积层(3D-GCL),多级别跨尺度图形卷积层(CS-GCL),融合块。

实验结果:
数据集和评估标准

数据集:MARS,iLIDS-VID

评估标准:CMC,mAP

训练策略:从长度可变的序列随机抽取6帧作为输入,每一个小batch有8个特征和4个视频剪辑,视频帧大小256*128,然后对数据进行增强。主干ResNet50在ImageNet上预训练,ResNet50最后一个stride设置为1,Adam优化器,初始lr为0.0003,权重衰减0.0005,总共240个epoch,后60个epoch的lr减小10倍。
在这里插入图片描述

实验结果

在MARS数据集上的比较

在这里插入图片描述

在iLIDS-VID数据集上的结果比较

在这里插入图片描述

消融研究

各部分之间的相互依存性

在这里插入图片描述

第一行是使用具有关键点估计器的主干网络来学习全局和多尺度部分特征。

第二行使用上下文增强拓扑来构造多尺度逐帧图,并使用原始GCN学习细化多尺度局部特征和全局特征。

第三行CTL用加法运算代替CS-GCL学习融合后的零件特征和局部特征

第四行是CTL的整个学习框架。

  • 上下文增强拓扑捕捉身体部位之间的内在关系以增强特征表示的有效性。
  • CS-GCL有效地捕捉了跨多个尺度的不同视觉语义,并将它们整合到一个综合的表示中。

上下文增强拓扑

在这里插入图片描述

A s m \mathbf A^m_s Asm简单的提高了图拓扑的灵活性,并且捕获了更复杂的时空相关性。

A s c \mathbf A^c_s Asc是物理拓扑的补充,并通过考虑所有节点的全局上下文信息来挖掘潜在的信息连接。

3D-GCL

在这里插入图片描述

一层的3D-GCL不足以捕捉复杂的时空信息,三层的3D-GCL会带来更多的训练参数,导致难以优化并且性能下降。

b图中3比1获得更好的性能,利用来自局部时间邻域节点的时间互补信息,为5时,由于过大的局部时间邻域节点抵消了聚集特征中的区别线索,模型性能减小。

CS-GCL

在这里插入图片描述

两层CS-GCL比一层的CS-GCL性能下降,因为两层倾向于融合大量冗余信息,削弱了表征能力。第五行通过结合更多细粒度级零件特征比其他两行获得更好的效果。

CS-GCL能够有效地从每个尺度上挖掘出不同的模式,并通过融合它们之间的互补信息来增强特征表示。

可视化结果

在这里插入图片描述

a)来自行人的不同视频帧的特征图在相同的辨别区域上具有更强的响应,这验证了CTL可以通过建模跨尺度时空相关性来提取对齐的辨别线索。

b)CTL的排名5的检索结果都是匹配的。这表明CTL有效地缓解了未对准和遮挡、视点变化等问题。

算法详述:
多尺度特征提取:

视频序列 { I t } t = 1 T \{I_t\}^T_{t=1} {It}t=1T,T是序列长度。 每一帧的特征 F = { F t ∣ F t ∈ R H × W × C } t = 1 T F = \{F_t | F_t \in R^{H \times W \times C}\}^T_{t=1} F={FtFtRH×W×C}t=1T,主干网络为ResNet50。

关键点估计自适应的定位人体关键点并以这些关键点提取对准的部分特征来对抗部分遮挡来对准和视点变化,但对复杂场景效果不是很理想。

因此需要探索具有时空相关性的多尺度部分特征,以减轻不可靠的关键点估计结果并且捕捉不同的区别语义。

在这里插入图片描述

根据特征可将人体分为三种粒度:关键点尺度(s1),低级部分尺度(s2),高级部分尺度(s3)。基于人类的自然特征麻将空间上临近的关键点合并到更粗糙的尺度的每个部分,关键点的热度图m通过关键点估计器生成,然后使用softmax函数归一化。粒度s1的语义局部特征组和全局特征组计算:
V s 1 = { v s 1 } = g G A P ( F t ⊗ m s 1 t ) V g = g G A P ( F ) \mathbf V_{s1} = \{v_{s1}\} = g_{GAP}(\mathbf F_t \otimes\mathbf m^t_{s1})\\ \mathbf {V}_g = g_{GAP}(\mathbf F) Vs1={vs1}=gGAP(Ftms1t)Vg=gGAP(F)
其中, ⊗ , g G A P \otimes,g_{GAP} ,gGAP代表乘积和全局平均池化操作。低级别局部和高级别局部的局部特征 V s 2 , V s 3 \mathbf V_{s2},\mathbf V_{s3} Vs2,Vs3使用过对每个身体部位内关键点的特征 V s 1 \mathbf V_{s1} Vs1执行平均汇集操作来计算的。

上下文增强拓扑图:

采用先进的GCN方法建模分层的时空相关性和结构信息。 G = { G s } s ∈ { s 1 , s 2 , s 3 } \mathcal G = \{\mathcal G_s\}_{s \in \{s_1,s_2,s_3\}} G={Gs}s{s1,s2,s3}是一个视频帧中的一组构造的多尺度图,其中每个图对应与一个特定的粒度级别s。具体来说, G s ( V s , E s ) \mathcal G_s(\mathcal V_s,\mathcal E_s) Gs(Vs,Es)包括节点 N s , v i ∈ V s N_s,v_i \in V_s Ns,viVs和边 e i j = ( v i , v j ) ∈ E s e_{ij}= (v_i,v_j)\in \mathcal E_s eij=(vi,vj)Es.视频帧中身体的每个部分都被视为一个节点,边代表的是这些身体部分之间的关系。t帧的节点特征表示为 X s t = V s t ∈ R N s × C , A s ∈ R N s × N s \mathbf X^t_s=\mathbf V^t_s \in \mathbb R^{N_s \times C},A_s \in \mathbb R^{N_s \times N_s} Xst=VstRNs×C,AsRNs×Ns表示对应帧级邻接矩阵,其中每个元素代表两个任意节点的连接。图的拓扑实际上有 A s A_s As决定。现有的基于GCN的重标识方法通过计算成对特征相似度来独立预测两个节点之间的关系,忽略了所有其他上下文节点的影响,只考虑了无向依赖,限制了图模型的容量和表达能力

本文提出一种上下文增强的拓扑来构建图,同时编码了沿着节点的上下文信息、时间和特征维度以及人体的物理结构信息。它由三部分组成:
A s = A s p + A s m + A s c \mathbf A_s = \mathbf A^p_s + \mathbf A^m_s + \mathbf A^c_s As=Asp+Asm+Asc
A s p ∈ { 0 , 1 } N s × N s A^p_s \in \{0,1\}^{N_s \times N_s} Asp{0,1}Ns×Ns表示人体具有丰富结构信息的物理联系,训练过程是固定的。第二项表示掩码邻接矩阵,用作对物理结构的关注,提高了静态全局结构 A s p \mathbf A^p_s Asp的灵活性和通用性,训练过程用零矩阵初始化并与其他参数一起优化。 A s c \mathbf A^c_s Asc是一个数据相关的独立邻接矩阵,它包含所有节点的全局上下文信息,并为每个样本学习一个唯一的动态拓扑图。

在这里插入图片描述

A s c \mathbf A^c_s Asc通过上下文块来学习,图4(a),给定节点特征 { X s t } t = 1 T ∈ R T × N s × C \{\mathbf X^t_s\}^T_{t=1} \in \mathbb R^{T \times N_s \times C} {Xst}t=1TRT×Ns×C,上下文块首先通过两个具有1×1核的卷积层挤压每个节点的特征和时间维度。然后,利用一个附加的1×1卷积层将 N s N_s Ns维特征向量转化为 N s × N s N_s\times N_s Ns×Ns邻接矩阵 A s c \mathbf A^c_s Asc,然后对每一行 A s c \mathbf A^c_s Asc进行L2归一化操作,实现稳定优化。当测量两个任意节点之间的关系时,上下文块充分考虑了所有其他节点的影响。

3D图卷积

在这里插入图片描述

在得到所有帧的帧级图后,使用3D图卷积有效地生成信息和更新节点特征。它允许直接跨时空信息传播,以捕捉复杂的时空相关性和时空图中的结构信息,3D-GCL首先在帧级图形序列上使用大小为 τ \tau τ的时间滑动窗口,每一个滑动窗口,时空子图 G s ( τ ) = ( V s ( τ ) , E s ( τ ) ) \mathcal G^{(\tau)}_s = (\mathcal V^{(\tau)}_s,\mathcal E^{(\tau)}_s) Gs(τ)=(Vs(τ),Es(τ)),其中 V s ( τ ) = V s 1 ⋃ . . . ⋃ V s τ \mathcal V^{(\tau)}_s = \mathcal V^1_s \bigcup ... \bigcup\mathcal V^{\tau}_s Vs(τ)=Vs1...Vsτ表示该窗口中所有节点在 τ \tau τ个视频帧上的并集、 E s ( τ ) \mathcal E^{(\tau)}_s Es(τ)表示邻接矩阵 A s ( τ ) \mathbf A^{(\tau)}_s As(τ),这样计算:
在这里插入图片描述
其中每个子矩阵指定 V i V_i Vi图节点通过帧级空间连接扩展到时间域而连接到它们自身和它们在帧j处的时间相邻接点。等式左边依然由三部分组成。块邻接矩阵 A s ( τ ) , p \mathbf A^{(\tau),p}_s As(τ),p是通过平铺每个块中的静态 A s p \mathbf A^{p}_s Asp来计算的。 A s ( τ ) , m \mathbf A^{(\tau),m}_s As(τ),m用同样的方法求得。 A s ( τ ) , c \mathbf A^{(\tau),c}_s As(τ),c由图4(b)中的高级上下文模块学习。同时,通过在 X s ( τ ) ∈ R T × τ N s × C \mathbf X^{(\tau)}_s \in \mathbb R^{T \times \tau N_s \times C} Xs(τ)RT×τNs×C上使用滑动时间窗口并进行零矩阵填充操作来构建T窗口,从而获得 X 0 = { X s t } t = 1 T ∈ R T × N s × C \mathbf X^0 = \{\mathbf X^t_s\}^T_{t=1} \in \mathbb R^{T \times N_s \times C} X0={Xst}t=1TRT×Ns×C,这是3D-GCL的输入。

第一次迭代时第t个时间窗口的3D图形卷积公式如下:
[ X s ( τ ) , l + 1 ] t = σ ( D ~ − 1 2 A ^ s , t ( τ ) D ~ − 1 2 [ X s ( τ ) , l ] t W l ) [\mathbf X^{(\tau),l+1}_s]_t = \sigma(\tilde {\mathbf D}^{- \frac 1 2} \hat {\mathbf A}^{(\tau)}_{s,t}\tilde {\mathbf D}^{- \frac 1 2}[\mathbf X^{(\tau),l}_s]_t \mathbf W^l) [Xs(τ),l+1]t=σ(D~21A^s,t(τ)D~21[Xs(τ),l]tWl)
D ~ i , i = ∑ j ( A ^ s , t ( τ ) ) i , j \tilde {\mathbf D}_{i,i}=\sum_j (\hat {\mathbf A}^{(\tau)}_{s,t})_{i,j} D~i,i=j(A^s,t(τ))i,j表示对角节点的度矩阵。 A ^ s , t ( τ ) = A s , t ( τ ) + I τ N s \hat {\mathbf A}^{(\tau)}_{s,t} = \mathbf A^{(\tau)}_{s,t} + I_{\tau N_s} A^s,t(τ)=As,t(τ)+IτNs表示自环邻接矩阵。 I τ N s I_{\tau N_s} IτNs表示单位矩阵。 W l \mathbf W^l Wl指可学习参数, σ \sigma σ代表非线性激活函数。在每一个三维GCL之后,采用一个卷积层、一个批量归一化层和一个校正线性单元层来折叠窗口维度 τ \tau τ,并输出更新的节点特征 X l + 1 ∈ R T × N s × C \mathbf X^{l+1} \in \mathcal R^{T\times N_s \times C} Xl+1RT×Ns×C。此外,采用短接 X l + 1 = X l + 1 + X l , 1 ≤ l ≤ L − 1 \mathbf X^{l+1} = \mathbf X^{l+1} + \mathbf X^{l},1 \leq l \leq L-1 Xl+1=Xl+1+Xl,1lL1进行有效和稳定的优化。通过执行多个3D-GCLs,最终获得三个粒度 X s 1 ^ , X s 2 ^ , X s 3 ^ \hat {\mathbf X_{s1}},\hat {\mathbf X_{s2}},\hat {\mathbf X_{s3}} Xs1^,Xs2^,Xs3^的细化局部特征。

跨尺度图卷积层:

实现跨尺度的信息扩散赫尔学习综合表示,本文提出跨尺度图形卷积,将局部特征的信息线索从一个尺度传播到另一个尺度,跨尺度拓扑图是一个有向图,它将一个尺度图中的节点对应到另一个尺度图中的节点。为简单起见,我们精心制作了一个从 s 2 s_2 s2 s 3 s_3 s3关联的CS-GCL。交叉标度图的相邻矩阵 A s 2 , s 3 ∈ R N s 3 × N s 2 \mathbf A_{s_2,s_3} \in \mathbb R^{N_{s_3}\times N_{s_2}} As2,s3RNs3×Ns2预测交叉标度关系。

在这里插入图片描述

如图6所示, s 2 s_2 s2中第i部分和 s 3 s_3 s3中第m部分之间的依赖关系 ( A s 2 , s 3 ) i , m (\mathbb A_{s_2,s_3})_{i,m} (As2,s3)i,m计算如下:
p i , s 2 = ∑ j = 1 N s 2 h s 2 ( [ ϕ ( x i , s 2 ) , φ ( x j , s 2 − x i , s 2 ) ] ) r i , s 2 = f s 2 ( [ x i , s 2 , p i , s 2 ] ) p i , s 3 = ∑ j = 1 N s 3 h s 3 ( [ ϕ ( x i , s 3 ) , φ ( x j , s 3 − x i , s 3 ) ] ) r i , s 3 = f s 3 ( [ x i , s 3 , p i , s 3 ] ) ( A s 2 , s 3 ) i , m = s o f t m a x ( r m , s 3 ⊤ r i , s 2 ) \mathbf p_{i,s_2} = \sum^{N_{s_2}}_{j=1}h_{s_2}([\phi(\mathbf x_{i,s_2}),\varphi(\mathbf x_{j,s_2}-\mathbf x_{i,s_2})]) \\ r_{i,s_2} = f_{s_2}([\mathbf x_{i,s_2},\mathbf p_{i,s_2}]) \\ \mathbf p_{i,s_3} = \sum^{N_{s_3}}_{j=1}h_{s_3}([\phi(\mathbf x_{i,s_3}),\varphi(\mathbf x_{j,s_3}-\mathbf x_{i,s_3})]) \\ r_{i,s_3} = f_{s_3}([\mathbf x_{i,s_3},\mathbf p_{i,s_3}]) \\ (\mathbf A_{s_2,s_3})_{i,m} = softmax(\mathbf r^\top_{m,s_3}\mathbf r_{i,s_2}) pi,s2=j=1Ns2hs2([ϕ(xi,s2),φ(xj,s2xi,s2)])ri,s2=fs2([xi,s2,pi,s2])pi,s3=j=1Ns3hs3([ϕ(xi,s3),φ(xj,s3xi,s3)])ri,s3=fs3([xi,s3,pi,s3])(As2,s3)i,m=softmax(rm,s3ri,s2)
其中, x i , s 2 ∈ R C \mathbf x_{i,s_2}\in \mathbb R^C xi,s2RC表示 X ^ s 2 \hat X_{s_2} X^s2在一个特定帧中的第i个分量。 h s 2 , f s 2 , ϕ , φ h_{s_2},f_{s_2},\phi,\varphi hs2,fs2,ϕ,φ是由具有BN层和ReLU层的全连接层实现的嵌入函数。 p i , s 2 , p m , s 3 \mathbf p_{i,s_2},\mathbf p_{m,s_3} pi,s2,pm,s3在两个尺度上将所有其他局部特征的全局关系信息聚集到第i和第m个部件。 r i , s 2 , r m , s 3 \mathbf r_{i,s_2},\mathbf r_{m,s_3} ri,s2,rm,s3是增强的全局关系特征,然后用于计算依赖性 ( A s 2 , s 3 ) i , m (\mathbf A_{s_2,s_3})_{i,m} (As2,s3)i,m内积运算和softmax函数。因此, A s 2 , s 3 \mathbf A_{s_2,s_3} As2,s3 s 2 s_2 s2中身体的影响传递给 s 3 s_3 s3中的每个部分。

给出区域 s 2 s_2 s2的局部特征 X ^ s 2 \hat {\mathbf X}_{s_2} X^s2,t帧的跨尺度卷积公式如下:
[ X ^ s 23 ] t = σ ( A s 2 , s 3 t [ X ^ s 2 ] t W s 23 ) [\hat X_{s_{23}}]_t = \sigma (\mathbf A^t_{s_2,s_3}[\hat X_{s_2}]_t\mathbf W_{s_{23}}) [X^s23]t=σ(As2,s3t[X^s2]tWs23)
其中 W s 23 \mathbf W_{s_{23}} Ws23表示参数矩阵, X s 23 ^ \hat {\mathbf X_{s_{23}}} Xs23^是变换后的局部特征。这种特征自适应地从s2中的相应身体部位收集信息线索。类似地,我们还利用另一个CS-GCL将局部特征 X s 1 ^ \hat {\mathbf X_{s_{1}}} Xs1^ s 1 s_1 s1转移到 s 3 s_3 s3,并产生转换后的局部特征 X s 13 ^ \hat {\mathbf X_{s_{13}}} Xs13^。最后,获得具有三粒度信息的综合局部特征 V p \mathbf V_p Vp:
V p = X ^ s 3 + α ( X ^ s 13 + X ^ s 23 ) \mathbf V_p = \hat {\mathbf X}_{s_3} +\alpha (\hat {\mathbf X}_{s_{13}}+ \hat {\mathbf X}_{s_{23}}) Vp=X^s3+α(X^s13+X^s23)
其中 α \alpha α是平衡参数。

模型优化

得到特征图 V p ∈ R T × N s 3 × C , V g \mathbf V_p \in \mathbb R^{T \times N_{s_3}\times C},\mathbf V_g VpRT×Ns3×C,Vg,被送入到融合全局和局部信息,在最后通过损失函数进行优化。融合块由三个部分组成:

  • 第一分支时间平均汇集层TAP生成特征向量 V f g = g T A P ( V g ) \mathbf V^g_f = g_{TAP}(\mathbf V_g) Vfg=gTAP(Vg)
  • 第二分支使用 g T A P ( ( ∑ n = 1 N s 3 [ V p ] ) : , n , : + V g ) g_{TAP}((\sum^{N_{s_3}}_{n=1}[\mathbf V_p])_{:,n,:}+\mathbf V_g) gTAP((n=1Ns3[Vp]):,n,:+Vg)生成向量 V f a \mathbf V^a_f Vfa
  • 第三分支使用 g T A P ( [ g c ( [ V p ] : , 1 , : ) , . . . , g c ( [ V p ] : , N s 3 , : ) ] + V g ) g_{TAP}([g_c([\mathbf V_p]_{:,1,:}),...,g_c([\mathbf V_p]_{:,N_{s_3},:})]+\mathbf V_g) gTAP([gc([Vp]:,1,:),...,gc([Vp]:,Ns3,:)]+Vg)产生特征向量 V f c \mathbf V^c_f Vfc,它可以促进全局特征和局部特征之间的通道式语义对齐。

这可以促使全局特征的不同通道关注不同的身体部位以提高性能。Identification loss and triplet loss是行人重识别中常用的损失, V f g , V f a , V f c \mathbf V^g_f,\mathbf V^a_f,\mathbf V^c_f Vfg,Vfa,Vfc分别代表这三种特征。此外,提出了一种多样性正则化损失来鼓励局部特征的多样性并增加最终视频表示的区分度。这种损失被表示为:
L d i v = ∣ ∣ V p V p T − I ∣ ∣ F 2 \mathcal L_{div} = ||\mathbf V_p \mathbf V^T_p - \mathbf I ||^2_F Ldiv=VpVpTIF2
其中, ∣ ∣ ⋅ ∣ ∣ F ||\cdot||_F F表示Frobenius范数。针对这一种损失, V p \mathbf V_p Vp预先应用了时间平均池化和L2归一化。

最终的损失为:
L = λ 1 ⋅ L t r i + λ 2 ⋅ L i d e + λ 3 ⋅ L d i v \mathcal L = \lambda_1 \cdot \mathcal L_{tri} + \lambda_2 \cdot \mathcal L_{ide} + \lambda_3 \cdot \mathcal L_{div} L=λ1Ltri+λ2Lide+λ3Ldiv

总结(自己的理解):

模型梳理:

  • 关键点估计主干网络:自适应地定位人体关键点并以这些关键点提取对准的部分特征来应对部分遮挡、为对准和视点变化问题。
  • 上下文增强拓扑图:构建图,并编码沿节点上下文信息时间和特征维度以及人体的物理结构信息。
  • 多级别3D图卷积:有效生成信息和更新节点特征。
  • 多尺度图卷积层:将局部特征信息线索从一个尺度传播到另一个尺度,即将一个尺度图的节点对应到另一个尺度图的节点。
  • 融合块:促使全局特征的不同通道关注不同的身体部位以提高性能。

消融实验的研究:

  • 上下文增强拓扑捕捉身体部位之间的内在关系以增强特征表示的有效性。
  • CS-GCL有效地捕捉了跨多个尺度的不同视觉语义,并将它们整合到一个综合的表示中。
  • CS-GCL能够有效地从每个尺度上挖掘出不同的模式,并通过融合它们之间的互补信息来增强特征表示。
  • 3D-GCL中层数太小会导致不能很好地利用来自局部时间邻域节点的时间互补信息,层数过大的局部时间邻域节点抵消了聚集特征中的区别线索,模型性能减小。