【 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

相关文章

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

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进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存