YOLOv5 V7.0 - rknn模型的验证 输出精度(P)、召回率(R)、mAP50、mAP50-95

1.简介

RKNN官方没有提供YOLOv5模型的验证工具,而YOLOv5自带的验证工具只能验证pytorch、ONNX等常见格式的模型性能,无法运行rknn格式。考虑到YOLOv5模型转换为rknn会有一定的精度损失,但是需要具体数值才能进行评估,所以需要一个可以运行rknn格式的YOLOv5验证工具。

参考目标检测 YOLOv5 - Rockchip rknn模型的测试 包括精度,召回率,mAP等详细信息,这篇文章中的验证工具是基于YOLOv5和RKNN开发环境的旧版本来开发的(YOLOv5 V6.2和rknn-toolkit v1.7.1),无法运行基于YOLOv5 v7.0和rknn-toolkit2 v1.6.0开发的RKNN模型,所以参考这个验证工具里面的RKNN模型的使用方式,和RKNN官方的Python Demo,实现了YOLOv5 V7.0版本的rknn验证工具。

GitHub源码地址:https://github.com/shiyinghan/yolov5_7.0_val_rknn

2.使用方法

2.1 配置RKNN开发环境

参考RKNN-Toolkit2 里面v1.6.0的Quick Start 文档 的第三章“准备开发环境”,安装 RKNN-Toolkit2环境和板端 RKNPU2环境(不确定rknn-toolkit2的其他版本的环境好不好使,工具参考的是rknn-toolkit2的v1.6.0的Python Demo)。
Quick Start 文档 :01_Rockchip_RKNPU_Quick_Start_RKNN_SDK_V1.6.0_CN.pdf

2.2 配置YOLOv5 V7.0的运行环境

下载YOLOv5的v7.0版本并解压,然后下载yolov5_7.0_val_rknn解压并覆盖YOLOv5原版V7.0的文件夹。最后安装YOLOv5 V7.0需要的python依赖库,这里需要注意上一步配置RKNN开发环境的时候,可能安装一下老版本的python依赖库,直接使用YOLOv5 V7.0的requirements.txt安装依赖库可能出现错误,需要手动指定依赖库的版本。

2.3 设置data文件夹下面的yaml配置文件

为了区分原版的val.py,本验证工具使用的时候,需要指定task为test,所以配置文件也需要指定test目录的路径,如下:
在这里插入图片描述

2.4 连接开发板(必须)

本验证工具不支持模拟器运行,需要连接实机进行测试,否则会提示以下错误:
在这里插入图片描述
命令行里面target参数也需要配置为对应的参数,这里使用的是RK3568开发板,所以target设置为’RK3568’。

2.5 运行验证工具

命令行如下:

python val_rknn.py --data coco128_rknn.yaml --batch-size 1 --task 'test'  --weights ./yolov5s-int8.rknn --target 'RK3568'  --anchors ./anchors_yolov5.txt

3.运行效果

yolov5s量化版本rknn模型:
在这里插入图片描述
在这里插入图片描述
yolov5s非量化版本rknn模型:
在这里插入图片描述
在这里插入图片描述
yolov5s原版pt模型:
在这里插入图片描述
在这里插入图片描述

4.结论

类型精度召回率mAP50mAP50-95
pt模型0.7190.6250.7140.475
RKNN量化版0.6880.6550.6990.455
RKNN非量化版0.690.6310.6950.45

可以看出,对比pt原版模型,转换好的rknn的量化和非量化版本的模型精度和mAP都有一些下降。使用rknn模型的项目中,pt原版模型的性能参数只能作为一个参考,需要实际算出rknn模型的性能参数才行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7742.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过三角形相似原理实现单目测距

根据三角形相似原理计算相机焦距,公式为:F (P * D) / W 其中: F: 待求的相机的焦距 P: 图像中目标的宽度,单位像素 D: 真实目标与相机的距离,单位厘米 W: 真实目标的宽度,单位厘米 计算焦距前,…

太原理工大学Python数据分析原理与应用(课外考题:8~11章)

这部分大概只考10分,且大部分出在选择题,填空最多一两个 (仅供参考) 第十章 (理解概念为主,无需看推导过程) 第十一章

QGraphicsView实现简易地图10『自适应窗口大小』

前文链接:QGraphicsView实现简易地图9『层级缩放显示底图』 自适应窗口大小 当地图窗口放大或缩小的时候,需要地图能够动态覆盖整个视口。 1、动态演示效果 2、核心代码 注:WHMapView继承自MapViewvoid WHMapView::resize() {if (m_curLev…

毕业就业信息|基于Springboot+vue的毕业就业信息管理系统的设计与实现(源码+数据库+文档)

毕业就业信息管理系统 目录 基于Springboot+vue的毕业就业信息管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1学生信息管理 2 公司信息管理 3公告类型管理 4公告信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…

C语言----汉诺塔问题

1.什么是汉诺塔问题 简单来说,就是有三个柱子,分别为A柱,B柱,C柱。其中A柱从上往下存放着从小到大的圆盘,我们需要借助B柱和C柱,将A柱上的所有圆盘转移到C柱上,并且一次只能移动一个圆盘&#…

基于Springboot+Vue的Java项目-鲜牛奶订购系统开发实战(附演示视频+源码+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &am…

UE5自动生成地形二:自动生成插件

UE5自动生成地形二:自动生成插件 Polycam使用步骤 本篇主要讲解UE5的一些自动生成地形的插件 Polycam 此插件是通过现实的多角度照片自动建模生成地形数据,也是免费的。这里感谢B站up主古道兮峰的分享 Polycam网站 插件下载地址 插件网盘下载 提取码&a…

机器学习第二天(监督学习,无监督学习,强化学习,混合学习)

1.是什么 基于数据寻找规律从而建立关系,进行升级,如果是以前的固定算式那就是符号学习了 2.基本框架 3.监督学习和无监督式学习: 监督学习:根据正确结果进行数据的训练; 在监督式学习中,训练数据包括输…

Adobe系列软件安装

双击解压 先运行Creative_Cloud_Set_Up.exe。 完毕后,运行AdobeGenP.exe 先Path,选路径,如 C:\Program Files\Adobe 后Search 最后Patch。 关闭软件,修图!

参数配置不生效导致海思1151芯片TPC功率超大,引起性能恶化。

• 【Wi-Fi领域】【现网案例4】参数配置不生效导致海思1151芯片TPC功率超大,引起性能恶化。 【问题描述】XXX客户反馈OLT-HG8245W5-6T–Wi-Fi–WA8021V5-LAN-PC组网概率出现近距离测速只有20Mbps 【问题单】DTS2022101410914 【问题分析】 在客户反馈此问题后&#…

矩阵的压缩存储介绍

引入 概述 特殊矩阵的压缩 对称矩阵 三角矩阵 对角矩阵 稀疏矩阵 三元组存储 十字链表法 示例

KDTree空间搜索算法学习

目录 KDTree(K-Dimensional Tree)原理步骤空间索引建立例子[^1]回溯搜索例子[^2] 相关包案例[^3]数据KDTree 识别轨道衔接出行轨道衔接单车骑行范围分析结果保存 KDTree(K-Dimensional Tree)原理 将需要匹配的 K 维空间点建立 K …

数据分析必备:一步步教你如何用numpy改变数据处理(6)

介绍: NumPy 广播(Broadcasting)是指当两个形状不同的数组进行运算时,NumPy 有能力灵活地改变其中某个(些)数组的形状从而使得运算可以正常进行。 广播的规则主要包括以下几点: 当一个数组是一个…

互联网十万个为什么之什么是云计算

云计算是一种通过互联网提供计算资源和服务的技术。它允许用户随时随地访问和使用云平台上的数据、软件和硬件资源。在数字化时代,互联网已经成为基础设施。云计算使得数据中心能够像一台计算机一样去工作。通过互联网将算力以按需使用、按量付费的形式提供给用户&a…

Linux进程地址空间第三讲

至今为止, 我们所学到的大多数的知识, 包括语言, 数据结构, 动静态库等等的 都是在下面这3G, 也就是用户空间里的(进程等待, 信号之类的与内核有关的是在上面那1G里的) 所以对于我们来说, 我们…

【数据结构】链表经典OJ题目练习(2)

面试题 02.02. 返回倒数第 k 个节点 - 力扣(LeetCode) 思路1:先计算出链表的长度,在将链表中的值存在数组中,在返回第k个节点。 思路2:利用快慢指针,先让快指针走k步,在让快慢指针分…

多模态大模型学杂了能力反下降?新研究:MoE+通用专家解决冲突

微调,能让通用大模型更加适配具体的行业应用。 但现在,研究人员们却发现: 对多模态大模型做“多任务指令微调”,大模型可能会“学得多错得多”,因为不同任务之间的冲突,导致泛化能力下降。 △多模态指令微…

杭州恒生面试,社招,3年经验

你好,我是田哥 一位朋友节前去恒生面试,其实面试问题大部分都是八股文,但由于自己平时工作比较忙,完全没有时间没有精力去看八股文,导致面试结果不太理想,HR说节后通知面试结果(估计是凉了&…

【软件测试】接口自动化测试面试题及详细答案

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

【算法】数字接龙 走迷宫问题的一般处理思路

前言 其实走迷宫就是一个普普通通的深搜回溯嘛,但是我之前做的很多题都是在一个二维的地图上,只能上下左右四个方向走迷宫,在做数字接龙这道题的时候,相当于可以往8个方向走,虽然逻辑上不变,但按照我之前的…