0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在RT-Thread上部署TensorFlow Lite实现交通工具识别(附虚拟U盘部署技巧)

RT-Thread官方账号 2025-07-29 20:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着人工智能神经网络以及机器学习应用的发展,边缘处理的场景越来越多,一些针对IOT设备和嵌入式设备的迁移学习网络应运而生,TensorflowLite就是在这样的情境下诞生。

尽管Tensorflow Lite已经足够小,足够快速,但作为资源非常紧俏的单片机来说,尤其是图像处理,仍有点力不从心。好在Vision Board拥有足够强大的性能,而且外扩了较大的SDRAM作为数据处理内存使用,已基本满足进行一些数据量小,图像素质低的识别要求。

本章内容将讲解如何使用edgeimpulse.com网站来自行训练神经网络模型,进而实现机器学习的功能。


目录


Vision Board介绍(Cortex M85内核)


前期准备


开发环境准备


上传Edge Impulse进行训练

1

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 功能的苛刻物联网应用


2

前期准备


下面是本次实验所需要的软件及参考资料:

开发工具:MDK5 V5.3.8,OpenMv IDE V4.0.14

Demo 代码:https://github.com/RT-Thread-Studio/sdk-bsp-ra8d1-vision-board

EDGE IMPULSE网站:studio.edgeimpulse.com

图片素材:https://github.com/JiaBing912/VisionBoard-Picture-training-material


3

开发环境准备


本次实验将基于vision_board_openmv Demo进行开发,双击 mklinks.bat 文件,执行脚本后会生成 rt-thread、libraries 两个文件夹。

beeee99a-6c74-11f0-9080-92fbcf53809c.png

运行env,输入menuconfig,在Enable OpenMV for RT-Thread—>目录下,打开Enable tflite support功能。

bf123b84-6c74-11f0-9080-92fbcf53809c.png

保存并退出,输入scons —target=mdk5,重新生成mdk5工程。

bf2459ae-6c74-11f0-9080-92fbcf53809c.pngbf35a538-6c74-11f0-9080-92fbcf53809c.pngbf6750ec-6c74-11f0-9080-92fbcf53809c.png

随后打开mdk5工程,编译,烧录即可。

bf78aed2-6c74-11f0-9080-92fbcf53809c.png


5

上传Edge Impulse进行训练


1 注册账号并创建Edge Impulse工程

打开Edge impluse网站,注册登录。随后在项目标签页创建新项目:

bf8afe98-6c74-11f0-9080-92fbcf53809c.png

这里以数字识别为例。

bfa6fa58-6c74-11f0-9080-92fbcf53809c.png

2 上传训练集

按照以下步骤,依次点击Dashboard->Add existing data->Upload data。(训练集图片样本可从3.前期准备中图片素材中获取,此次实验使用的是mnist_lite文件夹下的手写数字图片样本。)

bfca041c-6c74-11f0-9080-92fbcf53809c.pngbfe8b2c2-6c74-11f0-9080-92fbcf53809c.png

注意:若未在数据集中对图片进行label注释(可参考官方文章),需要手动进行添加标签,或直接选择Enter label进行标签定义;图片素材中的数据集格式为28x28像素bpm文件,EDGE IMPULSE网页不支持BMP及28x28像素格式,需要通过python脚本对图片进行转换。mnist_lite文件夹中已将图片转换为256*256png格式。

3 生成特征

点击左侧Impulse design->Create Impulse,依次点击Add a processing block、Add a learning block进行输入数据对象、训练模型的选择,并点击保存。

c0079a0c-6c74-11f0-9080-92fbcf53809c.png

继续点击左侧Image,Color depth选择RGB,点击保存。接下来会自动跳转到生成特征界面,点击生成特征按钮,等待特征生成,结束后会有三维图像显示。

c0277cc8-6c74-11f0-9080-92fbcf53809c.png

4 迁移训练

点击左侧Transfer learning按钮,依次设置训练参数:训练周期、学习率等参数。随后选择自己实验最符合的训练模型,点击开始训练。

c0404c12-6c74-11f0-9080-92fbcf53809c.png

如果最后的结果和准确率不满足自己的实验要求,可尝试重新训练,重新更改参数及训练模型。

c05a75f6-6c74-11f0-9080-92fbcf53809c.png

5 在Vision Board上部署

在左侧点击Deployment,搜素OpenMV library,点击Build,等待固件生成。

c071c3be-6c74-11f0-9080-92fbcf53809c.png

将下载下来的压缩文件解压(”trained.tflite”、”labels.txt”、”ei_image_classification.py”),将ei_image_classification.py改名为main.py,随后将3个文件全部复制到sd卡中去(确保sd卡无其他文件)。

c08fe254-6c74-11f0-9080-92fbcf53809c.png

type-c线连接Vision Board USB-OTG口,随后将sd卡中的main.py拖入OpenMV IDE中,打开并运行,此时可以在串口终端看见识别的结果及准确率。

c0a08280-6c74-11f0-9080-92fbcf53809c.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络模型

    关注

    0

    文章

    25

    浏览量

    5848
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136236
  • RT-Thread
    +关注

    关注

    32

    文章

    1542

    浏览量

    44294
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    RT-Thread介绍 RT-Thread 是一个高安全性、实时性的操作系统,广泛应用于任务关键领域,例如电力、轨道交通、车载系统、工业控制和新能源等。它的加入让 RK3568 能够
    发表于 09-18 10:54

    混合部署 | 迅为RK3568上同时部署RT-Thread和Linux系统

    RT-Thread介绍 RT-Thread 是一个高安全性、实时性的操作系统,广泛应用于任务关键领域,例如电力、轨道交通、车载系统、工业控制和新能源等。它的加入让 RK3568 能够
    发表于 11-01 10:31

    Arm虚拟硬件上部署PP-PicoDet模型

    1、Arm虚拟硬件上部署PP-PicoDet模型  经典的深度学习工程是从确认任务目标开始的,我们首先来简单地介绍一下目标检测任务以及本期部署实战课程中我们所使用的
    发表于 09-16 14:42

    记录——基于 RT-Thread 实现 USB 虚拟串口

    记录——基于 RT-Thread 实现 USB 虚拟串口记录一下我正点原子 F429 阿波罗开发板上实现 USB
    发表于 12-02 17:21 6次下载
    记录——基于 <b class='flag-5'>RT-Thread</b> <b class='flag-5'>实现</b> USB <b class='flag-5'>虚拟</b>串口

    RT-thread应用讲解——U(usb host)

    U是一个很常用的存储设备,它是通过usb实现数据传输的,那么stm32上面,我们要怎么接入U
    发表于 12-28 19:41 23次下载
    <b class='flag-5'>RT-thread</b>应用讲解——<b class='flag-5'>U</b><b class='flag-5'>盘</b>(usb host)

    RT-Thread AI kit开源:轻松实现一键部署AI模型至 RT-Thread

    RT-AK 是 RT-Thread 团队为 RT-Thread 实时操作系统所开发的 AI 套件,能够一键将 AI 模型部署RT-Thread
    发表于 01-25 18:18 4次下载
    <b class='flag-5'>RT-Thread</b> AI kit开源:轻松<b class='flag-5'>实现</b>一键<b class='flag-5'>部署</b>AI模型至 <b class='flag-5'>RT-Thread</b>

    就在本周四!探索RT-Thread混合部署新模式!

    3月21日(本周四)我们将在上海张江举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上的实现同时运行RT-Thread
    的头像 发表于 03-20 08:34 1041次阅读
    就在本周四!探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和li
    的头像 发表于 03-27 08:34 1047次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    4月10日深圳场RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和li
    的头像 发表于 03-27 11:36 1713次阅读
    4月10日深圳场<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    【4月10日-深圳-workshop】RT-Thread带你探索混合部署新模式

    4月10日我们将在深圳福田举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和li
    的头像 发表于 04-04 08:34 796次阅读
    【4月10日-深圳-workshop】<b class='flag-5'>RT-Thread</b>带你探索混合<b class='flag-5'>部署</b>新模式

    4月25日北京站RT-Thread线下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和l
    的头像 发表于 04-16 08:35 926次阅读
    4月25日北京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式

    RT-Thread混合部署Workshop北京站来啦!

    4月25日,下午我们将在北京举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和l
    的头像 发表于 04-19 08:34 942次阅读
    <b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>Workshop北京站来啦!

    5月16日南京站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    5月16日下午我们将在南京举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和li
    的头像 发表于 05-01 08:35 807次阅读
    5月16日南京站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    6月6日杭州站RT-Thread线下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我们将在杭州举办RT-Thread混合部署线下workshop,瑞芯微RK3568平台上实现同时运行RT-Thread和lin
    的头像 发表于 05-28 08:35 959次阅读
    6月6日杭州站<b class='flag-5'>RT-Thread</b>线下workshop,探索<b class='flag-5'>RT-Thread</b>混合<b class='flag-5'>部署</b>新模式!

    混合部署 | RK3568上同时部署RT-Thread和Linux系统-迅为电子

    混合部署 | RK3568上同时部署RT-Thread和Linux系统-迅为电子
    的头像 发表于 09-06 15:32 1173次阅读
    混合<b class='flag-5'>部署</b> | <b class='flag-5'>在</b>RK3568上同时<b class='flag-5'>部署</b><b class='flag-5'>RT-Thread</b>和Linux系统-迅为电子