基于多模态融合的单阶段连续手势识别方法
2022-04-21张磊
张 磊
(淮北职业技术学院 机电工程系 安徽淮北 235000)
手势识别有着广泛的应用,包括人机交互、机器人和手语识别等。大多数手势识别方法都是基于识别孤立的手势[1-3],其中输入视频被手动分割成片段,每个片段包含一个孤立的手势。在连续执行手势的真实世界场景中,基于孤立手势的方法不直接适用。因此,最近的方法[4-6]旨在识别到连续输入视频中的手势,其中包括多个手势类别,包括手势和非手势动作。这些连续手势识别方法有两种形式:两阶段[5-7]和单阶段[8]方法。两阶段方法是围绕使用两个模型构建的:一个模型用于执行手势检测,另一个用于手势分类。在[6]中,笔者提出了一种两阶段方法,其中手势首先由浅层3D卷积神经网络进行检测,当检测到手势时,它激活深层3D卷积神经网络分类模型。与两阶段方法相比,单阶段方法仅使用直接执行手势分类的单个模型。图1展示出了单阶段方法的典型结构,其中通过将所有姿势类与非姿势类一起考虑来执行识别。除比两阶段方法简单外,单阶段方法还避免了错误在阶段之间传播的潜在问题。文章提出了一种新的单阶段连续手势识别方法。通过使用单阶段方法,期望分类模型学习手势和非手势之间的自然转换。然而,直接从连续的未分段视频中学习手势十分困难,因为它需要模型来检测手势类别之间的转换并同时识别手势/非手势。为了提高性能,考虑了多模态输入,并引入了一种新的融合模块,该模块从多模态输入流中提取多个特征子序列,并考虑它们的时间顺序。所提出的融合模块保持了这种时间顺序,并且能够从可用模态中学习有区别的特征向量。为了帮助模型学习,笔者提出了一种新的基于中点的损失函数,并进行了额外的实验来证明所提出的损失的有效性。
1方法介绍
图1为文章提出支持多模态单阶段手势识别的框架结构示意图。在模型的第一阶段,通过特征提取器从每个模态中提取出语义特征,并且提取的特征送入单模态特征映射块。为每个流维护单独的特征映射块,所有块的输出结果送入融合模块学习多模态时空关系以支持识别过程。融合模型的输出送入执行最终分类的多模态特征映射模块。该模型被设计用来处理可变长度的视频序列,可以用于分割或未分割的视频,这些视频可以由一个或多个手势类组成,并支持任意数量模态的信息融合。
图1 单阶段连续手势识别框架结构示意图
1.1单模态特征映射模块
给定模态的视频帧通过各自的特征提取器,捕获与特定模态相关的显著特征,并学习适合于后续特征融合的特征向量。如图2所示,这种单模态网络由时间卷积层和多个膨胀残差块组成,其中每个膨胀残差块由一个膨胀卷积层、一个非线性激活函数和一个1×1卷积-批归一化-ReLU层组成,并利用残差连接来促进梯度流动。如同在文献[9]和文献[13]中一样,在每层使用加倍的膨胀因子,并且每层由相等数量的卷积滤波器组成。
图2 单模态特征映射模块示意图
1.2融合块
单模态特征映射块的输出向量送入融合块,融合块从单模态序列中提取出时序特征,考虑它们与当前时间步长的时间一致性,再使用注意力参数执行特征融合。此参数指定了在给定时间应从每个单模态特征映射块的输出向量中所需要选择的特征单元。图3给出了一个注意力级别参数的可视化例子。
图3注意力级别参数的示意图
一旦计算了iinc和idec,在t时刻,从每个特征向量中选择t-idec到t+iinc的单元。该子特征向量由下式给出:
(1)
其中,t=1,2,…,M。如图4所示,当注意力级别为4时,从单模态特征映射模块的每个向量中需要选择4个特征单元(从t-1到t+2)。
图4 当A=4时的融合过程示意图
(2)
如果每个特征单元的维数为d,注意力级别为A,那么ηt的大小为:[d,A×M]。然后,利用所提出的特征增强器模块,该模块受中激励模块的启发,允许模型从融合的多模态特征中识别信息特征,增强相关特征单元并抑制非信息特征[13]。激励块考虑了整体2D/3D卷积层输出,并考虑了它们在通道上的分布来增强特征[13]。相比之下,提出为每个t时刻增强子特征向量Vi内的特征。通过特征增强块,每个子特征向量的特征通过显式建模通道之间的相互依赖来进行增强,进一步支持多模态融合。为了利用子特征之间的相关性,首先执行全局平均池化,以检索子特征向量的每个d通道内的信息:
(3)
然后使用Sigmoid激活来过滤掉d内的信息通道:
βt=σ(W2×ReLU(W1×zt)),
(4)
生成的增强特征向量βt尺度也为[d,A×M]。通过考虑所有的模态输入,其中有用的信息会被增强。
1.3多模态特征映射模块
(5)
1.4损失函数
利用交叉熵作为分类损失:
(6)
仅使用逐帧分类损失来学习手势分割是不够的,并且可能导致过度分割错误。因此,也使用文献[9]中提出的平滑损失。这种平滑损失逐帧使用对数概率的截断均方误差:
(7)
其中,T,C,yt,c分别定义了每个序列的帧数,类的个数和C类在时间T的概率。在平滑损失计算过程中,它只考虑预测序列,而不考虑其对应的标注真实序列。此外,观察到它阻碍了手势的转换过程。考虑到这一局限性,提出了一个新的损失函数,即中点平滑损失。
受信号去噪中值滤波的启发,定义了中点平滑损失来促进平滑预测。文章提出在标注真值和预测结果之间的距离进行平滑,而不仅仅对预测结果进行平滑,在计算损失时加入平滑效应作为正则化项进行约束。
令ω表示一个有N个元素的滑动窗口。首先,在窗口ω的中点获得标注的手势结果:
(8)
其中n∈ω。类似地,在中点获得预测的手势类别:
(9)
然后定义中点平滑损失为:
(10)
最后,所有3个损失函数相加形成最终损失:
L=Lce+λ1Lsm+λ2Lmid,
(11)
其中,λ1和λ2是决定不同损失权重的超参。
2实验
2.1数据集
文章选取了两个具有挑战性的公开数据集上评估了的模型,EgoGesture[10]和IPN手数据集[4]。这两个数据集都由未分段的视频组成,每个视频包含多个手势。EgoGesture[10]是可用于分段和非分段(连续)手势分类的手势数据集,由静态和动态手势组成。该数据集包含各种具有挑战性的场景,包括具有动态背景的静态对象、具有动态背景的行走对象、杂乱背景以及面对强烈阳光的对象。文章主要利用未分段的连续手势数据,这更具挑战性,因为它要求在一次通过中分段并识别手势。该数据集由记录在6个不同室内和室外环境中的84个类别(83个手势类别和非手势类别)组成。数据集分别包含1239、411和431个视频用于训练、验证和测试。数据集提供RGB和深度视频。
IPN手数据集[4]是最近发布的支持连续手势识别的数据集。该数据集包含基于13个静态/动态手势类和一个非手势类的视频。这些手势由50个不同的主体在28个不同的场景中表演。这些视频是在极端光照条件下以及静态和动态背景下收集的。该数据集包含总共4218个手势实例和800491个RGB帧。与其他公开可用的手势数据集相比,IPN手数据集包含了每个视频中最大数量的连续手势,并且手势之间的转换最快速[4]。更重要的是,它提供了多种输入模态:RGB,光流和手分割数据。
2.2实现细节
通过使用ResNet50网络提取预先训练的特征,并且从拉平(flatten)层提取特征。单模态特征映射块由12个扩张剩余层组成,而多模态特征映射块块包含10个扩张剩余层。类似于文献[9],将每一层的膨胀因子加倍。使用Adam优化器,学习率为0.0005。使用PyTorch完成了建议框架的实施。
2.3评价指标
平均Jaccard指数(MJI)。利用MJI指标来评估EgoGesture数据集上的模型性能。对于给定的输入,Jaccard指数衡量标注和预测的类标签序列之间的平均相对重叠。第i类的Jaccard指数计算如下:
(12)
其中Gs,i和Ps,i分别表示序列s的第i类标签的标注和预测结果。那么该序列的Jaccard指数可以通过下式计算:
(13)
其中,L是可用手势类别的数量,而ls代表唯一的真实标签。然后,计算所有测试序列的最终平均Jaccard指数:
(14)
Levenshtein准确率(LA)。为了评估IPN手数据集,使用了文献[4]采用的Levenshtein准确率度量。Levenshtein准确率是通过估计标注和预测序列之间的Levenshtein距离来计算的。Levenshtein距离计算序列之间的项目级别变化的数量,并将一个序列转换为另一个序列。然而,在获得Levenshtein距离之后,通过对真实目标类别(Tp)的数量平均该距离,并从1中减去该平均值并乘以100以获得百分比来计算Levenshtein准确率:
(15)
2.4实验结果
(1)参数值A的选择。为了确定注意力级别参数A,通过增加A的值来评估EgoGesture数据集上的模型结果。图5说明了注意力级别参数对EgoGesture验证集上的Jaccard指数分数的影响。A=1时为特征的简单拼接。由于注意力级别为8会产生最好的结果,所以在其余的评估中默认使用A=8。
图5 Jaccard指数随着注意力级别参数A变化过程
(2)与其他方法的比较。在表1中,使用EgoGesutre手势数据集比较了所提方法与当前其他方法的性能。该比较过程是在包含多个手势的连续视频流输入下完成的(不是每个视频包含单个手势的预先分段的视频)。类似于文献[10],在评估结果时使用了两种设置。在这两种设置中,将滑动窗口(sw)的长度保持在16,同时考虑16(l=16,s=16)和8(l=16,s=8)的步长。在[10]中,作者通过考虑由C3D Softmax预测的每个片段的类别概率来获得预测结果。在文章中,滑动窗口应用于整个序列以生成视频片段。对于滑动窗口重叠的设置(即l=16,s=8),通过累加两个重叠窗口的分类分数来获得帧标签预测,并且选择最可能的类别作为每帧的预测结果。
表1 与其他方法在EgoGesture数据集上的比较
除了利用C3D模型之外,文献[10]中的作者还通过使用时空转换模块[11](sw+C3D+STTM)和LSTM网络(LSTM+C3D)进一步改进了手势预测方法。在LSTM+C3D中,每帧的类别标签由LSTM基于在当前时间片段提取的C3D特征来预测。采用的是隐藏层特征大小为256的LSTM。实验结果表明LSTM的效果最好。然而,在这两种情况下,提出的多模态融合方法能够以相当大的优势超过当前最先进的方法。当使用第二种设置(即l=16,s=8 )时(滑动窗重叠),获得了1.9%的MJI指标增益。
还在IPN手数据集[4]上评估了文章提出的模型。如表2所示,为文章提出的融合模型与其他方法的比较。结果使用了Levenshtein准确率度量指标。在最初的工作[4]中,笔者通过使用两阶段方法来执行连续手势识别,其中在第一阶段,使用单独的检测模型来检测序列中的手势。在第二阶段,通过分类模型(ResNet50或ResNetXt-101)对检测到的手势进行分类。对于[4]中的整个过程,笔者考虑了不同的数据形式组合,如RGB-Flow和RGBSeg,其中“Flow”和“Seg”分别指光流和语义分割。笔者使用RGB-Flow数据在ResNetXt-101上获得了最高的分类结果。
表2 与其他方法在IPN手数据集上的比较
与文献[4]中介绍的两阶段方法相反,使用单阶段方法,该方法直接预测视频的完整帧序列的手势类别标签结果。这需要模型具有高水平的区分能力来分离多个手势和非手势类别,显然的融合模型在IPN手部数据集上的表现优于目前最先进的结果。
(3)损失函数的影响。探索了所提出损失函数的影响。如表3所示,显示了用不同损失函数获得的EgoGesture手势数据集上的MJI结果。其中,Lce、Lsm和Lmid分别表示了上文介绍的交叉熵损失、平滑损失和中点平滑损失。所有三种损失的组合是最终的优化目标Loverall。表3可观察到Lmid和Lsm这两种损失都有助于改善交叉熵损失,其中基于中点的平滑机制显示出较为显著的提升效果。然而,当将所有损失一起使用时,能够取得最好的效果,这说明了基于中点对不同预测窗口和标注窗口进行比较的重要性。
表3 不同损失函数在EgoGesture数据集上的影响
(4)融合块的可扩展性。为了证明所提出的框架和融合机制对于不同数量的模态的可扩展性,使用了第三种模态,即IPN手数据集中提供的分割图。
为了使手部分割图的特征提取更有意义,使用了文献[12]中介绍的Pix-to-Pix GAN。首先训练人工神经网络来生成类似于IPN手部数据集的手部分割图,将生成器和判别器中的滤波器数量设置为8,并按照最初的工作来训练GAN。在神经网络训练之后,使用训练的生成器模型进行第三模态的特征提取,其中特征是从生成器的瓶颈层获得的。这些提取的特征向量尺寸为18×18×8=2592。与基于RGB和光流的特征向量提取的单模态特征映射块一样,馈送到第三个单模态特征映射块。
正如预期的那样,通过使用三种不同的模态数据,能够将Levenshtein的整体准确性相比于仅使用两种模态时提高1.8%,达到69.92%的Levenshtein准确性。通过这种评估方式,证明了所提出的方法可以无缝地扩展到融合来自具有不同特征维度的不同数量模态的数据。
(5)消融实验。为了证明所提出的融合机制的重要性,进行了消融实验。在实验中,逐步移除所提出框架的各个组件,并使用EgoGesture手势数据集对模型进行重新训练和测试。表4报告了采用MJI作为度量指标的五种消融模型的评估结果。消融模型的设置如表4所示。
表4 在EgoGesture数据集上的消融实验结果。
①只使用RGB。一个单独的特征映射块应用于RGB流,并且单模态块的输出直接送入多模态特征映射块。因为只使用了一个单一模态。因此,不再使用所提出的特征增强器。
②只使用深度。该模型类似于“只使用RGB”流的消融模型。使用深度输入流来代替输入RGB流。
③简单融合。没有引入融合模块,通过沿着RGB和深度模态的序列完成简单的特征拼接来执行融合过程。
④不带特征增强器。使用没有特征增强模块的框架。
从实验结果可知,多模态特征的原始连接不会为连续手势识别生成有用的信息。与所提的方法相比,当应用简单连接时,性能下降了大约5%,并且与最佳单个模态(深度)模型相比,简单连接仅略微改善了整体性能。所提出的时间融合策略以及特征增强块可以显著提升了最终的效果。
3结语
文章提出了一种单阶段连续手势识别方法和一种新的融合方法进行多模态特征融合。该框架可以应用于不同长度的手势视频,并且能够在单个步骤中直接执行手势检测和分类,而无需额外的检测器模型的帮助。所提出的融合模型被引入来处理多个模态,而不限制模态的数量,并且进一步实验证明了融合方法的可扩展性,并展示了多个流如何补充整个手势识别过程。利用提出的损失函数,引入的单阶段连续手势识别框架以相当高的精度学习手势转换过程,即使是在快速手势转换的情况下。消融实验进一步强调了所提出的方法的各个组成部分的重要性,该方法在两个数据集上都显著优于其他的方法。