发明内容
本发明提供用于手势姿态感知的智能戒指数据处理方法,以解决现有的问题。
本发明的用于手势姿态感知的智能戒指数据处理方法采用如下技术方案:
本发明一个实施例提供了用于手势姿态感知的智能戒指数据处理方法,该方法包括以下步骤:
采集不同手势姿态的陀螺仪序列数据;
根据不同陀螺仪序列数据的时间尺度差异得到不同陀螺仪序列数据之间的相似性;依据不同陀螺仪序列数据之间的相似性进行聚类处理,得到若干手势姿态类别;将各类手势姿态类别中陀螺仪序列数据划分为若干时间段;将陀螺仪序列数据上每个时间点所属的时间段记为目标时间段;获取目标时间段中其前后相邻的两个时间点之间的距离
,在目标时间段中将每个时间点去除后,获取其前后相邻的两个时间点之间的距离/>
,将/>
、/>
做之间差值的绝对值记为每个时间点的第一差异距离;根据目标时间段与目标时间段相匹配的时间段之间的相似性、第一差异距离获得每个时间点的优选程度;
根据每个时间点的优选程度获得插值位置;根据插值位置分析目标时间段中第一个时间点到插值位置所在时间点的幅值差异,获得每个插值位置的陀螺仪序列数据差异范围;根据每个插值位置的陀螺仪序列数据差异范围内的候选插值进行插值,得到若干候选插值经插值后的差异性变化,进而得到不同手势姿态下的经插值后陀螺仪序列数据;
利用不同手势姿态下的经插值后陀螺仪序列数据训练分类模进行手势姿态的检测。
进一步地,所述根据不同陀螺仪序列数据的时间尺度差异得到不同陀螺仪序列数据之间的相似性的获取表达式如下:
式中,/>
表示陀螺仪的数据维度;/>
表示第/>
个维度的陀螺仪序列数据的数据点的个数;
表示第/>
个手势姿态的第/>
个维度的陀螺仪序列数据的第/>
个数据点对应的陀螺仪传感器在每个轴上输出的数据,记为第/>
个数据点的幅值;/>
表示第/>
个手势姿态的第/>
个维度的陀螺仪序列数据的所有数据点的幅值均值;/>
表示第/>
个手势姿态的第一个数据点和第/>
个手势姿态的第一个数据点的时间差值的绝对值,即对应的陀螺仪序列数据的时间间隔差;/>
表示第/>
个手势姿态和第/>
个手势姿态的第/>
个维度的陀螺仪序列数据之间的DTW距离;/>
为以自然数为底数的对数函数;/>
表示第/>
个手势姿态的陀螺仪序列数据与第/>
个手势姿态的陀螺仪序列数据之间的相似性;
是归一化指数函数。
进一步地,所述将各类手势姿态类别中陀螺仪序列数据划分为若干时间段的具体方法如下:
获得陀螺仪序列数据中所有数据点的斜率差值的绝对值,根据每个数据点与其相邻前一个数据点的斜率差值的绝对值对陀螺仪的趋势数据进行时间段划分,对所有数据点的斜率差值的绝对值进行线性归一化,预设一个归一化后的斜率差值阈值,若数据点的斜率差值的绝对值大于设置的斜率差值阈值,则将数据点作为划分时间段的分段点,根据若干分段点将陀螺仪序列数据划分成若干时间段。
进一步地,根据目标时间段与目标时间段相匹配的时间段之间的相似性、第一差异距离获得每个时间点的优选程度的获取方法如下:
在目标时间段中,获取每个时间点与目标时间段的第一个时间点连线的第一斜率值;在目标时间段相匹配的时间段中,获取相匹配的时间点与相匹配的时间段的第一个时间点连线的第二斜率值。而优选程度的获取表达式如下:
式中,/>
表示目标序列中的第/>
个时间点所在的目标时间段和目标时间段的匹配时间段之间的相似性;/>
表示目标序列中的第/>
个时间点所在的目标时间段中的第一个时间点和第/>
个时间点连线的斜率值,即第一斜率值;/>
表示目标时间段的匹配时间段中的第一个时间点和该匹配时间点连线的斜率值,即第二斜率值;/>
表示第/>
个时间点的第一差异距离;/>
表示目标时间段中的第/>
个时间点作为插值点计算得到的优选程度。
进一步地,所述每个插值位置的陀螺仪序列数据差异范围的获取方法如下:
获取第一个时间点到插值位置所在时间点之间的所有时间点,记为时间点集合S,其中包含第一个时间点和插值位置所在时间点;时间点集合S中每个时间点在连线上对应一个幅值,记为
,在目标序列中对应一个幅值,记为/>
,将/>
和/>
的差值的绝对值记为每个时间点的幅值差异,那么时间点集合S中包含所有幅值差异,其中的最小值和最大值构成的一个闭区间记为陀螺仪序列数据差异范围。
进一步地,所述每个插值位置的陀螺仪序列数据差异范围内的候选插值的获取方法如下:
在任意一个插值位置对应的陀螺仪序列数据差异范围内,等间隔地选择出预设数量个幅值,记为候选插值。
进一步地,所述若干候选插值经插值后的差异性变化的获取表达式如下:
其中/>
表示目标时间段的幅值个数,
表示目标时间段的匹配时间段的幅值个数,/>
表示目标时间段的幅值经过插值后的所有幅值的均值,/>
表示插值后的目标时间段和目标时间段的匹配时间段中所有幅值的均值;/>
表示插值后的差异性变化。
本发明的技术方案的有益效果是:通过将不同手势姿态对应的陀螺仪序列数据之间的差异特征通过插值的方式进行修正,将修正后的陀螺仪序列数据用于训练手势姿态的分类模型。首先根据不同手势姿态之间的陀螺仪序列数据的相似性特征进行聚类,将相似的陀螺仪序列数据作为需要进行插值的数据,并根据每种手势姿态类别内部的陀螺仪序列数据分布特征来获取插值的位置,并在相应的插值位置进行插值,保证在不改变表征不同手势姿态的陀螺仪序列数据的数据分布特征的基础上,增加数据差异特征。避免了传统的分类模型训练过程中,由于部分手势姿态的陀螺仪序列数据较为相似使得分类精度较差的缺点,使得分类模型的分类精度大大提高。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的用于手势姿态感知的智能戒指数据处理方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的用于手势姿态感知的智能戒指数据处理方法的具体方案。
本实施例所针对的具体场景为:通过布置在智能戒指中的陀螺仪采集用户的手势动作过程中的陀螺仪序列数据,并根据获取的陀螺仪序列数据进行预处理,并提取数据特征输入到分类模型中进行手势动作识别。
请参阅图1,其示出了本发明一个实施例提供的用于手势姿态感知的智能戒指数据处理方法的步骤流程图,该方法包括以下步骤:
步骤S001:通过安装在智能戒指中的陀螺仪传感器采集陀螺仪序列数据,并进行预处理。
在进行手势姿态检测时通常使用神经网络模型获得手势姿态,因此首先需要使用数据集训练一个神经网络模型,该数据集的获取方法为:
首先需要说明的是,由于陀螺仪传感器具有感应微小震动的特性,主要用于检测运动和平衡,故可以比较理想地采集到手势姿态的数据。因此本实施例通过安装在智能戒指中的陀螺仪传感器,采集陀螺仪序列数据,其中本实施例中采用的陀螺仪为三轴陀螺仪,在使用时陀螺仪之前已经过标定,本实施例中不对陀螺仪的具体型号进行限定。
让大量实验人员穿戴带有陀螺仪传感器的智能戒指,每2秒做一次任意手势,并且同时采集一次三个不同维度方向的陀螺仪序列数据。由于陀螺仪传感器在采集陀螺仪序列数据以及传输陀螺仪序列数据的过程中会受到噪声的影响,因此本实施例进行高通滤波进行去噪预处理,其中高通滤波算法为公知技术,在本实施例中不再赘述;当实验人员做完所有手势后,即可获得大量的三个维度的陀螺仪序列数据,这些陀螺仪序列数据构成一个数据集,其中每个陀螺仪序列数据人为分配一个手势姿态类型标签。
需要说明是,上述获取数据集的方法是训练神经网络的常规操作,本实施例不进行具体限定。
另外需要说明的是,本实施例中陀螺仪传感器每个轴每隔0.2秒输出一个数据,记为幅值,那么每2秒获得了一个时序序列,记为陀螺仪序列数据,在本实施例中该时序序列的长度为2/0.2=10。
至此利用获得的数据集训练神经网络,将神经网络作为分类模型,但是由于某些手势姿态之间的具有相似性的特征,例如手势中的“1”和“7”,由于部分手势姿态的部分组成部分是相似的,则对应的陀螺仪的数据的提取的特征具有相似性特征,那么对于分类模型中会造成无识别的问题,因此在使用该数据集训练分类模型前,需要对该数据集中的每段陀螺仪序列数据进行插值处理,保证插值处理后的数据集能够训练处一个准确的分类模型用于检测手势。
步骤S002:根据不同手势姿态下的陀螺仪序列数据进行自适应插值。
需要说明的是,由于某些手势姿态之间的具有相似性的特征,例如手势中的“1”和“7”,其中部分手势姿态的部分组成部分形态是相似的,则对应的陀螺仪的序列数据的提取的特征具有相似性特征,那么对于分类模型中会造成无识别分类的问题。因此本实施例通过一种将不同手势姿态对应的陀螺仪序列数据之间的差异特征通过插值的方式进行修正,使得后续分类模型的分类精度大大提高。因此本实施例训练分类模型的过程中对采集的陀螺仪序列数据进行插值处理,首先根据不同手势姿态之间的陀螺仪序列数据的相似性特征进行聚类,将相似性特征较一致的陀螺仪序列数据作为需要进行插值的数据,并根据每种手势姿态类别内部的陀螺仪序列数据分布特征来获取插值的位置,并在相应的插值位置进行插值,保证在不改变不同手势姿态的陀螺仪序列数据的数据分布特征的基础上,增加陀螺仪序列数据差异特征,提高分类模型的分类精度;其中,本实施例所用的分类模型使用的是LSTM模型。
进一步需要说明的是,由于相似的手势姿态对应的陀螺仪序列数据具有较一致相似性特征,进而使得分类模型无法准确地对相似手势姿态进行分类,因此若需要通过数据插值来增加不同手势姿态之间的特征差异,因此首先需要根据陀螺仪序列数据之间的相似性特征进行聚类分析获取相似性特征较一致的陀螺仪序列数据,为后续进行分析提供基础。而在进行聚类分析过程中,由于不同的手势姿态的动作幅度和速度不同,会使得对应手势姿态的陀螺仪序列数据的幅值和时间不同,因此本实施例根据陀螺仪的数据分布特征之间的相似性进行聚类。其中由于采集的陀螺仪序列数据为三轴陀螺仪的,存在三个维度的陀螺仪序列数据,因此需要考虑陀螺仪序列数据的各个维度的变化,其中不同手势姿态的陀螺仪序列数据在不同维度中的特征是不同的,例如某些手势姿态下对于x轴数据较为平稳,但是y轴和z轴数据波动程度较大,那么对应的y轴和z轴的数据越能表征该手势姿态的信息。特别说明:由于采集的陀螺仪序列数据为三轴陀螺仪的,存在三个维度的陀螺仪序列数据,因此对应的在进行聚类分析的时候,需要考虑三个维度数据共同的相似性来综合判断,其中在计算相似性时,采用的均为同一个维度下的陀螺仪序列数据进行分析,在本实施例中不再赘述。
在聚类过程中通过陀螺仪序列数据之间的相似性特征进行聚类:任选一个陀螺仪序列数据为例进行分析,计算该陀螺仪序列数据与其他陀螺仪序列数据之间的相似性,其中任意两个陀螺仪序列数据之间的相似性采用DTW算法进行获取,其中DTW算法为公知技术,在本实施例中不再赘述。由于不同手势姿态的陀螺仪序列数据的时间尺度不同,因此综合考虑下第
个手势姿态的陀螺仪序列数据与第/>
个手势姿态的陀螺仪序列数据之间的相似性/>
的计算表达式为:
式中,/>
表示陀螺仪的数据维度,在本实施例中为3;/>
表示第/>
个维度的陀螺仪序列数据的数据点的个数;/>
表示第/>
个手势姿态的第/>
个维度的陀螺仪序列数据的第/>
个数据点对应的陀螺仪传感器在每个轴上输出的数据,记为第/>
个数据点的幅值;/>
表示第/>
个手势姿态的第/>
个维度的陀螺仪序列数据的所有数据点的幅值均值;/>
表示第/>
个手势姿态的第一个数据点和第/>
个手势姿态的第一个数据点的时间差值的绝对值,即对应的陀螺仪序列数据的时间间隔差;/>
表示第/>
个手势姿态和第/>
个手势姿态的第/>
个维度的陀螺仪序列数据之间的DTW距离;/>
为以自然数为底数的对数函数;/>
表示第/>
个手势姿态的陀螺仪序列数据与第/>
个手势姿态的陀螺仪序列数据之间的相似性。其中/>
表示第/>
个维度的陀螺仪序列数据的波动程度,对于不同维度的陀螺仪序列数据来说,若某个维度的陀螺仪序列数据的波动特征较小,即并未发生明显的变化,因此对应的该维度中含有的手势姿态的有用信息较少,则对应的该维度的相似性计算过程中的参考性就较小。而相似性计算采用DTW算法中的DTW距离来获取,距离越大则对应的相似程度越小。其中,/>
是归一化指数函数,用于对第/>
个维度下,所有手势姿态对应的/>
进行线性归一化处理,归一化处理的结果记为第/>
个维度的维度权重值。
对于第
个手势姿态的来说,通过计算该手势姿态的陀螺仪序列数据与其他手势姿态的陀螺仪序列数据之间的相似性,设置相似性阈值,而相似性阈值可根据实施者具体实施情况而定,本实施例给出的为经验参考值0.60,若任意两个手势姿态的陀螺仪序列数据的相似性大于相似性阈值,那么将两个手势姿态划分为一类,将所有手势姿态的陀螺仪序列数据按照这种方法分类,最终获得多个手势姿态类别;每个手势姿态类别中包含多段陀螺仪序列数据,同一手势姿态类别中任意两段陀螺仪序列数据均需大于相似性阈值。
至此,对不同手势姿态的预处理后的陀螺仪序列数据进行聚类分析,获取相似的手势姿态的陀螺仪序列数据的手势姿态类别。
另外需要说明的是,对于上述计算步骤得到的具有较一致相似性特征的手势姿态的陀螺仪序列数据,通过分析手势姿态类别内的特征,来获取需要进行数据插值的位置。而对于理想的插值位置来说,插值的位置应位于两段陀螺仪序列数据之间的极为相似的区域,通过对插值位置进行插值,增加数据差异特征,使得两段陀螺仪序列数据之间的极为相似的区域具有一定程度的特征差异,即两段陀螺仪序列数据之间的极为相似的区域可以通过分类模型区分开来;而在插值过程中不能在陀螺仪序列数据之间的关键特征区域,若通过插值将陀螺仪序列数据的关键区域的数据特征进行更改,则会丢失手势姿态的原本的信息特征,使得分类模型的分类效果较差,因此需要在每个手势姿态类别内确定需要进行插值的位置。
根据上述获得的同一类手势姿态类别中,对任意一个手势姿态类别中多段陀螺仪序列数据进行分析,首先对陀螺仪序列数据进行STL时间序列分割,获取陀螺仪的趋势数据,该趋势数据表征着手势的特征波动信息,对获取的陀螺仪的趋势数据进行每个数据点的斜率计算,获取相邻两个数据点的斜率的差值的绝对值,记为这两个数据点时序靠后的数据点的斜率差异,其中在计算趋势数据中第一个数据点的斜率差值时,第一个数据点的前一个数据点的斜率根据实施者具体实施情况而定,本实施例给出的为经验参考值0。
至此可以获得陀螺仪的趋势数据中所有数据点的斜率差值的绝对值。根据每个数据点与其相邻前一个数据点的斜率差值的绝对值对陀螺仪的趋势数据进行时间段划分,对所有数据点的斜率差值的绝对值进行线性归一化,设置归一化后的斜率差值阈值,若该数据点的斜率差值的绝对值大于设置的斜率差值阈值,则将该数据点作为划分时间段的分段点。其中斜率差值的阈值可根据实施者具体实施情况而定,本实施例给出的为经验参考值0.48。
至此按照上述方法可以得到任意一个手势姿态类别中任意一段陀螺仪序列数据的划分时间段的分段点以及划分后的多段时间段。
在任意一个手势姿态类别中,将任意一段陀螺仪序列数据上的任意一个时间段,记为目标时间段;在该手势姿态类别中,目标时间段所在陀螺仪序列数据记为目标序列;目标时间段所在陀螺仪序列数据之外的任意一个陀螺仪序列数据记为匹配序列。特以此目标序列与匹配序列作例分析。在对比目标序列与匹配序列时,通过结合计算目标序列与匹配序列之间的相似性过程中获取的DTW匹配点对与经上述方法获取的目标序列与匹配序列的分段点与时间段,可以得到目标序列与匹配序列上匹配后的时间段。
对于目标时间段的第
个时间点,即当前待插值的陀螺仪序列数据的时间点,以及匹配序列中与第/>
个时间点匹配的时间点记为匹配时间点,将匹配时间点所在的时间段记为目标时间段的匹配时间段,其中第/>
个时间点可能在匹配序列中的匹配时间点有多个,在这些时间点中选取与时间点/>
在时间上最接近的时间点作为匹配时间点,则以第
个时间点作为插值点计算得到的优选程度/>
的计算表达式为:
式中,
表示目标序列中的第/>
个时间点所在的目标时间段和目标时间段的匹配时间段之间的相似性,具体方法为:目标序列中的第/>
个时间点所在的目标时间段看作i,目标时间段的匹配时间段看作j,计算方法同公式(1),得到的计算结果作为/>
的计算结果;/>
表示目标序列中的第/>
个时间点所在的目标时间段中的第一个时间点和第/>
个时间点连线的斜率值,即第一斜率值;/>
表示目标时间段的匹配时间段中的第一个时间点和该匹配时间点连线的斜率值,即第二斜率值;/>
的计算方法:获取目标时间段中第/>
个时间点前后相邻的两个时间点之间的欧式距离/>
,在目标时间段中将第
个时间点的数据去除,得到新的目标时间段,在新的目标时间段中获取第/>
个时间点前后相邻的两个时间点之间的欧式距离/>
,对欧式距离/>
,/>
做差得到欧式距离之间差值的绝对值,即/>
;/>
表示目标时间段中第/>
个时间点作为插值点计算得到的优选程度。其中/>
表示目标时间段和目标时间段的匹配时间段之间的相似性,若目标时间段与匹配时间段的相似性较大,表明两时间段对应所在的目标序列与匹配序列较为相似,则在计算对应的匹配时间段的时间点/>
作为插值点的优选程度时需要考虑对应的匹配时间段的相似区域特征。/>
表示相似区域特征,若该表示相似区域特征的值越大,则表明时间点/>
位置的陀螺仪序列数据分布较为相似,则对应的匹配时间段的时间点/>
需要插值的可能性越大;若两个匹配时间段的相似性较小,表明两个匹配时间段差异较大,则在计算对应的匹配时间段的时间点/>
作为插值点的优选程度时需要考虑关键区域特征,/>
表示关键区域特征,若表示关键区域特征的值越大,则表明时间点
在被去除前后之间的趋势差异变化较为明显,则表明时间点/>
位置的陀螺仪序列数据分布特征明显,有明显的手势姿态信息特征,则对应的匹配时间段的时间点/>
需要插值的可能性越大。
至此根据上述方法可以获得在任意一类手势姿态类别中,任意一段陀螺仪序列数据上的任意一个时间段中的所有时间点作为插值点的优选程度。
将在任意一个手势姿态类别中,任意一段陀螺仪序列数据上的任意一个时间段中的所有时间点作为插值点的优选程度进行线性归一化处理,设置优选程度阈值,而优选程度阈值可根据实施者具体实施情况而定,本实施例给出的为经验参考值0.60,若时间点作为插值点的优选程度大于优选程度阈值,则表明该时间点需要进行插值。特别说明:不同待比较的陀螺仪序列数据在不同维度下的陀螺仪序列数据可能存在不同的时间点,则取所有维度下的时间点并集为插值位置。
至此,在每类手势姿态类别内的陀螺仪序列数据进行相似分析,获取陀螺仪序列数据的插值位置。
其他需要说明的是,根据上述步骤获取到的陀螺仪序列数据的插值位置,根据同一类手势姿态类别之间的数据差异特征来进行自适应插值。其中想要达到的插值效果为:插值的大小不能改变原有陀螺仪序列数据的分布特征,并且会使得与同类手势姿态类别的其他陀螺仪序列数据之间有较大的数据特征差异。
根据上述步骤计算得到的目标序列的插值位置,对该位置进行插值的具体过程为:该插值的位置所在的目标时间段中的时间点的幅值与目标时间段的第一个时间点的幅值进行连线,该连线表征着该陀螺仪序列数据分布特征,而为了保证原有陀螺仪序列数据的分布特征不发生改变,并且使该陀螺仪序列数据与同类手势姿态类别的其他陀螺仪序列数据之间存在较大的数据差异特征。
获取第一个时间点到插值位置所在时间点之间的所有时间点,其中包含第一个时间点和插值位置所在时间点;这些时间点中每个时间点在连线上对应一个幅值,记为
,在目标序列中对应一个幅值,记为/>
,将/>
和/>
的差值的绝对值记为每个时间点的幅值差异,那么这些时间点中每个时间点对应一个幅值差异,获取这些幅值差异的最大值和最小值,这个最小值和最大值构成的一个闭区间记为陀螺仪序列数据差异范围。
至此,对于任意一个插值位置,获得了一个陀螺仪序列数据差异范围。
在任意一个插值位置对应的陀螺仪序列数据差异范围内,等间隔地选择出
个幅值,记为候选插值,本实施例以/>
为例进行叙述。对于任意一个候选插值,利用该候选插值进行插值,具体过程为:将插值位置对应的幅值与候选插值进行相加,得到的结果作为插值位置经过插值后的幅值。
然后计算该候选插值进行插值后的差异性变化:
其中
表示目标时间段的幅值个数,/>
表示目标时间段的匹配时间段的幅值个数,/>
表示目标时间段的幅值经过插值后的所有幅值的均值,/>
表示插值后的目标时间段和目标时间段的匹配时间段中所有幅值的均值;/>
表示插值后的差异性变化。
至此对于任意一个候选插值对应的差异性变化,那么获取差异性变化最大的候选插值,该最大的候选插值对应得插值结果就是插值位置的最终幅值。
那么对于所有的插值位置,进行上述操作,获得所有插值位置的最终幅值,从而获得待插值的陀螺仪序列数据经过插值后的陀螺仪序列数据。
至此,根据计算得到的陀螺仪序列数据的插值位置进行自适应插值。
步骤S003:使用不同手势姿态下的经过插值后的陀螺仪序列数据训练分类模型,将当前采集的陀螺仪序列数据输入至该分类模型中进行手势姿态的检测。
根据上述步骤,获取得到不同手势姿态下的经过插值后的陀螺仪序列数据,进行分类模型的训练,其中采用DNN神经网络作为分类模型,其中训练数据为不同手势姿态下的经过插值后的陀螺仪序列数据,以及对应的陀螺仪序列数据的标签,采用专业人工的方式对陀螺仪序列数据进行人工标注手势姿态,进行分类模型的训练,采用的损失函数为交叉熵函数。将当前采集的陀螺仪序列数据输入至分类模型中,进行手势姿态的检测。
至此,本实施例完成。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。