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

描述

随着人工智能、神经网络以及机器学习应用的发展,边缘处理的场景越来越多,一些针对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 两个文件夹。

机器学习

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

机器学习

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

机器学习机器学习机器学习

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

机器学习


 

5

上传Edge Impulse进行训练


 

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

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

机器学习

这里以数字识别为例。

机器学习

2 上传训练集

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

机器学习机器学习

注意:若未在数据集中对图片进行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进行输入数据对象、训练模型的选择,并点击保存。

机器学习

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

机器学习

4 迁移训练

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

机器学习

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

机器学习

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中,打开并运行,此时可以在串口终端看见识别的结果及准确率。

机器学习


 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分