首页
›
嵌入式基础与RISC-V
›
098-嵌入式AI部署
›
《单片机也能跑AICMSIS-NN实战》
VIP10
本课程属于:098-嵌入式AI部署
嵌入式基础与RISC-V · 共 10 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
单片机也能跑AICMSIS-NN实战
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
AI与MCU的碰撞
为什么要在单片机上跑AI?CMSIS…
AI
MCU
02
开发环境搭建
MDK/IAR安装 · CMSIS-Pack安装 · STM32CubeMX配置
开发环境搭建
MDK/IAR
03
CMSIS-NN核心概念
神经网络基础回顾(卷积 · 池化 · 全连接)
CMSIS-NN
核心概念
04
第一个推理程序
从官方例程入手 · 下载并编译ImageNet分类例程 · 在开发板上跑通第一个模型
第一个推理程序
从官方例程入手
05
模型转换与量化
使用TensorFlow训练一个简单… · 导出为tflite · 使用CMSIS-NN的转换工具进行i…
模型转换
量化
06
权重与偏置的提取
解析量化后的模型文件 · 提取权重和偏置数组 · 生成C语言头文件
权重
偏置的提取
07
手动实现卷积层
使用arm_convolve_s8(… · 搭建第一个卷积层 · 理解输入输出张量的内存布局
手动实现卷积层
arm
08
池化与全连接层
arm_avgpool_s8() · arm_maxpool_s8() · arm_fully_connecte…
池化
全连接层
09
激活函数与Softmax
ReLU · ReLU6的CMSIS-NN实现 · arm_softmax_s8()的数…
Softmax
激活函数
10
构建完整网络
将卷积 · 池化 · 全连接
构建完整网络
将卷积
11
内存优化策略
使用arm_convolve_wra… · 内存池(scratch buffer…
内存优化策略
arm
12
性能调优
使用DSP指令 · SIMD优化 · 数据对齐(__ALIGNED)
性能调优
DSP
13
Profiling与调试
使用DWT周期计数器测量每层耗时 · 定位性能瓶颈
Profiling
调试
14
模型剪枝与压缩
结构化剪枝原理 · 在CMSIS-NN中跳过零权重计算 · 减少MAC操作
模型剪枝
压缩
15
多模型部署
在同一个MCU上部署分类+检测两个模… · 动态切换上下文
多模型部署
MCU
16
外部Flash加载模型
将权重存储在QSPI Flash或S… · 按需加载到SRAM
Flash
外部
17
RTOS集成
在FreeRTOS中创建AI推理任务 · 优先级与栈深度的设置经验
RTOS
集成
18
低功耗推理
使用STM32的WFI指令 · 推理完成后立即进入睡眠模式 · 实测功耗数据
低功耗推理
STM32
19
传感器数据预处理
从I2C/SPI传感器读取原始数据 · 进行归一化 · 滤波后送入网络
传感器数据预处理
I2C/SPI
20
实战
关键词唤醒(KWS) · 在STM32上实现“小爱同学”级别的…
KWS
关键词唤醒
21
实战
人体活动识别(HAR) · 部署LSTM(简化版)或1D-CNN…
HAR
人体活动识别
22
实战
异常声音检测:使用麦克风采集音频 · MFCC特征提取+CMSIS-NN分…
异常声音检测
使用麦克风采集音…
23
实战
视觉识别(超低分辨率) · 部署MobileNetV1(极度压缩…
视觉识别
超低分辨率
24
CMSIS-NN v2.x新特性
新的调度器 · 权重解压缩 · 稀疏性支持
CMSIS-NN
v2.x
25
与TFLite Micro对比
两者在RAM占用 · 推理速度 · 算子支持上的差异
TFLite
Micro
26
自定义算子
使用arm_cmsis_nn_typ… · 例如自定义激活函数或层归一化
自定义算子
arm
27
单元测试与验证
使用Ceedling或Unity框架 · 对每一层进行数值正确性测试
单元测试
验证
28
OTA模型更新
通过蓝牙/WiFi接收新模型 · 写入Flash · 重启后加载新权重
OTA
模型更新
29
安全与防护
防止模型窃取(Flash读保护) · 输入对抗样本的简单检测方法
安全
防护
30
总结与展望
CMSIS-NN在Cortex-M8… · 未来边缘AI的趋势
CMSIS-NN
Cortex-M8
所属VIP或分类
同VIP:CMSIS-NN模型量化在单片机部署的实战
同VIP:CMSIS-NN算子优化与内存裁剪在Cortex-调试实战
同VIP:Cortex-M单片机神经网络部署实战