代码:

【Pytorch神经网络实战案例】28 GitSet模型进行步态与身份识别(CASIA-B数据集)_LiBiGor的博客-CSDN博客1 CASIA-B数据集本例使用的是预处理后的CASIA-B数据集, 数据集下载网址如下。 http://www.cbsr.ia.ac.cn/china/Gait%20Databases%20cH.asp该数据集是一个大规模的、多视角的步态库。其中包括124个人,每个人有11个视角(0,18,36,...,180),在3种行走条件(普通、穿大衣、携带包裹)下采集。1.1 CASIA-B数据集的两种形式CASIA-B数据集有视频和轮廓两种形式。1.1.1 案例讲解本例直接..https://blog.csdn.net/qq_39237205/article/details/124141716

1 步态识别思路

1.1 步态识别的本质

步态特征的距离匹配,对人在多拍摄角度、多行走条件下进行特征提取,得到基于个体的步态特征,再用该特征与其他个体进行比较,从而识别出该个体的具体身份。

1.2 步态识别的主体思路

1.2.1 神经网络的角度看待步态识别的数据集

在步态识别中,需要将一组图片作为一个样本。

从神经网络的角度来看,步态识别的组图片也只是在代表图片[H,W,C]的基础之上,多出一个张数的维度而已。

1.2.2 步态识别模型的数据处理的三种方式

整体处理:将输入数据当作一个完整的3D图片数据,来计算输入数据在三维空间里所表现的整体特征。如对整体的输入数据做3D卷积。

分散处理:将输入数据当作由多张图片组成的序列数据,先对单张图片进行特征处理,再对序列数据特征进行处理。在分散处理的过程中,又可以分为重视序列顺序关系(如基于惯性的步态识别)和不重视序列顺序关系两种做法。

混合处理:先对单张图片进行基于人形特征的预处理(如提取人形轮廓数据、人的姿态数据),再将预处理后的数据当作原始输入,进行二次处理(可以使用整体处理或分散处理)。混合处理模式更为细致,也更为灵活。

1.2 CASIA-B数据集

CASIA-B是使用最广泛的步态数据集, 包含124人的RGB和轮廓形式的多视角步态数据。从11个不同的视角进行采集,范围从0到180度,增量为18度。该数据集考虑了三种不同的行走条件,即正常行走(NM)、穿外套行走(CL)和携包行走(BG),每个人每个视角分别有6、2和2个步态序列。

CASIA-B最常用的测试协议是受试者无关协议,该协议使用前74名受试者的数据进行训练,其余50名受试者进行测试。然后将测试数据拆分为一个注册集,其中包括NM步态数据中的前四个步态序列,验证集由其余序列组成,即每个受试者每个视角的剩余2个NM、2个CL和2个BG序列,结果主要针对所有视角报告。

2 GaitSet模型

GaitSet模型属于混合处理方式,该模型的二次处理部分使用了分散处理。

2.1 预处理

GaitSet模型的预处理部分,需要对视频中抽离的图片进行基于人物识别的语义分割,得到基于人形的黑白轮廓图,如图所示。

2.1.1 轮廓图的优点

通过将轮廓图看作单通道图片,实现基于人的多帧图片被当作多通道图片进行处理,即其形状可以描述为[批次个数,帧数,高度,宽度] 与RGB状为[批次个数,通道数,高度,宽度]相似。

2.2 特征处理

2.2.1 GitSet模型分散处理

GitSet模型采用分散处理,对每一张图片计算特征,再对多个特征做聚合处理。

2.2.2 GitSet模型分散处理的核心部分

①多层全流程管线(Multlayer Global Pipeline,MGP)是一个类似FPN结构的网络模型,通过两个分支进行下采样处理,并在每次下采样之后进行特征融合。

②水平金字塔池化(HorizontalPyramid Matching,HPM)按照不同的水平尺度对特征数据进行池化,并将池化结果汇集起来,从而丰富数据的鉴别特征。

2.2.3 GitSet模型分散处理的训练

在训练时,将模型计算出的特征用三元损失(Triplet Loss)进行优化,使其计算出的特征与同类别特征距离更近,与非同类别特征距离更远。

在使用时,具体步骤如下。
(1)对人物视频进行抽帧采样。
(2)对采样数据进行处理,生成轮廓图。
(3)将多张轮廓图输入模型得到特征。
(4)将该特征与数据库中已有的特征进行比较,找到与其距离最近的特征,从而识别出人物身份。

3 完整GitSet模型流程图

4 多层全流程管线

主要分为两个分支:一个是主分支,另一个是辅助分支。

4.1 主分支

主分支用于对从视频分离出来的多帧数据,基于全部图片的特征进行处理。

采用两次卷积+一次下采样的操作进行特征计算与降维处理。

4.2 辅助分支

辅助分支用于对从视频分离出来的多帧数据,某于帧的特征进行处理。

辅助分支与主分支的处理同步,并对每次下采样后的数据讲行特征提取,将提取后的帧特征融合到主分支的特征处理结果里。

4.3 多层全流程管线处理流程图

(1)在主分支中,对每一帧数据进行卷积外理。
(2)在主分支中,对卷积处理的结果进行下采样处理。
(3)将下采样结果分为两份,一份用于主分支,另一份用干辅助分支。
(4)在主分支中,对下采样结果进行基于帖特征的提取。
(5)在主分支中,对第(4)步的结果做卷积损作。
(6)在辅助分支中,继续对下采样结果做卷积操作。
(7)在辅助分支的卷积操作之后,进行一次下采样,并对下采样结果讲行基于特征的提取。
(8)在主分支中,也同步做一次下采样。
(9)将第(6)和(7)步的结果融合起来。
(10)继续重复第(5)~(9)步的步骤。重复次数与网络规模和输入尺寸右关其中第(4) 和(7) 步基于帧的特征提取部分使用了多特征集合池化(Set Pool in a)方法。经过测试发现直接使用取最天值池化的方法效果更好,而且该方法更为简单。
第(9) 步融合特征的方式使用的是直接相加, 也可以用cat函数将其拼接在一起, 在本例中,使用的是简单相加。

卷积神经网络的不同层能够识别不同的特征,通过深层卷积的组合,可以增大模型在图片中的理解区域。同时在主管道中,融合了从不同层提取的帧级特征,使得模型计算的特征中含有更丰富的整体特征。

5 水平金字塔池化

水平金字塔池化是来自行人再识别(Person Re-l dentification) 任务中的一种技术。它充分地利用了行人的不同局部空间信息,使得在重要部件丢失的情况下,仍能正确识别出候选行人, 增强了行人识别的健壮性(参见arXiv网站上编号为“1811.06186”的论文)。

5.1 行人再识别任务

行人再识别任务是从图片或者视频序列中找到特定行人的任务。

该任务属于图像检索任务中的一种,常常与行人检测、行人跟踪任务一起被应用在智能视频监控、智能安保等领域。

5.2 HPM模型的做法和原理

5.2.1 HPM模型的做法

将图片按照不同的水平尺度分成多个部分, 然后将每个部分的全局平均池化和全局最大池化特征融合到一起。

5.2.2 HPM模型的结构

这种做法相当于引入了多尺度的局部信息互助作用来缓解不对齐引起的离群值问题。其中每个局部的信息通过全局平均池化与全局最大池化策略结合得到的融合特征更具有判别能力。

全局平均池化:可以感知空间条的全局信息,并将背景上下文考虑进去。
全局最大池化:实现提取最具判别性的信息并忽略无关信息(如背景、衣服等)。

5.2.3 HPM模型在步态识别实例的作用

使用HPM模型作为整个网络的最后部分, 对全连接层的特征进行优化,提升了特征的整体鉴别性。

6 三元损失

三元损失是根据3张图片组成的三元组计算而得的损失 ,常用于基于样本特征进行匹配的模型中,如人脸识别、步态识别、行人再识别等任务的模型中。

6.1 三元损失算法图解

在每次提取特征时,同步输入与该样本相同类别和不同类别的两个样本。利用监督学习使该样本特征与相同类别的样本特征间的差异越来越小,与不同类别的样本特征间的差异越来越大。

如上图所示,通过监督学习,可以让输入样本经过网络计算之后的特征与相同类别的样本特征距离更近,与不同类别的样本特征距离更远。

三元损失训练的模型,最终将使相同类别的特征会更加相似,解决样本特征指向不明确的问题。

6.2 三元损失的使用

在使用三元损失时,常会直接将一批次的输入数据进行内部两两交叉,并从中分出正向样本(类内距离)和负向样本(类间距离)。这种方式可以保证与其他损失计算的接口统一,而又不需要额处开发选取正/负样本的功能。

6.2.1 三元损失中的间隔margin

6.2.2 三元损失的模式hard与full

full模式(默认): 对所有的正向样本和负向样本进行损失值的计算。

hard模式:只对最小的正向样本和最大的负向样本进行损失值的计算, 目的在于优化特征并使其指向偏离最大的样本,运算量会更小。

【Pytorch神经网络理论篇】 35 GaitSet模型:步态识别思路+水平金字塔池化+三元损失相关推荐

  1. 【Pytorch神经网络理论篇】 23 对抗神经网络:概述流程 + WGAN模型 + WGAN-gp模型 + 条件GAN + WGAN-div + W散度

    1 对抗神经简介 1.1 对抗神经网络的基本组成 1.1.1 基本构成 对抗神经网络(即生成式对抗网络,GAN)一般由两个模型组成: 生成器模型(generator):用于合成与真实样本相差无几的模拟 ...

  2. 【Pytorch神经网络理论篇】 06 神经元+神经网络模型+全连接网络模型

    1 神经元 1.1 概述 1.1.1 神经网络 神经网络:一种人工模仿动物中枢系统的数学模型,用于对函数进行近似估计 1.1.2 神经元 神经网络的基本单位是神经元. 神经元是一种处理单元,是对人脑组 ...

  3. 【Pytorch神经网络理论篇】 30 图片分类模型:Inception模型

    1 Inception系列模型 Incepton系列模型包括V1.V2.V3.V4等版本,主要解决深层网络的三个问题: 训练数据集有限,参数太多,容易过拟合: 网络越大,计算复杂度越大,难以应用: 网 ...

  4. 【Pytorch神经网络理论篇】 27 图神经网络DGL库:简介+安装+卸载+数据集+PYG库+NetWorkx库

    DGL库是由纽约大学和亚马逊联手推出的图神经网络框架,支持对异构图的处理,开源相关异构图神经网络的代码,在GCMC.RGCN等业内知名的模型实现上也取得了很好的效果. 1 DGL库 1.1 DGL库的 ...

  5. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

    1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...

  6. 【Pytorch神经网络理论篇】 34 样本均衡+分类模型常见损失函数

    同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深 ...

  7. 【Pytorch神经网络理论篇】 39 Transformers库中的BERTology系列模型

    同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深 ...

  8. 【Pytorch神经网络理论篇】 31 图片分类模型:ResNet模型+DenseNet模型+EffcientNet模型

    1 ResNet模型 在深度学习领域中,模型越深意味着拟合能力越强,出现过拟合问题是正常的,训练误差越来越大却是不正常的. 1.1 训练误差越来越大的原因 在反向传播中,每一层的梯度都是在上一层的基础 ...

  9. 【Pytorch神经网络理论篇】 29 图卷积模型的缺陷+弥补方案

    图卷积模型在每个全连接网络层的结果中加入了样本间的特征计算.其述质是依赖深度学特征与缺陷. 1.1 全连接网络的特征与缺陷 多层全连接神经网络被称为万能的拟合神经网络.先在单个网络层中用多个神经元节点 ...

最新文章

  1. 【机器学习入门】(3) 朴素贝叶斯算法:多项式、高斯、伯努利,实例应用(心脏病预测)附python完整代码及数据集
  2. 数据仓库与数据挖掘的一些基本概念
  3. leetcode算法题--视频拼接
  4. MYSQL 取随机记录的方法
  5. LeetCode(15):三数之和
  6. Java Persistence with MyBatis 小结2
  7. Java 算法 能量项链
  8. 期刊投稿状态_这些SCI期刊的投稿显示状态是什么意思?
  9. github生成燃尽图
  10. 软考网规论文-论企业内部网的安全策略
  11. svn server服务器搭建
  12. e2200网卡linux,Debian
  13. 秒开路由sam1_野狼SAM机架精编版V1.0官方版-独木成林
  14. Get-ChildItem参数之 -Exclude,Filter,Recurse应用
  15. 艾司博讯:拼多多怎么设置团长ID?团长权限?
  16. 详解Redo log与Undo log
  17. java爬取前程无忧(51job)
  18. (程序详解)51单片机+DS12C887+1602高精度时钟,软件:keil4,Proteus 8
  19. 年度新旗舰南卡Runner Pro4骨传导耳机评测,解放双耳,运动不设限
  20. 【1】学习前言及数据分析的简单介绍jupyter的介绍与安装

热门文章

  1. Ext 1.0 简要说明 类继承关系图
  2. 软件工程中的启发规则
  3. mysql中locat函数,MySQL中的LOCATE和POSITION函数使用方法 | 很文博客
  4. Java IO 系统
  5. oracle sql 语句 start with ...... connect by prior .......
  6. yii2 ajax分页,Yii框架分页技术实例分析
  7. linux sql语句传参数,Linux/Unixshell参数传递到SQL脚本
  8. 计算机统考分数短信显示合格,今年起全省八年级网考信息技术 成绩不合格不能升高中...
  9. frp对http协议应用
  10. SQL SERVER 查询表的行数