没有机器学习基础但是想利用嵌入式AI?Edge Impulse绝对是不二之选! 算法自动提供,代码一键生成,移植简单方便,简直是小白的福音!如果你打算涉及嵌入式 机器学习,那就快来看看吧!
Edge Impulse是一个应用于嵌入式领域的在线的机器学习网站,不仅为用户提供了一些现成的神经网络模型以供训练,还能直接将训练好的模型转换成能在单片机MCU上运行的代码,使用方便,容易上手。本文就Edge Impulse的三大模型之一的分类模型进行浅析。
针对于图像的分类识别模型,读者可参考OpenMv或树莓派等主流图像识别单片机系统的现有历程,容易上手,简单可靠。
单击此处转到——星瞳科技OpenMv
所以接下来的分析主要是
针对数据进行识别的分类模型
。
创建数据集
Edge Impulse支持上传的数据集包含了CSV文件,CSV文件数据集是一种适合于纯数据的数据集,在创建CSV文件的数据集时需要注意一下几点:
1、CSV文件是一种以列为单位构建的数据集,假设我要构建一个y=2x+1的CSV数据集,参考格式如下:
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