步态识别论文(6)GaitDAN: Cross-view Gait Recognition via Adversarial Domain Adaptation

摘要:

视角变化导致步态外观存在显着差异。因此,识别跨视图场景中的步态是非常具有挑战性的。最近的方法要么在进行识别之前将步态从原始视图转换为目标视图,要么通过蛮力学习或解耦学习提取与相机视图无关的步态特征。然而,这些方法有许多约束,例如处理未知相机视图的难度。这项工作将视角变化问题视为域更改问题,并提出通过对抗性域适应来解决这个问题。这样,不同视角的步态信息被视为来自不同子域的数据。该方法侧重于调整源域变化引起的步态特征差异,同时在不同人之间保持足够的可辨别性。为此,提出了一种用于判别特征提取的分层特征聚合 (HFA) 策略。通过结合 HFA,特征提取器可以很好地聚合网络不同阶段的时空特征,从而获得全面的步态特征。然后,提出了一种对抗性视图变化消除 (AVE) 模块,该模块配备了一组用于识别不同步态视角的显式模型。通过对抗性学习过程,在给定特征提取器生成的步态特征的情况下,AVE 无法识别最终步态视点。也就是说,对抗性域适应减轻了视图变化因子,并有效地提取了与所有子域兼容的判别步态特征。在CASIA-B、OULP和OUMVLP三个最流行的公共数据集上进行的大量实验有力地证明了我们方法的有效性。

引言:

步态是一种描述人类行走模式的物理和行为生物特征。与其他生物特征(如人脸、指纹和虹膜)不同,步态可以很容易地在距离捕捉,而不需要被试的合作,很难伪装,这使得它在各种监视应用中具有很高的潜力[1,2]。作为视觉中的识别任务,步态识别的基本目标是从步态序列中学习独特且不变的表示。然而,在现实场景中,步态序列受到携带、服装条件和相机视点切换等外部因素的影响。它对步态识别提出了重大挑战,特别是给跨视图步态识别带来的强烈的外观差异

为了解决上述挑战,现有的基于外观的跨视图步态识别方法主要分为两类:i)基于转换的方法和ii)基于消除的方法。第一类方法通常学习不同视图之间的转换关系[6-8],或者将不同视图的步态投射到一个共同的视图[4,9 - 11]。在训练数据中包含视图之间的转换的情况下,它们往往会很好地工作。然而,这种转换通常是在两个视图之间执行的,不能很好地扩展以处理不同的视图转换。第二类方法旨在消除视图变化干扰,可以进一步分为两个子类别:1)蛮力学习[1 - 3,12 - 15];2)解耦学习[16-19]。前者专门用于提取与视图变化无关的判别步态表示。为此,通常首先混合不同摄像机视图下的不同训练数据。然后,无论视图差异如何,模型都根据给定的人员 ID 进行训练,并支持不同的损失函数。解耦学习旨在将视图信息从步态特征的其余部分中分离出来,以消除其干扰。它要么故意安排不同视图下的训练数据,要么明确地将视图特征与步态特征的其余部分解耦。这样,模型可以最好地学习与相机视图无关的特征。与基于变换的方法相比,基于消除的方法更加灵活,可以很好地推广到不同的视图。然而,在蛮力学习中,视图本身,即显式视图估计或视图特定建模,在一定程度上被忽略和低估。在解耦学习中,解耦过程涉及使用生成对抗网络或自动编码器的特征分解和合成[16,18],这在某种程度上损害了步态序列中的时空特征。

这项工作提出了一种新的跨视图步态识别方法,该方法被视为域转移问题。不同视图的步态信息被视为来自不同子域的信息视图变化引起的统计分布差异被视为子域偏移。因此,采用域适应 (DA) 作为所提出方法的管道。成功适应的关键是学习一个判别模型,以最小化源域和目标域之间的分布差异。在这项工作中,DA 不考虑针对一个目标域的一个源域 [20-22],但打算同时对齐多个子域的步态信息。因此,步态识别的步态最终特征表示与视图变化无关。受无监督DA方法[20,23 -25]的启发,我们采用域对抗神经网络(DANN)[25]作为解决这一挑战的基本框架。这种选择的基本原理源于 DANN 提供了几个关键优势的事实。首先,DANN 通过修改特征表示本身来匹配特征空间分布,而不考虑不同领域背后的变化因素和复杂的解耦操作,这更适合我们的目的多个子域适应。其次,DANN 在统一的架构中执行特征学习和域适应,并且可以使用简单的反向传播算法来实现。这种工作机制能够充分探索步态中的时空信息,同时消除视图变化的影响

因此,我们提出了一种新的步态域对抗网络(记为GaitDAN),用于跨视图步态识别。GaitDAN能够通过端到端对抗训练学习判别和子域不变的步态特征,使最终的步态表示在所有子域中都可以很好地泛化。图 1 说明了 GaitDAN 的结构,它由一个新颖的特征提取器、对抗性视图更改消除 (AVE) 模块和度量学习 (ML) 模块组成。特征提取器是具有专门设计的分层特征聚合 (HFA) 策略的新网络,能够提取浅层局部细节信息和高层语义表示的互补时空特征。因此,在不丢失细微的视觉线索的情况下,可以获得更全面的时空步态特征。AVE模块是GaitDAN中包含多个视图鉴别器的关键适应组件。它试图挑战特征提取器生成的步态特征,并通过对抗性学习过程将它们区分在不同的子域。也就是说,特征提取器旨在生成欺骗AVE的步态表示。同时,AVE以对抗学习的方式反馈给特征提取器,生成更好的子域不变步态特征来欺骗AVE。引入了ML模块,以进一步提高步态表示在特征空间中的可区分性。通过这种方式,保证了步态识别任务的高可辨别性。

随着训练的进行,GaitDAN 可以产生子域不变和有区别的步态特征。更具体地说,我们做出了以下三个主要贡献。

•我们首次将视图变化消除转化为域适应问题,提出了一种新的用于跨视图步态识别的领域对抗网络。与当前基于转换或基于消除的方法形成鲜明对比,这使得充分利用时空信息,同时消除视图变化的影响。更令人印象深刻的是,它提高了模型在完全未知的视点进行跨视图步态识别的性能。

•我们提出了一种新的HFA策略,该策略可以利用网络各个阶段的综合时空信息,并以微妙的注意方式分层聚合它们,有效地提高了所提方法的判别能力,保证了步态序列中时空信息的充分挖掘。•我们提出了一种简单而有效的视图变化消除方法,即AVE模块。通过利用子域对抗对齐的优势,AVE模块可以简单的方式缩小多个视图级子域之间的差异,有利于整个网络的端到端训练,进一步提高步态表示的鲁棒性。

提出方法

A.概述

首先将来自不同子域的步态轮廓序列输入到一个新的特征提取器GF(HFA)中,提取细粒度的时空特征FFM。然后,为了获得视图不变的细粒度特征,将视图对抗学习过程合并到网络中。这是一个由特征提取器GF和AVE模块GAVE组成的两人博弈。训练AVE模块来区分输入的细粒度步态特征来自哪个子域,同时对特征提取器GF进行微调,以混淆AVE模块。具体来说,通过最大化AVE模块的损失来学习特征提取器GF的参数WF,而AVE模块的参数WAV E通过最小化AVE模块的损失来学习。同时,应用包括三元组损失和交叉熵损失的 ML 模块来增强特征空间中细粒度步态表示的区分

将训练数据输入进特征提取器HFA 得到输出特征

featurebn, feature, fea_grl,#[N,128,bin_all]\[N,bin_all,74]\[N,bin_all,11]

其中 fea_grl特征 输入进 AVE 模块进行

featurebn, feature输入进ML模块

B.HFA策略的特征提取器

主干分支

HFA 分支

步态轮廓序列的二值化性质,加上视图变化引起的大外观干扰,导致受试者仅在轮廓序列中的特定位置的细微差异。因此,利用从网络的浅层阶段提取的特征进行准确的步态识别变得至关重要,因为它们可以对局部区域进行详细的编码。此外,用低级特征补充高级特征可以专注于更具辨别力的区域,从而提高特征的可辨别性。在此基础上,我们将分层特征聚合(HFA)策略引入到基于基本分支的特征提取器中,以获得更全面的时空步态特征。它由HFA分支实现,如图2所示。HFA的核心思想是同时考虑不同阶段的视觉线索。然而,不同阶段特征之间的分布差异和语义错位。直接聚合[39,40],如连接、求和或使用瓶颈层可能会导致语义混淆,而不是实现积极的补充。为此,我们引入了注意力机制,并在 HFA 分支中提出了一个跨阶段注意力聚合 (CSAA) 块,以合并来自基本分支中不同网络阶段的跨阶段时空特征。CAA块的详细架构如图3所示。它由两个可学习参数σ1、σ2、一个跨阶段注意推导操作Wm和一个跨阶段注意聚合操作Wa组成。

C.基于域适应理论的对抗性视图变化消除模块

跨域情况下主体的良好表示是模型无法识别域源信息的模型。AVE模块旨在在不指定任何特定源或目标域的情况下减少子域之间的分布差异。与只涉及两个域的一般域适应问题不同,基于轮廓序列的跨视图步态识别情况复杂,一方面涉及多个不同的子域,另一方面涉及佩戴和携带情况等复杂场景变化。因此,从不同子域到域不变空间的转换并不相同。在这方面,设计了一种逐步细化的域适应方法,该方法允许来自每个子域的样本来学习它们对域不变空间的相应变换。这导致每个子域与其他子域之间的域偏移逐渐减小,最终导致所有子域之间的差异减小。如图4所示,AVE模块由多个具有共享梯度反向层(GRL)的视图鉴别器组成。特别是,二进制(1 vs.其他人)判别器为AVE模块中的每个特定视图设计,

此外,开发了一个对抗性目标,以最小-最大的方式同时训练特征提取器和这些鉴别器。鉴别器损失的最小过程使他们能够区分源自该子域的每个步态输入,而其损失的最大过程旨在混淆这些鉴别器以消除子域差异。因此,AVE 模块中的每个子域都被视为临时目标域,而其他子域被视为源域。对抗性学习用于减少源域和目标域之间的差异。通过迭代训练,最终将不同摄像机视图下的步态信息映射到多个子域之间无法区分步态特征的公共嵌入空间。具体来说,对于具有权重参数 Wv D 的视图鉴别器 Dv,首先将归一化后输入样本 x 的每个基于部分的特征 f h F M ∈ RC′ 分别输入到 Dv 通过 GRL,然后将 Dv 的相应输出馈送到 softmax 层以获得概率输出 z ∈ R2。该过程可以表示为:

 

 这里使用的GRL[25,35]是通过最大化子域区分损失(即公式12)来减少多子域的分布差异。如第 II-B 节所述,它可以在反向传播期间自动将最大化问题转换为最小化负损失,以实现网络优化的一致性。因此,优化GF的最大目标函数可以表示为

 AVE模块的前向和后向传播如图4所示。在前向传播过程中,GRL只是一个公共层,没有任何额外的操作。在反向传播过程中,GRL反转优化目标Eq.(12)相对于特征提取器中的参数的梯度,然后用负权重α向后传递。通过GRL,可以以端到端的方式实现子域对抗对齐,而无需单独固定生成器和鉴别器进行迭代训练,如GANs。这大大简化了网络的整体实现,促进了步态序列中时空特征的挖掘。最后,可以提取所有视图鉴别器难以区分的鲁棒特征表示,然后可以有效缓解子域之间的差距。

D.度量学习模块

作为度量学习问题,具有高可辨别性的特征对于跨视图步态识别至关重要。基于 Triplet 的损失函数直接旨在学习判别特征,这些特征更直接、更合适。此外,基于三元组的损失函数通常能够通过在训练期间设置边距来更有效地学习细微特征,这特别适用于基于轮廓序列的跨视图步态识别。与其他基于距离的损失函数方法相比,如DrLim方法[43],其约束相对松散,更合适。DrLim使用对比度损失,将同一类所有样本之间的距离均匀收敛到0,而不同类别的样本之间的距离收敛到一个固定阈值。这是跨视图步态识别的一个极其严格的约束,同一类的样本与DrLim的使用之间存在很大的外观差异,可能会混淆原始度量学习。因此,在ML模块中采用了由单独的批全三元组损失[44]和交叉熵损失组成的组合损失以确保学习到的步态特征分散且具有高度区分性。按照[44]中概述的设置,对每个受试者的P个受试者和U个轮廓序列进行采样,以组成大小为P×U的小批次。对于小批量中的每个序列(锚点),选择相应的正例(pos.)和负例(neg.)来构建样本三元组。具体来说,锚和正例具有相同的身份标签,但与负例不同,PU (U − 1) (PU − U ) 样本三元组在每个小批量中构成。为了充分利用细粒度特征,分别对ML模块中的水平切片特征分别施加batch-all三元组约束。完整的三元组损失定义为:

 

 E.联合损失函数

最后,由单独的批全三元组损失Eq.(14)和交叉熵损失Eq.(16)组成的总体目标,以及第III-C节介绍的损失来优化所提出的GaitDAN。提出的GaitDAN的函数式(2)可以改写为:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2010NOIP普及组真题 2. 接水问题

线上OJ: 一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid1950 解法一、朴素模拟 核心思想: 朴素模拟: 1、先给每个b[i]水龙头分配一个人a[i],b[i] 表示水龙头的剩余时间。同时标记该水龙头为 used 使用中 2…

FFmpeg———encode_video(学习)

目录 前言源码函数最终效果 前言 encode_video:实现了对图片使用指定编码进行编码,生成可播放的视频流,编译时出现了一些错误,做了一些调整。 基本流程: 1、获取指定的编码器 2、编码器内存申请 3、编码器上下文内容参数设置 4、…

政安晨:【Keras机器学习示例演绎】(三十五)—— 使用 LayerScale 的类注意图像变换器

目录 简介 导入 层刻度层 随机深度层 类注意力 会说话的头注意力 前馈网络 其他模块 拼凑碎片:CaiT 模型 定义模型配置 模型实例化 加载预训练模型 推理工具 加载图像 获取预测 关注层可视化 结论 政安晨的个人主页:政安晨 欢迎 &#…

计算机专业就业前景以及工资待遇水平怎么样

计算机专业毕业生的就业前景不错的,计算机专业人才的需求量大,各行各业都需要这类人才来进行软件开发、数据分析、网络安全管理、系统维护等工,工资待遇水平较高,以下是上大学网(www.sdaxue.com)整理的计算机专业就业前…

SMB协议之-那些隐藏/非隐藏共享share

在前面的文章中,介绍了SMB协议相关的内容,详见我的专栏《网络攻防协议实战分析》,连接这里。在SMB协议中往往会使用 tree connect命令连接到对应的远程共享地址。如果你经常接触到SMB协议,相信你对于ADMIN$ ,IPC$ ,C$ 等多种共享一…

质因数分解(cpp实现)--一种快速求得一个数有多少个因子的黑魔法

前言 最近机试没少吃不会质因数分解的亏,用传统的求得因子个数只能过一点点…(ex, 20%) 质因数分解后,可以将因子问题转化为 集合的组合问题,因此会很快,目测是 l o g n log n logn (n是该整数的值)。 传统解法 假设输入整数的…

动态规划 ------ 背包问题

文章目录 1. 01 背包问题1.二维解决2. 一维优化 2. 完全背包问题1.暴力3 for.2. 二维优化3. 一维优化 3. 多重背包问题Ⅰ.1. 二维解决2. 一维优化 4. 多重背包问题Ⅱ5. 混合背包问题6. 二维费用背包问题7. 分组背包问题 背包问题是动态规划中非常典型的一些题,本篇文…

某站戴师兄——Excel学习笔记

1、拿到源数据第一件事——备份工作表,隐藏 Ctrlshift键L打开筛选 UV (Unique visitor)去重 是指通过互联网访问、浏览这个网页的自然人。访问网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。一天内同个访客多次访问仅计算一个UV。 PV …

进程与线程(进程)

进程: 概念:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位 PID:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的“身份证号” 组成: PCB(进程控制块)&#…

芋道源码的Springboot 项目打包,配置和依赖包分开

Springboot 项目,把依赖包和开发的应用都打在一个jar 里很简单,但有个问题是,修改点东西就要再次全量更新。 这里介绍如何用assembly 来实现不打依赖包。 1、 在主模块中,需要引入 assembly.xml配置: src/main/asse…

我这次没有蹭Oracle发布热度的原因

这次没有去蹭热度,原因有几个。 主观 确实是生病了,身体不舒服,那几个卷王在卷公众号的时候,我在床上卷成一团。 不和这几个打了鸡血的人比了。我卷了一点和他们不一样的。我节日期间看到我初中同班同学发的微博。 对这个就是我…

大学生上班族必备!九个线上兼职秘籍,让你远离失业风险

互联网时代,兼职新风尚:这些靠谱兼职让你轻松增收 随着互联网技术的飞速发展,兼职工作已成为许多人增加收入、提升自我能力的新选择。本文将为您揭秘一些适合大学生和上班族的靠谱兼职工作,助您轻松找到适合自己的兼职机会。 一…

docker系列8:容器卷挂载(上)

目录 传送门 从安装redis说起 什么是容器卷挂载 操作系统的挂载 日志文件一般是"首恶元凶" 挂载命令 容器卷挂载 卷挂载命令 启动时挂载 查看挂载卷信息 容器卷管理 查看卷列表 创建容器卷 具名挂载与匿名挂载 具名挂载 传送门 docker系列1&#xff…

C++ : list类及其模拟实现

目录 一、list的介绍和使用 list的介绍 list的使用 1.list的构造 构造函数 2.list iterator 的使用 3.list capacity 4.list element access 5.list modifiers 6.list的迭代器失效 二、list的模拟实现 要点 list类模拟实现部分接口全部代码展示 一、list的介绍和使…

Docker:centos7安装docker

官网:https://www.docker.com/官网 文档地址 - 确认centos7及其以上的版本 查看当前系统版本 cat /etc/redhat-release- 卸载旧版本 依照官网执行 - yum安装gcc相关 yum -y install gccyum -y install gcc-c- 安装需要的软件包 yum install -y yum-utils- 设置s…

深入学习Linux内核页框回收

目录 算法 1.选择目标页 2.PFRA设计 3.反向映射 3.1.匿名页的反向映射 3.2.try_to_unmap_anon()函数 3.3.try_to_unmap_one()函数 映射页的反向映射 优先搜索树 try_to_unmap_file()函数 PFRA实现 最近最少使用(LRU)链表 在LRU链表之间移动页 mark_page_accessed(…

Android使用kts发布aar到JitPack仓库

Android使用kts发布aar到JitPack 之前做过sdk开发,需要将仓库上传到maven、JitPack或JCenter,但是JCenter已停止维护,本文是讲解上传到JitPack的方式,使用KTS语法,记录使用过程中遇到的一些坑.相信Groovy的方式是大家经常使用的,…

Java基于Spring Boot框架的课程管理系统(附源码,说明文档)

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的校园疫情防控系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构…

C# WCF服务(由于内部错误,服务器无法处理该请求。)

由于内部错误&#xff0c;服务器无法处理该请求。有关该错误的详细信息&#xff0c;请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端&#xff0c;或打开对每个 Microsoft .NET …