IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 基于穿戴设备的凌空手势轨迹重构(斜直线) -> 正文阅读

[人工智能]基于穿戴设备的凌空手势轨迹重构(斜直线)



最近在做一个 手势识别项目,手势为斜直线,目的是通过算法来计算斜直线手势的尺度。一开始用的是惯性导航算法来做计算,但是发现基于 可穿戴设备这类低精度的惯性传感器有着诸多的缺点,因此并不适合于用惯性导航算法来做计算。因此进而采用机器学习算法来对不同尺度的凌空手势尺度进行识别,发现识别效果良好,因此将过程分享给大家交流。

一、硬件系统搭建

本项目是基于惯性传感器来收集手势数据。一般的,惯性传感器有分为消费电子级、车载级和航天级。当然的,他们价格就有着非常大的差距,消费电子级一般用于手机、可穿戴设备等上面,一般价格不超过100块。例如常用的MPU6050和MPU9250传感器,分别只有8块和20块左右,详细请见拼多多。但是这样的传感器一般用于计算物体的姿态角,很难用于计算物体在三维空间中的位移,因此还有的研究是用CH100高精度传感器,这类传感器是可以用于物体移动轨迹的追踪,且相对于MPU6050和MPU9250来说更加的稳定和可靠。言归正传,此处手势识别采用的是消费电子级MPU6050传感器,下面将介绍该传感器的硬件情况。

1、加速计

一般的,加速计是用于测量物体自身受到的比力,市面上有单轴、两轴加速计或者三轴加速计,此处项目用的是三轴加速度计。在可穿戴设备中,三轴加速计的方向有着固定的指向。其中x轴的正方向指向手掌,y轴的正方向垂直于手掌,z轴垂直于上述两轴并指向天。随着手部的运动,加速计三轴的数据会随着手的姿态变动而变动。
**可穿戴设备**

2、陀螺仪

陀螺仪一般指的是三轴,也有x、y和z轴,其中x轴的正方向指向手掌,y轴的正方向垂直于手掌,z轴垂直于上述两轴并指向天,跟加速计的坐标基本一致。陀螺仪主要可以测到手势的三个加速度信息,通过角速度进行积分也可以获得手势的三个欧拉角,但是这三个欧拉角并不准确,因此获取欧拉角的方法通常也不是这计算。
三轴

3、磁力计

磁力计也有x、y和z轴,其中x轴的正方向指向手掌,y轴的正方向垂直于手掌,z轴垂直于上述两轴并指向天,跟加速计的坐标基本一致。磁力计一般用于测量物体所受磁场的磁强度,一般用磁力计的信息在惯性导航算法里面做坐标变换,用于去求取物体的偏航角信息。因此此处的手势识别暂时不需要用到。

4、手机的九轴数据获取

当然了,我们可以直接利用手机获取加速计和陀螺仪信息,如果我们没有MPU6050传感器的话。利用手机获取传感器信息,一般需要搭建一个APP,但是对于非计算机专业的学生来说很费力,这里推荐一个快速制作手机APP的方法给大家使用。

APP inventor官网
APP inventor 开发指南
通过上述的app软件便可以直接开发app并获取数据,通过将数据发送到云服务器端,再利用python可以将数据爬取下来做计算。云服务器一般用免费的TinyWebDB服务器,每个人都可以注册一个属于自己的服务器来存储数据和图片。
TinyWebDB服务器

5、采集频率

一般的,采集频率设置为50Hz。在可穿戴设备中,采集频率过高都会造成过高的功耗,因此采集频率一般在25-50即可。

二、软件系统搭建

数据收集系统大概如下图所示,将加速计和陀螺仪信息通过串口发送到上位机PC端或者ardunio端都可以。
**数据收集**

1、数据预处理方法

数据预处理指的是采用某种方法把原始数据里面一些杂质过滤,尽可能留下原始运动信息。因此过滤手势的运动噪声对于手势识别精准度来说显得十分重要。

(1)滑动窗口法

在过滤数据前,一般先用滑动窗口法对手势活动端进行截取,该方法一般用于实时手势识别中。滑动窗口有两个参数,一个是窗口的大小,另一个是窗口每次移动的步长。根据手势活动的观察,可以知道手势活动的最大数据量,此处采用256个数据点作为窗口的大小,窗口每次移动的步长为128。

此时截取到窗口后,要对窗口里面的数据进行分析,判断是不是有效的活动段,一般有能量、均值、方差和波峰波谷等方法。通过上述方法便可获取到有效的活动段数据。

(2)小波降噪

小波理论具有较好的时频信息处理,采用小波降噪可以有效的过滤手势在运动过程中的噪声,比如人体在运动过程在中一般会存在分形噪声。此处利用小波基db6进行4层分解,最终获得较为平滑干净的手势运动信息。蓝色线为原始数据,红色线为滤波后的数据。但是小波降噪往往需要很多的时间处理,实时性不是那么强,因此可以采用下面的组合:均值+低通滤波器
加速计信息陀螺仪过滤

(3)均值滤波和低通滤波

均值滤波指的是利用一个定长的数据块在原始数据上进行滑动,将窗口里面的数据求和在平均,最后将平均值代替当前数据块中中值的数据值。低通滤波器是通过设定一个频率阈值,将高于这个频率阈值的频率分量置为0,从而达到滤波的作用。

采用均值+低通滤波来过滤手势运动中的噪声,其性能跟小波降噪相当,但是时间消耗却少了很多。因此该方式也是值得应用。

2、特征提取

采用机器学习对手势进行识别,其特征选择显得十分重要。一般特征选的好,那么会有着较高的识别精度。本项目的手势几乎一致,只是在幅度上有着区别,因此选择特征需要在幅度和能量上做区分。

(1)时域

在时域下,本项目主要选取了最大值、最小值、均值、方差、能量和、上四分位点和下四分位点。

(2)频域

在频域中,主要选取峰值频率、标准差频率、方差频率、频率和等。

3、数据集设置

在这个项目中,主要是收集了斜直线手势,每条斜直线代表一种尺度的矩形框大小。如下图所示,等边矩形框的边长间距从10cm至60cm,因此共计6条斜直线手势。我收集了五名志愿者的手势
斜直线手势框

4、手势识别算法

(1)集成学习

三、算法识别结果

1、

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 21:59:15  更:2021-07-16 21:59:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 20:50:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码