没有机器学习基础但是想利用嵌入式AI?Edge Impulse绝对是不二之选! 算法自动提供,代码一键生成,移植简单方便,简直是小白的福音!如果你打算涉及嵌入式 机器学习,那就快来看看吧!

Edge Impulse是一个应用于嵌入式领域的在线的机器学习网站,不仅为用户提供了一些现成的神经网络模型以供训练,还能直接将训练好的模型转换成能在单片机MCU上运行的代码,使用方便,容易上手。本文就Edge Impulse的三大模型之一的分类模型进行浅析。

针对于图像的分类识别模型,读者可参考OpenMv或树莓派等主流图像识别单片机系统的现有历程,容易上手,简单可靠。 单击此处转到——星瞳科技OpenMv

所以接下来的分析主要是 针对数据进行识别的分类模型

创建数据集

Edge Impulse支持上传的数据集包含了CSV文件,CSV文件数据集是一种适合于纯数据的数据集,在创建CSV文件的数据集时需要注意一下几点:

1、CSV文件是一种以列为单位构建的数据集,假设我要构建一个y=2x+1的CSV数据集,参考格式如下:

x y
0 1
1 3
2 5
3 7

2、由以上的例子可以看出,CSV数据集的第一行为各类数据的标签,例如0,1,2,3这四个数据的标签为x,而1,3,5,7这四个数据的标签为y。

3、CSV文件默认可以由excel打开,但不建议通过新建一个excel表格的方式来创建一个CSV文件,这样在将excel文件转换为CSV文件的过程中会产生乱码。可以通过创建空白文本文档的方式来创建CSV数据集,以上例子的数据集在文本文档中创建数据集的格式为:

4、在创建CSV文件时,注意要在英文字符的输入法状态下进行编辑。

5、Edge Impulse的CSV数据集默认为时间序列,故在创建上述数据集是,还要在前面加上一列时间戳(timestamp),所以,一个完整格式的CSV数据集应该具有的格式为:

6、如果数据集的序列之间没有先后关系,或者不随时间而变化,那么时间戳(timestamp)没有什么实质上的意义。如果数据集的序列之间存在先后关系,那么则要保证先变化的数据所对银行的时间戳小,后变化的数据的时间戳大。

7、在创建好数据集后,将文件的后缀改为CSV,然后上传到Edge Impluse上。

关于Edge Impulse中CSV数据集的创建,可以参考: Edge Impulse官方文档之CSV数据集

数据参数设置

在本节将以一个上升序列和一个下降序列为例子进行讲解,首先分别创建上升序列和下降序列的CSV数据集:

UP: timestamp d DOWN: timestamp d
0 1 0 10
1 2 1 9
2 3 2 8
3 4 3 7
4 5 4 6
5 6 5 5
6 7 6 4
7 8 7 3
8 9 8 2
9 10 9 1

在创建CSV数据集时,把第一列和第四列去掉,第二列和第三列作为一个CSV文件,标识为UP,第五列和第六列作为一个CSV文件,标识为DOWN。

创建完毕后在Edge Impulse工程左侧的Data acquisition中上传数据,将上升序列的标签设置为UP,下降序列的标签设置为DOWN。

将所有数据上传完毕后,开始创建Impulse。转到Create Impulse,按照如下方式配置并保存(Save Impulse)。

然后在左侧,Create Impulse下面,点击Raw data,点击Save Parameters。然后在上方蓝色栏目处,点击转到Generate features页面,在Generate features页下点击Generate features。

模型训练与测试

然后在左侧,Generate features下,点击NN Classifier,转到训练配置页面,按照如下方式配置训练:

配置完成后点击Start training开始训练模型,等待模型训练完毕。

模型训练完毕后,在右侧转到Model testing,导入一个上升序列的CSV文件或者下降序列的CSV文件进行模型测试,注意导入的CSV序列不可与之前导入的作为训练的序列相同。测试后观察测试结果:

在配置过程中如果有不明白的地方,可以参考OpenMv口罩识别的视频教程,里面有关于Edge Impulse使用过程的详细视频操作: 星瞳科技OpenMv口罩识别

第一次接触 Edge Im pulse 这个在线的 机器学习 网站是在OpenMv口罩识别的历程中,根据OpenMv的官方历程来使用 Edge Im pulse 还是很顺利的。但不久之后就发现如果仅仅是基于OpenMv的历程来进行 机器学习 ,就只能完成图像识别而已,而除了图像识别之外的 训练模型 如果想要导出到 STM32 单片机 上,则要通过 STM32 CubeIDE。 STM32 CubeIDE STM32 CubeIDE是意法半导体公司推出的 STM32 集成开发环境,它允许用户在软件上点选相关选项,...
云端AI平台 Edge Im pulse ,可以做什么呢?可以帮助AI算法工程师进行模型训练,目前还有比较常用的工具如Tensor flow,有时候甚至需要利用算力更快的服务器集群去训练神经网络模型。 而 Edge im pulse 是一个免费的模型训练平台,非常便捷的使用方法,致力于实现 嵌入式 系统的边缘计算开发,可以上传被训练的数据、打标、NN模型训练、优化、部署。 上传数据:
Edge Im pulse CLI工具 用于命令行界面工具。 我们使开发人员能够通过 嵌入式 机器学习 创建下一代智能设备解决方案,从而使事情变得更智能。 该软件包包括四个工具(单击以查看其各自的文档): 通过串行配置设备,并充当没有IP连接的设备的代理。 允许上传和签名本地文件。 -一种非常简单的方法,可通过串行连接从任何设备收集数据,并将数据转发到 Edge Im pulse 。 显示在设备上。 -创建组织转换块。 tool-刷新Eta Compute ECM3532 AI传感器。 在主机上安装 v12或更高版本。 通过以下方式安装CLI工具: $ npm install -g edge - im pulse -cli 之后,您应该在PATH中拥有可用的工具。 无法识别工具版本“ 2.0”(Windows) 如果您收到以下错误: The tools version "2