基于视频的上肢外骨骼行为预判方法
2022-05-23马六章程子均
马六章,蒋 磊,吴 越,程子均
(中国矿业大学(北京) 机电与信息工程学院,北京 100083)
0 引 言
近年来,在上肢外骨骼机器人的算法研究中,如何使外骨骼机器人更加智能地预测人类的行为是研究的热点问题。李潇[1]利用动力学分析模拟手臂搬运物体时的关节受力情况,利用自抗扰控制算法设计了自抗扰控制器,实现了对外骨骼动力关节的控制。
随着深度学习以及计算机视觉技术的发展,上肢外骨骼机器人的人机交互预测有了新的发展方向。Christoph等[2]使用改进双流法(Two-Stream)来实现视频动作识别,设计了由时间网络和空间网络组成的Two-Stream卷积网络结构,分别将RGB图像和光流图像送入两支神经网络并融合,最终分类结果验证了在多帧密集光流上训练的卷积网络[3],在有限的数据集上仍然能够获得好的性能,但其不能对长时间的视频进行建模。Ker, J等[4]提出改进的C3D(3-dimensional convolution)网络结构,用三维的卷积核代替二维卷积核处理视频,在UCF101数据集上的准确率稍低于双流法,但是由于其简单的网络结构使得该模型的收敛及推理速度大大提高。Thung G等[5]提出将单帧的图像处理的特征放入RNN,利用RNN来完成时间上的建模,最后形成对一段视频的描述的方法(LRCN)。
在以往的工作中,长期的时间聚合通常是通过叠加大量的局部时间卷积来实现的。每次卷积处理一个局部时间窗口,本文提出的MTF模块则将局部卷积变形为一组子卷积,形成层次化残差结构。在不引入附加参数的情况下,对特征进行一系列的子卷积处理,每一帧可以完成多个邻域的时间聚合,扩大了在时间维的等效感受野,从而能够在时间距离较远的帧上建立长期的时间关系。最终将MTF模块插入到GoogleNet网络inception模块中搭建成MTF-Gnet。此外,由于人体运动的不规则性,很难将所有的人体运动压缩到一个模型中。其次,人类行为除了具有异质性外,还具有高度的随机性。不同的人,同一个人重复一个动作,动作模式也不同。为了解决这些问题。本文提出了一种非线性递推最小二乘参数自适应算法(NRLS-A)来实现在线自适应。
1 预测模型的建立
1.1 MTF模块
以往的动作识别方法通常采用局部时间卷积来一次处理邻近帧,而对于距离较远的帧只能通过大量地堆叠局部卷积操作来进行建模。Stanford[6]提出了Multi-resolution-CNN,把相聚L的两帧图像分别输入到两个卷积神经网络中去,然后在最后一层连接到同一个全连接的softmax层,在UCF-101数据集上,得到了较好的效果,但这样却损失了视频帧的时序信息。在外骨骼对人体行为进行预测时,其时序上的联系更加紧密,比如抬起重物和放下重物。为了解决这一问题,本文提出了多时间融合(MTF)将时空特征和对应的局部卷积层划分为一组子集,以实现有效的长时间时态建模。
如图1左侧所示,给定一个输入特征X,传统的方法是对其进行一次局部时间卷积再进行一次空间卷积。与此不同的是,我们沿着通道维度将特征分割为4个片段,每个片段的形状就变成了 [N,T,C/4,H,W]。 如图1右侧所示,局部卷积也被划分为多个子卷积。最后3个片段依次用一个通道方向的时间1D子卷积层和另一个空间2D子卷积层进行处理。每个都只有原来的1/4的参数。此外,在相邻的两个片段之间添加残差连接,将模块从并行结构转换为层次化级联结构
图1 MTF模块
(1)
(2)
(3)
(4)
所得到的输出特征Xo即为包含了捕获到的不同时间范围的时空表示。优于传统方法中使用单一局部卷积得到的局部时间表示。
最后,本文将MTF模块插入GoogLeNet中的inception模块进行视频帧图像的特征提取,GoogLeNet由Christian Szegedy提出,Zhong Z等[7]进行了较大改进,使用了inception模块拓宽网络的横向结构,以此来解决网络过深而导致的计算量大、梯度消失等问题,inception模块结构如图2(a)所示。
图2 MTF模块插入方式
原始inception模块将5×5大卷积核分解成2个3×3小卷积核,以此带来更大的感受野,能够提取到不同尺度的特征。同时将稀疏矩阵分解成密集矩阵,提高了模型的收敛速度。最后将其用全连接层拼接起来,即完成了不同尺度特征的融合,同时由于每增加一层就要通过一次Relu函数,增加了模型的非线性扩展模型表达能力。
如图2(b)所示,为了提高计算效率,在每个支路的第一个1x1卷积层之后,利用MTF模块替换剩余路径中原有的3×3 Conv层。此外,在经过MTF模块对每一个mini-batch 数据的内部进行批标准化处理(BN)[8]使此层的输出规范到符合的正太分布,由此减少了内部参数偏移,不仅可以大大加快模型的收敛速度,还可以起到正则化的作用。
由于经MTF-Gnet网络提取的特征信息要传递给门控循环网络进行时间维度上的预测,本文去掉了最后的softmax层,而是将最后一层的输出先进行全局平均池化,接着通过一个输出通道数为1000的1×1卷积,作为门控循环网络的输入。此外,为了避免过拟合的问题,本文采用了Dropout对网络进行了随机失活处理。本文搭建的MTF-Gnet网络结构见表1。
表1 网络模型结构与输入尺寸
1.2 门控循环网络模型
门控循环网络(GRU)改变了传统循环神经网络(RNN)的隐藏层结构[9],使网络可以更好地捕捉深层连接,同时也改善了梯度消失问题。同时相对于LSTM记忆单元,门控循环网络拥有更简单的结构以及更少的参数。LSTM和门控循环网络的结构对比如图3所示。
图3 LSTM及门控循环网络结构对比
门控循环网络仍然使用了能够更好处理时序信息的特殊“门”结构,但于LSTM不同的是[10],门控循环网络将“遗忘门”和“输入门”合成了一个单一的“重置门”,为神经元的更新操作设置了一个“更新门”,同时将细胞状态和隐藏状态进行了融合。从而建立了一个更简单,参数更少的结构。其正向传播过程如图4所示。
图4 门控循环网络正向传播过程
图中各节点参数计算如下
z(t)=σ(W(z)x(t)+U(z)h(t-1)) 更新门
(5)
r(t)=σ(W(r)x(t)+U(r)h(t-1)) 重置门
(6)
(7)
(8)
门控循环网络结构分为1层输入层,2层隐藏层,1层预测输出层。其中,输入层为经过MTF-Gnet网络提取出的得分最高的10个特征,上一层的初始激活值设为全零,隐藏层的神经元个数分别为32,64,32,其中在第二层进行了BN处理。激活函数为tanh函数。输出层为4个节点,代表了此时人体的动作(是否将要进行抬起重物的行为)。其中tanh函数定义如下
(9)
在未引入Attention机制的门控循环网络结构中,每个预测时刻的输出是由某一段输入序列共同决定的,每个输入序列对下一时刻输出序列影响权值在训练工程中已经固定。而在实际情况中,对于某些人体动作,其时间上的关联程度往往不同。这就需要引入Attention机制对每个输入序列对预测序列影响的权重值进行调整(即门控循环单元更新门和隐藏门的参数)。Attention机制最早是在视觉图像领域提出,Lin L等[11]在RNN模型上使用了Attention机制来进行图像分类。Bahdanau等[12]使用类似Attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是第一个提出将Attention机制应用到NLP领域中。接着类似的基于Attention机制的RNN模型扩展开始应用到各种NLP任务中。本文搭建的门控循环端到端网络结构如图5所示。
图5 门控循环端到端网络模型
在编码器端,过去n步的视频帧特征向量按照时间顺序依次送入门控循环单元,在第t步时,编码器除了接收来自Xt的数据信息,同时也接收了前一步编码器单元的隐藏层信息。其相关程度用ht表示
(10)
即第t个时间向量序列与第j个输出向量hj之间的相关程度,最后对其进行加权求和就可以计算出注意力分配机制ct
(11)
在解码器端,同样采用门控循环网络结构,输入为上一时刻的输出,st表示当前时刻门控循环单元的状态,yt表示当前解码器的输出值。其解码过程如下
st=fd(yt-1,st-1,ct)
(12)
p(yt|y (13) 其中,st-1为上一个解码器单元隐藏层状态,通过注意力机制ct连接编码器与解码器,从而求得解码器当前状态st, 经过线性映射输出当前预测值,其中g为ReLU激活函数。 在推理时,由于不同穿戴者在进行同一组动作时有不同的行为模式[13],所以在进行适应性的实时预测时,需要实时调整神经网络中的参数。通过摄像头拍摄到的人体实时行为,经过卷积网络提取出当前真实行为的深层特征,与门控循环网络预测出来的行为特征进行对比。这实则是一个非线性最小二乘(nonlinear least square,NLS)问题:给定一个数据集 {(xi,yi),i=0,1,…}, 目标是优化一个参数θt∈Rn, 使得下式最小 (14) 其中 ei=yi-f(θt-xi) (15) 为了有效地实时解决NLS问题,Moriyama等[14]提出一种通过最小化估计状态误差的2阶范数的扩展卡尔曼滤波(EKF)算法,在EKF中,被估计的对象是状态值,在本文提出的非线性最小二乘自适应算法中,被估计的对象是网络参数,且可用于网络的每一层。算法的具体流程如下: 算法1:非线性最小二乘自适应算法 输入:初始化参数θ0; 输出:调整后参数θN: (1)初始化超参数p0>0;λ>0;r>0;ε>0; P0=p0I; (2)根据目前参数θt计算当前预测值 (3)根据穿戴者实际行动得到真实值Yt (4)计算关于θ的偏导数 (5)计算更新权重参数 (6)更新超参数 (7)更新一次待估计参数 (8)如果误差小于预期值或达到迭代次数,结束,否则进入第(2)步。 其中,λ是遗忘因子,r与误差ei的协方差有关,K是增益矩阵,θt是未知参数θ的估计值,在本文的实验中,θ对应于编码器隐藏层的权重参数。 本文将特征提取和行为预测的目标函数合并成一个多任务模型。使用以下损失函数以端到端方式训练模型 l=γlclassification+(1-γ)lregression (16) lclassification是用于特征提取的交叉熵损失函数。lregression是行为预测的回归损失函数。最终损失函数是这两个损失函数的加权平均值,其中权重由γ控制。在本文的实验中,γ取值为0.5。 本文所采用实验数据集为配置与上肢外骨骼机器人上的摄像头采集的人体日常行为视频数据集,由6名测试人员(4男2女,年龄在23到35岁之间)佩戴着实验装置在实验室、宿舍、操场等5个不同场景分别进行了物体的搬运、抬起、放下、正常活动时的视频采集。本文所使用的GoPro摄像头所拍摄的视频为每秒60帧,视频格式为mp4。摄像头的安装位置如图6所示。 经过测试,每隔3帧提取一张视频帧,即每秒提取20张视频帧。由于日常生活中的抬起、抓取、搬运等动作通常在发生在3 s~5 s左右,因此每个动作共提取100张左右的图片作为视频帧序列。去除掉异常的数据之后得到了1800个训练样本,共计4个类别,平均每个样本包含5个连续的视频帧数据。同时每个类别设置了50个短视频作为测试样本。其中具有代表性的视频序列如图7所示。 图6 摄像头佩戴位置 图7 部分视频帧序列 为了压缩图片大小,加快模型的收敛速度,同时由于摄像头所拍摄的场景较为丰富,为了更好地提取目标物体的特征,在进行训练之前,本文将样本图片进行了主成分分析算法(principal component analysis,PCA)降维压缩处理[15]。具体的处理过程如下: 对所有样本进行去中心化,如式(17),将数据集的每个样本的不同特征减去所有样本对应特征的均值,处理过的不同特征上的数据均值为0。这样处理的好处是可以减少特征之间的差异性,可以使得不同的特征具有相同的尺度,让不同特征对参数的影响程度保持一致 (17) X*=X-U (18) 计算样本图片的协方差矩阵,其中每列代表一个特征,每行代表一个样本,将样本矩阵的每个样本减去对应列的均值,然后通过下式得到协方差矩阵 (19) 对协方差矩阵进行特征值分解,得到特征值和特征向量,取出最大的K个特征值对应的特征向量,组成投影矩阵W;对样本集中的每一个样本,都乘以投影矩阵W进行转化,得到降维后的数据 X′=X*W (20) 图8(a)为经过opencv提取后的视频帧图像,图8(b)为经过PCA降维压缩后的图像,可以看出在经过PCA处理后,目标物体的特征更加突然,较好排除了周围环境所带来的影响。同时,每一帧图像的大小也得到了压缩,提高了后续算法的收敛速度。 本文所搭建的模型主要分为3个模块,即卷积网络特征提取模块、门控循环网络序列预测模块,以及非线性最小二乘参数调整模块。模型的总体流程如图9所示。 在训练时,将经过预处理的视频帧按照时间顺序的序列送入卷积神经网络特征提取模块,通过插入MTF模块的卷积网络提取每一帧的时空运动特征。之后将提取后的特征按顺序送入门控循环端到端序列预测模块,通过引入注意力机制的端到端模型对下一时刻穿戴者的运动轨迹及运动意图做出预测。训练过程的流程如图10所示。 图10 网络训练过程 其中的超参数设定为:学习率a设为0.001,衰减系数decay设为0.9,Dropout系数设为0.5最大迭代次数为4000,每500次保存一次当前模型,最终选择最优模型进行预测。模型训练时以Batch为单位进行,Batch Size设置为64。 在推理时,由于不同佩戴者行为模式的不同,根据实际运动情况通过非线性最小二乘自适应算法对门控循环网络编码器隐藏层参数进行实时调整。推理流程图如图11所示。 图11 网络推理过程 本文实验软件平台为用Linux Ubuntu 18.04 LTS系统,python 3.7.3,TensorFlow 1.13.0,CUDA 10.0,CUDNN 7.4。硬件设备为Tesla-V10-PCRE-16G以及Jetson TX2。本文实验均在Tesla服务器上进行训练并部署在jetson TX2上进行推理。TX2其硬件配置为6核CPU架构,256核Pascal架构的GPU核心,内存为8 GB。 本文模型基于inception-V3网络结构,其模型大小约为93 MB,通过分解卷积以及批标准化处理使得模型参数大量减少,最终的参数量在20 million左右。模型在Tesla机器上的推理速度可以达到65 fps。在嵌入式设备TX2上其推理速度可以在保证精度的情况下达到48 fps,在应用到上肢外骨骼时可以满足实验需求。 为了验证本文提出的模型与当前主流视频行为识别模型的差异,在自建数据集上做了以下对比实验,实验结果见表2。 表2 不同模型实验结果 由实验结果可以发现,使用3D卷积核的C3D和I3D模型由于其网络结构简单[16],其推理速度有较大的提升,但准确率有所下降。而使用了视频帧的光流信息的Two-Stream和TSN准确率和推理速度都不高[17],这是因为本文在数据预处理时使用PCA降维使得视频帧失去了大部分的光流信息,并且对光流信息和RGB信息分开处理耗费了大量时间。在取消PCA处理后,Two-Sream和TSN的准确率分别达到了83.6%和85.3%,但其推理速度并没有提高。 在对MTF模块进行插入时,本文验证了两种插入方式如图12所示,第一种为在1×1卷积后,BN之前插入MTF模块,第二种为在1×1卷积之前。 实验得到的结果为使用第一种插入方式准确率达到最高的84.9%,使用第二种方式达到的最高准确率为84.5%。 图12 不同的MTF插入方式 推测是因为1×1的卷积将多个维度的特征图谱进行了线性组合,这种跨通道的信息整合可能会破坏时空运动特征信息。 在实验过程中,为了验证本文提出的G-GRU网络模型和其它LRCN模型的差别以及非线性最小二乘自适应算法的性能,分为两组实验,每组均采用了3种较为流行的LRCN模型作为对照,训练时超参数的设置均相同,其中一组使用非线性最小二乘自适应算法对网络进行实时参数调整。本文实验中设置p0=0.01,λ=0.999,r=0.95,ε=0.1。 实验结果如图13所示。 图13 不同模型准确率 由图13可以看出,在没有使用非线性最小二乘自适应算法时,准确率最高的是采用ResNet和LSTM的LRCN模型,这是因为ResNet通过残差传递,搭建了更深的网络结构,能够更好地提取深层次特征,并且LSTM网络结构相比于门控循环网络结构更加复杂,能更好地处理时域上的关联特征,但是由于网络较为复杂,导致其收敛速度不是很理想,在迭代了近3500次后才达到最高准确率。收敛速度最快的是AlexNet+GRU结构,在迭代2000次左右完成了收敛,但由于其网络模型较为简单,导致预测的准确率较低,实验结果如图13(a)所示。 在使用了非线性最小二乘自适应算法实时更新神经网络参数后,模型的准确率都有了一定的提升,均能到达80%以上。由于在自适应过程中对预测网络进行了参数的调整,LSTM网络参数较多,更新较慢,其收敛速度受到了一定影响,并且准确率的提升也比较有限。但对于使用门控循环单元的网络模型效果则比较显著。其中本文提出的MTF-Gnet+GRU+NRLS-A网络结构的准确率达到了最高的84.8%。验证了自适应算法对于提高实时预测准确性有一定的帮助。为了验证模型对哪些人体行为的识别,预测最为准确,分别使用50个短视频样本的测试结果的混淆矩阵如图14所示。 图14 验证集混淆矩阵 可以看出,该模型在上肢外骨骼预测人体行为上有较高的正确率,其主要的预测错误在于抬起和放下这两个只有时间序列不同,空间特征几乎相同的行为。 同时为了验证本文所使用预处理算法对模型的影响,在训练的同时使用未经PCA降维处理的数据进行对照实验,仅仅归一化了视频帧的输入大小,其它实验条件均相同。得到的准确率与推理速度见表3。 表3 预处理实验结果 由表3可知,经过PCA降维处理后,模型的推理速度提高了约10%,模型的准确率却没有明显的下降,这表明预处理算法有效保留率视频帧的特征,滤出了部分其它的无关信息,同时压缩了图片大小,也验证使用本文提出的方法不需要使用视频帧光流信息,加快了计算速度。 传统的上肢外骨骼机器人利用力学传感器或基于生理信息反馈人体行为意图,具有时滞性,传感器的数量也较多,且易穿戴者生理状况影响较大,基于此,本文将视频预测与上肢外骨骼控制人机交互问题一起考虑,提出一种多时间融合(MTF)模块,并将其插入到inception模块中。通过摄像头捕捉第一人称视频后,经过自行搭建的MTF-Gnet提取空间维度的图像特征,之后将提取的特征送入端到端的门控循环单元分析图像的时间序列关联性,最后在推理时提出一种非线性最小二乘自适应算法(NRLS-A),在实时预测时根据佩戴者的不同调整网络参数。从而实现了提前预测人体上肢行为,为佩戴者提供实时助力,达到了预期实验结果。为上肢外骨骼及其它穿戴式人机交互领域提供控制依据。下一步的研究包括: (1)将MTF模块与其它网络模型进行组合。 (2)尝试更多的MTF模块插入位置与插入方式。 (3)综合考虑人机交互时会受到影响的其它特征,以提高预测准确性。 (4)在多场景、多行为动作的情况下改进模型。1.3 NRLS-A算法
2 实 验
2.1 数据采集
2.2 数据预处理
2.3 网络搭建及训练过程
2.4 实验结果
3 结束语