基于RKNN的YOLOv5安卓Demo

1.简介

基于RKNPU2 SDK 1.6.0版的安卓YOLOv5演示应用程序,选择图片进行对象检测并显示识别结果。

GitHub源码地址:https://github.com/shiyinghan/rknn-android-yolov5

2.实现过程

参考RKNN官方库RKNN Model Zoo提供的YOLOv5对象检测demo,该demo是二进制的可执行程序,没有整合成app,但是代码结构比较清晰,整合成安卓应用,可以熟悉一下流程。

App相关的功能,例如加载asset下面的rknn模型文件等,参考了ncnn-android-yolov5软件库。

调用模型推理和后处理逻辑参考rknn_model_zoo/examples/yolov5/cpp下面的demo源码。

3.运行效果

先选择图片,然后点击识别,效果如下:
在这里插入图片描述

4.注意事项

运行该demo之前需要保证开发板端已经配置好了RKNN环境,/vendor/bin/rknn_server和/vendor/lib64/librknnrt.so的版本都是1.6.0。

RKNN官方已经有使用摄像头的实时数据进行yolov5对象检测并显示识别结果的demo,有需要的可以直接参考rknn_yolov5_android_apk_demo。

5.关于零拷贝API

相比于通用API,官方更推荐零拷贝API,在代码里面可以直接设置是否使用零拷贝API,代码如下:
在这里插入图片描述

在RK3568开发板上面实际测试之后发现,零拷贝API相对于通用API,在单线程的实现逻辑下面,运行量化模型可以快1ms左右,优势并不大。而如果运行非量化模型,零拷贝API甚至可能比通用API更慢。究其原因,可能是因为零拷贝API只是减少一次内存拷贝,而一些操作(比如数据的归一化、量化、反量化等)本来运行在CPU上面,使用零拷贝API会导致这些操作运行在NPU上面。相比于CPU,NPU除了推理,其他操作并不一定有优势。

当然如果想要充分利用NPU,CPU更多的用作其他用途的话,还是推荐使用零拷贝API的。在RK3568开发板上面,运行于多线程模型下,通用API的NPU使用率最多95%,而零拷贝API的NPU使用率则可以达到99%。

6.参考

rknn_model_zoo
ncnn-android-yolov5

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

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

相关文章

SQL注入sqli_labs靶场第三题

?id1and 11 and 11和?id1and 11 and 11进行测试如果11页面显示正常和原页面一样,并且12页面报错或者页面部分数据显示不正常,那么可以确定此处为字符型注入。 根据报错信息判断为单引号带括号注入 联合查询: 猜解列名 ?id1) order by 3-…

Java毕业设计 基于springboot vue撸宠平台 宠物系统

Java毕业设计 基于springboot vue撸宠平台 宠物系统 springboot撸宠平台 宠物系统 功能介绍 首页 图片轮播 用户或商家注册 用户或商家登录 登录验证码 店铺信息 店铺详情 店铺投诉 宠物信息 宠物详情 预订 退订 搜索 收藏 点赞 踩 评论 个人中心 更新信息 我的收藏 在线客服…

input输入限制:自动补全两位小数、金额限制两位小数、只能输入正整数

金额自动补全两位小数 <el-input v-model.trim"form.invoice_price" clearable oninput"valuevalue.match(/\d\.?\d{0,2}/,)" blur"form.invoice_priceJEblurFn(form.invoice_price)"/>function JEblurFn(value){return valueNumber(va…

提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件

法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼&#xff0c;以及仲裁案件&#xff0c;精确的法律文书撰写对于案件的成功至关重要。然而&#xff0c;这一过程往往既耗时又复杂&#xff0c;尤其是在处理复杂的案情和面对当事人难以理解…

syncfusion-diagram:demo1如何实现

xmlns:syncfusion"http://schemas.syncfusion.com/wpf" xmlns:stencil"clr-namespace:Syncfusion.UI.Xaml.Diagram.Stencil;assemblySyncfusion.SfDiagram.WPF"当我们进入syncfusion的diagram中&#xff0c;可以看到&#xff0c;一个非常炫酷的例子 不仅实…

抖音招聘小程序可以通过抖音直播进行招聘

现在就是抖音报吧&#xff0c;又叫报白名单&#xff0c;它是可以通过抖音直播进行招聘&#xff0c;也可以在小视频中添加小程序&#xff0c;然后不会受到流量的限制。正常&#xff0c;如果您要是在抖音直播&#xff0c;或者是在视频里头说招聘两个字的话&#xff0c;都直播的话…

openGauss 5.0 单点企业版部署_Centos7_x86(下)

上一篇分享了安装环境、配置、创建用户&#xff0c;本篇将继续分享执行、安装、访问数据库。 8、目录规划 --创建存放安装包的目录 mkdir -p /topsoft/soft/openGauss chmod 777 -R /topsoft/soft--创建目录 目录会自动创建&#xff0c;可选择不创建 mkdir -p /topsoft/huaw…

为什么要部署IP SSL证书?怎么申请?

我们需要知道什么是IP SSL证书。SSL&#xff0c;全称为Secure Sockets Layer&#xff0c;即安全套接层&#xff0c;是为网络通信提供安全及数据完整性的一种安全协议。而IP SSL证书就是基于SSL协议的一种证书&#xff0c;它能够为网站和用户的数据传输提供加密处理&#xff0c;…

对称加密学习

对称加密是一种加密技术&#xff0c;它使用相同的密钥进行数据的加密和解密操作。这种加密方法因其高效性和速度优势&#xff0c;在数据加密领域得到了广泛的应用。 下面是两篇文章&#xff1a; AES加密学习-CSDN博客 加密算法学习-CSDN博客 推荐关注加密专栏&#xff1a; …

ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例

ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例 文章目录 ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例一.Thinkphp5不安全的SQL写法二.Thinkphp3 SQL注入三.Thinkphp链5.1.x结合phar实现…

Git可视化工具 - 推荐

概述 Git版本管理工具是我们日常开发中常用的工具&#xff0c;熟练使用它可以提高我们的工作效率。 当然老司机基本使用命令行的方式进行操作&#xff0c;新手可借助可视化工具来进行过渡&#xff0c;命令行与可视化工具结合使用来加深对Git的熟悉程度。 下面推荐两个较受欢迎…

[蓝桥杯 2023 国 B] 班级活动

[蓝桥杯 2023 国 B] 班级活动 题目描述 小明的老师准备组织一次班级活动。班上一共有 n n n 名&#xff08; n n n 为偶数&#xff09;同学&#xff0c;老师想把所有的同学进行分组&#xff0c;每两名同学一组。为了公平&#xff0c;老师给每名同学随机分配了一个 n n n 以…

STM32电机控制SDK实战

一、前言 本次测试基于ST开发板NUCLEO-F302R8&#xff0c;驱动板X-NUCLEO-IHM07M1&#xff0c;使用无刷直流电机BLDC实现FOC控制&#xff1b;采样三霍尔传感器检测电机转子位置&#xff1b;基于速度环闭环控制实现电机转动&#xff1b; 二、实战环境 软件环境&#xff1a; 1…

性能测试 —— 性能测试流程!

简介&#xff1a; 性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试&#xff1a;利用工具模拟大量用户操作&#xff0c;验证系统承受的负载情况。 性能测试的目的&#xff1a;找到潜在的性能问题或瓶颈&#xff0c;分析并解决&am…

SpringCloudAlibaba-概述(一)

目录地址&#xff1a; SpringCloudAlibaba整合-CSDN博客 记录SpringCloudAlibaba的整合过程 一、简单概述一下项目情况 项目主要有4个模块和4个微服务&#xff1b; 项目结构如下&#xff1a; mall&#xff1a;父工程 -- common&#xff1a;公共组件&#xff0c;存放公用的实…

01 Hello Python

本节课重点知识点 1、函数&#xff1a; 在python中&#xff0c;函数是已经写好的&#xff0c;可以重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。函数可以使代码模块化&#xff0c;提高重复利用率。 2、内置函数&#xff1a; 程序员已经写好的一些函…

1、Qt UI控件 -- qucsdk

前言&#xff1a;Qt编写的自定义控件插件的sdk集合&#xff0c;包括了各个操作系统的动态库文件以及控件的头文件和sdk使用demo。类似于Wpf中的LivChart2控件库&#xff0c;都是一些编译好的控件&#xff0c;可以直接集成到项目中。该控件是飞扬青云大神多年前开发的&#xff0…

【LeetCode热题100】【二叉树】验证二叉搜索树

题目链接&#xff1a;98. 验证二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 即左边的小于根小于右边的&#xff0c;不仅仅是这样&#xff0c;根必须得比左子树的都要大&#xff0c;比右子树的都要小&#xff0c;因此对于每个节点都需要小于某个值大于某个值 class Sol…

OV证书为什么更可信

在网络安全领域&#xff0c;SSL/TLS证书扮演着至关重要的角色&#xff0c;其中组织验证&#xff08;Organization Validation&#xff0c;简称OV&#xff09;证书以其深度验证机制和高度可信性脱颖而出。 OV证书为何更值得信赖&#xff0c;关键在于其严格的验证流程。 首先&am…

SOCKS代理概述

在网络技术的广阔领域中&#x1f310;&#xff0c;SOCKS代理是一个核心组件&#xff0c;它在提升在线隐私保护&#x1f6e1;️、实现匿名通信&#x1f3ad;以及突破网络访问限制&#x1f6ab;方面发挥着至关重要的作用。本文旨在深入探讨SOCKS代理的基础&#xff0c;包括其定义…