基于STM32开发人工智能应用
第一章开发人工智能简介
1.人工智能是所有机器模仿人类认知能力的研究的集合
- 环境交互
- 知识表达
- 感知
- 学习
- 机器视觉
- 语音识别
2.机器学习是AI的分支,是实现AI的一个方法
3.机器学习由能够基于数据进行学习和预测算法组成
- 此算法是在前面样本的基础上进行训练,以构建和估计模型
- 此算法让计算机自动学习,从数据中分析或者规律,并用规律新样本进行预测,不需要对规律进行直接编程
4.机器学习适用变化的环境
5.机器学习应用领域
5.1 识别模式
5.2 识别异常
5.3 预测
6.ML分类
7.机器学习的一些方法
- 决策树
- 聚类
- 基于规则的学习
- 归纳逻辑编程——>Prolog
- 深度学习(DL)——>ANN
- 具有很多层人工神经网络的算法
- 利用神经网络进行的学习
- 灵感来自生物神经网络
- 深度指有很多中间的学习步骤
- 需要大量数据
8.什么是神经网络?
神经网络:在计算机系统中模仿生物学神经系统的行为特征进行信息处理的算法模型
也称人工神经网络
神经网络的层(三种层次)
- 输入层
* 从其他神经元或特征输入 - 隐藏层
* 真正的力量
* 向网络中添加更多的神经元 - 输出层
* 给出我们要预测的输出
激活函数
激活函数的选取要根据每一层的应用及激活函数的特点来确定
9.神经网络训练
- 机器学习的过程又叫神经网络训练的过程。
- 神经网络训练就是给出一些数据集,然后让系统通过数据集得到我们期望的结果,然后神经网路通过一些算法来反复调整网络当中的权重,使之不断接近预测结果
10.神经网络类型
第二章在STM32上开发人工智能的工具和资源
- 介绍多种可用于人工智能开发上的硬件开发平台;
- 在人工智能开发领域的很多开源的框架软件,人工网络的构建与训练;
- STM32在人工智能开发方面的两个重要的软件包。
1.神经网络开发流程
- 首先:获取需要处理的数据样本(获取数据)
- 其次:对数据样本进行清理、去掉不需要数据,将需要数据打标签,然后使用神经网络NN框架构建神经网络模型(清洗、打标签构建神经网络模型)
- 然后:利用整理好的数据对模型进行训练,生成网络训练模型(训练神经网络模型)
- 接下来:训练后的模型用STM32Cube,AI工具将其转化为STM32上可以运行的代码。(将模型转化为MCU上执行的优化代码)
- 最后:在STM32平台上部署模型以后利用设计好的模型进行所需要的功能(使用训练的模型分析数据)
2.用在人工智能上的硬件开发平台
ST SensorTile开发平台
STM32L476:Cortex-M4
SensorTile.Box
- 第一个带有机器学习的功能的惯性传感器模组
AI IoTNote
收集数据
通过ST BLE Sensor手机应用 从SensorTile收集数据
STM32CubeMx扩展
STM32Cube.AI Roadmap
3.软件包
第三章如何采集数据和打标签
如何利用STM32平台和软件包进行数据采集?
1.硬件平台
2.数据采集
-
从ST BLE Sensor App采集
- 首先:下载BootLoad文件
- 其次:下载应用程序文件
(下载完成后重启开发板) - 其次:将采集的数据取出来
- 首先:下载BootLoad文件
-
从串口控制命令行采集
-
首先:修改代码,关闭低功耗,使用Freertos控制台
-
其次:连接开发板,打开串口终端,波特率115200
-
然后:打开控制台,按下RESET键
-
最后:输入help可以查看命令
-
-
例如:采集Mems数据
- 输入datalog start mems可以采集mems数据
- 输入datalog stop mems可以停止采集mems数据
- 输入ls,查看采集到的数据
打标签
* 从控制台保存的数据内容默认是没有标签
* 可以修改文件名作为标签,也可应修改代码
* 代码中保存数据的 代码 位于:Datalog_Manager.c
第四章如何生成模型文件?
生成模型
进行归一化处理的原因:无论为了计算还是建模,首先度量单位要统一。神经网络也是
*通过题前停止训练,或添加dropout防止过拟合
第五章:应用模型(使用Cube.AI工具将模型转换为MCU代码)
X-CUBE-AI架构
利用CUBE-AI建立工程
第六章验证模型
在客户端验证
在目标板验证
验证原理-L2相对误差
工程测试
本文来自博客园,作者:登云上人间,转载请注明原文链接:https://www.cnblogs.com/lj15941314/p/14814743.html