rk3588对npu的再探索,yolov5使用rknn模型推理教程

文章目录

  • 零、引言
  • 一、环境信息
  • 二、下载工具
  • 三、更新 RKNN 模型
  • 四、编译 rknn_yolov5_demo
  • 五、在板端运行 rknn_yolov5_demo

零、引言

本文完成于2022-07-02 22:22:27。 博主刚开始在瑞芯微ITX-3588J-8K的开发板上跑了官方的yolov5目标检测算法,检测了ip相机rtsp视频流,但是每帧处理需要833ms左右,和放PPT一样。本来想使用tensorrt进行加速推理,但前提需要cuda,rk的板子上都是arm的手机gpu,没有nvidia的cuda,所以不能这样适配。那么转过来,使用开发板自带的NPU进行加速推理,岂不是最佳方案,因为它本身就是人工智能开发板,不用NPU相当于没有发挥它的全部能力。

然后今天(2022.7.2)成功实践了转换rknn模型,并使用npu推理。为了让后面的同学少走弯路,特此花1个h记录下RKNPU2的使用教程,因为官方教程只有Android版本,所以Ubuntu系统的都是我自己摸索出来的。上一期是使用RKNN-Toolkit的教程:rk3588使用npu进行模型转换和推理,加速AI应用落地
rk3588对npu的再探索,yolov5使用rknn模型推理教程_第1张图片

一、环境信息

PC操作系统 Ubuntu18.04(x86_64)
开发板 RK3588
开发板操作系统 Ubuntu20.04(aarch64)

本教程以 rknn_yolov5_demo 在 RK3588 Ubuntu20.04 64位 平台上运行为例,介绍如何使用RKNPU2。这里RKNPU2就是Firefly对第二代板子使用的NPU版本,我在github上看了RKNPU的文件,是给3399系列和之前的板子使用的。

rk3588对npu的再探索,yolov5使用rknn模型推理教程_第2张图片

二、下载工具

RK3588 内置 NPU 模块, 处理性能最高可达6TOPS。使用该NPU需要下载RKNN SDK,RKNN SDK 为带有 NPU 的 RK3588S/RK3588 芯片平台提供编程接口,能够帮助用户部署使用 RKNN-Toolkit2 导出的 RKNN 模型,加速 AI 应用的落地。

我们直接cd到build目录下进行sh编译,出现下面报错:
rk3588对npu的再探索,yolov5使用rknn模型推理教程_第3张图片查看手册,上面说板子为linux系统则需下载 gcc 交叉编译器,那么我们就来下载g++,输入下面命令:

sudo apt-get install aarch-linux-gnu-g++

安装好之后,输入命令查看g++版本

aarch-linux-gnu-g++ -v

gcc是GCC中的GUN C Compiler(C 编译器),g++是GCC中的GUN C++ Compiler(C++编译器),其实两者都可以编译c和c++代码,就好比c++和c的关系,我们选其一使用就好。

rk3588对npu的再探索,yolov5使用rknn模型推理教程_第4张图片

三、更新 RKNN 模型

  1. 可以将PC上转换后的 RK3588 平台模型 yolov5s.rknn 复制到rknpu2/examples/rknn_yolov5_demo/model/RK3588/下。
  2. 可以使用adb从PC传输到RK3588上,需要使用数据线连接3588和PC。
  3. 当然不复制也可以,因为example中就自带.rknn模型。

在这里插入图片描述
如何将pytorch、caffe、tensorflow、onnx等深度学习模型转换为rknn模型呢?这里需要用py文件先将它们统一转换成onnx模型,然后再使用rknpu2中的py文件进行转换即可。
rk3588对npu的再探索,yolov5使用rknn模型推理教程_第5张图片

四、编译 rknn_yolov5_demo

1、在终端命令窗口进入 rknn_yolov5_demo 文件夹

cd examples/rknn_yolov5_demo/

运行 build-linux_RK3588.sh 脚本编译程序

./build-linux_RK3588.sh 

五、在板端运行 rknn_yolov5_demo

运行目标检测程序,识别并定位图片中物体,cd到install/rknn_yolov5_demo_Linux/目录下,然后输入命令:

./rknn_yolov5_demo ./model/RK3588/yolov5s-640-640.rknn ./model/bus.jpg

参数1是可执行文件,参数2是模型文件,参数3是输入图像

rk3588对npu的再探索,yolov5使用rknn模型推理教程_第6张图片

当然,经过修改之后,可以对网络相机的rtsp视频流进行实时目标检测,而且置信度和检测速度非常高。

rk3588对npu的再探索,yolov5使用rknn模型推理教程_第7张图片

参考文献:Rockchip_Quick_Start_RKNN_SDK_V1.3.0_CN
关于过程中的截图,我也是在自己PC上操作时进行截图,然后在RK3588上操作时进行截图,两边都登录的csdn帐号进行交替写文章,可以说我在这台电脑上写一半,再到另一台电脑上继续写。过程很麻烦,但是我热爱探索和为社区奉献。如果对你有帮助,可以3连支持下博主。

你可能感兴趣的:(Firefly开发板,rknn,rockchip,ITX-3588J,rk3588,rknpu)