RK3588推理RetinaFace出现问题

RK3588推理RetinaFace出现问题

在RK3588上测试RockChip提供的RetinaFace模型时,出现下面的问题
在这里插入图片描述

$ python RetinaFace_pic.py 
done
--> Init runtime environment
I RKNN: [02:27:16.501] RKNN Runtime Information: librknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22)
I RKNN: [02:27:16.501] RKNN Driver Information: version: 0.9.2
I RKNN: [02:27:16.501] RKNN Model Information: version: 6, toolkit version: 2.0.0b0+9bab5682(compiler version: 2.0.0b0 (35a6907d79@2024-03-24T02:34:11)), target: RKNPU v2, target platform: rk3588, framework name: ONNX, framework layout: NCHW, model inference type: static_shape
W RKNN: [02:27:16.501] RKNN Model version: 2.0.0 not match with rknn runtime version: 1.5.2
W RKNN: [02:27:16.511] query RKNN_QUERY_INPUT_DYNAMIC_RANGE error, rknn model is static shape type, please export rknn with dynamic_shapes
W Query dynamic range failed. Ret code: RKNN_ERR_MODEL_INVALID. (If it is a static shape RKNN model, please ignore the above warning message.)
done
--> Running model
E Catch exception when setting inputs.
E Traceback (most recent call last):File "/home/pi/archiconda3/envs/py38/lib/python3.8/site-packages/rknnlite/api/rknn_lite.py", line 201, in inferenceself.rknn_runtime.set_inputs(inputs, data_type, data_format, inputs_pass_through=inputs_pass_through)File "rknnlite/api/rknn_runtime.py", line 1082, in rknnlite.api.rknn_runtime.RKNNRuntime.set_inputs
Exception: The input[0] need 4dims input, but 3dims input buffer feed.Traceback (most recent call last):File "RetinaFace_pic.py", line 175, in <module>loc, conf, landmarks = outputs
TypeError: cannot unpack non-iterable NoneType object

从报错信息上看,感觉像维度问题,并且打印出来的outputs为None

观察RetinaFace的RKNN模型的输入

在这里插入图片描述

发现输入的维度是四维,而我的输入图片未做任何的处理,仅为三维

我在推理的代码前添加下面的代码,使infer_img原本的形状(H, W, C),变为(1, H, W, C)后再进行推理 :

infer_img = np.expand_dims(infer_img, axis=0)

在这里插入图片描述

np.expand_dims函数可以增加数组的维度。这通常用于将形状为(H, W, C)的RGB图像的3个颜色通道数据增加一个维度,使其形状变为(1, H, W, C),其中H代表高度,W代表宽度,C代表通道数。

infer_img = np.expand_dims(infer_img, axis=0)的作用是将infer_img数组增加一个维度,使其成为四维数组。

  • axis=0:指定在数组的第0维位置增加维度。

在查找资料的时候也发现了 github上的issue有人也出现了这个问题,使用了相同的方法

https://github.com/airockchip/rknn_model_zoo/issues/105
在这里插入图片描述

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

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

相关文章

【区分vue2和vue3下的element UI Cascader 级联选择器组件,分别详细介绍属性,事件,方法如何使用,并举例】

在Vue 2的Element UI和Vue 3的Element Plus中&#xff0c;el-cascader&#xff08;级联选择器&#xff09;组件用于从嵌套的数据中进行选择。以下是对这两个版本下el-cascader组件的属性、事件和方法的详细介绍&#xff0c;并附带示例。 Vue 2的Element UI el-cascader 属性…

Windows11下Docker使用记录(五)

目录 准备1. WSL安装cuda container toolkit2. win11 Docker Desktop 设置3. WSL创建docker container并连接cuda4. container安装miniconda&#xff08;可选&#xff09; Docker容器可以从底层虚拟化&#xff0c;使我们能够在 不降级 CUDA驱动程序的情况下使用 任何版本的CU…

ES6中的class类 及 递归

es6 中的 class可以把它看成是 es5 中构造函数的语法糖&#xff0c;它简化了构造函数的写法&#xff0c;类的共有属性放到 constructor 里面 1. 通过 class 关键字创建类&#xff0c;类名需要定义首字母大写 2.类里面有个 constructor 函数&#xff0c;可以接受传递过来的参数…

音视频开发19 FFmpeg 视频解码- 将 h264 转化成 yuv

视频解码过程 视频解码过程如下图所示&#xff1a; ⼀般解出来的是420p FFmpeg流程 这里的流程是和音频的解码过程一样的&#xff0c;不同的只有在存储YUV数据的时候的形式 存储YUV 数据 如果知道YUV 数据的格式 前提&#xff1a;这里我们打开的h264文件&#xff0c;默认是YU…

储能逆变器测试负载箱是如何实现的

储能逆变器测试负载箱是专门用于模拟各种负载条件的设备&#xff0c;主要用于对储能逆变器进行性能测试和评估。它可以根据实际需求&#xff0c;模拟不同的负载类型、负载大小和负载变化率&#xff0c;从而为储能逆变器的设计和优化提供准确的数据支持。那么&#xff0c;储能逆…

vue3拖拉拽组件面板实现(二)使组件可放大缩小

安装 vue-drag-resize npm i vue-drag-resize 引用 import VueDragResize from "vue-drag-resize/src"; 将组件div改为VueDragResize&#xff0c;绑定 宽w 高h&#xff1b; <VueDragResizev-for"item in list":key"item.id"class"box&q…

【递归、搜索与回溯】搜索

搜索 1.计算布尔二叉树的值2.求根节点到叶节点数字之和3. 二叉树剪枝4.验证二叉搜索树5.二叉搜索树中第K小的元素6.二叉树的所有路径 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一…

NLP--关键词

在去停用词后的文本中进行词频统计和关键词统计以及词云图显示&#xff0c;来进行文本的关键词提取&#xff0c;让人一目了然。 1.词频统计 统计文本中多次出现的词语&#xff0c;来寻找文章中的关键词&#xff0c;因为多次出现很可能就是关键内容。调用统计数量的Counter库和…

defineProps定义类型

1.props标注类型 原因&#xff1a;确保给组件传递的props是类型安全的 <script setup lang"ts"> //1.使用别名类型或者接口定义Props类型 type Props {name:stringage?:number } //2 使用defineProps注解类型 const props defineProps<Props>() <…

mysql如何处理无效数据

在 MySQL 中处理无效数据值是一个常见任务,可以通过多种方式进行,如使用条件更新、删除、替换或数据校验等。 1. 使用条件更新无效数据值 如果要将表中的无效数据值更新为某个默认值,可以使用 UPDATE 语句配合 WHERE 子句。例如,将负数改为零: UPDATE table_name SET c…

全年申报!2024年陕西省双软企业认定条件标准、申报好处费用

1.双软企业是什么? 答:双软认证并不是一个资质,而是"软件产品登记"和"软件企业认定"两个不同资质的统称.叫做"双软企业" 2.双软企业的优惠政策是什么? 答:(1)软件产品登记的优惠政策:软件产品增值税,从13%减按3%征收,实行即征即退; (2)软件…

BGP邻居长时间停留在Active排错思路

当邻居状态长时间停留在Active&#xff0c;首先应检查网络连通性&#xff0c;包括路由可达性、中间设备的ACL/Firewall规则、TCP端口179是否开放等。 使用网络监控工具或BGP调试命令&#xff08;如在Cisco设备上使用debug bgp events或debug tcp transactions&#xff09;可以…

vben:路由跳转和关闭当前页面

使用Vben admin框架开发前端&#xff0c;在tab页用到路由跳转和关闭当前页面的功能&#xff0c;代码如下。 按钮 <a-button ghost style"margin-right: 20px" click"closeNowTab">取消</a-button>实现代码 import { useGo } from //hooks/w…

Dubbo SPI(Service Provider Interface)机制深度解析

Dubbo SPI&#xff08;Service Provider Interface&#xff09;机制是Apache Dubbo框架中一项核心的技术组件&#xff0c;它超越了传统Java SPI的范畴&#xff0c;为Dubbo带来了高度的可扩展性和灵活性。在分布式服务架构日益复杂多变的今天&#xff0c;Dubbo SPI机制通过巧妙的…

Ansible语法与模块

目录 如何查询帮助 核心模块 社区和特定平台模块 其他常用模块 语法总结 Ansible 命令行工具 1. ansible 2. ansible-playbook 3. ansible-vault 4. ansible-galaxy 5.ansible-doc 6.ansible-config 7.ansible-pull 8.ansible-console 如何查询帮助 ansible-doc…

什么叫防御式编程

防御式编程是一种编程策略&#xff0c;主要目的是提高代码的健壮性和可靠性。它假设任何错误都可能发生&#xff0c;并且在设计和编写代码时采取预防措施以防止这些错误导致程序崩溃或产生错误结果。 以下是一些防御式编程的常见实践&#xff1a; 输入验证&#xff1a;总是验证…

2024Stable Diffusion WebUI详细使用指南

Stable Diffusion WebUI&#xff08;AUTOMATIC1111&#xff0c;简称A1111&#xff09;是一个为高级用户设计的图形用户界面&#xff08;GUI&#xff09;&#xff0c;它提供了丰富的功能和灵活性&#xff0c;以满足复杂和高级的图像生成需求。由于其强大的功能和社区的活跃参与&…

22 - 游戏玩法分析 IV(高频 SQL 50 题基础版)

22 - 游戏玩法分析 IV 考点&#xff1a; 聚合函数 # 日期相加 date_add(min(event_date),INTERVAL 1 DAY) select round(count(distinct player_id)/(select count(distinct player_id) from Activity),2) fraction fromActivity where-- 如果日期加一天的数据能在表中…

pytorch笔记:自动混合精度(AMP)

1 理论部分 1.1 FP16 VS FP32 FP32具有八个指数位和23个小数位&#xff0c;而FP16具有五个指数位和十个小数位Tensor内核支持混合精度数学&#xff0c;即输入为半精度&#xff08;FP16&#xff09;&#xff0c;输出为全精度&#xff08;FP32&#xff09; 1.1.1 使用FP16的优缺…

MySQL主从同步优化指南:架构、瓶颈与解决方案

前言 ​ 在现代数据库架构中&#xff0c;MySQL 主从同步是实现高可用性和负载均衡的关键技术。本文将深入探讨主从同步的架构、延迟原因以及优化策略&#xff0c;并提供专业的监控建议。 MySQL 主从同步架构 ​ 主从复制流程&#xff1a; 从库生成两个线程&#xff0c;一个…