【 Edge Impulse平台】相关介绍

2023-10-08 10:20

本文主要是介绍【 Edge Impulse平台】相关介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文章介绍Edge Impulse平台 数据训练的过程
关于平台的一些操作,请参考:
【ESP32 + Edge Impulse平台】运行AI算法模拟多传感器数据融合实现异常检测”

目录

  • 1. 传感器数据融合前言
  • 2. 参考资料
  • 3. Impulse design
    • 3.1 处理块
    • 3.2 学习块

1. 传感器数据融合前言

传感器数据融合的几种常用方式:

  • 加权平均法:简单易用,运算速度快,但是权重不好确定,权重对结果的影响太大
  • 卡尔曼滤波法:通过对传感器的数据进行预测和校正以得到更加准确的结果,适用于 非线性系统 噪声较大的情况。
  • 神经网络法:通过训练神经网络,得到传感器数据之间的关系,从而实现数据融合。适用于 非线性系统 噪声较大的情况。缺点就是训练过程复杂,运算量大;优点就是,结果会更全面和准确

多传感器融合的基本原理

2. 参考资料

TinyML - 使用 Raspberry Pi Pico 进行运动识别

使用平台的多传感器融合功能:

使用边缘脉冲和机器学习进行 ESP32 异常检测

这个示例展示了 使用平台在线获取 ESP32 读取的气体传感器的值,训练后,打包模型,开始测试

测试时向传感器吹气,输出 气体检测异常的结果

3. Impulse design

https://docs.edgeimpulse.com/docs/edge-impulse-studio/impulse-design

收集完数据集之后,在设计阶段需要完成

  • 输入块 input block
  • 处理块 processing block
  • 学习块 learning block

场景:例如 使用 加速度传感器的数据判断运动分类(不同的运动,跑,跳等)

输入块:表示你采集的数据集哪部分用于输入模块用于后续操作

处理块:是一个特征提取器,由DSP运算用于提取数据集的特征

学习块:是一个小型的经过训练的神经网络,用于数据的学习;包括基本的处理算法:分类、回归、异常检测、图像迁移学习、关键词识别、object detection

3.1 处理块

【raw data】

raw data 表示原始数据,数据集不经处理直接经处理块输入学习块

【flatten】

对信号执行统计分析,比如温度数据,数据的变化速率比较慢, flatten 模块对这种变化比较缓慢的数据类型,结合其他模块使用,比较有效

计算数据窗口内的 平均值、最小值、最大值、均方根、标准差、偏度、峰度

3.2 学习块

初始数据经过 处理块之后,提取出有意义的特征后,使用学习块 训练自己的模型

分类、回归 kears

异常检测、 K-means GMM

图像迁移学习、关键词识别、object detection

【分类器】

分类模块可实现:运动识别、声音识别、传感器数据融合

NN 分类器:通过神经网络将数据分类

​ 数据1:属于A类,概率0.7

​ 数据2:属于A类,概率0.9

​ 数据3:属于B类,概率0.6

​ 数据4:属于C类,概率0.7

训练,调参,知道网络预测数据的准确性变高。

数据输入神经网络训练,然后将神经网络的输出与正确答案比较,并根据结果不断调整网络参数(神经元之间的连接权重),直到网络学会预测训练数据的正确答案。

  • **训练周期数:**每次训练算法通过反向传播完整遍历所有训练数据并更新模型参数时,称为一个纪元或训练周期。
  • **学习率:**学习率控制在训练过程的每一步中模型内部参数的更新量。或者您也可以将其视为神经网络的学习速度。如果网络很快过拟合,可以降低学习率
  • **验证集大小:**用于验证的训练集的百分比,一个好的默认值是 20%
  • 自动平衡数据集混合来自不常见类的更多数据副本。如果某些类的数据很少,可能有助于使模型更加稳健,防止过度拟合。

【异常检测 K-means】

这个神经网络最大的缺陷是:不擅长处理以前从未见过的数据(例如新手势)。神经网络无法判断这一点,因为它们只知道训练数据。如果你给它一些不同于它以前见过的东西,它仍然会被归类为四个类别之一。

这篇关于【 Edge Impulse平台】相关介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/164577

相关文章

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit