CN115035606B - 一种基于片段驱动对比学习的骨骼动作识别方法 - Google Patents
一种基于片段驱动对比学习的骨骼动作识别方法 Download PDFInfo
- Publication number
- CN115035606B CN115035606B CN202210957982.8A CN202210957982A CN115035606B CN 115035606 B CN115035606 B CN 115035606B CN 202210957982 A CN202210957982 A CN 202210957982A CN 115035606 B CN115035606 B CN 115035606B
- Authority
- CN
- China
- Prior art keywords
- segment
- sequence
- query
- key value
- segments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biophysics (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Psychiatry (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于片段驱动对比学习的骨骼动作识别方法,属于动作识别分析技术领域。本发明实现了基于骨骼的动作识别的同时挖掘序列中隐含的自然的正/负样本和固有的监督信号,更具体的是提出了一种基于序列驱动的对比学习的骨骼动作识别方法;不同于将整个序列视为实例的方法,本发明打破了这种固有的思维,深入到序列内部,以序列中的片段为实例,利用序列自身具有时空延续性的特性,构建了片段级别的正负样本和序列级别的正负样本,并利用了序列自身含有的监督信号来辅助对比学习挖掘更好的骨骼序列特征,从而解决骨骼动作识别的问题。
Description
技术领域
本发明涉及动作识别分析技术领域,具体为一种基于片段驱动对比学习的骨骼动作识别方法。
背景技术
动作识别利用机器学习的方法使计算机能够识别各种人类活动。现有的研究已经探索了许多不同模态的动作特征提取,如RGB图像、深度图像、光流和骨骼。随着深度传感器的发展,越来越多的人关注到了基于骨骼数据的动作识别,与传统的基于RGB的方法不同,因为这类数据更加轻量级且对于动作的背景、光照的变化、演员的衣着外貌等更加鲁棒。
在过去的几年中,大多数基于骨架的动作识别方法都是基于监督学习框架的,早期的方法一直试图对图(graph)数据进行建模。这些方法使用人类关节在一段时间内的坐标作为一个向量,并作为循环神经网络(RNN)和长期和短期记忆(LSTM)的输入来预测人类的行为。这类方法可以很好地表示动作的语义信息,对时间维度的长程建模表现更好,但不能很好地表示关节之间的结构关系。随后,大量基于图卷积网络(GCN)的方法被提出,广泛应用于基于骨架的动作识别,并将人体骨骼序列建模为时空图(Spatial-TemporalGraph)。这类方法将每一步时间内的每个关节作为一个节点,通过空间和时间维度的边缘连接相邻节点。这样就可以学习骨骼节点的结构关系和相邻帧之间的位移信息,从而获得更好的识别性能,但相应的在长程的时序信息建模上存在一定的缺陷。
目前,在基于骨架的动作识别方面已经有了大量的研究工作被提出,并取得了良好的效果。图卷积网络(GCNs)将中枢神经网络扩展到更一般的非欧几里得结构,在基于骨架的动作识别中取得了显著的性能。然而,不论是基于RNN的还是GCN的方法,之前的方法大多是基于监督学习的方法,它们大多依赖于大型的标记数据集,需要耗费大量的时间和人力成本,往往十分昂贵这。此外,目前大多数基于无监督的动作识别的研究都是基于RGB模态的,而基于无监督骨架数据的动作识别仅在少数研究中被进一步探索。近年来,出现了一些基于无监督框架下的骨架动作识别的研究。
延续了基于监督学习的动作识别的传统,现有的无监督方法可以根据不同的输入数据组织方式,分为两大类。第一类是基于GCN的方法,它们将骨架数据组织成Graph的形式,从而在非欧几里得结构中探索骨骼的空间特征。第二类是基于序列的方法,它将骨架数据作为时间序列进行处理。除此之外,大多数早期的方法都是基于编码器-解码器(Encoder-Decoder)的结构。这类方法通过解码器重新生成骨架序列,而编码器和解码器之间的语义关联常常被忽略。随着对比学习方法在自监督领域的兴起,有一些基于对比学习的方法被提出。有些方法设计了以动量LSTM作为骨架编码器的对比学习。为了融合多视图的信息,一些方法尝试采用交叉视图的知识挖掘方法来辅助对比学习融合多视图的信息。同时,为了能够同时汲取对比学习与编解码结构的优点,一些方法尝试探索融合二者的学习方法。
之前的方法并没有探索“骨架序列”中的“监督信号”,并且忽略了数据本身所固有的正、负对的丰富性,这些方法存在着一些不容忽视的局限性:1)忽略了序列内的正/负对。以前的方法将序列视为实例(instance),并通过增广从外部引入额外的正/负对。然而,序列是一组动作帧的集合,其连续的子集也可以构成动作片段,它们虽然属于同一序列但彼此不同,基于此我们能够挖掘出大量的天然存在于序列中的正/负对。2)忽视固有的监督信号。以前的方法通过时间增广(例如,翻转序列)使模型对时间变化具有鲁棒性。但是它们却忽视了序列本身是有序帧的集合,包含天然的时序信息,片段之间有明确的顺序语义,存在丰富的内在监督信息。
总之,目前尚未提出能够挖掘序列中包含的自然的正/负样本和固有的监督信号的基于骨骼序列的动作识别的高效处理算法。
发明内容
1、本发明要解决的技术问题
本发明的目的在于提供一种能够挖掘序列中包含的自然的正/负样本和固有的监督信号的基于片段驱动对比学习的骨骼动作识别方法。
2、技术方案
为实现上述目的,本发明提供如下技术方案:
本发明意在实现基于骨骼的动作识别的同时挖掘序列中隐含的自然的正/负样本和固有的监督信号,所采取的技术方案是:基于序列驱动的对比学习的骨骼动作识别方法。不同于将整个序列视为实例的方法,本发明打破了这种固有的思维,深入到序列内部,以序列中的片段为实例,利用序列自身具有时空延续性的特性,构建了片段级别的正负样本和序列级别的正负样本,并利用了序列自身含有的监督信号来辅助对比学习挖掘更好的骨骼序列特征,从而解决骨骼动作识别的问题,具体包括以下内容:
S1、对骨骼数据进行视角调整等预处理,通过随机抽取的方法从骨骼序列中抽取三个长度不同的片段,对所抽取的三个片段按照起点顺序排序后,将三个片段补齐到相同长度,然后随机抽取其中的首片段或尾片段作为锚片段;
S2、将S1中所得的锚片段输入到两个不同的增广器中,进行不同的增广,得到查询片段和键值片段;将除锚片段之外的两个片段输入到与锚片段不同的增广器中得到其他的两个键值片段,共计获得一个查询片段和三个键值片段;
S3、将S2中所得的查询片段和键值片段分别输入到查询编码器和键值编码器,所述查询编码器和键值编码器的权重不同,其中,键值编码器采取动量更新的方式更新其中的权重;
S4、构建动态字典,以先入先出的方式存储片段特征;
S5、利用查询编码器得到查询向量,利用键值编码器得到键值向量;
S6、将查询向量与键值向量输入到序列识别模块,得到序列级别损失;
S7、将查询向量与键值向量输入到片段识别模块,得到片段级别损失;
S8、将查询向量与两个非锚片段增广所得的键值向量拼接在一起后输入到片段顺序验证模块,得到片段顺序损失;
S9、对S6~S8中所得的损失进行联合优化;
S10、冻结对比学习网络,训练一个简单的分类器完成动作识别任务;
S11、将待判别序列抽取一个片段输入到分类器中,得到识别结果。
优选地,所述S1中提到的片段抽取,具体包括以下内容:
对于一个给定的序列s,其长度为L;在[0,L]中随机选择三个长度为l 1、l 2、l 3的片段,在[0,L-l i ]中分别选择三个起点b 1,b 2,b 3,从而得到三个原始片段;对于这些不等长的片段,将它们插值成相同的长度,并进行排序,得到经过处理的片段序列(c 1,c 2,c 3);随机选择c 1或c 3作为锚片段。
优选地,所述S2中片段增广操作采用姿态增广和节点震动两种增广方法;
在对比学习中,增广是常常使用的构建正样本的方法;对于同一个输入实例而言,分别对其进行姿态增广和节点震动增广,并将增广后的结果作为正样本对;对于基于实例的对比学习而言,仅有实例的姿态增广和节点震动增广被看做是正样本对,在投影的特征空间中被拉近距离;而对于其他的实例的增广,将其看做是负样本对,在投影的特征空间中被推远距离。
姿态增广通过一个线性映射矩阵,对整体的姿态进行相应的调整此类调整只是改变视角,并不影响姿态本身的识别性;线映射矩阵作用于每个关节上,使其按照固定的方向移动;从而使得身体关节的三维坐标整体按照某个固定的方向倾斜。
姿态增广线性映射过程如下:
其中,映射矩阵中的元素P ij (i,j∈{X,Y,Z})是从均匀分布的[-1,1]中随机抽取的,X是原始的骨骼坐标矩阵,X′是变换后的骨骼坐标矩阵;对片段中每个时间步上的骨架都采用相同的映射变换,但是对于不同的片段抽取不同的映射矩阵;基于这样的姿态增广来模拟摄像机视角与演员之间的距离变换和视角变换;此外,通过这样的增广来驱动网络学习一种同一动作不同变换下的表征一致性,在特征空间中学习到更多区分姿态的语义,汲取其中的一致性而忽略冗余的信息。
节点震荡增广方法通过一个线性映射矩阵,对骨骼的各个节点添加噪声;由于捕获时骨骼数据时传感器的震荡或是骨骼动作预测的不稳定性,骨骼节点常常会存在一定的噪声;此外,由于演员的身材,动作习惯的不同,对于相同的动作有不同形式的演绎;为归一化后的骨骼节点加噪可以使得学习到的特征更加鲁棒,在面对原始数据的噪声时也能够有高性能的表现;对骨骼矩阵中的一些节点随机扰动,这些节点将被随机选取,被随机移动到不规则的位置,没有被选中的关节点将保持在原位不动。
节点震荡线性映射过程如下:
其中,映射矩阵中的元素J ij (i,j∈{X,Y,Z})是从均匀分布的[-1,1]中随机抽取的,X是原始的骨骼坐标矩阵,X′是变换后的骨骼坐标矩阵;同样对片段中每个时间步上的骨架都采用相同的映射变换,但是对于不同的片段抽取不同的映射矩阵;X[:,j]是X的一个子集,j是全部关节点的一个子集;基于这样的节点震荡增广来模拟现实情况中的节点抖动,从而使得模型在有噪声的情况下仍然能够学习到动作的固有特征。
优选地,所述S3中提到的查询编码器与键值编码器均基于双向门控循环神经网络构建;
所述更新门z t 用于控制t-1的隐藏状态h t-1以及当前时刻下的隐藏状态输入多少将会流入到h t 中,更新门的前向计算公式如下:
Z t =σ(x t W xz +h t-1 W hz +b z )
其中,σ是门控信号,为sigmoid函数,该函数用于将数据变换到[0,1]之间;x t 为双向门控循环神经网络的当前输入;W xz 与W hz 为可学习的权重参数矩阵,b z 为可学习的偏置参数矩阵;
所述更新门z t 还用于捕捉长期依赖关系,流入信息越多,更新门z t 的值越大;
r t =σ(x t W xr +H t-1 W hr +b r )
所述重置门r t 还用于捕捉短期依赖关系,流入信息越少,重置门r t 的值越大;式中,x t 为双向门控循环神经网络的当前输入;W xr 与W hr 为可学习的权重参数矩阵,b r 为可学习的偏置参数矩阵;
其中,⨀表示按元素相乘;W hh 与W hx 为可学习的权重参数矩阵,b h 为可学习的偏置参数矩阵;
所述当前时刻隐藏状态h t 的前向计算公式如下:
所述双向门控循环神经网络包含3层;每一层均包含1024个单元。
优选地,所述S3中,由于使用队列会扩展字典的大小,但由于梯度会跨队列中的所有数据传播,因此很难反向传播到键值编码器;简单地将查询编码器参数直接复制到键编码器中,就会破坏键值表示的一致性,因此,对键值编码器采用了如下动量更新参数的方法:
ζ←mζ+(1-m)θ
其中,θ表示查询编码器的参数,ζ表示键值编码器的参数,m表示动量更新参数。这使得键值编码器缓慢地收敛到查询编码器,但永远不会达到相同的参数;因此,可以通过不同的扩充来积累属于同一类的动作的特征,并不断地优化模型;这种缓慢的动量更新促使模型学习各种增强下每种动作的特征。
优选地,所述S4中提到的构建动态字典,对比学习的高性能与足够数量的负样本对紧密相关联;为了给模型提供足够的负样本对,在对比学习模块中引入了一个动态字典;所述动态字典的构建需要确保以下两个条件:1)字典需要足够大,以包含足够的负对,这便于提取好的特征;2)字典的编码器参数应更新动量,以保持一致性。
为了满足这两个条件,字典被视为一个队列,通过它使字典的大小与批处理大小解耦;每个迭代中将批大小的样本发送到字典中,当队列已满时,队列中最早的批将被删除。
优选地,所述S5中将查询编码器和键值编码器输出的特征输入到不同的多层感知器中进行投影;对于不同的子网络需要构建不同的多层感知器投影特征;将特征投影到潜在空间中将正样本的特征拉近,将负样本的特征推远,以此来对实例进行表征学习。
优选地,所述S6中构建了序列区分子网络,用于使模型能够学习语义特征,以区分片片段是否属于同一骨架序列;编码器的动机是学习区分相同序列的片段和它们的增强样本的嵌入与其他序列的嵌入,这超出了以前方法中序列实例的限制,允许模型有效地利用序列的空间和时间结构,从而学习更一般的语义特征。
将骨骼序列中选中的片段序列增广后所得的键值片段(c 1 k ,c 2 k ,c 3 k )与查询片段c q 构成正样本对,并从动态字典中获取该批次中其他序列的片段的增广作为负样本对;序列区分子网络损失函数如下所示,使其适用于多个正对任务:
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z i k 表示正样本对;Z -为负样本对;将计算所得的损失相加,取平均值作为序列的损失;最小化该损失迫使编码器区分片段是否属于同一序列,还是来自其他序列。
所述InfoNCE损失如下所示:
其中,τ表示温度系数,Z表示由查询编码器和键值编码器学习得到的特征。
优选地,所述S7构建了片段区分子网络,用于在片段水平上区分两个片段是否是由同一个片段增广得来,这是由于来自同一序列的不同片段之间也有明显的区别,可能是空间上完全不同的姿态,也可能是不同的时间段的运动。
对于从相同序列中得到的查询片段c q ,由于其从锚片段增广而来,将其与从锚片段增广而来的键值片段c 1 k (假设首片段为锚片段)作为正样本对,而其他两个片段中增广后得到的键值片段c 2 k 和c 3 k 作为负样本对;所述c q 与ck 1的分布将在特征空间中被拉近,所述c q 与c 2 k 和c 3 k 的表征分布将在特征空间中被推远;为避免重复计算同一批处理中其他负对的嵌入,片段区分子网络损失函数如下:
L Clip =L info(Z q,Z 1 k ,{Z 2 k ,Z 3 k })
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z 1 k 、Z 2 k 和Z 3 k 表示键值片段;Z q 与Z 1 k 构成正样本对,与Z 2 k 和Z 3 k 构成负样本对。
优选地,所述S8中构建了片段顺序验证子网络,为了进一步利用序列中包含的监督信号,构建了片段顺序验证任务,以确定片段的顺序是否正确,从而迫使编码器学习序列顺序的特征。
在该子网络中,随机选择片段序列的首片段或尾片段为锚片段,将锚片段增广后得到的查询片段和键值片段,同时将除锚片段之外的两个片段增广后得到的两个键值片段,将查询片段与键值片段嵌入连接起来,并将其输入到二进制分类器B(·)中,预测锚片段是在开始还是结束,进而基于交叉熵损失得出片段顺序验证子网络损失函数:
L o =-ylogB(Z q,Z 2 k ,Z 3 k )-(1-y)log(1-B(Z q,Z 2 k ,Z 3 k ))
其中,y表示实际值;Z q 表示查询片段;Z 2 k 和Z 3 k 表示键值片段。
优选地,所述S9中对片段区分子网络、序列区分子网络和顺序验证子网络进行联合优化,定义总体损失如下:
L all =L Seq +L Clip +L o
其中,L Seq 表示序列级别损失;L Clip 表示片段级别损失;L o 表示片段顺序损失。
优选地,所述S10中,构建一个简单的线性分类器来利用无监督下训练好的编码器完成骨骼动作识别任务。
所述线性分类器是指在冻结编码器的同时,训练了一个简单的线性分类器(一个全连接层和一个softmax层)。
优选地,所述S11中,对于输入的序列,仿照S1抽取其中的一个片段,将抽取的片段输入到训练好的线性分类器中,得到最终的识别结果。
3、有益效果
(1)本发明区别于传统的以序列为实例的无监督骨骼识别对比学习方法,打破了序列的束缚,深入到序列内部,构建了基于片段驱动的对比学习的骨骼动作识别方法。相较于以往的研究,本发明是一种对数据利用效率更高,识别效果更好的方法。
(2)本发明基于对比学习构建,通过对数据间的对比而学习实例间的特征,探索在不同的增广下实例的一致性。本发明是一种无监督的方法,无需昂贵的人工标注数据集,相较于其他的方法而言更加的便宜。
(3)本发明通过构建片段级别的实例区分任务和序列级别的实例区分任务挖掘到了更多的序列中天然存在的正样本和负样本,相较于其他的方法而言,数据的利用率更高。
(4)本发明深入到序列内部,以序列本身的时序延续性为线索,构建了片段顺序验证任务,利用了序列本身存在的时序监督信号,进一步保证了高性能的识别正确率。
附图说明
图1为本发明提出的一种基于片段驱动对比学习的骨骼动作识别方法的设计框架流程图;
图2为本发明提出的一种基于片段驱动对比学习的骨骼动作识别方法的正负样本对示意图,其中,1)为抽取片段示意图;2)为片段级正负样本示意图;3)为序列级正负样本示意图;4)为片段顺序验证示意图;
图3为本发明提出的一种基于片段驱动对比学习的骨骼动作识别方法的对比学习架构图;
图4为本发明提出的一种基于片段驱动对比学习的骨骼动作识别方法的序列预处理示意图;
图5为本发明提出的一种基于片段驱动对比学习的骨骼动作识别方法中测试输入骨骼序列后所得的预测结果和真实值。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种基于片段驱动对比学习的骨骼动作识别方法进行详细描述。
同时,在这里做以说明的是,为了使实施例更加详尽,下面的实施例为最佳、优选实施例,对于一些公知技术本领域技术人员也可采用其他替代方式而进行实施;而且附图部分仅是为了更具体的描述实施例,而并不旨在对本发明进行具体的限定。
本发明涵盖任何在本发明的精髓和范围上做的替代、修改、等效方法以及方案。为了使公众对本发明有彻底的了解,在以下本发明优选实施例中详细说明了具体的细节,而对本领域技术人员来说没有这些细节的描述也可以完全理解本发明。另外,为了避免对本发明的实质造成不必要的混淆,并没有详细说明众所周知的方法、过程、流程、元件和电路等。
实施例1:
请参阅图1,本发明所提出的一种基于片段驱动对比学习的骨骼动作识别方法的整体设计流程如图1所示,整体流程可以分为以下三大模块:
1)片段提取及增广模块。对于输入的训练集首先会对骨骼数据进行视角调整等预处理,通过随机抽取的方法随机从骨骼序列中抽取三个长度不同的片段,对三个片段按照起点顺序排序后,将三个片段补齐到相同长度。随机抽取其中的首片段或尾片段为锚片段。对锚片段而言,将其输入两个不同的增广器中,进行不同的增广,得到查询片段和键值片段。对于其他片段而言,将它们输入到与锚片段不同的增广器中得到其他的键值片段。共计一个查询片段和三个键值片段,其中的查询片段和一个键值片段由同一个锚片段通过增广器增广而来。
2)多任务对比学习网络模块。将得到的查询片段和键值片段分别输入到查询编码器和键值编码器。两个编码器的权重不同,对于键值编码器而言采取动量更新的方式更新其中的权重。构建动态字典,以先入先出的方式存储片段特征。从查询编码器得到查询向量,键值编码器得到键值向量(以下成为特征向量);将特征向量输入到片段识别模块,得到片段级别损失;将特征向量输入到序列识别模块,得到序列级别损失;将特征向量输入到片段顺序验证模块,得到顺序损失。对上述所得的损失进行联合优化。
3)动作分类模块:冻结对比学习网络,训练一个简单的分类器完成动作识别任务。将待判别序列抽取一个片段输入分类器中得到识别结果。
实施例2:
请参阅2-5,基于实施例1但有所不同之处在于,
一种基于片段驱动对比学习的骨骼动作识别方法,具体包括以下步骤:
S1、如图2中1)及图4所示,对骨骼数据进行视角调整等预处理,通过随机抽取的方法从骨骼序列中抽取三个长度不同的片段,对所抽取的三个片段按照起点顺序排序后,将三个片段补齐到相同长度,然后随机抽取其中的首片段或尾片段作为锚片段;
对于一个给定的序列s,其长度为L;在[0,L]中随机选择三个长度为l 1、l 2、l 3的片段,在[0,L-l i ]中分别选择三个起点b 1,b 2,b 3,从而得到三个原始片段;对于这些不相等的片段,将它们插值成相同的长度,并进行排序,得到经过处理的片段序列(c 1,c 2,c 3);随机选择c 1或c 3作为锚片段;在下文中,我们均假设c 1被选为锚片段;
S2、如图3中左侧编码器部分所示,将S1中所得的锚片段输入到两个不同的增广器中,进行不同的增广,得到查询片段和键值片段;将除锚片段之外的两个片段输入到与锚片段不同的增广器中得到其他的两个键值片段,共计获得一个查询片段和三个键值片段;
S2中片段增广操作采用姿态增广和节点震动两种增广方法;
在对比学习中,增广是常常使用的构建正样本的方法;对于同一个输入实例而言,分别对其进行姿态增广和节点震动增广,并将增广后的结果作为正样本对;对于基于实例的对比学习而言,仅有实例的姿态增广和节点震动增广被看做是正样本对,在投影的特征空间中被拉近距离;而对于其他的实例的增广,将其看做是负样本对,在投影的特征空间中被推远距离;
姿态增广通过一个线性映射矩阵,对整体的姿态进行相应的调整此类调整只是改变视角,并不影响姿态本身的识别性;线映射矩阵作用于每个关节上,使其按照固定的方向移动;从而使得身体关节的三维坐标整体按照某个固定的方向倾斜;
姿态增广线性映射过程如下:
其中,映射矩阵中的元素P ij (i,j∈{X,Y,Z})是从均匀分布的[-1,1]中随机抽取的,X是原始的骨骼坐标矩阵,X′是变换后的骨骼坐标矩阵;对片段中每个时间步上的骨架都采用相同的映射变换,但是对于不同的片段抽取不同的映射矩阵;基于这样的姿态增广来模拟摄像机视角与演员之间的距离变换和视角变换;此外,通过这样的增广来驱动网络学习一种同一动作不同变换下的表征一致性,在特征空间中学习到更多区分姿态的语义,汲取其中的一致性而忽略冗余的信息;
节点震荡增广方法通过一个线性映射矩阵,对骨骼的各个节点添加噪声;由于捕获时骨骼数据时传感器的震荡或是骨骼动作预测的不稳定性,骨骼节点常常会存在一定的噪声;此外,由于演员的身材,动作习惯的不同,对于相同的动作有不同形式的演绎;为归一化后的骨骼节点加噪可以使得学习到的特征更加鲁棒,在面对原始数据的噪声时也能够有高性能的表现;对骨骼矩阵中的一些节点随机扰动,这些节点将被随机选取,被随机移动到不规则的位置,没有被选中的关节点将保持在原位不动;
节点震荡线性映射过程如下:
其中,映射矩阵中的元素J ij (i,j∈{X,Y,Z})是从均匀分布的[-1,1]中随机抽取的,X是原始的骨骼坐标矩阵,X′是变换后的骨骼坐标矩阵;同样对片段中每个时间步上的骨架都采用相同的映射变换,但是对于不同的片段抽取不同的映射矩阵;X[:,j]是X的一个子集,j是全部关节点的一个子集;基于这样的节点震荡增广来模拟现实情况中的节点抖动,从而使得模型在有噪声的情况下仍然能够学习到动作的固有特征;
S3、将S2中所得的查询片段和键值片段分别输入到查询编码器和键值编码器,所述查询编码器和键值编码器的权重不同,其中,键值编码器采取动量更新的方式更新其中的权重;
S3中提到的查询编码器与键值编码器均基于双向门控循环神经网络构建;
所述更新门z t 用于控制t-1的隐藏状态h t-1以及当前时刻下的隐藏状态输入多少将会流入到h t 中,更新门的前向计算公式如下:
Z t =σ(x t W xz +h t-1 W hz +b z )
其中,σ是门控信号,为sigmoid函数,该函数用于将数据变换到[0,1]之间;x t 为双向门控循环神经网络的当前输入;W xz 与W hz 为可学习的权重参数矩阵,b z 为可学习的偏置参数矩阵;
所述更新门z t 还用于捕捉长期依赖关系,流入信息越多,更新门z t 的值越大;
r t =σ(x t W xr +H t-1 W hr +b r )
所述重置门r t 还用于捕捉短期依赖关系,流入信息越少,重置门r t 的值越大;式中,x t 为双向门控循环神经网络的当前输入;W xr 与W hr 为可学习的权重参数矩阵,b r 为可学习的偏置参数矩阵;
其中,⨀表示按元素相乘;W hh 与W hx 为可学习的权重参数矩阵,b h 为可学习的偏置参数矩阵;
所述当前时刻隐藏状态h t 的前向计算公式如下:
所述双向门控循环神经网络包含3层;每一层均包含1024个单元;
由于使用队列会扩展字典的大小,但由于梯度会跨队列中的所有数据传播,因此很难反向传播到键值编码器;简单地将查询编码器参数直接复制到键编码器中,就会破坏键值表示的一致性,因此,对键值编码器采用了如下动量更新参数的方法:
ζ←mζ+(1-m)θ
其中,θ表示查询编码器的参数,ζ表示键值编码器的参数,m表示动量更新参数。这使得键值编码器缓慢地收敛到查询编码器,但永远不会达到相同的参数;因此,可以通过不同的扩充来积累属于同一类的动作的特征,并不断地优化模型;这种缓慢的动量更新促使模型学习各种增强下每种动作的特征;
S4、如图3左侧下部的动态字典所示,在这一步构建了动态字典,以先入先出的方式存储片段特征;
构建动态字典是由于对比学习的高性能与足够数量的负对紧密相关联;为了给模型提供足够的负对,在对比学习模块中引入了一个动态字典;
所述动态字典的构建需要确保以下两个条件:1)字典需要足够大,以包含足够的负对,这便于提取好的特征;2)字典的编码器参数应更新动量,以保持一致性;
为了满足这两个条件,字典被视为一个队列,通过它使字典的大小与批处理大小解耦;每个迭代中将批大小的样本发送到字典中,当队列已满时,队列中最早的批将被删除;
给定输入骨架序列的集合S={S 1,S 2,……,S N };每个序列S i 包含大小为S i t =J×C的T个骨骼帧,其中J是关节的数量,C是通道的数量(例如,如果C是三维的,则其代表在空间中的三维坐标);选择合适的查询编码器f(·)、关键编码器和增广策略T(·)及;对于一个序列s,首先经过增广策略生成T(s q )和,然后分别输入到查询编码器和键值编码器中得到f(T(s q ))以及;最后,经过投影头g(·)和将得到的特征投影到潜在空间中,得到表征Z q =g(f(T(s q )))和;和其他序列的特征一起存储在一个动态字典中,形成一个动态队列遵循先入先出的原则;
S5、利用查询编码器得到查询向量,利用键值编码器得到键值向量;
将查询编码器和键值编码器输出的特征输入到不同的多层感知器中进行投影;对于不同的子网络需要构建不同的多层感知器投影特征;将特征投影到潜在空间中将正样本的特征拉近,将负样本的特征推远,以此来对实例进行表征学习;
S6、如图2中3)部分和图3右侧所示,将查询向量与键值向量输入到序列识别模块,得到序列级别损失;
S6中构建了序列区分子网络,用于使模型能够学习语义特征,以区分片片段是否属于同一骨架序列;编码器的动机是学习区分片段是来自同一序列还是来自不同的序列,这超出了以前方法中序列实例的限制,允许模型有效地利用序列的空间和时间结构,从而学习更一般的语义特征;
将骨骼序列中选中的片段序列增广后所得的键值片段(c 1 k ,c 2 k ,c 3 k )与查询片段c q 构成正样本对,将从动态字典中获取该批中来自其他序列的增广作为负样本对;序列区分子网络损失函数如下所示,使其适用于多个正对任务:
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z i k 表示正样本对;Z -为负样本对;将计算所得的损失相加,取平均值作为序列的损失;最小化该损失迫使编码器区分片段是否属于同一序列,还是来自其他序列。
所述InfoNCE损失如下所示:
其中,τ表示温度系数,Z表示有查询编码器和键值编码器学习的特征;
S7、如图2中(2)部分和图3右侧所示,将查询向量与键值向量输入到片段识别模块,得到片段级别损失;
S7构建了片段区分子网络,用于在片段水平上区分片段是来自同一片段的增广还是不同片段的增广,这是由于来自同一序列的不同片段之间也有明显的区别,可能是空间上完全不同的姿态,也可能是不同的时间段的动作;
对于从相同序列中得到的查询片段c q ,由于其从锚片段增广而来,将其与从锚片段增广而来的键值片段c 1 k (假设首片段为锚片段)作为正样本对,而其他两个片段中增广后得到的键值片段c 2 k 和c 3 k 作为负样本对;所述c q 与c 1 k 的分布在特征空间中将被拉近,所述c q 与c 2 k 和c 3 k 的表征分布在特征空间中将被推远;避免重复计算同一批处理中其他负对的嵌入,片段区分子网络损失函数如下:
L Clip =L info(Z q,Z 1 k ,{Z 2 k ,Z 3 k })
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z 1 k 、Z 2 k 和Z 3 k 表示键值片段;Z q 与Z 1 k 构成正样本对,与Z 2 k 和Z 3 k 构成负样本对;
S8、如图2中4)部分和图3右侧所示,将查询向量与两个非锚片段增广所得的键值向量拼接在一起后输入到片段顺序验证模块,得到片段顺序损失;
S8构建了片段顺序验证子网络,为了进一步利用序列中包含的监督信号,用片段顺序验证任务,以确定片段的顺序是否正确,从而迫使编码器学习序列顺序的特征。
在该子网络中,随机选择片段序列的首片段或尾片段为锚片段,将锚片段增广后得到的查询片段和键值片段,同时将除锚片段之外的两个片段增广后得到的两个键值片段,将查询片段与键值片段嵌入连接起来,并将其输入到二进制分类器B(·)中,预测锚片段是在开始还是结束,进而基于交叉熵损失得出片段顺序验证子网络损失函数:
L o =-ylogB(Z q,Z 2 k ,Z 3 k )-(1-y)log(1-B(Z q,Z 2 k ,Z 3 k ))
其中,y表示实际值;Z q 表示查询片段;Z 2 k 和Z 3 k 表示键值片段;
S9、对S6~S8中所得的损失进行联合优化,定义总体损失如下:
L all =L Seq +L Clip +L o
其中,L Seq 表示序列级别损失;L Clip 表示片段级别损失;L o 表示片段顺序损失;
S10、冻结对比学习网络,训练一个简单的分类器完成动作识别任务,具体为构建一个简单的线性分类器来利用无监督下训练好的编码器完成骨骼动作识别任务;
所述线性分类器是指在冻结编码器的同时,训练了一个简单的线性分类器(一个全连接层和一个softmax层);
S11、将待判别序列抽取一个片段输入到分类器中,得到识别结果;
对于输入的序列,仿照S1抽取其中的一个片段,将抽取的片段输入到训练好的线性分类器中,得到最终的识别结果。
综上所述,对输入的骨骼序列按照如上所示步骤操作,即可得到相对应的识别结果。如图5中所示的输入序列和识别的最终结果与真实值。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其改进构思加以等同替换或改变,都应涵盖在本发明的保护范围内。
Claims (4)
1.一种基于片段驱动对比学习的骨骼动作识别方法,其特征在于,包括以下步骤:
S1、对骨骼数据进行预处理,通过随机抽取的方法从骨骼序列中抽取三个长度不同的片段,对所抽取的三个片段按照起点顺序排序后,将三个片段补齐到相同长度,然后随机抽取其中的首片段或尾片段作为锚片段;
S2、将S1中所得的锚片段输入到两个不同的增广器中,进行不同的增广,得到查询片段和键值片段;将除锚片段之外的两个片段输入到与锚片段不同的增广器中得到其他的两个键值片段,共计获得一个查询片段和三个键值片段;
S3、将S2中所得的查询片段和键值片段分别输入到查询编码器和键值编码器,所述查询编码器和键值编码器的权重不同,其中,键值编码器采取动量更新的方式更新其中的权重;
S4、构建动态字典,以先入先出的方式存储片段特征;
S5、利用查询编码器得到查询向量,利用键值编码器得到键值向量;
S6、将查询向量与键值向量输入到序列识别模块,得到序列级别损失;
所述S6中构建了序列区分子网络,所述序列级别损失获取具体包括以下内容:
将骨骼序列中所选中的片段序列增广后所得的查询片段与键值片段以及来自同一序列其他片段增广而来的键值片段构成正样本对,将查询片段与来自其他序列的片段的增广作为负样本对;序列区分子网络损失函数如下所示:
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z i k 表示正样本对;Z -为负样本对;
S7、将查询向量与键值向量输入到片段识别模块,得到片段级别损失;
所述S7中构建了片段区分子网络,所述片段级别损失获取具体包括以下内容:
假设片段序列的首片段为锚片段,将锚片段增广后得到的查询片段c q 与键值片段c 1 k 作为正样本对,c q 与除锚片段之外的两个片段增广后得到的键值片段c 2 k 和c 3 k 构成负样本对;所述c q 与c 1 k 的特征值Z q 和Z 1 k 将在特征空间中被拉近,c q 与c 2 k 和c 3 k 的特征值Z q 与Z 2 k 和Z 3 k 将在特征空间中被推远;避免重复计算同一批处理中其他负对的嵌入,片段区分子网络损失函数如下:
L Clip =L info(Z q,Z 1 k ,{Z 2 k ,Z 3 k })
其中,L info表示InfoNCE损失;Z q 表示查询片段;Z 1 k 、Z 2 k 和Z 3 k 表示键值片段;Z q 与Z 1 k 构成正样本对,Z 2 k 和Z 3 k 构成负样本对;
S8、将查询向量与两个非锚片段增广所得的键值向量拼接在一起后输入到片段顺序验证模块,得到片段顺序损失;
所述S8中构建了片段顺序验证子网络,所述片段顺序损失获取具体包括以下内容:
随机选择片段序列的首片段或尾片段为锚片段,将锚片段增广后得到的查询片段和键值片段,同时将除锚片段之外的两个片段增广后得到的两个键值片段,将查询片段与键值片段嵌入连接起来,并将其输入到二进制分类器B(·)中,预测锚片段是在开始还是结束,进而基于交叉熵损失得出片段顺序验证子网络损失函数:
L o =-ylogB(Z q,Z 2 k ,Z 3 k )-(1-y)log(1-B(Z q,Z 2 k ,Z 3 k ))
其中,y表示实际值;Z q 表示查询片段;Z 2 k 和Z 3 k 表示键值片段;
S9、对S6~S8中所得的损失进行联合优化;
S10、冻结对比学习网络,训练一个简单的分类器完成动作识别任务;
S11、将待判别序列抽取一个片段输入到分类器中,得到识别结果。
2.根据权利要求1所述的一种基于片段驱动对比学习的骨骼动作识别方法,其特征在于,所述S2中片段增广操作采用姿态增广和节点震动两种增广方法。
3.根据权利要求1所述的一种基于片段驱动对比学习的骨骼动作识别方法,其特征在于,所述S3中提到的查询编码器与键值编码器均基于双向门控循环神经网络构建;
所述更新门z t 用于控制t-1的隐藏状态h t-1以及当前时刻下的隐藏状态输入多少将会流入到h t 中,更新门的前向计算公式如下:
Z t =σ(x t W xz +h t-1 W hz +b z )
其中,σ是门控信号,为sigmoid函数,该函数用于将数据变换到[0,1]之间;x t 为双向门控循环神经网络的当前输入;W xz 与W hz 为可学习的权重参数矩阵,b z 为可学习的偏置参数矩阵;
所述更新门z t 还用于捕捉长期依赖关系,流入信息越多,更新门z t 的值越大;
r t =σ(x t W xr +H t-1 W hr +b r )
所述重置门r t 还用于捕捉短期依赖关系,流入信息越少,重置门r t 的值越大;式中,x t 为双向门控循环神经网络的当前输入;W xr 与W hr 为可学习的权重参数矩阵,b r 为可学习的偏置参数矩阵;
其中,⨀表示按元素相乘;W hh 与W hx 为可学习的权重参数矩阵,b h 为可学习的偏置参数矩阵;
所述当前时刻隐藏状态h t 的前向计算公式如下:
所述双向门控循环神经网络包含3层;每一层均包含1024个单元。
4.根据权利要求1所述的一种基于片段驱动对比学习的骨骼动作识别方法,其特征在于,所述S3中提到的键值编码器动量更新具体内容为:
ζ←mζ+(1-m)θ
其中,θ表示查询编码器的参数,ζ表示键值编码器的参数,m表示动量更新参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957982.8A CN115035606B (zh) | 2022-08-11 | 2022-08-11 | 一种基于片段驱动对比学习的骨骼动作识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957982.8A CN115035606B (zh) | 2022-08-11 | 2022-08-11 | 一种基于片段驱动对比学习的骨骼动作识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115035606A CN115035606A (zh) | 2022-09-09 |
CN115035606B true CN115035606B (zh) | 2022-10-21 |
Family
ID=83130085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210957982.8A Active CN115035606B (zh) | 2022-08-11 | 2022-08-11 | 一种基于片段驱动对比学习的骨骼动作识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115035606B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059598A (zh) * | 2019-04-08 | 2019-07-26 | 南京邮电大学 | 基于姿态关节点的长时程快慢网络融合的行为识别方法 |
CN113780129A (zh) * | 2021-08-31 | 2021-12-10 | 同济大学 | 基于无监督图序列预测编码的动作识别方法及存储介质 |
CN113887516A (zh) * | 2021-10-29 | 2022-01-04 | 北京邮电大学 | 用于人体动作识别的特征提取系统和方法 |
CN113901891A (zh) * | 2021-09-22 | 2022-01-07 | 上海交通大学 | 帕金森病握拳任务的评估方法及系统、存储介质及终端 |
CN114511924A (zh) * | 2021-12-31 | 2022-05-17 | 南京理工大学 | 基于自适应增广与表示学习的半监督骨骼动作识别方法 |
CN114764902A (zh) * | 2021-01-04 | 2022-07-19 | 中国移动通信有限公司研究院 | 一种行为识别方法、装置和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158861B (zh) * | 2021-04-12 | 2024-02-13 | 杭州电子科技大学 | 一种基于原型对比学习的运动分析方法 |
CN114613013A (zh) * | 2022-03-18 | 2022-06-10 | 长沙理工大学 | 一种基于骨骼节点的端到端人类行为识别方法与模型 |
-
2022
- 2022-08-11 CN CN202210957982.8A patent/CN115035606B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110059598A (zh) * | 2019-04-08 | 2019-07-26 | 南京邮电大学 | 基于姿态关节点的长时程快慢网络融合的行为识别方法 |
CN114764902A (zh) * | 2021-01-04 | 2022-07-19 | 中国移动通信有限公司研究院 | 一种行为识别方法、装置和存储介质 |
CN113780129A (zh) * | 2021-08-31 | 2021-12-10 | 同济大学 | 基于无监督图序列预测编码的动作识别方法及存储介质 |
CN113901891A (zh) * | 2021-09-22 | 2022-01-07 | 上海交通大学 | 帕金森病握拳任务的评估方法及系统、存储介质及终端 |
CN113887516A (zh) * | 2021-10-29 | 2022-01-04 | 北京邮电大学 | 用于人体动作识别的特征提取系统和方法 |
CN114511924A (zh) * | 2021-12-31 | 2022-05-17 | 南京理工大学 | 基于自适应增广与表示学习的半监督骨骼动作识别方法 |
Non-Patent Citations (6)
Title |
---|
"3D Skeletal Gesture Recognition via Discriminative Coding on Time-Warping Invariant Riemannian Trajectories";Xin Liu 等;《IEEE》;20211231;第1841-1854页 * |
"3D Skeletal Gesture Recognition via Hidden States Exploration";Xin Liu 等;《IEEE》;20201231;第4583-4597页 * |
"Augmented Skeleton Based Contrastive Action Learning with Momentum LSTM for Unsupervised Action Recognition";Haocong Rao 等;《ELSEVIER》;20210408;第90-109页 * |
"SeCo: Exploring Sequence Supervision for Unsupervised Representation Learning";Ting Yao 等;《arXiv:2008.00975v2 [cs.CV]》;20210127;第1-9页 * |
"Skeleton-Contrastive 3D Action Representation Learning";Fida Mohammad Thoker 等;《ACM》;20211017;第1655-1663页 * |
"基于图模型及骨架信息的人体分割算法";岳焕景 等;《天津大学学报》;20180831;第51卷(第8期);第837-843页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115035606A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dong et al. | Where and how to transfer: Knowledge aggregation-induced transferability perception for unsupervised domain adaptation | |
Zheng et al. | Unsupervised representation learning with long-term dynamics for skeleton based action recognition | |
Liu et al. | 3DCNN-DQN-RNN: A deep reinforcement learning framework for semantic parsing of large-scale 3D point clouds | |
CN112733656B (zh) | 基于多流空间注意力图卷积sru网络的骨架动作识别方法 | |
CN109919221B (zh) | 基于双向双注意力机制图像描述方法 | |
CN112597883A (zh) | 一种基于广义图卷积和强化学习的人体骨架动作识别方法 | |
CN109743642B (zh) | 基于分层循环神经网络的视频摘要生成方法 | |
CN108427740B (zh) | 一种基于深度度量学习的图像情感分类与检索算法 | |
CN113239801B (zh) | 基于多尺度特征学习和多级域对齐的跨域动作识别方法 | |
CN111259779A (zh) | 一种基于中心点轨迹预测的视频动作检测方法 | |
Yue et al. | Action recognition based on RGB and skeleton data sets: A survey | |
CN110390294A (zh) | 一种基于双向长短期记忆神经网络的目标跟踪方法 | |
Hu et al. | Apanet: Auto-path aggregation for future instance segmentation prediction | |
CN115731498B (zh) | 一种联合强化学习和对比学习的视频摘要生成方法 | |
Wang et al. | Quality-aware dual-modal saliency detection via deep reinforcement learning | |
WO2022222854A1 (zh) | 一种数据处理方法及相关设备 | |
CN116524593A (zh) | 一种动态手势识别方法、系统、设备及介质 | |
Tang et al. | Hallucinating optical flow features for video classification | |
CN117034100A (zh) | 基于分层池化架构自适应图分类方法、系统、设备和介质 | |
Ning et al. | Deep Spatial/temporal-level feature engineering for Tennis-based action recognition | |
Wu et al. | Learning and planning with a semantic model | |
CN114626598A (zh) | 一种基于语义环境建模的多模态轨迹预测方法 | |
Robert | The Role of Deep Learning in Computer Vision | |
CN115035606B (zh) | 一种基于片段驱动对比学习的骨骼动作识别方法 | |
CN113920170A (zh) | 结合场景上下文和行人社会关系的行人轨迹预测方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |