Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
OPENMV
RA8-M85-vision-board
开启Vision Board-TensorFlow Lite神经网络之旅
发布于 2024-03-22 16:22:56 浏览:3033
订阅该版
[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 两个文件夹。  运行env,输入menuconfig,在Enable OpenMV for RT-Thread-->目录下,打开Enable tflite support功能。  保存并退出,输入scons --target=mdk5,重新生成mdk5工程。    随后打开mdk5工程,编译,烧录即可。  ##5.上传Edge Impulse进行训练 ### 5.1注册账号并创建Edge Impulse工程 打开Edge impluse网站,注册登录。随后在项目标签页创建新项目:  这里以数字识别为例。  ### 5.2上传训练集 按照以下步骤,依次点击Dashboard->Add existing data->Upload data。(训练集图片样本可从3.前期准备中图片素材中获取,此次实验使用的是mnist_lite文件夹下的手写数字图片样本。)   **注意**:若未在数据集中对图片进行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进行输入数据对象、训练模型的选择,并点击保存。  继续点击左侧Image,Color depth选择RGB,点击保存。接下来会自动跳转到生成特征界面,点击生成特征按钮,等待特征生成,结束后会有三维图像显示。  ###5.4迁移训练 点击左侧Transfer learning按钮,依次设置训练参数:训练周期、学习率等参数。随后选择自己实验最符合的训练模型,点击开始训练。  如果最后的结果和准确率不满足自己的实验要求,可尝试重新训练,重新更改参数及训练模型。  ###5.5在Vision Board上部署 在左侧点击Deployment,搜素OpenMV library,点击Build,等待固件生成。  将下载下来的压缩文件解压("trained.tflite"、"labels.txt"、"ei_image_classification.py"),将ei_image_classification.py改名为main.py,随后将3个文件全部复制到sd卡中去(确保sd卡无其他文件)。  用type-c线连接Vision Board USB-OTG口,随后将sd卡中的main.py拖入OpenMV IDE中,打开并运行,此时可以在串口终端看见识别的结果及准确率。 
19
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
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
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
rt-smart
FAL
I2C_IIC
UART
ESP8266
cubemx
WIZnet_W5500
ota在线升级
PWM
BSP
flash
freemodbus
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
keil_MDK
ulog
SFUD
msh
C++_cpp
MicroPython
本月问答贡献
RTT_逍遥
10
个答案
3
次被采纳
xiaorui
3
个答案
2
次被采纳
winfeng
2
个答案
2
次被采纳
三世执戟
8
个答案
1
次被采纳
KunYi
8
个答案
1
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
lizimu
2
篇文章
8
次点赞
swet123
1
篇文章
4
次点赞
Days
1
篇文章
4
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部