Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
OPENMV
RA8-M85-vision-board
开启Vision Board-TensorFlow Lite神经网络之旅
发布于 2024-03-22 16:22:56 浏览:2599
订阅该版
[tocm] # 开启Vision Board-TensorFlow Lite神经网络之旅 ## 1.序言 随着人工智能、神经网络以及机器学习应用的发展,边缘处理的场景越来越多,一些针对IOT设备和嵌入式设备的迁移学习网络应运而生,TensorflowLite就是在这样的情境下诞生。 尽管Tensorflow Lite已经足够小,足够快速,但作为资源非常紧俏的单片机来说,尤其是图像处理,仍有点力不从心。好在Vision Board拥有足够强大的性能,而且外扩了较大的SDRAM作为数据处理内存使用,已基本满足进行一些数据量小,图像素质低的识别要求。 **注意**:本章内容将讲解如何使用edgeimpulse.com网站来自行训练神经网络模型,进而实现机器学习的功能。 ##2.Vision Board介绍(Cortex M85内核) + 内核:480 MHz Arm Cortex-M85,包含Helium和TrustZone技术 + 存储:集成2MB/1MB闪存和1MB SRAM(包括TCM,512KB ECC保护) + 外设:兼容xSPI的四线OSPI(带XIP和即时解密/DOTF)、CAN-FD、以太网、USBFS/HS、16位摄像头接口和I3C等 + 高阶安全性:卓越的加密算法、TrustZone、不可变存储、带DPA/SPA攻击保护的防篡改功能、安全调试、安全工厂编程和生命周期管理支持 提供 6.39 CoreMark/MHz 的性能,可支持要求最高计算性能和 DSP 或 ML 功能的苛刻物联网应用 ##3.前期准备 下面是本次实验所需要的软件及参考资料: + 开发工具:MDK5 V5.3.8,OpenMv IDE V4.0.14 + Demo 代码:[https://github.com/RT-Thread-Studio/sdk-bsp-ra8d1-vision-board](https://github.com/RT-Thread-Studio/sdk-bsp-ra8d1-vision-board) + EDGE IMPULSE网站:[studio.edgeimpulse.com](studio.edgeimpulse.com) + 图片素材:[https://github.com/JiaBing912/VisionBoard-Picture-training-material](https://github.com/JiaBing912/VisionBoard-Picture-training-material) ##4.开发环境准备 本次实验将基于vision_board_openmv Demo进行开发,双击 mklinks.bat 文件,执行脚本后会生成 rt-thread、libraries 两个文件夹。 ![1.png](https://oss-club.rt-thread.org/uploads/20240322/44aa3b13ec85f96281ec631454ddc83e.png.webp) 运行env,输入menuconfig,在Enable OpenMV for RT-Thread-->目录下,打开Enable tflite support功能。 ![2.png](https://oss-club.rt-thread.org/uploads/20240322/5042d1c7bdc762275f6bf11cd2dcf3f9.png) 保存并退出,输入scons --target=mdk5,重新生成mdk5工程。 ![3.png](https://oss-club.rt-thread.org/uploads/20240322/18bde92049e7091223e19dc81a8a715d.png) ![4.png](https://oss-club.rt-thread.org/uploads/20240322/c9fde8c30ecc46227556ca6e252f4846.png) ![5.png](https://oss-club.rt-thread.org/uploads/20240322/6922bb9b6c0feb95e58f8c8c38622823.png) 随后打开mdk5工程,编译,烧录即可。 ![6.png](https://oss-club.rt-thread.org/uploads/20240322/211c79029611a54d56c5ae1b228417bd.png.webp) ##5.上传Edge Impulse进行训练 ### 5.1注册账号并创建Edge Impulse工程 打开Edge impluse网站,注册登录。随后在项目标签页创建新项目: ![7.png](https://oss-club.rt-thread.org/uploads/20240322/4369317bd0bfcc008b6b82abfa3f40c2.png.webp) 这里以数字识别为例。 ![8.png](https://oss-club.rt-thread.org/uploads/20240322/83a25243d29f7b10e343e5ea8c5063f6.png.webp) ### 5.2上传训练集 按照以下步骤,依次点击Dashboard->Add existing data->Upload data。(训练集图片样本可从3.前期准备中图片素材中获取,此次实验使用的是mnist_lite文件夹下的手写数字图片样本。) ![9.png](https://oss-club.rt-thread.org/uploads/20240322/90d35f38f5c7b346509c2ae6550c189a.png.webp) ![10.png](https://oss-club.rt-thread.org/uploads/20240322/43cb68f015e329aa8f3dec691ccbfaeb.png.webp) **注意**:若未在数据集中对图片进行label注释(可参考官方文章),需要手动进行添加标签,或直接选择Enter label进行标签定义;图片素材中的数据集格式为28x28像素bpm文件,EDGE IMPULSE网页不支持BMP及28x28像素格式,需要通过python脚本对图片进行转换。mnist_lite文件夹中已将图片转换为256*256png格式。 ###5.3生成特征 点击左侧Impulse design->Create Impulse,依次点击Add a processing block、Add a learning block进行输入数据对象、训练模型的选择,并点击保存。 ![12.png](https://oss-club.rt-thread.org/uploads/20240322/dd9aeb8ea601a19d4953ddb03ebfca77.png.webp) 继续点击左侧Image,Color depth选择RGB,点击保存。接下来会自动跳转到生成特征界面,点击生成特征按钮,等待特征生成,结束后会有三维图像显示。 ![14.png](https://oss-club.rt-thread.org/uploads/20240322/0a13ea76950601d8cb70aa2a6e390048.png.webp) ###5.4迁移训练 点击左侧Transfer learning按钮,依次设置训练参数:训练周期、学习率等参数。随后选择自己实验最符合的训练模型,点击开始训练。 ![15.png](https://oss-club.rt-thread.org/uploads/20240322/0efea6cbf2b70d9b0edca901c047124c.png.webp) 如果最后的结果和准确率不满足自己的实验要求,可尝试重新训练,重新更改参数及训练模型。 ![16.png](https://oss-club.rt-thread.org/uploads/20240322/182868fbc33920daaf095d49ea0c3ccb.png.webp) ###5.5在Vision Board上部署 在左侧点击Deployment,搜素OpenMV library,点击Build,等待固件生成。 ![17.jpg](https://oss-club.rt-thread.org/uploads/20240322/3b0c2e813a839bc5740414ca0fe14501.jpg.webp) 将下载下来的压缩文件解压("trained.tflite"、"labels.txt"、"ei_image_classification.py"),将ei_image_classification.py改名为main.py,随后将3个文件全部复制到sd卡中去(确保sd卡无其他文件)。 ![18.png](https://oss-club.rt-thread.org/uploads/20240322/6a8593359550603ceee7dd6efe36f21c.png) 用type-c线连接Vision Board USB-OTG口,随后将sd卡中的main.py拖入OpenMV IDE中,打开并运行,此时可以在串口终端看见识别的结果及准确率。 ![19.png](https://oss-club.rt-thread.org/uploads/20240322/b873c00a17f66ebfe6d6a86d5efcdd04.png.webp)
15
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
Jiabing
这家伙很懒,什么也没写!
文章
1
回答
3
被采纳
1
关注TA
发私信
相关文章
1
OPENMV软件包怎么使用
2
OPENMV STM32H7 编译失败
3
openMV+micropy与RT1064的一个尝试
4
Vision Board连接不上OpenMV IDE
5
Vision Board使用openmv无法下载脚本
6
在visonboard开发中尝试在openmv中加载个人训练的YOLOv5模型,报错,超出内存
7
Vision Board 的openmv如何部署socket 模块
8
Vison Board 如何在openmv 、main.py脚本中实现和其它线程通信?
9
那个vision board 在 openmv ide 设置波特率的时候,是不是有一个小bug ,设置成0的时候就是115200?
10
Vision Broad连接OTG口后openMV显示错误:系统找不到指定的文件,Renesas Flash也显示连接不上
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
11
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
rv666
9
个答案
2
次被采纳
用户名由3_15位
13
个答案
1
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
6
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部