资料介绍
描述
介绍
尽管当今可穿戴设备种类繁多,但大多数人工智能功能归结为仅定义非常简单的动作。他们确定一个人是在跑步还是在睡觉,他们计算步数,并确定一个人是否跌倒。
在我看来,我们已经准备好从我们的设备进行更复杂的分析。如果他们能够识别更具体、相似和复杂的活动会怎样?它将开启前所未有的可能性,创造出许多有趣的新应用程序和设备。
然而,识别更复杂的活动需要庞大而复杂的神经网络,这需要大量的计算。这显然会很快耗尽嵌入该神经网络的物联网设备的电池。大多数可穿戴设备应在常亮模式下运行,这对此类解决方案的能源效率提出了严格要求。
我们如何解决这个挑战?在我的项目中,我想展示一个示例,说明如何显着增加智能功能的复杂性,并确定可穿戴设备可以使用非常小且准确的神经网络识别什么。
在我的项目中,您将找到有关如何使用 Nicla Sense ME 实施多项日常活动识别的详细指南。
如果你有 Nicla Sense ME,你可以在你的实验/项目/课程中尝试我的预训练模型。
我们的测试结果表明,该模型完美地识别了 30 名未使用其数据训练模型的参与者的动作。
按照本教程,您还可以轻松地进行自己的实验并根据您的数据训练神经网络以识别相同或不同的动作。
我们相信,使用小型神经网络识别极其复杂和相似的动作的能力为永远在线的设备开辟了一个新时代。
下面,您将找到有关如何重现此实验的完整教程,包括数据收集、模型训练、模型嵌入和推理。此外,我们还创建了一个带有预训练模型的公共存储库,该模型已证明对新用户具有良好的泛化能力。它是一个预编译的模型存档,您只需点击几下鼠标即可下载并嵌入到您的 Nicla Sense ME 中,然后开始测试。
https://github.com/NeutonTinyML/hand-activity-recognition
使用 Nicla Sense ME 收集数据
对于这个案例,我选择了 5 种类型的活动(对于您的实验,您可以选择其他活动):
- 洗手
- 刷牙
- 鼓掌
- 梳理头发
- 随机活动(负类)
对于每种活动类型,我使用 Nicla Sense ME 连续 10 分钟不间断地收集传感器数据。数据是从 7 个不同地点的 7 个不同的人那里收集的。这是一个非常具有挑战性但又很有趣的过程,因为为了正确收集数据,中断是不可取的。对于那些计划重新进行我的实验的人,这里有一些建议:在为另一项活动收集数据之前,先休息一下!但是,如果 10 分钟的持续刷毛太多了,您可以进行两个 5 分钟的数据收集流,然后将两个文件连接起来。
对于负类,我们收集了 60 分钟的数据。这次不需要做任何特别的事情;继续你的日常活动。在键盘上打字,操作鼠标,接听电话,喝茶,或做任何你想做的事。只需确保在收集负面类别数据期间,您的手不会完全闲着不动。负面类别是除上述 4 类之外的所有其他类别的子集。
脚步:
现在让我为您提供有关如何调整 Arduino 板 Nicla Sense ME 以收集数据的详细指南。
1.访问https://www.arduino.cc/en/software,为您的操作系统下载 Arduino IDE 2.xx,并安装软件包。
![pYYBAGSBPNKAERH1AAGTsevV4AI840.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPNKAERH1AAGTsevV4AI840.png)
2.打开 Arduino IDE,单击Boards Manager图标,键入“nicla sense me”并安装Arduino Mbed OS Nicla Boards包。
![poYBAGSBPNWAPWAWAACNybxqVys696.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPNWAPWAWAACNybxqVys696.png)
单击库管理器图标,在搜索框中键入“nicla sense me”并安装两个库:Arduino_BHY2和ArduinoBLE 。
![pYYBAGSBPNiAePCaAAHCQbSh9QY807.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPNiAePCaAAHCQbSh9QY807.png)
在搜索框中键入“printf”并安装LibPrintf 。
![pYYBAGSBPNuAKIAiAACmpku-8fg108.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPNuAKIAiAACmpku-8fg108.png)
3.在主菜单中选择File->Examples->Arduino_BHY2>BHYFirmwareUpdate 。
![poYBAGSBPN6AQFH-AAL0C0EdwSs025.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPN6AQFH-AAL0C0EdwSs025.png)
4.将Nicla Sense ME板连接到 USB 并在下拉菜单中选择端口。
![poYBAGSBPOGAQ9XNAAFwVF0g5pY324.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPOGAQ9XNAAFwVF0g5pY324.png)
5.点击上传按钮...
![pYYBAGSBPOSAW2jJAAAyz3p7qTU483.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPOSAW2jJAAAyz3p7qTU483.png)
…等到上传过程完成。
![poYBAGSBPOaAIHStAADZ6VWMgfw634.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPOaAIHStAADZ6VWMgfw634.png)
6.单击串行监视器图标并选择115200 波特,然后单击 Nicla 开发板上的重置按钮。
![pYYBAGSBPOiAdmviAAAVVFsD8Pw129.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPOiAdmviAAAVVFsD8Pw129.png)
7. 5-10 秒后,您会看到 BHY 固件已上传。
![poYBAGSBPOuAIwPWAABrcbCdW_0945.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPOuAIwPWAABrcbCdW_0945.png)
8.使用 Nicla Sense ME 从 Neuton存储库下载用于传感器数据收集的 Arduino 预编译库。
模型 -> Arduino_Neuton.zip(不要解压存档)
9.将“Arduino_Neuton.zip”模型安装到 Arduino IDE 中:
Sketch -> Include Library -> Add .ZIP Library…(指向下载的“Arduino_Neuton.zip”存档)
![pYYBAGSBPO6AJp9cAAFZkD4_nFA784.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPO6AJp9cAAFZkD4_nFA784.jpg)
10.退出并重新启动 Arduino IDE(Arduino IDE 最多需要一分钟时间来索引所有示例,包括新安装的“Arduino_Neuton”)
11、打开安装好的例子:File -> Examples -> Arduino_Neuton -> Inertial_Sensor_Data_Collection (会弹出一个新的Arduino IDE窗口,关闭之前的Arduino IDE窗口)
![pYYBAGSBPPKATKLPAAKFLhf99Go576.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPPKATKLPAAKFLhf99Go576.jpg)
12.将 Nicla Sense ME 连接到计算机的 USB 端口。
13.在 IDE 中选择您的 MCU 并上传固件。
![poYBAGSBPPSAaWWHAADiGKuReIg349.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPPSAaWWHAADiGKuReIg349.jpg)
14.固件上传后(1-2 分钟),打开串行监视器 - 您应该看到传感器读数(如果您看到连接错误 - 重新启动 Arduino IDE 并再次打开串行监视器)
![pYYBAGSBPPeAXNuGAAEVwySP0Yw373.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPPeAXNuGAAEVwySP0Yw373.png)
现在您可以从 USB 端口拔下电路板。
15.将电路板牢固地连接到手表或手链上。Micro-USB 端口应位于右下角。
![poYBAGSBPPuAGoSkAACF0FYnQ34465.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPPuAGoSkAACF0FYnQ34465.png)
16.将带有电路板的手表或手环戴在右手上,并连接数据线。确保连接器附近的电缆没有拉紧,以免损坏电路板。
![pYYBAGSBPP2AQLC1AADZpQuWK3s172.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPP2AQLC1AADZpQuWK3s172.png)
17.根据您的操作系统,打开串行端口并尝试记录数据。在提示中可以看到串口。
![poYBAGSBPQCAM1JVAADTU44bUiU590.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPQCAM1JVAADTU44bUiU590.png)
如果您使用的是 macOS,请在终端中使用此命令:
stty -f /dev/cu.usbmodem85EB3A0F2 115200 | 猫/dev/cu.usbmodem85EB3A0F2 | T 恤 4_brushing_hair.csv
这会将端口速度设置为 115200 波特。从串行端口打印出文本数据并将其保存为 CSV 文件。
![pYYBAGSBPQSAcRmZAAIJl-MyNfc571.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPQSAcRmZAAIJl-MyNfc571.png)
按 Control-C 停止录制。将有一个 CSV 文件,其中包含来自传感器(加速度计、线性加速度计和陀螺仪)的数据和时间戳。
![poYBAGSBPQeAWM28AAEHg6O8zLk519.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPQeAWM28AAEHg6O8zLk519.png)
18.开始记录运动。按下 Nicla 板上的重置按钮并重新开始记录到文件。
例如,拍手 10 分钟(使用智能手机中的秒表应用程序)。在此过程中,改变双手的位置,使数据更加多样化。录制过程中不要停止移动。
按下重置按钮后约 7 秒内将开始录制。
10 分钟结束后,继续运动 10-20 秒并停止记录。
19.对每个活动类型重复第 18 步(使用不同的文件名):
![poYBAGSBPQmATFlsAAArsJhcdNM152.png](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPQmATFlsAAArsJhcdNM152.png)
在记录每个动作之前重置板。
模型训练
在您收集了所有活动的数据并将它们组合成一个数据集后,前往Neuton.ai平台训练您的模型。
1.创建一个新的解决方案
![poYBAGSBPQuAU-51AAAwARqLdbI298.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPQuAU-51AAAwARqLdbI298.jpg)
2.选择数据类型,上传数据
![pYYBAGSBPQ6AVeZYAACHRXXTm-4793.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPQ6AVeZYAACHRXXTm-4793.jpg)
![poYBAGSBPRGACTfeAAB0PTj5k10147.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPRGACTfeAAB0PTj5k10147.jpg)
3.在左侧字段中删除变量 lacc_X、lacc_Y、lacc_Z(此模型不需要线性加速度计);在右边的字段中选择目标变量并单击下一步。
![pYYBAGSBPRSAEaJGAAETSvfkhg8113.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPRSAEaJGAAETSvfkhg8113.jpg)
4.选择任务类型。
![poYBAGSBPReAKW6CAACTvQ-Ey3k227.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPReAKW6CAACTvQ-Ey3k227.jpg)
5.选择输入数据类型为 INT16。
![poYBAGSBPRmAeG3BAABF5A3Zy_M761.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPRmAeG3BAABF5A3Zy_M761.jpg)
6.启用数字信号预处理,选择 Window size 200 和 Sliding shift 5。
![pYYBAGSBPRyATW4RAAFlTNeUpws141.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPRyATW4RAAFlTNeUpws141.jpg)
7.对于每个特征(acc_X、acc_Y、acc_Z、gyro_X、gyro_Y、gyro_Z)重复以下步骤:
A。点击“编辑”
![pYYBAGSBPR-APiHOAAC-2SOL49A434.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPR-APiHOAAC-2SOL49A434.jpg)
b. 选择“全部删除”
![poYBAGSBPSKAD4W6AACcdVKM0Aw465.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPSKAD4W6AACcdVKM0Aw465.jpg)
C。选择“统计”功能并检查以下功能:均值、均方根、平均绝对偏差、标准偏差、均值交叉率、过零率
![poYBAGSBPSWAR1QCAACPKxK0fhQ331.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPSWAR1QCAACPKxK0fhQ331.jpg)
8.选择单片机位深:8位,开始训练。
![pYYBAGSBPSeATbM5AABcgR5hK48963.jpg](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPSeATbM5AABcgR5hK48963.jpg)
模型训练完成后,进入“预测”选项卡,检查模型质量指标并下载包含模型的存档以进行嵌入。
![poYBAGSBPSqANN1BAADDbdZ5Rzc447.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPSqANN1BAADDbdZ5Rzc447.jpg)
![pYYBAGSBPS2AMb8FAAHxz9ZELNw932.png](https://file.elecfans.com/web2/M00/AB/2F/pYYBAGSBPS2AMb8FAAHxz9ZELNw932.png)
下载的模型源代码如下所示:
![poYBAGSBPTCAd2lIAAFXBa_746o101.jpg](https://file.elecfans.com/web2/M00/AA/B5/poYBAGSBPTCAd2lIAAFXBa_746o101.jpg)
该档案包含将模型嵌入任何 MCU 所需的一切。使用存档内容编译一个 Arduino 草图,用这个草图刷新你的 Nicla Sense ME 并开始推理。
- 亮风台AR安全管控解决方案
- [前端方案]火焰识别技术材料
- 基于音乐情感识别的舞台灯光自动控制系统 15次下载
- 基于身份证和人脸识别的智能门禁系统 38次下载
- 面向人脸识别的FusNet网络模型 8次下载
- 基于颜色识别的智能小车集群控制资料下载
- 人脸识别的十个技术概念详解资料下载
- 意图和语义槽填充联合识别模型设计方案 8次下载
- 基于DSP实现指纹识别算法的设计方案 23次下载
- 面向港口停留区域识别的船舶停留轨迹提取方法 6次下载
- CNN图像识别的路径搜索设计方案 16次下载
- 使用Python实现车牌识别的程序免费下载 35次下载
- 信号识别的意义和发展趋势及特定信号识别的方法说明 36次下载
- Visual C++数字图像模式识别的基本概念详细说明
- 关于SMT回流焊中出现的缺陷及其解决方案资料下载 30次下载
- SMT元件极性识别的相关知识 2067次阅读
- 使用GC2000把钢网文件转换成SPI可识别的gerber文件教程 4215次阅读
- 陀螺仪在人体活动识别系统中的应用 2285次阅读
- 盘点2021年9个好用的人脸识别软件 7944次阅读
- 人脸识别的一般流程看了就知道 2.8w次阅读
- 基于LT8301的微型隔离式解决方案 5059次阅读
- 对人脸识别的11个误解 667次阅读
- SICK系统智能传感器解决方案在机场行李识别系统中的应用解析 1869次阅读
- 使用python进行语音识别的终极指南 3179次阅读
- 浅谈射频识别的编码标准EPC 6483次阅读
- 深度学习进行语音识别的方法 如何建立自己的语音识别系统 1w次阅读
- 人脸识别几种解决方案的对比_人脸识别技术原理介绍 8w次阅读
- 侧面指纹识别方案的技术难点 1179次阅读
- 德州仪器(TI)太阳能微型逆变器解决方案 4304次阅读
- 手指静脉识别技术分析及流程 1329次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论