一种利用足底压力信号检测人体步态的方法

文档序号:28533383发布日期:2022-01-19 13:35阅读:199来源:国知局
一种利用足底压力信号检测人体步态的方法

1.本发明属于人体步态识别以及深度学习技术领域的一种人体步态检测方法,具体涉及了一种利用足底压力信号和改进神经网络检测人体步态的方法。


背景技术:

2.近些年来,随着人工智能技术的快速发展,利用深度学习技术进行人体步态识别的研究受到了越来越多有关专家和学者的关注。目前,人体运动步态识别的技术在很多领域都有重要的应用,如健康检测、康复护理、人机协作等领域,将人体运动步态识别技术引入虚拟现实可以给使用者带来更好的体验,所以人体运动步态识别技术的研究是有必要的。
3.在深度学习时代,人体步态识别算法的研究得到了一定的进展。按照算法所使用的特征信息的不同可以分为两大类,一类是将人体步态关键点的相关信息作为特征,例如利用关键点的联合分布直方图或3d位置的旋转与位移特征,通过rnns、lstm以及cnn等手段完成分类识别;一类是利用足底压力信息作为特征,例如利用自组织映射神经网络(som)和足底压力传感信息对人体动作进行聚类分析。
4.随着5g技术和智能手机的普及率越来越高,这对将深度学习算法部署在移动终端上有了更大的需求。另一方面,由于为了获得更高的性能,神经网络模型的层数逐渐增加,最高可达到上千层,然而过大的模型并不适宜部署在移动终端上,这就推动了squeezenet,mobilenet等轻量化网络的产生,并且mobilenet网络模型经过v1,v2,v3的发展。
5.mobilenet-v3网络模型虽然在mobilenet-v2网络模型的基础上得到了一定程度的改进,例如其在coco数据集上的检测精度与mobilenet-v2网络模型大致相同,但进一步提高其推理速度及分类准确度仍然存在很大的问题。


技术实现要素:

6.针对算法模型在轻量化的同时又需要具有较高的分类准确率的问题,本发明提供了一种利用足底压力信号检测人体步态的方法。
7.本发明所采用的技术方案如下:
8.(1)利用柔性阵列压力传感器采集足底压力信息,建立运动步态数据集;
9.(2)对(1)所得到的运动步态数据集进行双线性插值、归一化和级联等操作后,完成对运动步态数据集的预处理过程;
10.(3)建立改进的mobilenet-v3算法模型;
11.(4)将(2)中预处理完成的运动步态数据集送入(3)的模型中进行训练和测试;
12.(5)将测试完成的模型部署于手机端,利用柔性阵列压力传感器采集的左右脚压力数据通过蓝牙实时传送至手机端,预测当前步态。
13.所述的步骤(1)中,所述的柔性阵列压力传感器主要有多个压敏传感器以行列阵列构成,在人体的左右脚均分别均布有多个压敏传感器,根据人脚的形状分别在脚底布置
多个压敏传感器,每个压敏传感器的结构均为三明治结构,包括两层电极材料和一层力敏材料,两层电极材料中间夹一层力敏材料。
14.所述的柔性阵列压力传感器中,
15.各列方向的压敏传感器均连接到列多选一开关后输出,同一列方向的各个压敏传感器的一端均连接到列多选一开关的同一输入端,不同列方向的压敏传感器的一端分别连接到列多选一开关的不同输入端,列多选一开关的唯一输出端经参考电阻后引出连接到外部的接收电路上;
16.各行方向的压敏传感器均连接到行多选一开关后输出,同一行方向的各个压敏传感器的另一端连接到一起后再连接到行多选一开关的同一输入端,不同行方向的压敏传感器的一端分别连接到行多选一开关的不同输入端,行多选一开关的唯一输出端引出连接到外部的接收电路上;
17.各个压敏传感器按照顺序排序,每个压敏传感器的另一端经各自的一个二极管连接到上一个压敏传感器的另一端,最后一个压敏传感器的另一端经二极管连接到行多选一开关的一个输入端。由此传感器之间通过串联二极管的方式减少串扰现象。
18.柔性阵列压力传感器采集到的数据以纵轴为时间序列,横轴表示不同的传感器采集到的数据,每种步态都有128列有效数据。
19.所述的步骤(1)中,通过分别在站立、坐下、平地行走、上楼梯以及下楼梯五种人体步态下利用柔性阵列压力传感器采集足底压力数据,以1.5秒作为时间窗口长度,以1秒作为时间滑动窗口步长提取利用柔性阵列压力传感器采集到的数据,得到有效样本数据组成运动步态数据集。
20.所述的步骤(2)中,是将在人体的左右脚各自采集的传感器数据在通道方向上堆叠级联在一起。
21.所述的步骤(3)中,改进的mobilenet-v3算法模型是将原有mobilenet-v3算法模型中的倒残差结构全部替换为沙漏结构;
22.所述的倒残差结构主要由第一层逐点卷积层pw、一层深度卷积层dw和第二层逐点卷积层pw依次连接构成,第一层逐点卷积层pw的输入作为倒残差结构的输入,同时第一层逐点卷积层pw的输入和第二层逐点卷积层pw的输出进行相加操作后作为倒残差结构的输出。
23.所述的沙漏结构主要由第一层深度卷积层dw、第一层逐点卷积层pw、第二层逐点卷积层pw、第二层深度卷积层dw依次连接构成,第一层深度卷积层dw的输入作为沙漏结构的输入,同时第一层深度卷积层dw的输入和第二层深度卷积层dw的输出进行相加操作后作为沙漏结构的输出;沙漏结构是将倒残差结构中的深度卷积层和逐点卷积层颠倒设置,并且在最后增加了一层深度卷积层。
24.深度卷积层是对于输入的每一个通道单独使用一个卷积核进行卷积操作,而逐点卷积是使用大小为1
×
1的卷积核对输入进行卷积操作。
25.同时将原有mobilenet-v3算法模型中除了输出层外的其余神经网络层的h-swish激活函数和relu6激活函数均全部替换为mish函数,mish函数在输入小于零时函数值不直接等于零而是平滑的过渡至零,在输出层保留softmax激活函数;
26.同时将原有mobilenet-v3算法模型中的每个沙漏结构的第二层逐点卷积层pw和
第二层深度卷积层dw之间添加压缩激励模块,压缩激励模块主要由一层全局平均池化层、连续两层全连接层和一个scale操作构成,第二层逐点卷积层pw输出的特征图分别输入到压缩激励模块的全局平均池化层和缩放scale操作中,全局平均池化层输出依次经连续两层全连接层后输入到scale操作,每层全连接层之后均设置一个mish激活函数,通过scale操作获得最终压缩激励模块的输出,进而输入到第二层深度卷积层dw。第二层逐点卷积层pw输出的特征图经压缩激励模块被压缩为1
×1×
c的向量,再将该向量与原特征图进行scale操作。这样设置注意力机制将其应用于沙漏结构,使得重要的特征信息被强调出来,同时抑制了无用的细节信息,从而使得网络能够学习到更加关键有用的信息,进而提高模型学习的效率。
27.缩放操作,即压缩激励模块计算出来的各通道权重值分别和第二层逐点卷积层输出的特征图对应通道的二维矩阵相乘。
28.本发明模型中采用沙漏结构代替原本模型中的倒残差结构,提取了数据集中更高维的特征以及更丰富的空间信息,同时使用mish函数代替relu函数和h-swish函数,使得梯度过渡平滑,保证信息流动,在此基础上还保留了原模型中使用的注意力机制并且将其应用于沙漏结构,使得模型取得了较好的性能。
29.所述步骤(5)中,将模型植入到步态识别应用程序中,步态识别应用程序主要分为两部分,一部分负责数据的采集和显示,另一部分负责数据的读取和分析。
30.当开始数据采集时,传感器采集模块一方面利用蓝牙低频上传显示数据至手机端,以便于在用户界面绘制实时足底压力动态图像,另一方面高频采集压力数据并存储至储存模块;在停止数据采集时,传感器采集模块主动读取储存模块中的数据并将其上传至手机端,手机端调用运动姿态分析程序将足底压力数据输入算法模型,并且接收和显示模型的分析结果。
31.本发明在原mobilenet-v3网络模型的基础上,采用沙漏结构(sandglass block)代替原来的倒残差结构,保留了更多的特征信息,同时激活函数由原来的hswish函数替换为mish函数,更平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化,最终达到提高模型性能的目的,实现了保证算法模型轻量化的同时仍然有较高的性能的技术效果。
32.本发明将原mobilenet-v3网络中的倒残差结构全部替换为沙漏结构,沙漏结构的瓶颈所在位置与倒残差结构不同,倒残差结构的瓶颈位于两块残差块前后衔接处,而沙漏结构的瓶颈位于沙漏结构的中部,沙漏结构在更高维特征之间构建短连接,同时增加了深度卷积,使得网络学习到了更多的特征。
33.本发明将mish函数作为激活函数,mish函数使得梯度下降的过程更为平滑,且不会出现梯度突然为零的情况,保证了网络层之间的信息流动。
34.本发明保留原网络结构的注意力机制并且将其应用于沙漏结构。通过以上途径改进mobilenet-v3网络模型,使得该模型的分类性能得到了一定程度的提升。
35.除此之外,本发明将改进的mobilenet-v3网络模型部署于手机端,手机端通过蓝牙接收左右脚压力数据并输入算法模型,并且最后在手机端接收和显示步态分析结果。
36.本发明的有益效果是:
37.本发明的方法采用了改进的网络模型,实现了更好的准确性和泛化,最终达到提
高模型性能的目的,实现了保证算法模型轻量化的同时仍然有较高的性能的技术效果。
38.本发明将改进的mobilenet-v3网络模型部署于手机端,实现了手机端利用蓝牙接收左右脚压力数据并将其输入算法模型以达到检测当前人体步态的目的。
附图说明
39.图1是本发明方法的步骤流程图。
40.图2是本发明方法中沙漏结构与原mobilenet-v3模型的倒残差结构的对比图。
41.图3是本发明方法中沙漏结构的压缩激励模块的流程图。
42.图4是本发明柔性阵列传感器的阵列布置图。
具体实施方式
43.下面结合附图对本发明的具体实施方式进行详细阐述。
44.本发明的具体实施过程和情况如下:
45.实施例
46.步骤1、采集足底压力数据,构建运动步态数据集。
47.首先利用柔性阵列压力传感器采集不同人体运动步态下的足底压力数据,该传感器按照人体左右脚形状分别均布有64个柔性力敏传感器,每个传感器的结构均为三明治结构,即两层电极材料中间夹一层力敏材料,传感器之间通过串联二极管的方式减少串扰现象,且设置高频采样时的采样频率为20hz,由此采集到的数据纵轴为时间序列,横轴表示不同的传感器采集到的数据,每种步态都有128列有效数据。
48.由实际多次测量得到一个步态周期最大持续时间约为1.5秒钟,则以1.5秒作为压力序列的时间窗口长度,以1秒作为时间滑动窗口步长提取不同人体运动步态下的数据,共提取有效样本12669组,每组压力数据形状大小为30
×
128,包含左右脚同步压力数据,该12669组样本按采集该组样本时的人体步态分别可对应于站立、坐下、平地行走、上楼梯以及下楼梯五种人体步态之一。
49.步骤2、对运动步态数据集进行预处理,具体包含以下子步骤:
50.(a)首先将采集到的大小为12669
×
30
×
128的运动步态数据矩阵中的左右脚数据分离,分离后得到左右脚数据矩阵的大小均为12669
×
30
×
64,之后将最后一维的数据形状调整为8
×
8,最终得到左右脚数据大小均为12669
×
30
×8×
8。
51.(b)将左右脚数据的最后两维利用双线性插值的方式重采样为32
×
32,则左右脚数据大小变为12669
×
30
×
32
×
32。双线性插值即利用相邻的4个点,在一个方向上进行线性插值,然后在另外一个方向上再进行线性插值,由两次线性插值得到的综合公式便可估算得到4个点所围成的区域内的值。
52.(c)将两个数据矩阵的最后两维进行归一化处理,使得每一通道上的所有数据在各自通道上归到均值为0,方差为1的分布中,具体操作为把每个通道上的所有值减去各自通道上数据的均值再除以各自通道上数据的标准差。
53.(d)将左右脚数据采用concat的方法即在通道的方向上堆叠的方式级联成大小为12669
×
60
×
32
×
32作为模型输入。
54.(e)最后将处理完成的数据集按照4:1的比例随机划分训练集和测试集。
55.步骤3、搭建基于改进mobilenet-v3的算法模型。mobilenet-v3网络结构分为large和small两个版本,此次针对的是small版本,改进的算法模型包括:
56.(a)残差模型
57.本发明将原先模型中的倒残差结构全部替换为沙漏结构。
58.结合附图2可知,沙漏结构与倒残差结构相同的是均包含深度卷积depthwise convolution以及逐点卷积pointwise convolution,深度卷积对输入的每个通道分别进行3
×
3卷积,逐点卷积对输入进行1
×
1卷积。
59.沙漏结构与倒残差结构不同的是,倒置残差块首先对输入进行逐点卷积实现升高维度的操作,之后通过深度卷积提取压力图像空间特征再进行逐点卷积实现降低维度的操作。而沙漏结构虽仍然遵循先前的网络,并使用了深度分离可卷积,但其颠倒了深度卷积以及逐点卷积的顺序,其第一步是先对输入进行深度卷积,提取空间特征后再经过两步逐点卷积实现先降维后升维的操作,最后一步经过深度卷积后输出结果。
60.(b)激活函数
61.在激活函数上,本发明与原模型相比不同之处在于,将原模型使用h-swish和relu6作为激活函数的地方全部替换为mish激活函数,输出层采用softmax作为激活函数。
62.mish激活函数的应用使得当输入为负值时函数并不是完全截断,它仍然允许比较小的负梯度流入,从而保证信息的流动。由于mish函数保证了每点的平滑,使得它的梯度下降效果比relu6更好。mish激活函数的公式如下公式:
63.mish(x)=x*tanh(log(1+e
x
))
[0064][0065]
其中,x表示输入值,tanh表示双曲正切函数,e表示自然常数。
[0066]
(c)注意力机制
[0067]
本次改进保留了原mobilenet-v3网络模型的注意力机制并且将其加入沙漏结构,引入注意力机制即在网络结构中加入压缩激励模块(squeeze-and-excitation模块),压缩激励模块被运用在沙漏结构的最后一层之前,即第二次逐点卷积后先进行se操作再进行深度卷积。
[0068]
结合附图3可知,压缩激励模块主要由压缩操作以及激励操作组成,压缩操作即全局平均池化,假设原输入的大小为w
×h×
c,则输出为1
×1×
c;激励操作由两个全连接层组成,第一个全连接层有c
×
seradio个神经元,seradio为缩放参数,则输入的形状为1
×1×
c,输出的形状为1
×1×c×
seradio,第二个全连接层有c个神经元,则输入的形状为1
×1×c×
seradio,输出的形状为1
×1×
c,最后将此形状为1
×1×
c的向量与原来的特征图进行scale操作。
[0069]
最终本发明基于原来的mobilenet-v3的网络模型结合沙漏结构以及mish激活函数,构建成了改进的mobilenet-v3网络模型。
[0070]
改进的mobilenet-v3网络模型中的各层框架和参数如下表:
[0071][0072]
步骤4、使用预处理后的数据集对搭建好的模型进行训练和测试。
[0073]
改进的mobilenet-v3网络模型基于pytorch框架,采用python编程语言实现,同时,将训练过程的batchsize设置为64,epoch设置为500,学习率设置为0.01,并且采用adam优化器对模型进行优化,最后将训练集丢入模型进行训练。
[0074]
模型训练完成后,将测试集输入模型中,就可以由模型判断某组数据样本对应的人体运动步态。
[0075]
步骤5、将测试好的模型部署于手机端,利用蓝牙将传感器采集模块采集到的左右脚压力数据传送至手机端,手机端将数据输入算法模型并接收和显示模型步态分析结果。
[0076]
模型测试完成后,将算法模型植入到android步态识别应用程序中,android步态识别应用程序主要分为两部分,一部分负责数据的采集和显示,另一部分负责数据的读取和分析。
[0077]
当手机端命令传感器采集模块开始采集数据时,传感器采集模块一方面高频采集压力数据并存储至储存模块,另一方面利用蓝牙低频上传显示数据至手机端,手机端将获取到的数据进行预处理后发送给显示程序,以便于在用户界面绘制实时足底压力动态图像。手机端在接收到显示数据的同时启动一个子线程开始计时,计时结束则数据的采集显示阶段结束。
[0078]
在停止数据采集时,传感器采集模块主动读取储存模块中的数据并将其上传至手机端,手机端接收数据并且将其存入本地数据库,之后调用运动姿态分析程序将足底压力数据输入算法模型,并且接收和显示模型的分析结果。
[0079]
对比例
[0080]
和实施例不同的是采用原有mobilenet-v3网络模型。
[0081]
在拥有相同配置的电脑上,利用同一数据集使用cpu来训练和测试改进后的mobilenet-v3网络模型与原mobilenet-v3网络模型,两种模型在测试集上的性能如下表所示:
[0082][0083]
由该表可得,本发明提出的改进mobilenet-v3网络模型相较于原mobilenet-v3网络模型具有更高的准确率以及更快的检测速度,同时缩减了模型的大小,使其更加适合部署于移动终端。由此,本发明利用足底压力信息的特殊级联方式,结合应用了注意力机制的沙漏结构以及mish激活函数在mobilenet-v3网络模型上的使用,使得模型在保证轻量化的
同时一定程度上提高了模型的性能。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1