GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition

  • 摘要
  • Intro
  • GaitSet
    • 问题公式描述
    • Set Pooling
    • Horizontal Pyramid Mapping
    • Multilayer Global Pipeline
  • 训练和测试
  • 实验

论文信息:

作者:Hanqing Chao, Yiwei He, Junping Zhang, Jianfeng Feng,复旦大学

AAAI 2019

也是步态识别方向的突破性大进展之一,用步态集合取代了之前广为使用的步态能量图GEI等


摘要

本文提出的GaitSet,从集合中识别行人信息。从集合的视角,就可以不受到画面排列的影响,将不同场景下拍摄的不同视频的画面自然整合在一起,比如不同的角度,不同的穿着和携带物品等。在CASIA-B和OU-MVLP步态数据集上都取得了最好的效果。


Intro

现有的步态识别方法:

  • gait template: 丢失时间信息和细粒度的空间信息。
  • gait sequence: 3D-CNN这种包含时序信息的网络,比使用GEI等方法更难训练。必须保存不必要的序列约束,导致失去了步态识别的灵活性。

本文提出的方法是把步态看成一个步态轮廓的集合,作者的逻辑是这样的:步态可以在一个简单的周期中被表示,在一个周期内,即使轮廓的外貌被打乱,实际上我们也仍然可以通过轮廓外貌进行重新排序。这样步态序列的位置信息就不需要了,因为轮廓本身已经包含了顺序信息。

模型的输入是一个步态序列的集合,首先,使用一个CNN去提取帧级别的特征;之后,使用集合池化层去把帧级别的特征综合为一个集合级别的特征。因为这个操作是在高级别的feature map上而不是原始的轮廓上,因此可以比步态能量图等保存更多的时序和空间信息。最后,使用水平金字塔去把集合级别的特征映射到一个有区分度的空间内,以获取最终的表示。

模型特点:

  • 灵活:输入无约束,可以是任何视角、任何行走状态,任意数量的非连续轮廓。
  • 快速:模型直接学习步态的表示,而无需计算一对能量图等的相似度,因此,每个模板的表示只需被计算一次,然后计算不同样本之间的欧氏距离就可以完成识别。
  • 有效:数据集上的识别准确率被大大提高,有了很强的鲁棒性和泛化能力。

GaitSet

问题公式描述

把gait作为一个集合,给定N个人的数据集 yiy_iyi ,假设某个人的步态轮廓图服从分布 PiP_iPi ,一个人的或轮廓序列就可以被描述为 Xi={xij∣j=1,2,…,n}X_i=\{x_i^j|j=1,2,…,n\}Xi={xijj=1,2,,n} ,这里 xij∼Pix_i^j\sim P_ixijPi

在这个假设下,我们对于步态识别的任务可以描述为三个步骤:
fi=H(G(F(Xi)))f_i=H(G(F(X_i))) fi=H(G(F(Xi)))
F是从轮廓中提取帧级别的特征,G是置换不变函数,用来把结合中的帧级别特征转换为集合级别的特征,使用SP(Set Pooling)层,H用于从集合级别的特征中学习有区分度的 PiP_iPi 表征,使用水平金字塔映射(Horizontal Pyramid Mapping. HMP),XiX_iXi 是一个四个维度的张量:集合、图像通道、图像高度、图像宽度。

Set Pooling

这里需要解释一个置换不变函数(permutation invariant function),在深度学习中,它指的是 特征之间没有空间位置关系 ,如多层感知机,改变像素的位置对最后的结果没有影响:f((x1,x2,x3))=f((x2,x1,x3))=f((x3,x2,x1))f((x_1,x_2,x_3))=f((x_2,x_1,x_3))=f((x_3,x_2,x_1))f((x1,x2,x3))=f((x2,x1,x3))=f((x3,x2,x1))

SP的目的是综合步态信息在集合中,就是将维度(n,c,h,v)聚合成(1,c,h,v),将帧级别的特征转换为集合级别的特征,需要有两个约束条件:

  1. 置换不变

  2. 显示中,步态轮廓的数量可以是任意的,因此函数G应该能取任意基数的集合

为了满足约束不变性,SP需要在集合的维度利用一些统计函数,本文研究了max、mean、median.

以及两种连接上述三个统计函数的方法,1_1C是指1*1的卷积层,(4)是(3)的提高版本,因为可以从卷积层中学习到三个统计方法的权重。

另外还使用了注意力机制去提高SP的性能,这个结构可以集成到整个网络中去实现端到端训练,把原始的特征和经过1*1卷积之后的特征计算注意力,最后再在优化过的帧级别的feature map上经过一个max层即可。

Horizontal Pyramid Mapping

文献中有把feature map分成条带以用于行人重识别任务,提到了HPP,它有4个规模,因此可以帮助深度网络处理局部和全局信息,本文将HPP的思想应用于步态识别任务中,这里放一个HPP:

但本文没有使用HPP中的卷积层,而是用了一个全连接层,共有S个规模,每一层有 2s−12^{s-1}2s1 个条带,因此共有 ∑s=1S2s−1\sum_{s=1}^S2^{s-1}s=1S2s1 个条带。之后使用在池化层使用全局池化和平均池化,fs,t′=maxpool(zs,t)+avgpool(zs,t)f_{s,t}'=maxpool(z_{s,t})+avgpool(z_{s,t})fs,t=maxpool(zs,t)+avgpool(zs,t) ,最后一步是使用FC全连接层去将f’映射到有区分度的空间内。这里每个尺度的不同条带描绘了不同空间位置的特征。

Multilayer Global Pipeline

在大pipeline中的上面MGP部分,卷积网络的不同层有不同的感受野,集合级别的特征通过在不同层使用SP来提取,被相加之后放入MGP中。它的网络结构与卷积网络结构几乎相同。这里两路网络最后的HPM参数不会共享。


训练和测试

【这里为了弥补我永远看不懂的损失函数,做个补充…

(来自:https://blog.csdn.net/u013082989/article/details/83537370)

首先是 triplet loss ,是一个学习embedding用的损失函数,不用 softmax 的原因是它的类别是确定的,而 triplet loss 能够学到一个更好的embedding。

它的输入是一个三元组:<a,p,n>

  • a: anchor
  • p: positive,与a是同一个类别的样本
  • n: negtive,与a是不同类别的样本

公式:L=max(d(a,p)−d(a,n)+margin,0)L=max(d(a,p)-d(a,n)+margin,0)L=max(d(a,p)d(a,n)+margin,0) ,所以最后的优化目标是拉近a和p之间的距离,拉远a和n之间的距离。

  • easy triplets : L=0L=0L=0 ,即 d(a,p)+margin<d(a,n)d(a,p)+margin<d(a,n)d(a,p)+margin<d(a,n) ,这种情况说明a和p之间本身距离很小不需要优化;
  • hard triplets : d(a,p)>d(a,n)d(a,p)>d(a,n)d(a,p)>d(a,n) ,a和n的距离过近;
  • semi-hard triplets : d(a,p)<d(a,n)<d(a,p)+margind(a,p)<d(a,n)<d(a,p)+margind(a,p)<d(a,n)<d(a,p)+margin ,即a和n距离仍然很近,但有一个margin。

其次是online训练方法,也是本文中用到的 Batch All Triplet Loss :是指从训练集中抽取B个样本, 然后计算B个embeddings,可以产生 B3B^3B3 个triplets。

假设 B=PKB=PKB=PK 意思是P个身份的人,每个身份K个序列。

Batch All :计算一个batch_size中所有valid(hard tripletssemi-hard triplets )均值,得到loss

这里如果有很多easy triplets 的情况,会导致loss很小,所以是对valid取平均

总共可以产生 PK(K−1)(PK−K)PK(K-1)(PK-K)PK(K1)(PKK) 个triplets:

  • PK个anchor
  • K-1个positive
  • PK-K个negative

训练时的损失函数就是引用中所介绍的 Batch All Triplet Loss

测试使用的方法是,给定一个查询Q,检索gallery中所有与G。Q首先需要放入GaitSet网络中获取多尺度特征,然后将所有的特征连接到最终表示FQ中,在每个G上也应用相同的网络获得FG,最后使用欧氏距离将每个FQ与每个FG进行比较,计算排名第一的识别准确率。


实验

  • 对比了CASIA-B和OU-MVLP两个数据集上的结果

  • 另外做了消融实验:

    1. 使用相同的网络结构时,使用SET比使用GEI结果高出10%,比CL高出25%。原因有两个:1) SP基于高级的特征图提取集合特征,这样可以很好地保留时间信息,并充分处理空间信息。2) 将步态视为一个集合,可以扩大训练的数据量。
    2. SP与Attention结合后,几个统计函数中max效果最好。
    3. HPM处的参数不共享效果要更好。
  • 还考虑了GaitSet的实用性:

    1. 使用较少的轮廓数量。这里的实验逻辑感觉很好:1)随着轮廓数量的增加,精确度单调上升。2) 当样本包含超过25个轮廓时,精度接近最佳。这个数字与一个步态周期包含的帧数一致。
    2. 不同的视角。为消除轮廓数的影响做的处理:probe是10个单视角或双视角轮廓,而gallery中是有一个序列中的所有轮廓组成的。
    3. 不同的行走条件。对轮廓数的操作与(b)相同。BG和CL包含很多噪声,但种类不同,这使得二者互补,所以BG和CL组合可以调高准确率,而使用NM去替换上述二者中的任意一个都会降低精度。(“normal(NM)”、“walking with bag(BG)”、“wearing coar or jacket(CL)”)

【论文阅读】GaitSet: Regarding Gait as a Set for Cross-View Gait Recognition相关推荐

  1. 【论文阅读】investigation of different skeleton features for cnn-based 3D action recognition

    [论文阅读]investigation of different skeleton features for cnn-based 3D action recognition 这篇论文主要实验了 在使用 ...

  2. 论文阅读:EMPIRICAL ANALYSIS OF UNLABELED ENTITY PROBLEM IN NAMED ENTITY RECOGNITION

    论文阅读:EMPIRICAL ANALYSIS OF UNLABELED ENTITY PROBLEM IN NAMED ENTITY RECOGNITION1 0. Summary 由于人工打标的昂 ...

  3. 【论文阅读】CVPR 2020:GaitPart: Temporal Part-based Model for Gait Recognition

    GaitPart: Temporal Part-based Model for Gait Recognition 目录 GaitPart: Temporal Part-based Model for ...

  4. 论文阅读(3)--SPDA-CNN: Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition

    这篇文章是来自罗格斯大学的Han Zhang等人的工作.由题目可知与上一篇文章一样,本文的作者也关注到了富有语义的局部(利用Part,Part,Part,重要事情强调三遍),作者不满足于CUB-201 ...

  5. [论文阅读] ICCV2015 Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition

    Joint Fine-Tuning in Deep Neural Networks for Facial Expression Recognition 论文链接:https://ieeexplore. ...

  6. 【论文阅读】【三维目标检测】在Range view上做3D目标检测

    文章目录 BEV or Range View RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection Range ...

  7. 论文阅读 CVPR2022《Rethinking Semantic Segmentation:A Prototype View》

    回顾一下语义分割,其实可以分为两种.一种是参数化的softmax投射,另一种是部分transformer的方法--query based的方法. 再回到论文的题目 关于prototype的类似定义,可 ...

  8. 论文阅读:Stroke Based Posterior Attention for Online Handwritten Mathematical Expression Recognition

    一.问题 OHMER旨在将人类手写轨迹点的坐标转换为计算机可以处理的格式化文件,如LaTeX字符串和inkml.与在线手写文本识别问题相比,OHMER面临着两个独特的挑战:复杂的二维空间结构和较小的开 ...

  9. 【论文阅读】Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

    Abstract 卷积网络在动作识别领域带来的提升不像图像领域那么大 提出TSN,基于长距离时序建模的思想,结合时序稀疏采样(sparse temporal sampling)策略和视频级监督(vid ...

  10. 论文阅读 [TPAMI-2022] Disentangling Monocular 3D Object Detection: From Single to Multi-Class Recognitio

    论文阅读 [TPAMI-2022] Disentangling Monocular 3D Object Detection: From Single to Multi-Class Recognitio ...

最新文章

  1. python代码该怎么简化_如何简化这个python代码(从书中分配)?
  2. China .NET Conf 2019-.NET技术架构下的混沌工程实践
  3. python-类的定制
  4. Win10 和 Ubuntu 20.04 安装 face_recognition 和 dlib
  5. mysql 对部分表binlog_MySQL抑制binlog日志中的binlog部分
  6. floquet端口必须沿z轴设置_请问CST 2012 floquet中的模式设置
  7. [Python] L1-031. 到底是不是太胖了-PAT团体程序设计天梯赛GPLT
  8. php thread 例子,php多线程thread开发与应用的例子
  9. resultMap和resultType的整体的区别和联系
  10. 在未知社交网络中最大化影响力(论文翻译)
  11. 微位科技李子阳:哈耶克—未来的价值单位
  12. 核心大小1M的VIN码OCR识别核心
  13. Echart API
  14. lebel只想前面有星号,但是不想校验
  15. 分枝定界法求哈密尔登回路问题的由表及里
  16. JavaScript游戏开发(3)(笔记)
  17. 2023年NPDP报考指南,有你不知道的吗?
  18. UI设计学习教程,仅此一份
  19. 利用Oracle分区表来减少磁盘I/O冲突
  20. 视频剪辑软件,它可以满足您进行视频制作的需要,使用剪映mac版能够轻松对视频进行各种编辑

热门文章

  1. 设圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积
  2. Redis核心技术-高可靠-集群方案(客户端分片、代理分片、Redis Cluster)
  3. JAVA编程思想(二)如何面向接口编程
  4. 顺序表元素的多种删除方式——删除重复元素和删除掉所有相同元素
  5. 全网流行的黑白照片上色技术,看看飞桨开发者是如何实现的
  6. Unity 声音与录音与麦克风实时播放
  7. mysql数据库 排序中文字段_MySQL对中文进行排序的实例
  8. bldc不同载波频率_有刷CD电机好用还是无刷BLDC电机好用?该选那个?
  9. 抽样平均近似方法(SAA)
  10. Python爬虫:制作一个属于自己的IP代理模块