Self-Supervised Gait Encoding with Locality-Aware Attention for Person Re-Identification阅读

文章简介:基于局部感知注意力的自监督步态编码行人再识别方法

在这里插入图片描述
文章出处:IJCAI2020。作者单位:中科院深圳先研院,国防科技大学等。code is available at https://github.com/Kali-Hac/SGE-LA

摘要: 基于步态的行人再识别(Re-ID)在安防应用中具有重要价值,而仅使用3D骨骼数据提取有辨别力的步态特征用于Re-ID是一个新兴的开放课题。现有的方法要么采用手工特征,要么通过传统的监督学习模式学习步态特征。与之前的方法不同,我们首次提出了一种通用的步态编码方法,该方法可以利用未标记的骨架数据以自监督的方式学习步态表征。具体来说,我们首先提出通过自监督方法,学习重构与输入骨架序列逆序的序列,这有利于学习更丰富的高级语义和更好的步态表示。其次,由于运动的连续性,时间上相邻的骨架点的位置变化的较高的相关性(“locality”),我们提出了一种局部感知(locality-aware)注意机制,该机制致力于在重建当前骨架时学习更大的注意力权重,以便在编码步态时学习局部性。最后,我们提出了基于注意力的步态编码(AGEs),该编码使用由位置感知注意力学习的上下文向量来构建,作为最终的步态表征。AGEs直接用于实现有效的行人再识别。我们的方法比较现有的基于骨架的方法提高了10-20%的Rank-1精度,并且在额外的RGB或深度信息的情况下,可以达到与多模态方法相当甚至更好的性能。

文献动机
对于行人再识别来说,步态是有用的人体特征之一。现有的生理和心理研究[Murray et al., 1964; Cutting and Kozlowski, 1977]提出,不同的人类个体有不同的步态特征,其中包含许多独特的和相对稳定的模式(例如,步幅长度和身体关节角度)。
在步态分析领域,步态可以通过两种方法来描述:
a) Appearance-based methods基于外观的方法[Zhang et al.,2019]。该方法从对齐的图像序列中利用人体轮廓来描述步态。然而,这类方法容易受到体型和外观变化的影响。
b) Model-based methods基于模型的方法 [Liao et al., 2020] ,通过人体结构和人体关节运动来建模步态。与基于外观的方法不同,基于模型的方法具有尺度和视角不变性[Nambiar et al., 2019],在实践中具有更好的鲁棒性。

在各种模型中,3D骨架模型通过人体关键关节的三维坐标来描述人体,是一种对人体结构和运动的高效表达[Han et al., 2017]。与RGB或深度图像相比,3D骨架具有鲁棒性更好、数据量小得多的优点,而且在现代设备如Kinect中很容易收集到。因此,利用3D骨骼数据进行步态分析对下游任务如Re-ID(如图1所示)有着较好的应用前景。

在这里插入图片描述

传统的手工特征方法和深度学习的有监督学习策略有着一定的不足之处。本文作者首次提出了一种具有局部感知注意机制的自监督方法,该方法只需要无标签的3D骨架数据进行步态编码。首先,通过引入某种自监督信息作为高级学习目标,不仅使我们的模型能够从无标签的骨架数据中学习步态表征,而且还促使模型捕获更丰富的高级语义(例如,序列顺序,身体部分运动)和更有区别的步态特征。具体地说,我们提出了一个自监督学习目标,其目的是重建输入的骨架序列的倒序,这是由一个编码器-解码器架构来实现。第二,由于运动的连续性导致小的时间间隔内[Aggarwal and Cai,1999]姿态/骨架有非常小的变化,这赋予骨架序列以局部性: 对于骨架序列中的每个骨架帧,其在局部上下文中的时间上相邻的骨架帧与其自身具有更高的相关性。因此,为了实现更好的骨架重建和步态表示学习,我们提出了位置感知注意机制,将这种局部性融入步态编码过程。最后,我们利用所提出的位置感知注意机制学习的上下文向量来构建基于注意力的步态编码Attentionbased Gait Encodings (AGEs)作为最终的步态表示。我们证明,AGEs是在没有骨架序列标签的情况下习得的,可以直接应用于人的重新识别,并获得高度竞争性的性能。

3D骨架是一种较好的人体模型。仅使用3D骨骼数据提取有辨别力的步态特征用于Re-ID是一个新兴的开放课题,然而从3D骨架序列数据中提取或学习辨别步态特征的方法仍有待探索。大多数现有的工作,要么采用手工特征,要么通过传统的监督学习模式学习步态特征。如[Barbosa et al.,2012] 依靠手工制作的骨架描述符。然而,设计这样的手工描述符通常是复杂而乏味的,例如,[Andersson and Araujo, 2015]从人体测量和步态属性的角度定义了80个关节描述符,用于Re-ID。此外,他们严重依赖领域知识,如人体解剖学[Yoo et al., 2002],因此难以挖掘超出人类认知的潜在步态特征的能力。为了缓解这一问题,最近少部分研究像[Haque et al., 2016]那样利用深度神经网络来自动学习步态表征。然而,它们都遵循经典的监督学习范式,并需要标记数据,因此它们不能执行步态表征学习与未标记的骨架数据。

三、 贡献

  1. 文章提出了一种基于反向顺序骨架重建和编码器解码器模型的自监督方法,使我们能够利用无标签的骨架序列学习有区别性的步态表征。
  2. 为了更好地进行骨架序列重建和步态编码,我们提出了一种位置感知注意机制来挖掘骨架序列的局部显著性。
  3. 提出AGEs作为新的步态表征,被证明对行人再识别是非常有效的。

在这里插入图片描述

方法

在这里插入图片描述

### 自监督高光谱图像去噪中的解混合扩散方法 #### 方法概述 自监督学习框架下的高光谱图像(HSI)去噪旨在利用未标记的数据来提升模型性能。解混合扩散(Unmixing Diffusion)作为一种创新的方法,在这一领域取得了显著进展[^1]。 该技术的核心在于通过模拟物理过程中的扩散现象,逐步去除噪声成分的同时保持原始信号特征不变。具体来说,算法会迭代地调整像素间的相互关系,使得相邻区域内的纯净光谱信息得以保留并增强,而随机分布的噪音则被有效抑制。 #### 关键步骤解析 ##### 数据预处理阶段 为了适应后续操作需求,输入的含噪HSI需经过标准化转换等初步处理措施: ```matlab % 假设hsi_data为读取到内存中的三维数组形式的高光谱影像数据 mean_val = mean(hsi_data(:)); std_val = std(hsi_data(:)); normalized_hsi = (hsi_data - mean_val) / std_val; ``` ##### 解混合建模部分 构建基于先验知识指导的空间-波谱联合表示空间,用于区分目标物质与背景干扰项之间的差异特性: ```python import torch.nn as nn class UnmixingDiffusionModel(nn.Module): def __init__(self, input_channels, hidden_layers=3, num_features=64): super().__init__() layers = [] current_dim = input_channels for _ in range(hidden_layers): next_dim = max(num_features // 2**(hidden_layers-_), 16) conv_layer = nn.Conv3d(current_dim, next_dim, kernel_size=(3, 3, 3)) act_func = nn.ReLU() layers.extend([conv_layer, act_func]) current_dim = next_dim self.unmixer = nn.Sequential(*layers) def forward(self, x): return self.unmixer(x) ``` 此处采用卷积神经网络(CNNs),特别是针对多维张量设计的Conv3D层作为主要组件之一,有助于捕捉局部上下文依赖性以及跨频带间潜在关联结构。 ##### 扩散机制引入环节 定义损失函数引导参数优化方向,并融入正向/反向传播路径上的动态变化规律以促进更优解收敛速度加快: ```python def diffusion_loss(clean_signal_estimation, noisy_input, beta_schedule='linear'): T_max = len(beta_schedule) timesteps = np.random.randint(0, high=T_max, size=noisy_input.shape[0]) noise_level = get_noise_levels(timesteps=timesteps, schedule_type=beta_schedule) noised_samples = add_gaussian_noise(noisy_input, scale=noise_level) predicted_clean = model(noised_samples) mse_per_sample = ((predicted_clean - clean_signal_estimation)**2).sum(dim=[1,2,3]) weighted_mse = mse_per_sample * compute_weights_from_timestep(timesteps) return weighted_mse.mean() # 辅助功能实现细节省略... ``` 此段代码片段展示了如何计算不同时间步长下加权均方误差(MSE),并通过最小化这种度量值促使估计结果逼近真实情况。 #### 实验验证效果评估 实验表明,相较于传统手段而言,运用上述策略能够获得更加理想的视觉质量改善程度及定量指标得分改进幅度。值得注意的是,实际应用过程中还需考虑诸如计算资源消耗等因素的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值