RK3566上运行yolov5模型进行图像识别

一、简介

本文记录了依靠RK官网的文档,一步步搭建环境到最终在rk3566上把yolov5 模型跑起来。最终实现的效果如下:

在rk3566 板端运行如下app:

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

其中yolov5s-640-640.rknn是模型文件,bus.jpg是输入给模型的图像数据
输入图像:
RK3566上运行yolov5模型进行图像识别_第1张图片
输出识别结果:
RK3566上运行yolov5模型进行图像识别_第2张图片

其中console输出如下

post process config: box_conf_threshold = 0.25, nms_threshold = 0.45
Read model/bus.jpg ...
img width = 640, img height = 640
Loading mode...
sdk version: 1.4.0 (a10f100eb@2022-09-09T09:07:14) driver version: 0.8.2
model input num: 1, output num: 3
  index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922
  index=0, name=334, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=77, scale=0.080445
  index=1, name=353, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=56, scale=0.080794
  index=2, name=372, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=69, scale=0.081305
model is NHWC input fmt
model input height=640, width=640, channel=3
once run use 95.224000 ms
loadLabelName ./model/coco_80_labels_list.txt
person @ (114 235 212 527) 0.819099
person @ (210 242 284 509) 0.814970
person @ (479 235 561 520) 0.790311
bus @ (99 141 557 445) 0.693320
person @ (78 338 122 520) 0.404960
loop count = 10 , average run  91.414500 ms

下面简单记录实现过程

二、实现步骤

2.1、环境准备

参考官网的例子,最好使用python3.8?rknn_yolov5_demo 使用的glibc 库是2.29

2.2、编译app

参考官网的例子,rknn_yolov5_demo 使用的glibc 库是2.29

将install目录拷贝到windows

2.3、在板子运行

在windows 搭建tftp server(因为nfs server 一直出现各种问题,所以我只能使用tftp了,无奈)tftpd64 下载地址:https://bitbucket.org/phjounin/tftpd64/wiki/Download%20Tftpd64

运行tftp64,设置共享路径

linux 端自带一个tftp 软件,可以使用它从windows下载所需的文件,这里是一份tftp 下载的脚本

该脚本将windows 的文件下载到mnt/rknn 目录下

tftp -g -l /mnt/rknn/model/coco_80_labels_list.txt -r model/coco_80_labels_list.txt 192.168.8.101
tftp -g -l /mnt/rknn/lib/librga.so -r lib/librga.so 192.168.8.101
tftp -g -l /mnt/rknn/lib/librknnrt.so -r lib/librknnrt.so 192.168.8.101
tftp -g -l /mnt/rknn/model/RK356X/yolov5s-640-640.rknn -r model/RK356X/yolov5s-640-640.rknn 192.168.8.101
tftp -g -l /mnt/rknn/modelbus.jpg -r model/bus.jpg 192.168.8.101
tftp -g -l /mnt/rknn/rknn_yolov5_demo -r rknn_yolov5_demo 192.168.8.101

你可能感兴趣的:(rknn,人工智能,YOLO,图像识别,rk3566,npu,rknn2,边缘推理)