论文
1 Introduction
1.1 旧方法
① 将步态轮廓压缩为一张图(损失了时序信息与细粒度系信息)
② 直接从原始步态轮廓序列中提取特征(极易受到外部条件影响)

1.2 我们提出的方法
步态序列可以看做一个周期,而特定帧有其特定的步态形态,人类很容易可以复原打乱的步态序列的顺序。因此,顺序信息不必需提供给网络,而将步态序列帧看做一个个具有位置信息的帧组成的集合,网络可以通过学习得到序列的时序信息。

基于步态具有位置信息的假设,我们提出了一个端到端的网络,并且具有以下的三大优点:
① 灵活:输入不受到约束
② 快速:直接对二维剪影序列进行特征提取,减少计算(相比于机器学习方法)
③ 高效:缓解协变量影响,提高鲁棒性与泛化能力

2 Related Work
受到PointNet(处理点云信息)的启发,采用了无序集作为网路输入数据。点云模型是三维图形的一种表示模型,点云具有顺序无关性。PointNet利用无序集可以避免量化带来的噪声和数据扩展,并获得高性能。

3 GaitSet
3.1 主干网络简介
F:通过卷积层,得到序列的帧级别特征
G:通过集合池化(Set Pooling),将帧级别特征映射到集合级别特征
H:通过水平金字塔映射,学习集合级别特征的判别性表示


3.2 集合池化(Set Pooling)
作用:集合元素的步态信息,将帧级别特征映射为集合级别特征
两个限制:
① 必须是排列不变函数
② 接受任何数量的集合输入
SP的几个实例:
① Statistical Functions:为了满足排列不变,可以引入max,mean和median这类统计函数
② Joint Functions:上述统计函数的两种连接方式

③ Attention:利用全局信息为每个帧级特征学习一个元素级的注意映射,并对其进行细化

3.3 水平金字塔映射(Horizontal Pyramid Mapping)


① 通过划分水平条的方式来获得多尺度的特征,该算法通常划分为S个尺度,由集合池化提取后的特征图在高度尺寸上被分成2^(k-1)条
② 不同的水平条在不同的尺度上描述着不同的感受野,同时在每个尺度上描述不同空间位置的运动特征
③ 结合使用平均与最大池化策略对不同尺度的空间条信息进行提取:平均池化可以感知空间条的全局信息,最大池化可以提取最具判别性的信息,结合两种池化得到的融合特征将具有更强的判别能力
④ 通过独立权重的全连接层将特征映射到更具判别力的空间,从而获得步态特征的判别性表示
⑤ MGP模块和主网络模块分别经过HPP操作,宽度和高度这两个维度被压缩成1,2,4,8,16这样的1个维度
3.4 多层全局管道(MGP)

众所周知,浅层的网络学习局部信息以及细粒度信息,深层网络学习全局信息以及粗粒度信息。MGP的提出正是为了收集不同层次网络的集合级别特征信息。
注意,MGP后的HPM与主干网后的HPM不共享参数。
代码
1 主干网卷积网

# 基本卷积核
class BasicConv2d(nn.Module):
def __init__(self, in_channels, out_channels, kernel_size, **kwargs):
super(BasicConv2d, self).__init__()
self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, bias=False, **kwargs)
def forward(self, x):
x = self.conv(x)
return F.leaky_relu(x, inplace=True)
# 卷积核 + 池化层
class SetBlock(nn.Module):
def __init__(self, forward_block, pooling=False):
super(SetBlock, self).__init__()
self.f

本文介绍了一种新的步态分析方法,通过将步态序列视为有序集合而非压缩图,提出端到端网络,避免了时序信息丢失和外部条件影响。网络结构包括主干卷积网络、集合池化、水平金字塔映射和多层全局管道,提高了特征提取速度和模型鲁棒性。
&spm=1001.2101.3001.5002&articleId=122862976&d=1&t=3&u=4f268cf97e2c425191d81aa2ff8e1c52)
1万+

被折叠的 条评论
为什么被折叠?



