基于瑞芯微RK3562 四核 ARM Cortex-A53 + 单核 ARM Cortex-M0——NPU开发案列

发布时间:2025-4-16 10:16    发布者:Tronlong--
关键词: 瑞芯微 , 目标识别 , 嵌入式开发 , 硬件开发 , NPU


本文主要介绍基于创龙科技TL3562-MiniEVM评估板的NPU开发案例,适用开发环境如下。
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware16.2.5
开发环境:Ubuntu20.04.6 64bit
U-Boot:U-Boot-2017.09
Kernel:Linux-5.10.209
LinuxSDK:rk3562-ubuntu20.04-sdk-[版本号](基于rk3562_linux_release_v1.2.0)
无特殊说明情况下,本文默认使用USB TO UART0作为调试串口,使用系统启动卡(Micro SD方式)启动系统,通过路由器与PC机进行网络连接,请确保PC机、Ubuntu系统可正常访问互联网。
NPU(Neural network Processing Unit),即神经网络处理器。RK3562内部已集成高能效神经网络处理器NPU,支持神经网络推理硬件加速,能够流畅运行AI算法。主要参数如下:
(1) 支持INT4/INT8/INT16/FP16等;
(2) 支持多种框架,如TensorFlow、MXNet、PyTorch、Caffe等;
(3) 1TOPS算力。
备注:更多详细信息请查看“6-开发参考资料\数据手册\核心板元器件\CPU\”目录下的文档。
NPU开发流程如下:
(1) 模型训练:用户根据需求自行训练模型或使用官方提供的模型;
(2) 模型转换:使用RKNN-Toolkit2将预训练模型转换为RK3562 NPU可使用的RKNN模型;
(3) 应用开发:基于RKNN API开发应用程序。
图 1 NPU开发流程图
我司提供的NPU开发案例位于产品资料“4-软件资料\Demo\platform-demos\”,具体说明如下。
关于RKNN-Toolkit2环境搭建、模型转换使用说明、混合量化、精度问题排查的详细介绍,可查看yolov5_object_detect案例"tool\rknn-toolkit2\doc\"目录下的"02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文档。
关于RKNN-Toolkit2模型转换API接口说明,可查看yolov5_object_detect案例"tool\rknn-toolkit2\doc\"目录下的"02_Rockchip_RKNPU_User_Guide_RKNN_SDK_V2.0.0beta0_CN.pdf"文档。
关于RKNN API的详细使用说明,可查看yolov5_object_detect案例"tool\rknn-toolkit2\doc\"目录下的"04_Rockchip_RKNPU_API_Reference_RKNNRT_V2.0.0beta0_CN.pdf"文档。

评估板简介
创龙科技 TL3562-MiniEVM 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 ARM Cortex-A53 + 单核 ARM Cortex-M0 国产工业评估板,主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案,国产化率 100%,评估底板大部分元器件亦采用国产工业级方案,国产化率约 99%(按元器件数量占比,数据仅供参考)。核心板经过专业的 PCB Layout 和高低温测试验证,支持选配屏蔽罩,质量稳定可靠,可满足各种工业应用环境要求。
评估板引出 2 路 Ethernet、2 路 USB、Micro SD、UART 等通信接口,同时引出 2 路 M IPI CSI、LVDS LCD、MIPI LCD、HDMI OUT、MIC IN、SPK OUT、HP OUT 多媒体接口,支
持 1080P@60fps H.264 视频编码、4K@30fps H.265 视频解码。
评估板体积小巧,尺寸为 85x130mm,可作为卡片式电脑使用,且便于产品集成,方便用户快速进行产品方案评估与技术预研。


评估板硬件资源图解 1

评估板硬件资源图解 2


案例说明

本案例基于RKNN API实现对图片中目标对象的识别,并将识别结果以加水印的方式添加至图像,并保存成图片文件。案例循环测试10次,统计出推理的平均处理耗时。
备注:本案例基于瑞芯微官方例程实现,进行了目录的重构及编译的简化,功能逻辑未进行修改。
程序处理流程图如下:
图 2

案例测试

请通过网线将评估板千兆网口ETH0 RGMII连接至路由器。
图 3

请将案例bin目录下的所有文件拷贝至评估板文件系统任意目录下。
图 4

在可执行文件所在目录,执行如下命令,对图片目标对象进行模型推理。
备注:模型运行的时间会有抖动。
Target# ./yolov5_object_detect yolov5s-640-640_rk3562.rknn car.jpg
图 5

从输出信息可知,本案例程序识别出测试图片包含person、car、bus、truck等对象,运行1次模型耗时为73.843000ms;循环运行10次模型平均耗时为47.365303ms。
案例程序对测试图片的目标对象标记成功后将输出名称为out.jpg的标记图片至当前目录,请将out.jpg文件拷贝至Windows下,并使用PC端相关软件对比查看car.jpg与out.jpg,测试结果如下所示。
图 6
图 7 car.jpg
图 8 out.jpg

从out.jpg图片可知,案例程序能正确框选出人物、汽车等物体,同时显示person、car文字标签和置信度,标记对象的数量及信息等与程序打印信息一致。
本程序能够支持识别的目标数据集类型说明位于bin目录下的coco_80_labels_list.txt文件,用户可根据相关目标类型进行测试验证。

图 9

案例编译
将案例src源码目录拷贝至Ubuntu工作目录下,请先确保已参考《Ubuntu系统使用手册》文档安装LinuxSDK。进入源码目录,执行如下命令配置环境变量,并修改CMake配置文件CMakeLists.txt,请根据实际情况修改为LinuxSDK源码路径。
Host# source /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0/environment
Host# vim CMakeLists.txt
图 10
图 11

新建一个build目录,用于存放编译过程产生的相关文件。
Host# mkdir -p build
图 12
进入build目录,执行如下命令进行案例编译,编译完成将会在build目录下生成编译过程产生的相关文件,并在src目录下生成install目录,该目录下存放案例相关文件。
Host# cd build
Host# cmake ../
Host# make -j8
Host# make install
图 13
图 14

build目录存放编译过程产生的相关文件,install目录存放案例相关文件,包括测试图片car.jpg、类别数据集coco_80_labels_list.txt、RKNN模型yolov5s-640-640_rk3562.rknn和可执行程序yolov5_object_detect等文件,如下图所示。
图 15

关键代码
(1) 加载图片RGB数据。
图 16
(2) 加载模型并初始化RKNN。
图 17
(3) 前处理,对图像进行缩放和裁剪以适配模型输入。
图 18
(4) 设置模型运行输入输出参数,NPU运行模型,获取模型输出,统计运行耗时。

图 19
(5) 进行后处理,得到目标识别结果。
图20
(6) 使用目标识别结果给图片添加水印,并保存为图片文件。

图 21
(7) 重复运行10次模型并统计平均耗时。

图 22
想了解更多资料,可前往创龙科技官网或微信公众号。

本文地址:https://www.eechina.com/thread-885794-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 为何选择集成电平转换?
  • 5分钟详解定时器/计数器E和波形扩展!
  • 了解一下Microchip强大的PIC18-Q24 MCU系列
  • 基于CEC1712实现的处理器SPI FLASH固件安全弹性方案培训教程
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表