手势数据采集手套及基于手势数据采集手套的手语手势识别方法与流程

文档序号:22342866发布日期:2020-09-25 18:14阅读:407来源:国知局
手势数据采集手套及基于手势数据采集手套的手语手势识别方法与流程

本发明涉及智能穿戴、人机交互及机器学习技术领域,具体是手势数据采集手套及基于手势数据采集手套的手语手势识别方法。



背景技术:

手势识别是人机交互一个重要的领域,手势的识别不仅可以提高人机之间的语言理解程度和认知水平,还可以通过计算机帮助拥有不同语言体系人群之间的交流,包括听损障碍人群与听力正常人群之间的交流、不同母语人群之间的交流。

现有的手势识别设备包括智能手表、智能手环和智能手套等,手表和手环拥有体积小、轻便易携带等优点,但也因为体积较小,所配置的传感器也较少,导致手势识别准确率不高;而传统的智能手套解决了传感器少导致识别准确率低的问题,但却无法克服体积大、佩戴舒适性差以及手指运动不灵活等缺点。



技术实现要素:

本发明的目的是提供手势数据采集手套,包括手套主体、指套、连接带、陀螺仪、弯曲传感器、主控模块、通信模块、稳压模块。

所述手套主体包覆使用者手掌。

所述手套主体内侧贴置有陀螺仪、主控模块和通信模块。

所述陀螺仪采集使用者手部运动时的陀螺仪传感信号,并发送至主控模块。

所述指套包覆使用者手指关节。

所述指套内侧贴置有若干弯曲传感器。弯曲传感器和使用者手指关节一一对应。

所述弯曲传感器采集使用者手指关节弯曲信号,并发送至主控模块。

所述连接带连接手套主体和指套。

所述连接带外侧贴置有用于连接弯曲传感器和主控模块的信号线。

所述主控模块接收到陀螺仪传感信号、手指关节弯曲信号后,通过通信模块发送至上位机。

稳压模块贴置在手套主体内侧。所述稳压模块用于稳定陀螺仪、弯曲传感器、主控模块和通信模块的电压。

基于手势数据采集手套的手语手势识别方法,包括以下步骤:

1)使用者佩戴手势数据采集手套,并做出g种中文拼音对应的手势。g为正整数。

2)在使用者做手势过程中,所述陀螺仪和弯曲传感器分别将采集到的陀螺仪传感信号、手指关节弯曲信号发送至主控模块。

主控模块通过通信模块将接收到的陀螺仪传感信号、手指关节弯曲信号发送至上位机。

3)上位机将接收到的陀螺仪传感信号、手指关节弯曲信号存储在传感信号数据集a=中,并打上手势类别标签。手势类别集合记为g={y1,y2,...,yg}。

上位机对传感信号数据集a进行预处理。

对传感信号数据集a进行预处理的主要步骤如下:

3.1)对传感信号进行丢包项删除、异常项删除和冗余数据删除。

3.2)利用组均值补全法对传感信号数据集a进行缺失值补全,方法为:以缺失项前j项数据、后j项数据的平均值填充缺失项。j为正整数。

3.3)利用滑动平均滤波方法对传感信号数据集a进行数据平滑。平滑后第n组传感信号a[n]如下所示:

式中,as[*]表示滤波前的传感信号。m表示传感信号as[*]相邻m项数据。一组传感信号包括同一时间采集的陀螺仪传感信号和弯曲传感信号。

4)对预处理后的传感信号数据集a进行时序分割,建立传感信号数据集x=[x1,x2,…,xw]。xi表示使用者做第i个手势时传感器采集的传感信号数据子集。i=1,2,…,w。

优选的,对预处理后的传感信号数据集a进行时序分割的方法为:利用单变量线性回归和动态规划算法对传感信号数据集a进行时序分割。分割后,每组时序信号的起始点为手势起始标记信号,终止点为手势结束标记信号。手势起始标记信号为使用者做出起始手势时陀螺仪和弯曲传感器采集到的传感信号。手势结束标记信号为使用者做出终止手势时陀螺仪和弯曲传感器采集到的传感信号。使用者在做出任一中文拼音对应的手势前,做出一组起始手势,在做出任一中文拼音对应的手势后,做出一组终止手势。

优选的,对传感信号数据集a进行时序分割的方法为:计算t时刻和t-1时刻同类型传感信号的欧几里得距离d,当d>阈值dmax时,则以t时刻作为时序分割点,对传感信号数据集a进行时序分割。传感信号类型包括弯曲、3轴加速度、3轴陀螺仪、3轴磁力计。

5)对传感信号数据集x进行特征提取,并建立手势训练数据集c。

传感信号的特征包括均值e(x)、均方值e(x2)、方差s2和标准差s。

其中,均值e(x)如下所示:

均方值e(x2)如下所示:

方差s2如下所示:

标准差s如下所示:

6)利用手势训练数据集c建立手势识别分类器。所述手势识别分类器包括knn子分类器、朴素贝叶斯子分类器和bp子分类器。

建立bp子分类器的主要步骤如下:

6.1)初始化bp网络,随机给定隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.2)将手势训练数据集c输入到初始化的bp网络中,更新隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.3)重复步骤6.2),直至bp网络参数满足误差要求,得到bp子分类器。

7)利用手势识别分类器实时识别使用者当前做出的手势,主要步骤如下:

7.1)在陀螺仪、弯曲传感器实时监测使用者当前做出的手势时产生的陀螺仪传感信号和弯曲传感信号,发送至主控模块。

主控模块通过通信模块将接收到的陀螺仪传感信号、手指关节弯曲信号发送至上位机。

7.2)上位机对当前接收到的陀螺仪传感信号、手指关节弯曲信号进行预处理、时序分割和特征提取,并将提取到的特征数据集x={x1,x2,...,xk}发送至手势识别分类器。

7.3)将特征数据集x输入到knn子分类器,输出待测手势的预测分类结果q1,主要步骤为:

7.3.1)分别计算特征数据集x每个元素与手势训练数据集c中所有元素之间的欧式距离,并基于欧式距离对训练样本集元素进行升序排列,得到手势训练数据集c'。

7.3.2)提取出手势训练数据集c'前k个元素,并确定k个元素对应的手势类别。

7.3.3)以出现频率最高的手势类别作为knn子分类器输出的待测手势的预测分类结果q1。

7.4)将特征数据集x输入到朴素贝叶斯子分类器,输出待测手势的预测分类结果q2,主要方法为:利用贝叶斯公式分别计算概率p(y1|x)、p(y2|x)、....、p(yg|x)。以最大概率对应的手势类别作为朴素贝叶斯子分类器输出的待测手势的预测分类结果q2。

7.5)将特征数据集x输入到bp子分类器,输出待测手势的预测分类结果q3。

7.6)所述手势识别分类器识别使用者当前手势类别,主要分为以下两种情况:

i)当预测分类结果q1、预测分类结果q2、预测分类结果q3至少有2个预测分类结果存在重复时,以重复的预测分类结果作为使用者当前手势类别q。

ii)当预测分类结果q1、预测分类结果q2、预测分类结果q3均不一致时,使用者当前手势类别q=q1u1+q2u2+q3u3。其中,u1、u2、u3分别表示knn子分类器输出的预测分类结果q1的可信任度、朴素贝叶斯子分类器输出的预测分类结果q2的可信任度、bp子分类器输出的预测分类结果q3的可信任度。

可信任度uq如下所示:

uq=(tp+tn)/(p+n)(6)

式中,q=1,2,3;tp表示正确地划分为正例的个数,即实际为正例且被分类器划分为正例的样本数;tn表示被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的样本数;p+n为总样本数。

值得说明的是,集成学习(ensemblelearning)是机器学习中一类学习算法,将训练的多个学习器组合起来使用,达到均衡各类方法差异性的作用,这类算法通常在实践中会取得比单个学习器更好的预测结果。

本发明的技术效果是毋庸置疑的,本发明有效平衡了可穿戴智能手套舒适性与识别准确率的问题,利用集成学习的方法考虑到机器学习里每一种算法的差异性,改善了单一识别算法不能达到对每一个原子手势最高识别准确率的问题,兼具使用灵活性、佩戴舒适性强,发明具有结构简单,设置合理,制作成本低等优点。

附图说明

图1是手势数据采集手套实物图;

图2(a)是手势数据采集手套结构示意图;

图2(b)是手势数据采集手套结构局部放大图;

图3是手势数据采集手套功能结构示意图;

图4是中文拼音手语手势图;

图5是手语手势识别算法流程图;

图6是手势‘b’五指弯曲度时、频域图;

图7是以acc_x为例的手势“b”分割图;

图8(a)是手势‘b’五指弯曲度时域图;

图8(b)是手势‘b’五指弯曲度频域图;

图9(a)是不同滑动平均值滤波处理“a”手势acc_x轴数据对比图。

图9(b)是不同滑动平均值滤波处理“a”手势acc_x轴数据对比图。

图9(c)是不同滑动平均值滤波处理“a”手势acc_x轴数据对比图。

图中,陀螺仪1、弯曲传感器2、主控模块3、通信模块4、连接带5、魔术粘贴带6、

具体实施方式

下面结合实施例对本发明作进一步说明,但不应该理解为本发明上述主题范围仅限于下述实施例。在不脱离本发明上述技术思想的情况下,根据本领域普通技术知识和惯用手段,做出各种替换和变更,均应包括在本发明的保护范围内。

实施例1:

参见图1至图3,手势数据采集手套,包括手套主体、指套、连接带5、陀螺仪1、弯曲传感器2、主控模块3、通信模块4、稳压模块。所述陀螺仪1为九轴传感器。

所述手套主体包覆使用者手掌。

所述手套主体内侧贴置有陀螺仪1、主控模块3和通信模块4。

所述陀螺仪1采集使用者手部运动时的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号,并发送至主控模块3。

所述指套包覆使用者手指关节。

所述指套内侧贴置有若干弯曲传感器2。弯曲传感器2和使用者手指关节一一对应。一根手指上贴置一根弯曲传感器2。

所述弯曲传感器2采集使用者手指关节弯曲信号,并发送至主控模块3。

所述连接带5连接手套主体和指套。

所述连接带5外侧贴置有用于连接弯曲传感器2和主控模块3的信号线。

所述主控模块3接收到3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号后,通过通信模块4发送至上位机。

稳压模块贴置在手套主体内侧。所述稳压模块用于稳定陀螺仪1、弯曲传感器2、主控模块3和通信模块4的电压。

实施例2:

参见图4至图9,基于手势数据采集手套的手语手势识别方法,包括以下步骤:

1)使用者佩戴手势数据采集手套,并做出g种中文拼音对应的手势。g为正整数。

2)在使用者做手势过程中,所述陀螺仪1和弯曲传感器2分别将采集到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至主控模块3。所述陀螺仪1为九轴传感器。

主控模块3通过通信模块4将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至上位机。

3)上位机将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号存储在传感信号数据集a=中,并打上手势类别标签。手势类别集合记为g={y1,y2,...,yg}。

上位机对传感信号数据集a进行预处理。

对传感信号数据集a进行预处理的主要步骤如下:

3.1)对传感信号进行丢包项删除、异常项删除和冗余数据删除。

3.2)利用组均值补全法对传感信号数据集a进行缺失值补全,方法为:以缺失项前j项数据、后j项数据的平均值填充缺失项。j为正整数。

3.3)利用滑动平均滤波方法对传感信号数据集a进行数据平滑。平滑后第n组传感信号a[n]如下所示:

式中,as[*]表示滤波前的传感信号。m表示传感信号as[*]相邻m项数据。一组传感信号包括同一时间采集的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号和弯曲传感信号。as[n+m]表示滤波前传感信号as[n]相邻m位的传感信号。

4)对预处理后的传感信号数据集a进行时序分割,建立传感信号数据集x=[x1,x2,…,xw]。xi表示使用者做第i个手势时传感器采集的传感信号数据子集。i=1,2,…,w。

对预处理后的传感信号数据集a进行时序分割的方法为:利用单变量线性回归和动态规划算法对传感信号数据集a进行时序分割。分割后,每组时序信号的起始点为手势起始标记信号,终止点为手势结束标记信号。手势起始标记信号为使用者做出起始手势时陀螺仪1和弯曲传感器2采集到的传感信号。手势结束标记信号为使用者做出终止手势时陀螺仪1和弯曲传感器2采集到的传感信号。使用者在做出任一中文拼音对应的手势前,做出一组起始手势,在做出任一中文拼音对应的手势后,做出一组终止手势。

5)对传感信号数据集x进行特征提取,并建立手势训练数据集c。

传感信号的特征包括均值e(x)、均方值e(x2)、方差s2和标准差s。

其中,均值e(x)如下所示:

均方值e(x2)如下所示:

方差s2如下所示:

标准差s如下所示:

6)利用手势训练数据集c建立手势识别分类器。所述手势识别分类器包括knn子分类器、朴素贝叶斯子分类器和bp子分类器。

建立bp子分类器的主要步骤如下:

6.1)初始化bp网络,随机给定隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.2)将手势训练数据集c输入到初始化的bp网络中,更新隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.3)重复步骤6.2),直至bp网络参数满足误差要求,得到bp子分类器。

7)利用手势识别分类器实时识别使用者当前做出的手势,主要步骤如下:

7.1)在陀螺仪1、弯曲传感器2实时监测使用者当前做出的手势时产生的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号和弯曲传感信号,发送至主控模块3。

主控模块3通过通信模块4将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至上位机。

7.2)上位机对当前接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号进行预处理、时序分割和特征提取,并将提取到的特征数据集x={x1,x2,...,xk}发送至手势识别分类器。

7.3)将特征数据集x输入到knn子分类器,输出待测手势的预测分类结果q1,主要步骤为:

7.3.1)分别计算特征数据集x每个元素与手势训练数据集c中所有元素之间的欧式距离,并基于欧式距离对训练样本集元素进行升序排列,得到手势训练数据集c'。

7.3.2)提取出手势训练数据集c'前k个元素,并确定k个元素对应的手势类别。

7.3.3)以出现频率最高的手势类别作为knn子分类器输出的待测手势的预测分类结果q1。

7.4)将特征数据集x输入到朴素贝叶斯子分类器,输出待测手势的预测分类结果q2,主要方法为:利用贝叶斯公式分别计算概率p(y1|x)、p(y2|x)、....、p(yg|x)。以最大概率对应的手势类别作为朴素贝叶斯子分类器输出的待测手势的预测分类结果q2。

7.5)将特征数据集x输入到bp子分类器,输出待测手势的预测分类结果q3。

7.6)所述手势识别分类器识别使用者当前手势类别,主要分为以下两种情况:

i)当预测分类结果q1、预测分类结果q2、预测分类结果q3至少有2个预测分类结果存在重复时,以重复的预测分类结果作为使用者当前手势类别q。

ii)当预测分类结果q1、预测分类结果q2、预测分类结果q3均不一致时,使用者当前手势类别q=q1u1+q2u2+q3u3。其中,u1、u2、u3分别表示knn子分类器输出的预测分类结果q1的可信任度、朴素贝叶斯子分类器输出的预测分类结果q2的可信任度、bp子分类器输出的预测分类结果q3的可信任度。

可信任度uq如下所示:

uq=(tp+tn)/(p+n)(6)

式中,q=1,2,3;tp表示正确地划分为正例的个数,即实际为正例且被分类器划分为正例的样本数;tn表示被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的样本数;p+n为总样本数。

可信度表示已训练好模型在测试集上得到的正确率。

实施例3:

基于手势数据采集手套的手语手势识别方法(即聋哑人手语识别算法),包括以下步骤:

1)使用者佩戴手势数据采集手套,并做出g种中文拼音对应的手势。g为正整数。

2)在使用者做手势过程中,所述陀螺仪1和弯曲传感器2分别将采集到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至主控模块3。所述陀螺仪1为九轴传感器。

主控模块3通过通信模块4将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至上位机。

3)上位机将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号存储在传感信号数据集a=中,并打上手势类别标签。手势类别集合记为g={y1,y2,...,yg}。

上位机对传感信号数据集a进行预处理。

对传感信号数据集a进行预处理的主要步骤如下:

3.1)对传感信号进行丢包项删除、异常项删除和冗余数据删除。

3.2)利用组均值补全法对传感信号数据集a进行缺失值补全,方法为:以缺失项前j项数据、后j项数据的平均值填充缺失项。j为正整数。

3.3)利用滑动平均滤波方法对传感信号数据集a进行数据平滑。平滑后第n组传感信号a[n]如下所示:

式中,as[*]表示滤波前的传感信号。m表示传感信号as[*]相邻m项数据。一组传感信号包括同一时间采集的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号和弯曲传感信号。

4)对预处理后的传感信号数据集a进行时序分割,建立传感信号数据集x=[x1,x2,…,xw]。xi表示使用者做第i个手势时传感器采集的传感信号数据子集。i=1,2,…,w。

对传感信号数据集a进行时序分割的方法为:计算t时刻和t-1时刻同类型传感信号的欧几里得距离d,当d>阈值dmax时,则以t时刻作为时序分割点,对传感信号数据集a进行时序分割。传感信号类型包括弯曲、3轴加速度、3轴陀螺仪、3轴磁力计。

5)对传感信号数据集x进行特征提取,并建立手势训练数据集c。

传感信号的特征包括均值e(x)、均方值e(x2)、方差s2和标准差s。

其中,均值e(x)如下所示:

均方值e(x2)如下所示:

方差s2如下所示:

标准差s如下所示:

6)利用手势训练数据集c建立手势识别分类器。所述手势识别分类器包括knn子分类器、朴素贝叶斯子分类器和bp子分类器。

建立bp子分类器的主要步骤如下:

6.1)初始化bp网络,随机给定隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.2)将手势训练数据集c输入到初始化的bp网络中,更新隐含层之间权重w、隐含层与输出层之间的权重v、隐藏层神经元的初始阀值θi和输出层神经元的初始阀值rt。

6.3)重复步骤6.2),直至bp网络参数满足误差要求,得到bp子分类器。

7)利用手势识别分类器实时识别使用者当前做出的手势,主要步骤如下:

7.1)在陀螺仪1、弯曲传感器2实时监测使用者当前做出的手势时产生的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号和弯曲传感信号,发送至主控模块3。

主控模块3通过通信模块4将接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号发送至上位机。

7.2)上位机对当前接收到的3轴加速度传感信号、3轴陀螺仪传感信号、3轴磁力计传感信号、手指关节弯曲信号进行预处理、时序分割和特征提取,并将提取到的特征数据集x={x1,x2,...,xk}发送至手势识别分类器。

7.3)将特征数据集x输入到knn子分类器,输出待测手势的预测分类结果q1,主要步骤为:

7.3.1)分别计算特征数据集x每个元素与手势训练数据集c中所有元素之间的欧式距离,并基于欧式距离对训练样本集元素进行升序排列,得到手势训练数据集c'。

7.3.2)提取出手势训练数据集c'前k个元素,并确定k个元素对应的手势类别。

7.3.3)以出现频率最高的手势类别作为knn子分类器输出的待测手势的预测分类结果q1。

7.4)将特征数据集x输入到朴素贝叶斯子分类器,输出待测手势的预测分类结果q2,主要方法为:利用贝叶斯公式分别计算概率p(y1|x)、p(y2|x)、....、p(yg|x)。以最大概率对应的手势类别作为朴素贝叶斯子分类器输出的待测手势的预测分类结果q2。

7.5)将特征数据集x输入到bp子分类器,输出待测手势的预测分类结果q3。

7.6)所述手势识别分类器识别使用者当前手势类别,主要分为以下两种情况:

i)当预测分类结果q1、预测分类结果q2、预测分类结果q3至少有2个预测分类结果存在重复时,以重复的预测分类结果作为使用者当前手势类别q。

ii)当预测分类结果q1、预测分类结果q2、预测分类结果q3均不一致时,使用者当前手势类别q=q1u1+q2u2+q3u3。其中,u1、u2、u3分别表示knn子分类器输出的预测分类结果q1的可信任度、朴素贝叶斯子分类器输出的预测分类结果q2的可信任度、bp子分类器输出的预测分类结果q3的可信任度。

实施例4:

手势数据采集手套,包括手套主体、指套、连接带5、陀螺仪1、弯曲传感器2、主控模块3、通信模块4、稳压模块、魔术粘贴带6。

该手势数据采集手套外观制作材料包括宽分别为6cm、2cm和0.8cm的涤纶丝包弹力皮筋,分别用于制作自制手势数据采集手套的手掌部101、手指关节部102以及各模块的连接等。

考虑到传统手势数据采集手套的笨拙性与无弹性,本发明所述自制手势数据采集手套采用涤纶丝包弹力皮筋用于手套主体材料,并考虑到佩戴者佩戴封闭且沉重的手势数据采集手套时的舒适性,采用镂空设计,仅在手指关节处制作宽为0.8cm的弹力指套,每根手指两个关节指套,单手共10个关节指套,每根手指指套根据不同手指的粗细大小特征,结合佩戴者的不同性别、年龄及涤纶丝包弹力皮筋的弹性指数定制10个不同的关节指套。手套手掌部分及指套部分由0.8cm的涤纶丝包弹力皮筋链接。

考虑到个人体型差别,手掌部分仅由涤纶丝包弹力皮筋控制松紧还有所欠缺与不足,因此手掌部分结合魔术粘贴带6可供不同手型大小的佩戴者调节手套松紧。佩戴者需按照手套外观形状将手套入手套并依次将指关节套佩戴固定于手指关节处。

如图2、3所示为自制手势数据采集手套的功能结构示意图,五根手指指关节套与手掌部分由0.8cm的涤纶丝包弹力皮筋连接,其上装置弯曲传感器201采用的是rpf薄膜式弯曲传感器。薄膜式弯曲传感器通过电阻值的变化检测弯曲程度,与常规的弯曲传感器相比,薄膜式弯曲传感器具有径细、质软、重量轻的优点,在手势数据采集手套中采用薄膜式弯曲传感器,使得用户在穿戴手套进行手势动作执行时更为舒适。

手背部分的安装部件为主控部分,包括arduinonano电路板3、通信板块4、imu运动传感单元1。其中,本实施例使用的arduinonano是arduinousb接口的微型版本,arduinonano是尺寸十分小并且能够直接插在面包板上操作的开发板。通信板块4,在一些实施例中,手势数据采集手套与远程计算机、远程控制中心或远程服务器的数据传输可以通过任何的数据传输方式实现。例如但不限于,蓝牙、zigbee、wi-fi等无线方式,或者usb等有线通信方式。在一些实施例中,所述手势数据采集手套系统还包括电源模块,所述电源模块可以为手势数据采集手套提供电力。所述接口可以是usb接口或其他任意电源接口。

本实施例中至少含一个六轴mpu6050(六轴传感器)的imu运动传感单元,其中六轴传感器是指三轴加速度计及三轴陀螺仪,mpu6050是一款空间运动传感器芯片,内置三轴加速度计和三轴陀螺仪,因此它可以获得三个轴对应的三个加速度分量和三个旋转角速度值,它的特点为其体积小易于携带、功能强大可采集六轴惯性传感器数据、精度高等。所述陀螺仪1为六轴传感器,即六轴mpu6050。

实施例中mpu6050芯片内置了一个数据处理子模块dmp,是已经用滤波算法对采集的数据进行过平滑处理然后再输出给用户,一般场景下在许多应用场景中使用dmp输出的数据已经能够很好的满足要求,但为了避免因为环境和人的各种因素造成滤波后的数据仍有较多毛刺,本实施例在滤波后的数据上再进行一次滑动平均滤波处理。

实施例中,直接使用集成的mpu6050板块进行数据采集。mpu6050的数据接口用的是i2c总线协议,因而需要wire程序库的协助来实现arduino与mpu6050之间的通信。wire库的官方文档中指出:在nano开发板上,sda接口对应a4引脚,scl对应a5引脚。mpu6050需要5v的电源,可由nano板直接供电。mpu6050内嵌得芯片的寄存器来实现数据的读写,实验数据被存在位于0x3b到0x48这14个字节的寄存器中,具体存储信息如下所示。这些数据会实时动态更新且更新频率可达1000hz。其中每个数据都占2个字节。

0x3b,存储加速度计的x轴分量acc_x

0x3d,存储加速度计的y轴分量acc_y

0x3f,存储加速度计的z轴分量acc_z

0x41,存储当前温度temp

0x43,存储绕x轴旋转的角速度gyr_x

0x45,存储绕y轴旋转的角速度gyr_y

0x47,存储绕z轴旋转的角速度gyr_z

值得说明的是,mpu6050芯片有自己的坐标系:使芯片朝向自身,并将其表面文本旋转到正确的角度。此时,以芯片中心为原点,x轴水平向右,y轴垂直向上,z轴指向自身。图4是根据本实施例的一些实施例所示的mpu6050连线图。

实施例5:

基于手势数据采集手套的手语手势识别方法,包括以下步骤:

1)数据集获取,主要由硬件设备完成,数据的传输和存储由mpu内部程序实现;

2)信号预处理,对原始信号数据进行数据清洗、补全缺失数据、去掉冗余数据;

采集到的手势数据测量信号的噪音来自环境对传感器的干扰以及用户的无意识颤抖。为了解决这个问题,首先,通过从每个数据点减去采样加速度的平均值来消除重力加速度,以获得由手移动产生的加速度。接下来的步骤是利用滑动平均滤波对高频噪音进行平滑处理,mpu6050芯片内自带了一个数据处理子模块数字运动处理器dmp(digitalmotionprocessor),已经内置了滤波算法,但前文提到测量中随机噪声随环境和人物的变化而变化,使测量结果不够准确,存在极大不确定因子和干扰性。通过多次测量相同的数据源,使用多点集平均方法来获得数据,合理的估计是滑动平均滤波器。

滤波公式如下所示:

其中,as[n]表示在没有重力加速度情况下的加速度,a[n]是滤波后的加速度信号。同理,三轴陀螺仪信号数据和五指弯曲度信号数据也可以用类似的滤波进行平滑去噪处理。

3)时序数据分割,检测手势的起始位置和结束位置;

本实施例提出了一种新的分割方案。以加速度计为例,假设预处理的加速度数据序列为a[n]=a[1],a[2],……,a[l],其中a[n]=(ax[n],ay[n],az[n])是三维矢量,d[n]定义为[n]和[n-1]之间的欧几里得距离,当没有手运动时,加速度相对稳定,d[n]-d[n-1]较小,相反,在手的运动状态下,d[n]-d[n-1]很大。这意味着处于运动状态的d[n]要比处于无运动状态的d[n]高很多,因此可以通过设定一个阈值用来判断d[n]时间点是否开始做目标手势,判断出开始点和结束点后就实现了分割手势运动。为了避免信号的干扰,采用移动平均滤波器进行去噪,公式如下:

其中,j[n]是滤波后的欧几里得距离。d[n+m]表示欧几里得距离。因此,结合陀螺仪数据和手指弯曲度数据的前一帧数据和当前帧数据的欧几里得距离就可以判断手势的起始点和结束点以达到分割手势的目的。图7是根据本实施例的一些实施例所示的以acc_x为例的手势“b”分割。

4)特征向量的提取、分类器构建以及模型集成;

手势在空间运动过程中,最能表现其运动特征的便是加速度信息和旋转角信息,从时域和频域上分别分析手势数据利用主成分分析pca等降维方法将运动传感单元和弯曲传感器的原始数据信号进行降维及特征提取,降维处理后的新数据将用作后续手势分类识别。由于不同的人在不同的时间或地点做出同一手势也将会有差别,因此必须对信号采取归一化和标准化处理。旨在消除信号幅度大小和数据点长度等类内差异导致对结果的影响,可提高手势的可辨识性和识别准确率。图8是根据本实施例的一些实施例所示的手势‘b’五指弯曲度时、频域图。

将处理后的手势数据输入用于训练分类器,一些实施例中使用但不仅限于k-近邻算法(knn)、朴素贝叶斯以及反向传播网络(bp),训练好的各个模型将进行模型集成。

5)输入手势进行识别。

不同的算法对于不同的手势有着不一样的识别准确率,即单一的机器学习算法并不能达到对每一个手势最高的识别准确率,不具有泛化性,本实施例使用了模型集成的方法来提高分类准确率。集成学习(ensemblelearning)是机器学习中一类学习算法,核心思想是考虑到机器学习里每一种算法的差异性,对于不同的样本类别有不同的优势,可以将不同的模型相结合,互相弥补不足,以实现最优模型。

本实施例采用基于投票法的模型集成,将训练好的三个分类器模型导出到系统,在每次样本进行预测时同时调用三个分类器,结果分为三种情况:

i)三个分类器预测结果一致,则输出为预测结果。

ii)三个分类器预测结果有两种,则投票选出预测分类结果较多的为输出。

iii)三个分类器结果都不一致,则根据训练模型时各自对应的类别手势的识别准确率,如knn子分类器给出结果为类别一且knn子分类器在类别一的分类准确率为80%;朴素贝叶斯子分类器给出结果为类别二且朴素贝叶斯子分类器在类别二的分类准确率为90%;bp子分类器给出结果为类别三且在类别三的分别准确率为91%,则选择输出分类结果为类别三。用户佩戴自制手势数据采集手套执行相关中国字母手语手势,系统将输出最大概率识别手势。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1