# 嵌入式端的神经网络算法部署和实现
介绍关于 ARM NN、CMSIS NN 和 K210 等嵌入式端的神经网络算法的部署和实现。神经网络的调教(训练)还是在 PC 端,神经网络参数训练好之后,在嵌入式端进行部署(本文的中心),经过在嵌入式端部署进去的神经网络算法对给定数据进行计算从而得出结果,实现算法的嵌入式端部署和运行,这么一个过程。
嵌入式 AI 概念:
![嵌入式AI概念](assets/嵌入式AI概念.png)
更多参考 [如何将训练好的神经网络部署到嵌入式芯片上,如arduino和树莓派等? - 知乎 (zhihu.com)](https://www.zhihu.com/question/382207885/answer/1184193490)。
**本文提及的 开源库 和 资料 均放在了 [Github](https://github.com/Staok/Awesome-Embeded-AI)/[Gitee](https://gitee.com/staok/Awesome-Embeded-AI) 仓库内。**
------
## 目录
[TOC]
------
## 微控制器 MCU 端
[人工智能的下一轮革命?关于TinyML的一切 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/483288607)。
### Awesome-Embedded Repository
nhivp/Awesome-Embedded 开源项目下的 Machine Learning & AI on MCU 小节,总结的很好。
[nhivp/Awesome-Embedded: A curated list of awesome embedded programming. (github.com)](https://github.com/nhivp/Awesome-Embedded#machine-learning--ai-on-mcu),其源文如下:
- [nnom](https://github.com/majianjia/nnom) - A higher-level Neural Network library for microcontrollers.
- [nn4mp](https://github.com/correlllab/nn4mp)
- [Embedded Learning Library (ELL)](https://github.com/Microsoft/ELL) - Microsoft's library to deploy intelligent machine-learned models onto resource constrained platforms and small single-board computers.
- [Qualcomm Neural Processing SDK for AI](https://developer.qualcomm.com/software/qualcomm-neural-processing-sdk) - Libraries to developers run NN models on Snapdragon mobile platforms taking advantage of the CPU, GPU and/or DSP.
- [CMSIS NN](https://arm-software.github.io/CMSIS_5/NN/html/index.html) - A collection of efficient neural network kernels developed to maximize the performance and minimize the memory footprint of neural networks on Cortex-M processor cores.在后文会介绍到
- [ARM Compute Library](https://developer.arm.com/technologies/compute-library) - Set of optimized functions for image processing, computer vision, and machine learning.
- [uTensor](https://github.com/uTensor/uTensor) - AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow.
- [EmbededAI](https://github.com/boralt/EmbeddedAI) - A library that provides elements of AI to C++ applications.
- [kann](https://github.com/attractivechaos/kann) - A lightweight C library for artificial neural networks
### 网友自实现的轮子 / 算子库
- [uingrd/EmbeddedML: 《AI嵌入式系统——算法优化与实现》软件工具、例程及教学辅助材料 (github.com)](https://github.com/uingrd/EmbeddedML)。
- .etc
这里只是举例网上有很多开源的网友自己实现的玩具轮子,比如这里介绍的 BP 神经网络,可以直接跑在 MCU 上。
- BP神经网络的C语言实现-只有三层:[BP神经网络及其C语言实现 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/27110594);[ThreeClassMrWang/c-bpnn: BP神经网络的C语言实现 (github.com)](https://github.com/ThreeClassMrWang/c-bpnn)。
- 可以运行在STM32的BP算法实现-任意层:[(BP神经网络C语言实现_一朝英雄拔剑起的博客-CSDN博客_bp神经网络c语言实现](https://blog.csdn.net/qq_39545674/article/details/82495569);
- STM32 运行 三层BP:[sertreet/BPNeuralNetwork: STM32F407ZGT6 Run BP Neural Network Handwritten Digit Recognition (github.com)](https://github.com/sertreet/BPNeuralNetwork)。
- etc.
如果链接挂了请告诉我。
### Kendryte K210
K210 是 RISC-V 64 位双核处理器,集成了可运行神经网络算法的硬件 IP 核,以及其它常用外设。其可直接跑 kmodel 格式模型,此模型可从 TensorFlow 模型转换为 TFlite 模型、TFLite 模型转换为 K210 的 kmodel 模型 而得到。
我的[Github 仓库-Awesome-K210](https://github.com/Staok/Awesome-K210)收集了关于 K210 的 MaixPy 开发和 SDK IDE 开发等的软、硬件入门资料,帮助初学者快速了解、学习和入门 K210。
这款芯片的生态已经做起来了,相关的开发板、kendryte 官方和 sipeed 官方的资料和例程、各路网友大佬的例程、网络训练以及模型开源等等已经非常丰富。甚至[北航高校已经应用部署到无人机产品上](https://github.com/LZBUAV/K210_Python)了,其项目的描述如下。
> 该项目是 Kendryte K210 AI芯片应用程序的集合,其中包括面部检测,颜色检测,目标检测和分类,QR码和Apriltag码检测以及与ArduPilot飞行软件的通信。 最后,我们可以将这些应用程序部署到无人机终端,使无人机更加智能。
>
> 所实现的应用主要分为两类,第一个是机器视觉应用,该类应用基于openmv机器视觉库;第二类是深度学习应用,该类主要基于Tensorflow和yolov2。详细功能参见用户手册。
>
> 本K210项目为Vision_MAV项目的配套项目,Vision_MAV项目旨在设计并实现一个依托深度学习和图像处理技术的基于视觉的微型无人机系统,能够实现在无GPS环境下的自主视觉导航、目标检测与追踪,该项目由北航无人系统研究院李大伟副教授课题组创立并进行研究,并将在项目没有保密需求后进行开源。本仓库的K210项目是Vision_MAV的一个配套项目,基于[嘉楠科技公司](https://canaan-creative.com/)生产的边缘AI芯片[K210](https://canaan-creative.com/product/kendryteai),来实现目标检测与追踪,为Vision_MAV项目提供一个可选的视觉解决方案。该项目采用了一块[矽速科技公司](https://www.sipeed.com/)生产的MAXI DOCK K210评估板,来验证K210芯片的AI计算能力。在本项目中,采用传统机器视觉方法实现了最大色块识别、二维码识别、Apriltag码识别、圆形识别,采用深度学习方法实现了人脸识别、人体识别、口罩识别等,并开发了K210和[Ardupilot](https://github.com/ArduPilot/ardupilot)飞控固件之间的[MAVlink](https://github.com/ArduPilot/mavlink)通讯接口,来实时的将K210视觉模组解算出的目标位置信息发送给飞控来控制无人机运动。
### Edge Impulse
可以在线训练各种传感器数据的神经网络模型,处理 图像,语音 or others,然后部署到 自己 MCU 上。
- 官方文档 [Getting Started - Edge Impulse Documentation](https://docs.edgeimpulse.com/docs) 第一手资料。
- 导出模型和库 并部署在自己 MCU 上 [C++ library - Edge Impulse Documentation](https://docs.edgeimpulse.com/docs/deployment/running-your-impulse-locally)。
- API 手册 [Edge Impulse API - Edge Impulse API](https://docs.edgeimpulse.com/reference/edge-impulse-api/edge-impulse-api)。
自己使用的总结,以 ESP32 为例:
1. 提前准备好 ESP32 的 ESP-IDF 编译环境,并且会用,参考 我的相关仓库 [esp8266-esp32-development/ESP-IDF-IDE编程 at master · Staok/esp8266-esp32-development (github.com)](https://github.com/Staok/esp8266-esp32-development/tree/master/ESP-IDF-IDE编程),Gitee 地址 [ESP-IDF-IDE编程 · 瞰百/esp8266-esp32-development - 码云 - 开源中国 (gitee.com)](https://gitee.com/staok/esp8266-esp32-development/tree/master/ESP-IDF-IDE编程)。
2. 按照[官网 Getting Started 手册的步骤](https://docs.edgeimpulse.com/docs),官网注册账户、新建工程、输入数据、构建模型、在线训练、导出 Edge Impulse C++ 库。
3. 参考 [On your Espressif ESP-EYE (ESP32) development board - Edge Impulse Documentation](https://docs.edgeimpulse.com/docs/deployment/running-your-impulse-locally/running-your-impulse-esp32),首先做�
没有合适的资源?快使用搜索试试~ 我知道了~
收集关于嵌入式领域的机器学习算法实现的进展、相关论文和文章、开发库等,帮助初学者快速了解、学习和入门嵌入式领域的机器学习
共72个文件
url:25个
pdf:21个
zip:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 171 浏览量
2023-10-20
20:54:41
上传
评论
收藏 86.41MB ZIP 举报
温馨提示
收集关于嵌入式领域的机器学习算法实现的进展、相关论文和文章、开发库等,帮助初学者快速了解、学习和入门嵌入式领域的机器学习
资源推荐
资源详情
资源评论
收起资源包目录
收集关于嵌入式领域的机器学习算法实现的进展、相关论文和文章、开发库等,帮助初学者快速了解、学习和入门嵌入式领域的机器学习。CC-BY-NC-SA4.0。.zip (72个子文件)
Awesome-Embeded-AI-main
CMSIS-DSP
CMSIS-DSP 学习记录.docx 872KB
正点原子F4例程
实验46 FPU测试(Julia分形)实验.zip 3.12MB
实验47 DSP测试实验.zip 11.47MB
安富莱-M4F DSP的手册和例程.url 139B
Implement classical ML with Arm CMSIS-DSP libraries.pdf 1.38MB
CMSIS 5.7.0-CMSIS-DSP 官方手册、例程.zip 15.48MB
BP MCU 实现
可以运行在STM32的BP算法实现-任意层
BP神经网络C语言实现_qq_39545674的博客-CSDN博客.url 143B
BP神经网络C语言工程(当前最终版).rar 3.34MB
C-Free版本-跑通bptest.rar 91KB
MCU使用.PNG 32KB
BP-Neural-Network-master.zip 70KB
注:有神经网络算法需求的可以多熟练熟练K210.txt 0B
BP神经网络的C语言实现-只有三层
BP神经网络及其C语言实现.url 122B
c-bpnn-master.zip 309KB
捕获.PNG 79KB
注:要是在linux上面,什么算法都能跑,爽的一批.txt 0B
c-bpnn
c-bpnn-master.zip 309KB
ThreeClassMrWang.url 127B
assets
嵌入式AI概念.png 127KB
其他嵌入式AI开发平台.jpg 45KB
imageARMNN.png 26KB
exp.png 252KB
ml-home-graphic-814-75fde4.webp 27KB
cmsis.png 99KB
ARM-NN
ARM NN 仓库.url 122B
ARM AI 官网 - AI and Machine Learning.url 144B
注:每个仓库的 docs 文件夹里面是使用教程.txt 0B
PyArmNN 仓库.url 128B
ARM NN 实例应用文章
Machine learning with TensorFlow and Mbed OS 针对Mbed,不常用.url 187B
Object recognition with Arm NN and Raspberry Pi.pdf 568KB
Deploying a quantized TensorFlow Lite MobileNet V1 model.pdf 170KB
ARM NN 实例应用文章 总网页.url 183B
Speech recognition with Arm NN on a Raspberry Pi.pdf 304KB
ARM Compute Library 仓库.url 131B
ARM AI 的白皮书 应用介绍文章
Arm_ML_on_Cortex-M_Microcontrollers_v2.pdf 1.75MB
ARM 官网 - AI and Machine Learning 白皮书 各种应用介绍.url 196B
Arm_Embedded_World_Intelligent_Vision_v3.pdf 1.91MB
CMSIS-NN Efficient Neural Network Kernels for Arm Cortex-M CPUs.pdf 1.49MB
Mobile Machine Learning Hardware at ARM,A Systems-on-Chip (SoC) Perspective.pdf 448KB
Arm_Embedded_World_Think_Local_v7.pdf 3.05MB
ARM NN 和 PyArmNN 的网友的用例
被低估的ArmNN(一)如何编译.url 122B
Accelerating ML inference on X-Ray detection at edge using Raspberry Pi with PyArmNN.url 217B
被低估的ArmNN(二)C++ 部署Mobilenet回归器.url 122B
【树莓派-目标检测】(二)armnn编译.url 144B
X-CUBE-AI
ST官网 慕课 Introduction to STM32Cube.AI.url 204B
ST官网 X-CUBE-AI 下载页.url 139B
ST官网 CUBE-AI 首页 STM32 solutions for Artificial Neural Networks.url 177B
CMSIS-NN
CMSIS-NN 官方手册.url 142B
官方教程集:CMSIS-NN 在 Arm Cortex-M 的应用
官方教程集:CMSIS-NN 在 Arm Cortex-M 的应用.url 186B
08 Optimizing neural networks for mobile and embedded devices with TensorFlow.pdf 576KB
04 Deploying a Caffe Model on OpenMV using CMSIS-NN.pdf 654KB
03 Image recognition on Arm Cortex-M with CMSIS-NN.pdf 671KB
02 Converting a Neural Network for Arm Cortex-M with CMSIS-NN.url 248B
07 Explore an MCU-friendly face recognition model.pdf 410KB
09 Deploying Cloud-Based ML for Speech Transcription.pdf 207KB
01 Build Arm Cortex-M voice assistant with Google TensorFlow Lite.pdf 779KB
05 是一个 Arduino 例子,学习意义不大.txt 0B
06 Build your own Harry Potter wand with TensorFlow Lite Micro.pdf 12.28MB
CMSIS 5.7.0-CMSIS-NN 官方手册、例程.zip 828KB
CMSIS 5 仓库.url 124B
TinyML Projects
TinyTL_slides.pdf 6.59MB
TinyTL 源码仓库.url 141B
项目主页 Tiny Machine Learning.url 133B
MCUNet-poster.pdf 7.19MB
MCUNet 源码仓库.url 122B
MCUNet-slides.pdf 9.53MB
TinyTL-Reduce Memory, Not Parameters for Efficient On-Device Learning.pdf 4.56MB
MCUNet-Tiny Deep Learning on IoT Devices.pdf 2.68MB
ss.md 37B
Edge Impulses
Edge Impulses库加入esp32工程说明.txt 3KB
README.md 24KB
uingrd-EmbeddedML
EmbeddedML-main.zip 1.36MB
共 72 条
- 1
资源评论
天天501
- 粉丝: 587
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于c++的个人收支管理系统设计
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功