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

news/2024/10/25 19:29:57/

一、简介

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

在rk3566 板端运行如下app:

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

其中yolov5s-640-640.rknn是模型文件,bus.jpg是输入给模型的图像数据
输入图像:
在这里插入图片描述
输出识别结果:
在这里插入图片描述

其中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: 3index=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.003922index=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.080445index=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.080794index=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

http://www.ppmy.cn/news/1199992.html

相关文章

[黑马程序员Pandas教程]——Pandas数据结构

目录: 学习目标认识Pandas中的数据结构和数据类型Series对象通过numpy.ndarray数组来创建通过list列表来创建使用字典或元组创建s对象在notebook中不写printSeries对象常用API布尔值列表获取Series对象中部分数据Series对象的运算DataFrame对象创建df对象DataFrame…

网络运维Day01

文章目录 环境准备OSI七层参考模型什么是协议?协议数据单元(PDU)设备与层的对应关系什么是IP地址?IP地址分类IP的网络位和主机位IP地址默认网络位与主机位子网掩码默认子网掩码查看IP地址安装CISCO汉化CISCO(可选操作) CISCO之PC机器验证通信 CISCSO之交…

Golang面试题从浅入深高频必刷「2023版」

大家好,我是阳哥。专注Go语言的学习经验分享和就业辅导。 Go语言特点 Go语言相比C/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C的高性能,又可以像Java,Python优雅的调用三方库和管理项目&#x…

某某盾-滑块验证-自动获取validate值-(逆向js+python)

我是标题 1.从get?网站获取滑块图片以及token1.1获取fp值1.2 获取cb值1.3 模拟发包 2.获取滑块移动距离3.发包获取最终的validate值3.1轨迹生成3.2 check网站发包3.3 获取data值 4.结论 本实验是根据某某盾示例网站 主要分为两个部分 1.从get?网站获取滑…

新一代存储介质技术SCM探讨

什么是SCM介质? SCM介质现状 SCM介质产品形态和在存储系统中的应用 高性能SSD 字节型DIMM形态 小结 什么是SCM介质? SCM(Storage Class Memory)是当前业界非常热门的新介质形态,同时具备持久化(Storage Cla…

02-详解SpringAOP 面向切面编程

面向切面编程 AOP思想 Spring的IoC容器可以使软件组件松耦合,Spring的AOP则可以让你能够捕捉系统中经常使用的功能并把它转化成组件 Spring的AOP的实现底层可以在JDK动态代理 CGLIB动态代理两种动态代理中灵活切换,当前也可以通过Spring的配置强制使用CGLIB动态代理 如果代…

第十六章 反射与注解

目录 16.1 反射 1.使用getClass()方法 2.使用.class属性 3.使用class类的forname方法 16.1.2 访问成员变量 16.2 Annotation注解功能 16.2.1 定义Annotation类型 16.2.2 访问Annotation 信息 16.1 反射 1.class类 2.获取构造方法 3.获取成…

keil代码编辑区配色方案

第一步找到global.prop文件打开 ### 第二步复制下面的文本替换global.prop的内容,保存。 # properties for all file types indent.automatic1 virtual.space0 view.whitespace0 view.endofline0 code.page936 caretline.visible1 highlight.matchingbraces1 prin…