企业网站内容建设,seo关键词排名优化提升,网站开发工程师 能做什么,网站建设包括哪些方面的费用1.简介
基于RKNPU2 SDK 1.6.0版的安卓YOLOv5演示应用程序#xff0c;选择图片进行对象检测并显示识别结果。
GitHub源码地址#xff1a;https://github.com/shiyinghan/rknn-android-yolov5
2.实现过程
参考RKNN官方库RKNN Model Zoo提供的YOLOv5对象检测demo#xff0c…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上面。相比于CPUNPU除了推理其他操作并不一定有优势。
当然如果想要充分利用NPUCPU更多的用作其他用途的话还是推荐使用零拷贝API的。在RK3568开发板上面运行于多线程模型下通用API的NPU使用率最多95%而零拷贝API的NPU使用率则可以达到99%。
6.参考
rknn_model_zoo ncnn-android-yolov5