一种基于惯性传感器的空中手写字符识别方法与流程

文档序号:12864225阅读:425来源:国知局
本发明涉及一种模式识别与人工智能
技术领域
,特别涉及一种基于惯性传感器的空中手写字符识别方法。
背景技术
:基于惯性传感器(加速度计和陀螺仪)的空中手写识别是近年来计算机领域中新兴起的研究前沿方向之一,利用用户身上可穿戴设备或智能手持设备内置的惯性传感器采集用户空中书写过程中的加速度信号和角速度信号,通过机器学习和深度学习方法来识别用户的书写内容,它属于穿戴式计算(wearablecomputing)和普适计算(ubiquitouscomputing)的重要研究内容之一。目前,基于惯性传感器的空中手写识别主要包括书写内容识别和书写人识别。书写内容识别主要是识别书写的字符、单词、短语、句子等具体的内容;书写人识别则主要是实现书写者的身份鉴权,可用于手写签名鉴定等领域;由于惯性传感器信号波形很不直观,很难单纯通过肉眼观察波形对书写内容加以区分,而且由于不同人书写习惯的差异,同一个字符的信号波形也有较大差异,因此手势识别时无法仅根据信号数值变化做出判别,而是需要挖掘信号潜在的变化规律。基于惯性传感器的空中手写不同于传统的二维平面书写,书写过程中没有任何的触觉和视觉反馈。但它既不受某个特定的书写平面的限制(如手写板、触摸屏),也不需要其他外挂设备(如摄像头)。而且,对环境变化、光照、肤色等因素不敏感,使用者只需要手持嵌入惯性传感器的书写设备在空中自由写。技术实现要素:本发明的目的在于克服现有技术的缺点与不足,提供一种识别精度高的基于惯性传感器的空中手写字符识别方法。本发明的目的通过下述技术方案实现:一种基于惯性传感器的空中手写字符识别方法,步骤如下:s1、对lstm-rnn模型(rnn(递归神经网络,recurrentneuralnetworks)隐藏层的非线性单元用lstm(longshort-termmemory,长短时间记忆)记忆块代替而得到的模型)进行参数初始化;同时通过佩带在手上的惯性传感器采集多个空中手写字符动作传感信号,并且对这些空中手写字符动作传感信号分别标注出其所属字符,然后将它们分别作为惯性传感器输出信号进行数据预处理,得到训练样本集和验证样本集;s2、将训练样本集中的各训练样本作为参数初始化后的lstm-rnn模型的输入对lstm-rnn模型进行训练,并且在lstm-rnn模型训练过程中,将验证样本集中的验证样本输入至迭代过程中训练得到的lstm-rnn模型,根据验证样本集识别的错误率对迭代次数进行控制,得到最终的lstm-rnn分类器;s3、通过佩带在手上的惯性传感器实时采集空中手写字符动作传感信号,然后将其作为惯性传感器输出信号进行数据预处理,得到测试样本,将测试样本输入至步骤s2中获取到的lstm-rnn分类器,通过lstm-rnn分类器识别出测试样本对应字符。优选的,惯性传感器采集的空中手写字符动作传感信号即惯性传感器输出信号包括三维加速度信号和三维角速度信号;各训练样本、验证样本和测试样本均为6维信号,包括三维数据预处理后的加速度信号和三维数据预处理后的角速度信号。更进一步的,所述步骤s1和步骤s3中惯性传感器输出信号进行数据预处理的过程如下:首先针对惯性传感器输出信号中的三维加速度信号的每一维加速度信号以及三维角速度信号的每一维角速度信号进行滑动平均滤波器处理,然后采用z-score标准化针对上述通过滑动平均滤波器处理的每一维加速度信号和每一维角速度信号分别进行处理,使得每一维加速度信号和每一维角速度信号的均值为0且标准差为1。优选的,步骤s1中对lstm-rnn模型进行参数初始化设定包括:设定lstm-rnn模型的输入层神经元个数和各样本的信号维数相同;设定lstm-rnn模型的输出层神经元的个数和字符类别数相同;设定输入层连接到隐藏层的权值win的初值以及平均池化层到输出层的权值wout的初值服从均匀分布u[-a,a],其中a为边界值;设定隐藏层中每个神经元的细胞结构、遗忘门、输入门和输出门各自的输入权值矩阵whidden_x和状态权值whidden_h中各个元素的初值服从均值为0,方差为1的高斯分布n(0,1);设定隐藏层的初始状态h、隐藏层的初始输出c、输入层连接到隐藏层的偏置bin、平均池化层到输出层的偏置bout的初值均为0;以及设定隐藏层中每个神经元的细胞结构、遗忘门、输入门和输出门各自的偏置bhidden的初值均为0。优选的,步骤s2通过梯度下降算法对lstm-rnn模型进行训练,表现为随着迭代次数对网络参数进行更新,具体过程如下:s21、分别初始化加权因子ρ、初始化均方梯度e[g2]0以及初始化均方参数增量e[δx2]0;设定第k次迭代时的网络参数为xk;然后进入步骤s22;s22、计算第k次迭代时的参数梯度gk;s23、根据第k次迭代时的参数梯度gk更新均方梯度,得到第k次迭代时的均方梯度e[g2]k为:e[g2]k=ρe[g2]k-1+(1-ρ)gk2;其中e[g2]k-1为第k-1次迭代的均方梯度;s24、分别计算第k次迭代时的学习率η和网络参数增量δxk:δxk=-η·gk;其中e[δx2]k-1为第k-1次迭代的均方参数增量;ε为常数,ε=1×10-6;s25、根据第k次迭代时的网络参数增量δxk和第k-1次迭代的均方参数增量e[δx2]k-1更新均方参数增量,得到第k次迭代时的均方参数增量e[δx2]k:e[δx2]k=ρe[δx2]k-1+(1-ρ)δxk2;s26、根据第k次迭代时的网络参数为xk以及第k次迭代时的网络参数增量δxk更新得到第k+1次迭代时的网络参数为xk+1:xk+1=xk+δxk。更进一步的,初始化加权因子ρ=0.95,初始化均方梯度e[g2]0=0以及初始化均方参数增量e[δx2]0=0。优选的,步骤s2中根据验证样本集识别的错误率对迭代次数进行控制,得到最终的lstm-rnn分类器的具体过程如下:s2a、预设耐性值p、一个置零的计数器和一错误率记录库;s2b、每隔定值q次的迭代次数,用当前迭代过程中得到的lstm-rnn模型测试验证样本集,计算出当前验证样本集识别的错误率,然后进入步骤s2c;s2c、判断当前验证样本集识别的错误率是否大于错误率记录库中记录的错误率最小值;若是,则进入步骤s2d;若否,则将当前迭代过程中得到的lstm-rnn模型作为最终的lstm-rnn分类器;s2d、判断当前验证样本集识别的错误率是否均大于错误率记录库最迟记录的p个错误率中的最小值;若否,则将当前迭代过程中得到的lstm-rnn模型作为最终的lstm-rnn分类器;若是,则计数器加一,错误率记录库记录当前验证样本集识别的错误率,并且判断计数器的计算值是否超过p;若否,则返回步骤s2b,若是,则迭代停止,将迭代停止时得到的lstm-rnn模型作为最终的lstm-rnn分类器。更进一步的,所述预设耐性值p取8~15中的其中一个整数值。更进一步的,所述定值q取200~500中的其中一个整数值。本发明相对于现有技术具有如下的优点及效果:(1)本发明基于惯性传感器的空中手写字符识别方法针对惯性传感器获取到的空中手写字符动作传感信号进行数据预处理后分别获取到训练样本集、验证样本集和测试样本,同时对lstm-rnn模型进行参数初始化,然后通过训练样本集中的各训练样本作为参数初始化后的lstm-rnn模型的输入对lstm-rnn模型进行训练,并且在lstm-rnn模型训练过程中,将验证样本集中的验证样本输入至迭代过程中训练得到的lstm-rnn模型,根据验证样本集识别的错误率对迭代次数进行控制,得到最终的lstm-rnn分类器;最后将测试样本输入至最终的lstm-rnn分类器,通过最终的lstm-rnn分类器识别出测试样本对应字符。lstm-rnn模型为rnn隐藏层的非线性单元用lstm记忆块代替后得到的模型,本发明方法通过lstm-rnn模型对惯性传感器输出的信号进行分类,由于lstm-rnn模型对时序序列具有良好的建模能力,并且能够挖掘出输入信号潜在的变化规律,因此具有空中手写字符识别精度和准确率更高的优点。(2)本发明基于惯性传感器的空中手写字符识别方法在针对lstm-rnn模型进行训练时,根据验证样本集识别的错误率对迭代次数进行控制,能够提前结束训练过程中的迭代,减少迭代次数,有效防止因训练迭代次数过多而造成模型过拟合的问题,从而得到最佳的lstm-rnn分类器。(3)本发明方法针对于惯性传感器输出的信号进行数据预处理时,采用滑动平均滤波器针对每一维加速度信号和每一维角速度信号进行处理,因此能够有效去除人为无意识抖动和硬件因素带来的高频噪声,同时采用z-score标准化针对上述通过滑动平均滤波器处理的每一维加速度信号和每一维角速度信号分别进行标准化处理,使得每一维加速度信号和每一维角速度信号的均值为0且标准差为1,以减少采集者书写力度和重力的影响。附图说明图1是本发明方法流程图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例本实施例公开了一种基于惯性传感器的空中手写字符识别方法,如图1所示,步骤如下:s1、对lstm-rnn模型进行参数初始化设定;同时通过佩带在手上的惯性传感器采集多个空中手写字符动作传感信号,并且对这些空中手写字符动作传感信号分别标注出其所属字符,然后将它们分别作为惯性传感器输出信号进行数据预处理,得到训练样本集和验证样本集,本步骤中对lstm-rnn模型进行参数初始化设定包括:设定lstm-rnn模型的输入层神经元个数与各样本的信号维数相同;设定lstm-rnn模型的输出层神经元的个数和字符类别数相同;设定输入层连接到隐藏层的权值win的初值以及平均池化层到输出层的权值wout的初值服从均匀分布u[-a,a],其中a为边界值:其中n1与n2分别为需要初始化的参数矩阵的长和宽;设定隐藏层中每个神经元的细胞结构、遗忘门、输入门和输出门各自的输入权值矩阵whidden_x和状态权值whidden_h中各个元素的初值服从均值为0,方差为1的高斯分布n(0,1);设定隐藏层的初始状态h、隐藏层的初始输出c、输入层连接到隐藏层的偏置bin、平均池化层到输出层的偏置bout的初值均为0;设定隐藏层中每个神经元的细胞结构、遗忘门、输入门和输出门各自的偏置bhidden的初值均为0。s2、将训练样本集中的各训练样本作为参数初始化后的lstm-rnn模型的输入对lstm-rnn模型进行训练,并且在lstm-rnn模型训练过程中,将验证样本集中的验证样本输入至迭代过程中训练得到的lstm-rnn模型,根据验证样本集识别的错误率对迭代次数进行控制,得到最终的lstm-rnn分类器;本步骤中通过梯度下降算法对lstm-rnn模型进行训练,表现为随着迭代次数对网络参数进行更新,具体过程如下:s21、分别初始化加权因子ρ=0.95、初始化均方梯度e[g2]0=0以及初始化均方参数增量e[δx2]0=0;设定第k次迭代时的网络参数为xk,其目标函数f(xk)为交叉熵代价函数;然后进入步骤s22;其中g表示参数梯度;s22、计算第k次迭代时的参数梯度gk;s23、根据第k次迭代时的参数梯度gk更新均方梯度,得到第k次迭代时的均方梯度e[g2]k为:e[g2]k=ρe[g2]k-1+(1-ρ)gk2;其中e[g2]k-1为第k-1次迭代的均方梯度;s24、分别计算第k次迭代时的学习率η和网络参数增量δxk:δxk=-η·gk;其中e[δx2]k-1为第k-1次迭代的均方参数增量;ε为常数,ε=1×10-6;s25、根据第k次迭代时的网络参数增量δxk和第k-1次迭代的均方参数增量e[δx2]k-1更新均方参数增量,得到第k次迭代时的均方参数增量e[δx2]k:e[δx2]k=ρe[δx2]k-1+(1-ρ)δxk2;s26、根据第k次迭代时的网络参数为xk以及第k次迭代时的网络参数增量δxk更新得到第k+1次迭代时的网络参数为xk+1:xk+1=xk+δxk。另外本步骤中根据验证样本集识别的错误率对迭代次数进行控制,得到最终的lstm-rnn分类器的具体过程如下:s2a、预设耐性值p、一个置零的计数器和一错误率记录库;其中耐性值p可取8~15中的其中一个整数值,在本实施例中耐性值p取15。s2b、每隔定值q次的迭代次数,用当前迭代过程中得到的lstm-rnn模型测试验证样本集,计算出当前验证样本集识别的错误率,然后进入步骤s2c;其中定值q取200~500中的其中一个整数值,在本实施例中q取350,即本步骤中每隔350次的迭代次数,用当前迭代过程中得到的lstm-rnn模型测试验证样本集,计算出当前验证样本集识别的错误率;s2c、判断当前验证样本集识别的错误率是否大于错误率记录库中记录的错误率最小值;若是,则进入步骤s2d;若否,则将当前迭代过程中得到的lstm-rnn模型作为最终的lstm-rnn分类器,并且计数器清零;s2d、判断当前验证样本集识别的错误率是否均大于错误率记录库最迟记录的p个错误率中的最小值;若否,则将当前迭代过程中得到的lstm-rnn模型作为最终的lstm-rnn分类器,并且计数器清零;若是,则计数器加一,错误率记录库记录当前验证样本集识别的错误率,并且判断计数器的计算值是否超过p;若否,则返回步骤s2b,若是,则迭代停止,将迭代停止时得到的lstm-rnn模型作为最终的lstm-rnn分类器。s3、通过佩带在手上的惯性传感器实时采集空中手写字符动作传感信号,然后将其作为惯性传感器输出信号进行数据预处理,得到测试样本,将测试样本输入至步骤s2中获取到的lstm-rnn分类器,lstm-rnn分类器执行网络前向运算,输出该测试样本属于每一类字符的概率大小,选取概率最大的一类作为该测试样本的字符识别结果。其中字符类别包括10个阿拉伯数字0~9,26个大写英文字母a~z,26个小写英文字母a~z。本实施例上述空中手写字符动作传感信号即惯性传感器输出信号包括三维加速度信号和三维角速度信号;步骤s1中数据预处理后得到的各样本为6维信号,包括三维数据预处理后的加速度信号和三维数据预处理后的角速度信号。本实施例上述步骤s1中对惯性传感器输出信号进行数据预处理得到数据预处理后的样本的过程如下:首先针对惯性传感器输出信号中的三维加速度信号的每一维加速度信号以及三维角速度信号的每一维角速度信号进行滑动平均滤波器处理,然后采用z-score针对上述通过滑动平均滤波器处理的每一维加速度信号和每一维角速度信号分别进行处理,使得每一维加速度信号和每一维角速度信号的均值为0且标准差为1,得到三维数据预处理后的加速度信号和三维数据预处理后的角速度信号。本实施例中惯性传感器可以至于智能手表或手机内,此时佩带智能手表或手机在手上即可。在本实施例中,通过构造的脱机空中手写数据库对本实施例方法进行测试。首先通过22名采集者参与数据采集,其中包括17名男性和5名女性,每人佩带具有惯性传感器的设备在空中书写每个字符10次,从而采集到包括8571个样本的脱机空中手写数据库。该数据库包含10个阿拉伯数字0~9、26个大写字母a~z和26个小写字母a~z共62种字符。针对于上述获取到的脱机空中手写数据库,当利用本实施例上述空中手写字符识别方法进行字符识别时,采用5折交叉验证方法得到平均识别准确率如下表1所示;表1测试内容平均识别准确率数字10类97.33%英文小写字母26类96.80%英文大写字母26类98.34%全部62类94.75%从表1中可以看出,本发明基于惯性传感器的空中手写字符识别方法具有较高的识别准确率。当采用不同采样率的惯性传感器采集空中手写字符动作传感信号时,本实施例方法平均识别时间如下表2所示;表2惯性传感器采样率100hz60hz15hz平均识别时间52.37ms33.83ms6.97ms从表2可以看出,本发明基于惯性传感器的空中手写字符识别方法对每种采样率下的输入信号消耗的平均时间都很短,说明本发明方法中的lstm-rnn分类器能高效准确地工作,具有较好的实时性。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1