【已解决】pt文件转onnx后再转rknn时得到推理图片出现大量锚框变花屏

前言

环境介绍:

1.编译环境

Ubuntu 18.04.5 LTS

2.RKNN版本

py3.8-rknn2-1.4.0

3.单板

迅为itop-3568开发板


一、现象

采用yolov5训练并将pt转换为onnx,再将onnx采用py3.8-rknn2-1.4.0推理转换为rknn,rknn模型能正常转换,并且推理显示正常。但将rknn文件放到开发板,使用rknn_toolkit_lite2进行推理时,得到的推理图片出现大量锚框变花屏,如下。
在这里插入图片描述

二、解决

经过排查发现是前面为了解决rknn置信度大于1,图像出现乱框问题在将pt导出为onnx文件时,对yolo.py文件做了修改,引入了sigmoid函数。
models/yolo.py

def forward(self, x):
	z = []  # inference output
	for i in range(self.nl):
		if os.getenv('RKNN_model_hack', '0') != '0':
			x[i] = torch.sigmoid(self.m[i](x[i]))  # conv

	return x
# def forward(self, x):
#     z = []  # inference output
#     for i in range(self.nl):
#         x[i] = self.m[i](x[i])  # conv
#         bs, _, ny, nx = x[i].shape  # x(bs,255,20,20) to x(bs,3,20,20,85)
#         x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
#
#         if not self.training:  # inference
#             if self.grid[i].shape[2:4] != x[i].shape[2:4] or self.onnx_dynamic:
#                 self.grid[i] = self._make_grid(nx, ny).to(x[i].device)
#
#             y = x[i].sigmoid()
#             if self.inplace:
#                 y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i]) * self.stride[i]  # xy
#                 y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i]  # wh
#             else:  # for YOLOv5 on AWS Inferentia https://github.com/ultralytics/yolov5/pull/2953
#                 xy = (y[..., 0:2] * 2. - 0.5 + self.grid[i]) * self.stride[i]  # xy
#                 wh = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i].view(1, self.na, 1, 1, 2)  # wh
#                 y = torch.cat((xy, wh, y[..., 4:]), -1)
#             z.append(y.view(bs, -1, self.no))
#
#     return x if self.training else (torch.cat(z, 1), x)

而板子上跑的test_rknn_lite.py后期对数据处理函数与虚拟机上推理导出rknn函数存在差异,而这差异就是对sigmoid函数的处理不同。
在这里插入图片描述

没有sigmoid函数的,不会出现花屏现象!!!

修改过后推理结果正常。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里地址标准化相关能力

阿里云地址标准化服务入口 1地址标准化概念 阿地址标准化(Address Purification)是一站式闭环地址数据处理和服务平台产品,依托阿里云海量的地址语料库,针对各行业业务系统所登记的地址数据,进行纠错、补全、归一、结…

【QT】opcuaServer 的构建

【QT】opcuaServer 的构建 前言opcuaServer实现测试 前言 在博文【opcua】从编译文件到客户端的收发、断连、节点查询等实现 中,我们已经介绍了如何在QT 中创建opucaClient 。在本期的博文中,我们基于之前的部署环境,介绍一下如何构建opcuaS…

Windows 离线安装MySQL8教程

本文描述了在Windows 11 上离线安装MySQL8的方法本方法同样使用与Win10、Windows Server等本文仅供参考,请理解后安装和优化 一、下载文件 官方下载路径 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-winx64.zip百度网盘缓存 微信小程序搜索“数字…

arcgis各种版本下载

arcgic 下载!!! ArcGIS是一款地理信息系统软件,由美国Esri公司开发。它提供了一系列完整的GIS功能,包括地图制作、空间数据管理、空间分析、空间信息整合、发布与共享等。ArcGIS是一个可扩展的GIS平台,提供…

复杂人像背景分割解决方案

随着人工智能和图像处理技术的不断发展,人像处理已成为企业宣传、产品展示、线上教育等领域不可或缺的一环。然而,面对复杂多变的人像背景,如何实现精准、高效的分割,一直是困扰企业的技术难题。为此,美摄科技凭借其领…

【Java程序设计】【C00240】基于Springboot的班级综合测评管理系统(有论文)

基于Springboot的班级综合测评管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的班级综合测评管理系统 本系统分为学生功能模块、管理员功能模块以及教师功能模块。 管理员功能模块:管理员功能…

LeetCode、17. 电话号码的字母组合【中等,dfs回溯】

文章目录 前言LeetCode、17. 电话号码的字母组合【中等,dfs回溯】题目与类型思路递归回溯优化:StringBuilder来回溯补充代码:2024.1.31(简化) 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博…

艺术创作和生活的关系

艺术出现在生产劳作中并体现出人们生活、工作、学习中,使人们在不受限制随意发挥缔造发明能力的体现,独立的精神活动领域在它逐渐演变进步的历程中越来越明显,也是一个人精神思想生活中很重要的一部分。艺术随着社会发展而发展。一件完美的艺…

银行数据仓库体系实践(17)--数据应用之营销分析

营销是每个银行业务部门重要的工作任务,银行产品市场竞争激烈,没有好的营销体系是不可能有立足之地,特别是随着互联网金融发展,金融脱媒”已越来越普遍,数字化营销方兴未艾,银行的营销体系近些年也不断发展&#xff0c…

Pyhton专项进阶——http协议、cookie、session和认证-3

关于cookie的报文首部相关属性熟悉后,下面就是实际应用。 使用cookie实现用户登录验证(初步): 思路(一):显示登录页面,输入用户和密码,后端验证,如果验证通…

Docker下安装GitLab

极狐GitLab Docker 镜像 | 极狐GitLab 安装所需最小配置 内存至少4G 系统内核至少3.10以上 uname -r 命令可以查看系统内核版本 安装Docker 1.更新 yum源 yum update 2.安装依赖(如果在操作第三步的时候提示yum-config-manager 未找到命令 就安装下面依赖) yum instal…

[UI5 常用控件] 07.SplitApp,SplitContainer

文章目录 前言1. SplitApp1.1 组件结构1.2 Demo1.3 mode属性 2. SplitContainer 前言 本章节记录常用控件SplitApp,SplitContainer。主要功能是在左侧显示Master页面,右侧显示Detail页面。 Master页面和Detail页面可以由多个Page组成,并支持…

【51单片机】LED的三个基本项目(LED点亮&LED闪烁&LED流水灯)(3)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

ShardingSphere实现openGauss分布式架构

本文档采用openGauss结合ShardingSphere中间件的架构,实现openGauss数据库分布式OLAP场景的环境部署。 术语说明: 开源数据库引擎:openGauss shardingsphere Proxy:定位为透明化的数据库代理端,提供封装了数据库二进…

必看!第六版CCF(中国计算机学会)推荐B类国际学术会议!

中国计算机学会 中国计算机学会(CCF)是全国性、学术性、非营利的学术团体,由从事计算机及相关科学技术领域的个人和单位自愿组成。作为独立社团法人,CCF是中国科学技术协会的成员之一,是全国一级学会! CCF的…

教师入编以前算教龄还是工龄?

作为一名投身教育事业多年的老师,我常常被问到这样一个问题:在成为在编教师之前,我所付出的那些年月,究竟算是教龄还是工龄?今天,我想借此机会,从教师的角度深入探讨一下这个问题,希…

使用webstorm调试vue 2 项目

学习目标: 使用webstorm调试vue 2 项目 笔者环境: npm 6.14.12 webstorm 2023.1 vue 2 学习内容: 例如: 正常启动npm 项目 配置javaScruot dubug 配置你的项目地址就好 使用dubug运行你配置的调式页 问题 如果进入了js页无…

电力负荷预测 | 基于LSTM、TCN的电力负荷预测(Python)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力负荷预测 | 基于LSTM、TCN的电力负荷预测(Python) 源码设计 #------------------

手持三维激光扫描仪市场分析:预计2029年将达到242亿元

手持式三维激光扫描仪行业市场如何?目前市场上手持三维激光扫描仪的品牌和型号众多,主要的生产厂商有FARO、Trimble、Leica、Creaform等。不同厂商生产的手持三维激光扫描仪的价格、性能、适用领域等各不相同,其产品在建筑、制造、文化遗产保护等领域的…

Stable Diffusion 模型下载:majicMIX lux 麦橘辉耀 - V3

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 非常推荐的一个非常绚丽的科幻、梦幻、玄幻般的大模型,由国人“Merjic”发布,下载量颇高。这个模型风格炸裂,远距离脸部需要inp…