首页 / 专利库 / 人工智能 / 语言建模 / 一种基于数据手套使用自然手势进行精确三维建模的方法

一种基于数据手套使用自然手势进行精确三维建模的方法

阅读:1021发布:2020-08-23

专利汇可以提供一种基于数据手套使用自然手势进行精确三维建模的方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 数据手套 使用自然手势进行精确 三维建模 的方法,该方法在手套外部加装LilyPad Arduino作为处理芯片,通过弯曲 传感器 、FSR402型 电阻 式 薄膜 压 力 传感器 、JY‑901模 块 监测手部动作,通过LilyPad XBee与XBee 1mW Wire Antenna无线模块与计算机双向通信。通过与体感设备得到的手部坐标与运动数据进行融合,能够使计算机读懂人体自然语言,并将测量的 精度 达到接近 鼠标 的程度,从而能够使用户使用自然语言进行三维建模。,下面是一种基于数据手套使用自然手势进行精确三维建模的方法专利的具体信息内容。

1.一种基于数据手套使用自然手势进行精确三维建模的方法,其特征在于,所述数据手套的手背中心处固定LilyPad Arduino,五个手指处分别固定长条形的弯曲传感器,每个弯曲传感器的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的模拟口,在LilyPad Arduino的5V口与模拟口之间连接阻值为10KΩ的分压电阻
在无名指指尖、中指指尖、食指指尖、食指第二关节靠近大拇指一边的侧面分别固定FSR402型电阻式薄膜传感器,每个FSR402型电阻式薄膜压力传感器的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的数字口,同时在LilyPad Arduino的5V口与数字口之间连接阻值为20KΩ的分压电阻,使得数字口的读数为FSR402型电阻式薄膜压力传感器的电压的模拟值的二值判定,当FSR402型电阻式薄膜压力传感器未被挤压时,数字口的读数为0;当FSR402型电阻式薄膜压力传感器受到挤压时,数字口的读数为1;
在手背靠后位置固定JY-901模,所述JY-901模块集成加速度计、陀螺仪和地磁场传感器;所述JY-901模块的5V口、GND口、SCL口、SDA口分别连接LilyPad Arduino的5V口、GND口、SCL口、SDA口;在JY-901模块的SCL口与LilyPad Arduino的5V口之间连接阻值为4.7KΩ的上拉电阻,在JY-901模块的SDA口与LilyPad Arduino的5V口之间也连接阻值为4.7KΩ的上拉电阻;LilyPad Arduino与JY-901模块之间使用IIC总线协议进行通信,JY-901模块可测出手掌的动态欧拉
在手掌掌心处固定LilyPad XBee,所述LilyPad XBee的5V口、GND口、rx口、tx口分别与LilyPad Arduino的5V口、GND口、D5口、D6口连接,从而读取LilyPad Arduino的数据;所述LilyPad XBee上加装2.4G的XBee 1mW Wire Antenna无线模块,所述XBee 1mW Wire Antenna无线模块采用802.15.4协议栈,通过串口与计算机进行双向通信,将接收到的LilyPad Arduino的数据传输给计算机串口,计算机端通过串口库进行读取操作;
在手背中心靠后位置固定EB-Vibrator震动达,EB-Vibrator震动马达的5V口、GND口和SIG口分别连接LilyPad Arduino的5V口、GND口和D9口,D9口的PWM输出功能可以调节EB-Vibrator震动马达的震动强度;
该方法具体包括以下步骤:
(1)将微软公司生产的Kinect设备连接计算机,使用微软官方提供的Kinect API得到手部三维空间坐标以及手部运动的动态三轴加速度;
(2)数据的采集及标注:首先为各个手势进行编号,利用串口读写库读取数据手套上弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角,FSR402型电阻式薄膜压力传感器的数字口读数以及Kinect设备得到的手部三维空间坐标以及手部运动的加速度;为避免读入过多重复数据,设置数据读取间隔为20秒;完成所有数据的采集后,创建Excel表格train.csv,将数据写入train.csv;标注部分采用手工标注,打开train.csv表格,在每行的末尾为每个数据样本标上手势的编号;数据的采集采用Visual Studio平台来实现;
(3)利用步骤(2)采集的数据训练一个基于随机森林模型的手势分类器:所述手势分类器是一个由n支决策树组成的树型分类器,其输出采用简单多数投票法,即输出n支决策树中出现最多的类;不同于一般的决策树,随机森林中每棵决策树并不利用数据点的所有特征,而是随机地从所有特征中取m个生成决策树;手势分类器使用基尼指数作为分割效果的度量,即每次决策树分裂时,选取所有可能分裂方法中基尼指数最小者;当叶节点中的数据都为同一手势类别,或叶节点包含的数据少于2个时,停止分裂;在此模型中,不对决策树进行剪枝
(4)使用Scikit-learn机器学习库中的随机森林分类器:设置分类器的两个参数n,m分别为500和3,然后读入数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度进行训练,分类器的训练过程就此完成;
(5)手势命令的识别:对于新的数据点,手势分类器将对其进行层级判断,具体为:先看
4个二进制点击值中是否有数据,若有数据,则依据数据出现的位置即可判断用户的手势;
若4个二进制点击值均无数据,则将据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度读入已经训练完成的随机森林模型中;随机森林模型将数据读入后,按照每棵树训练时使用的3个特征,将数据的相应特征读入树中;每棵树再根据节点的分裂条件,将数据逐层分类至对应的叶子节点,并输出相应类;当500棵决策树都得到各自输出结果后,统计出得票最多的类,并将此类作为用户数据的对应手势;
(6)将手势翻译为三维建模软件的命令,通过手势分类器得到对应手势后,将对应的命令通过脚本输入三维建模软件,三维建模软件根据得到的命令作出相应的模型;
(7)将数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度作为参数传递给三维建模软件,以设定步骤(6)所得模型的平移、缩放、旋转参数,从而实现基于自然手势的精确三维建模。

说明书全文

一种基于数据手套使用自然手势进行精确三维建模的方法

技术领域

[0001] 本发明涉及一种基于数据手套使用自然手势进行精确三维建模的方法。

背景技术

[0002] 目前,弯曲传感器加速度计等可穿戴传感器已经可以通过组合应用来检测基本的自然手势例如手指的弯曲和伸直。同时结合大量自然手势数据的捕获和机器学习,目前已经能进行基本的手指关节精度的姿势识别。但是由于手的空间运动会使三轴加速度计产生累计误差效应,从而导致无法准确还原手的空间运动轨迹,而且直接影响手与用户身体相对位置关系的判断。这使得当前的数据手套只能非常有限地应用于简单的手指运动的姿态识别,无法完整地支持自然手势交互。
[0003] 另一方面,目前的体感交互技术使用编码后的红外线进行测距,然后通过传感器测量反射的光线图案进行距离的检测。这类技术的精度多在毫米级别,而且由于最小使用距离的限制,用户需要站得比较远。这使得捕捉到的手势并不十分精确,而且由于缺乏有效的机器学习算法,只能识别简单手握紧和张开两种姿势。此外,当手被部分或全部遮挡,这类技术便无法正确捕捉与检测距离和姿势。因此,目前的体感技术在精确三维建模领域的应用十分有限。
[0004] 单一使用体感设备无法识别复杂的手势语言,对手部的测量精度也达不到三维建模的要求。而单一的数据手套由于无法还原运动轨迹和位置关系使得其能识别的手势有限,并且由于只用到手部姿势而非全身骨骼的分析,使得其交互十分单一,应用在三维建模的效果较差。同时不管是体感技术还是传统的手势手套,都无法解决大量的点击的问题并且缺乏对于人体直接的反馈。

发明内容

[0005] 本发明主要解决体感技术在空间自然手势识别中的精确不足以及传统数据手套受传感器影响导致的姿势、位置判断误差问题。本发明结合以上两种技术,开发出一种新型数据手套,通过体感技术对大幅度手势的识别来对数据手套的加速度传感器的累计误差效应进行消除,从而支持基于自然手势的高精度三维建模。
[0006] 本发明的目的是通过以下技术方案来实现的:一种基于数据手套使用自然手势进行精确三维建模的方法,所述数据手套的手背中心处固定LilyPad Arduino,五个手指处分别固定长条形的弯曲传感器,每个弯曲传感器的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的模拟口,在LilyPad Arduino的5V口与模拟口之间连接阻值为10KΩ的分压电阻,使得模拟口的读数为弯曲传感器上的电压的模拟值,模拟值的大小反映了手指的弯曲程度;
[0007] 在无名指指尖、中指指尖、食指指尖、食指第二关节靠近大拇指一边的侧面分别固定FSR402型电阻式薄膜传感器,每个FSR402型电阻式薄膜压力传感器的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的数字口,同时在LilyPad Arduino的5V口与数字口之间连接阻值为20KΩ的分压电阻,使得数字口的读数为FSR402型电阻式薄膜压力传感器的电压的模拟值的二值判定,当FSR402型电阻式薄膜压力传感器未被挤压时,数字口的读数为0;当FSR402型电阻式薄膜压力传感器受到挤压时,数字口的读数为1;
[0008] 在手背靠后位置固定JY-901模,所述JY-901模块集成加速度计、陀螺仪和地磁场传感器;所述JY-901模块的5V口、GND口、SCL口、SDA口分别连接LilyPad Arduino的5V口、GND口、SCL口、SDA口;在JY-901模块的SCL口与LilyPad Arduino的5V口之间连接阻值为4.7KΩ的上拉电阻,在JY-901模块的SDA口与LilyPad Arduino的5V口之间也连接阻值为
4.7KΩ的上拉电阻;LilyPad Arduino与JY-901模块之间使用IIC总线协议进行通信,JY-
901模块可测出手掌的动态欧拉
[0009] 在手掌掌心处固定LilyPad XBee,所述LilyPad XBee的5V口、GND口、rx口、tx口分别与LilyPad Arduino的5V口、GND口、D5口、D6口连接,从而读取LilyPad Arduino的数据;所述LilyPad XBee上加装2.4G的XBee 1mW Wire Antenna无线模块,所述XBee 1mW Wire Antenna无线模块采用802.15.4协议栈,通过串口与计算机进行双向通信,将接收到的LilyPad Arduino的数据传输给计算机串口,计算机端通过串口库进行读取操作;
[0010] 在手背中心靠后位置固定EB-Vibrator震动达,EB-Vibrator震动马达的5V口、GND口和SIG口分别连接LilyPad Arduino的5V口、GND口和D9口,D9口的PWM输出功能可以调节EB-Vibrator震动马达的震动强度。
[0011] 该方法具体包括以下步骤:
[0012] (1)将微软公司生产的Kinect设备连接计算机,使用微软官方提供的Kinect API得到手部三维空间坐标以及手部运动的动态三轴加速度;
[0013] (2)数据的采集及标注:首先为各个手势进行编号,利用串口读写库读取数据手套上弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角,FSR402型电阻式薄膜压力传感器的数字口读数以及Kinect设备得到的手部三维空间坐标以及手部运动的加速度;为避免读入过多重复数据,设置数据读取间隔为20秒;完成所有数据的采集后,创建Excel表格train.csv,将数据写入train.csv;标注部分采用手工标注,打开train.csv表格,在每行的末尾为每个数据样本标上手势的编号;数据的采集可以采用Visual Studio平台来实现;
[0014] (3)利用步骤2采集的数据训练一个基于随机森林模型的手势分类器:所述手势分类器是一个由n支决策树组成的树型分类器,其输出采用简单多数投票法,即输出n支决策树中出现最多的类;不同于一般的决策树,随机森林中每棵决策树并不利用数据点的所有特征,而是随机地从所有特征中取m个生成决策树;手势分类器使用基尼指数作为分割效果的度量,即每次决策树分裂时,选取所有可能分裂方法中基尼指数最小者;当叶节点中的数据都为同一手势类别,或叶节点包含的数据少于2个时,停止分裂;在此模型中,不对决策树进行剪枝
[0015] (4)使用Scikit-learn机器学习库中的随机森林分类器:设置分类器的两个参数n,m分别为500和3,然后读入数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度进行训练,分类器的训练过程就此完成;
[0016] (5)手势命令的识别:对于新的数据点,手势分类器将对其进行层级判断,具体为:先看4个二进制点击值中是否有数据,若有数据,则依据数据出现的位置即可判断用户的手势;若4个二进制点击值均无数据,则将据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度读入已经训练完成的随机森林模型中;随机森林模型将数据读入后,按照每棵树训练时使用的3个特征,将数据的相应特征读入树中;每棵树再根据节点的分裂条件,将数据逐层分类至对应的叶子节点,并输出相应类;当500课决策树都得到各自输出结果后,统计出得票最多的类,并将此类作为用户数据的对应手势;
[0017] (6)将手势翻译为三维建模软件的命令,通过手势分类器得到对应手势后,将对应的命令通过脚本输入三维建模软件,三维建模软件根据得到的命令作出相应的模型;
[0018] (7)将数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度作为参数传递给三维建模软件,以设定步骤6所得模型的平移、缩放、旋转等参数,从而实现基于自然手势的精确三维建模。
[0019] 本发明的有益效果是,在使用自然语言与计算机进行交互时,能够接近鼠标的精度,同时可以避免手势遮挡、空间站位等问题,从而良好地应用在三维建模中。附图说明
[0020] 图1是本发明的电路原理图;
[0021] 图2是手套实物的元件分布图;
[0022] 图中,1为LilyPad Arduino;2为LilyPad XBee;3为XBee 1mW Wire Antenna无线模块;4为弯曲传感器;5为FSR402型电阻式薄膜压力传感器;6为JY-901模块;7为震动马达;8为5V电池;9为10KΩ电阻;10为20KΩ电阻;11为LilyPad XBee的rx口;12为LilyPad XBee的tx口;13为LilyPad Arduino的SDA口;14为LilyPad Arduino的SCL口;15为4.7KΩ电阻。

具体实施方式

[0023] 下面结合附图和具体实施例对本发明作进一步详细说明。
[0024] 如图1所示,本发明所述数据手套的手背中心处固定LilyPad Arduino 1,五个手指处分别固定长条形的弯曲传感器4,每个弯曲传感器4的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的模拟口,在LilyPad Arduino的5V口与模拟口之间连接阻值为10KΩ的分压电阻9,使得模拟口的读数为弯曲传感器4上的电压的模拟值,模拟值的大小反映了手指的弯曲程度;
[0025] 在无名指指尖、中指指尖、食指指尖、食指第二关节靠近大拇指一边的侧面分别固定FSR402型电阻式薄膜压力传感器5,每个FSR402型电阻式薄膜压力传感器5的引脚一端连接LilyPad Arduino的GND口,另一端连接LilyPad Arduino的数字口,同时在LilyPad Arduino的5V口与数字口之间连接阻值为20KΩ的分压电阻10,使得数字口的读数为FSR402型电阻式薄膜压力传感器5的电压的模拟值的二值判定,当FSR402型电阻式薄膜压力传感器5未被挤压时,数字口的读数为0;当FSR402型电阻式薄膜压力传感器5受到挤压时,数字口的读数为1;
[0026] 在手背靠后位置固定JY-901模块6,所述JY-901模块6集成加速度计、陀螺仪和地磁场传感器;所述JY-901模块6的5V口、GND口、SCL口、SDA口分别连接LilyPad Arduino的5V口、GND口、SCL口14、SDA口13;在JY-901模块6的SCL口与LilyPad Arduino的5V口之间连接阻值为4.7KΩ的上拉电阻15,在JY-901模块6的SDA口与LilyPad Arduino的5V口之间也连接阻值为4.7KΩ的上拉电阻15;LilyPad Arduino与JY-901模块6之间使用IIC总线协议进行通信,JY-901模块6可测出手掌的动态欧拉角;
[0027] 在手掌掌心处固定LilyPad XBee 2,所述LilyPad XBee 2的5V口、GND口、rx口11、tx口12分别与LilyPad Arduino 1的5V口、GND口、D5口、D6口连接,从而读取LilyPad Arduino 1的数据;所述LilyPad XBee 2上加装2.4G的XBee 1mW Wire Antenna无线模块3,所述XBee 1mW Wire Antenna无线模块3采用802.15.4协议栈,通过串口与计算机进行双向通信,将接收到的LilyPad Arduino 1的数据传输给计算机串口,计算机端通过串口库进行读取操作;
[0028] 在手背中心靠后位置固定EB-Vibrator震动马达7,EB-Vibrator震动马达7的5V口、GND口和SIG口分别连接LilyPad Arduino的5V口、GND口和D9口,D9口的PWM输出功能可以调节EB-Vibrator震动马达7的震动强度。
[0029] 图2为手套实物的元件分布图。其中左图为手心面的元件分布状况,右图为手背面的元件分布状况。需要注意,图中A处的四条导线越过了手的侧面;图中B为食指第二指关节,其侧面固定有FSR402型电阻式薄膜压力传感器。
[0030] 本发明一种基于数据手套使用自然手势进行精确三维建模的方法,具体包括以下步骤:
[0031] (1)将微软公司生产的Kinect设备连接计算机,使用微软官方提供的Kinect API得到手部三维空间坐标以及手部运动的动态三轴加速度;
[0032] (2)数据的采集及标注:首先为各个手势进行编号,利用串口读写库读取数据手套上弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角,FSR402型电阻式薄膜压力传感器的数字口读数以及Kinect设备得到的手部三维空间坐标以及手部运动的加速度;为避免读入过多重复数据,设置数据读取间隔为20秒;完成所有数据的采集后,创建Excel表格train.csv,将数据写入train.csv;标注部分采用手工标注,打开train.csv表格,在每行的末尾为每个数据样本标上手势的编号;数据的采集可以采用Visual Studio平台来实现;
[0033] (3)利用步骤2采集的数据训练一个基于随机森林模型的手势分类器:所述手势分类器是一个由n支决策树组成的树型分类器,其输出采用简单多数投票法,即输出n支决策树中出现最多的类;不同于一般的决策树,随机森林中每棵决策树并不利用数据点的所有特征,而是随机地从所有特征中取m个生成决策树;手势分类器使用基尼指数作为分割效果的度量,即每次决策树分裂时,选取所有可能分裂方法中基尼指数最小者;当叶节点中的数据都为同一手势类别,或叶节点包含的数据少于2个时,停止分裂;在此模型中,不对决策树进行剪枝;
[0034] (4)使用Scikit-learn机器学习库中的随机森林分类器:设置分类器的两个参数n,m分别为500和3,然后读入数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度进行训练,分类器的训练过程就此完成;
[0035] (5)手势命令的识别:对于新的数据点,手势分类器将对其进行层级判断,具体为:先看4个二进制点击值中是否有数据,若有数据,则依据数据出现的位置即可判断用户的手势;若4个二进制点击值均无数据,则将据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度读入已经训练完成的随机森林模型中;随机森林模型将数据读入后,按照每棵树训练时使用的3个特征,将数据的相应特征读入树中;每棵树再根据节点的分裂条件,将数据逐层分类至对应的叶子节点,并输出相应类;当500课决策树都得到各自输出结果后,统计出得票最多的类,并将此类作为用户数据的对应手势;
[0036] (6)将手势翻译为三维建模软件的命令,通过手势分类器得到对应手势后,将对应的命令通过脚本输入三维建模软件,三维建模软件根据得到的命令作出相应的模型;
[0037] (7)将数据手套上的弯曲传感器的手指弯曲模拟值,JY-901模块得到的动态欧拉角以及Kinect设备得到手部三维空间坐标以及手部运动的加速度作为参数传递给三维建模软件,以设定步骤6所得模型的平移、缩放、旋转等参数,从而实现基于自然手势的精确三维建模。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈