当前位置:网站首页 > 云计算与后端部署 > 正文

rknn模型(rknn模型部署)



欢迎学习RKNN系列相关文章,从模型转换、精度分析,评估到部署,推荐好资源:
一、Ubuntu系统上安装rknn-toolkit
二、使用rknn-toolkit将Pytorch模型转为RKNN模型
三、RKNN模型的评估和推理测试
四、RKNN模型量化精度分析及混合量化提高精度
五、RKNN模型性能评估和内存评估
六、rknn-toolkit-lite2部署RKNN模型到开发板上(python版)
七、RKNN C API开发板上落地部署RKNN模型
八、RKNN零拷贝API开发板落地部署RKNN模型








在这里插入图片描述

数据格式要求:RKNN零拷贝API要求输入输出数据必须满足特定的格式要求,具体可参考RKNN官方文档。

内存分配:使用零拷贝API进行推理前,需要先分配好输入输出数据的内存空间,并通过rknn_create_mem等接口进行注册。

数据更新:在推理过程中,如果需要更新输入输出数据,需要先调用rknn_set_io_mem等接口进行更新,否则可能导致推理结果不正确。

兼容性:RKNN零拷贝API与RKNN C API不完全兼容,不能混合使用。

RKNN零拷贝API与RKNN C API的主要区别如下:

在这里插入图片描述

如果对性能要求较高,建议使用RKNN零拷贝API。

如果需要使用RKNN C API提供的其他功能,则只能使用RKNN C API进行推理。

本配套教程源码包获取方法为文章末扫码到公众号「视觉研坊」中回复关键字:RKNN零拷贝API部署RKNN模型。获取下载链接。

解压后的样子如下:

在这里插入图片描述

关于CMake编译的详细过程,见我上一篇博文第二部分,链接为:CMake工程构建

相比上一篇的通用API,少了数据输入设置,获取输出数据相关步骤。

在这里插入图片描述

使用我提供的源码包,修改最终运行程序的工程文件名见下:

在这里插入图片描述

还有一些可以自定义调整代码,在non_copy/src/main.cc脚本中。

源码包中main.cc脚本的代码见下:

 
   

上面代码中用到的一些API详细解析见下。

4.4.1 rknn_create_mem

在这里插入图片描述

4.4.2 rknn_query

在这里插入图片描述

4.4.3 rknn_set_io_mem

在这里插入图片描述
示例代码如下:
在这里插入图片描述

4.4.4 rknn_init

在这里插入图片描述

4.4.5 rknn_run

rknn_run函数将执行一次模型推理,调用之前需要先通过rknn_inputs_set 函数或者零拷贝的接口设置输入数据。
在这里插入图片描述

4.4.6 rknn_destroy_mem

在这里插入图片描述

4.4.7 rknn_destroy

在这里插入图片描述

更多的API接口详见源码包中的开发文档。

在终端进入到non_copy目录下,运行build.sh脚本,如下:

在这里插入图片描述

运行上面build.sh后,在non_copy目录下生成了build和install两个文件,其中build文件用于存放工程构建过程中生成的中间文件,install文件用于存放编译完成后的可执行程序,运行所要用到的库,以及RKNN模型和图片。

在这里插入图片描述

将上面得到的install文件夹,通过命令方式发送到开发板子上,前提是本地电脑端已经连通开发板。

通过rknn_server连通开发板,连通后用过adb将install文件发送到开发板的根目录上。

 
   

在这里插入图片描述

发送完程序文件后通过下面命令,直接进入开发板的可视化终端:

 
   

在这里插入图片描述

在开发板上进入到install目录下,执行下面命令运行推理程序,执行程序时需要通过命令方式传入三个参数,第一个是要执行的程序,第二个是RKNN模型路径,第三个是测试图片路径。

 
   

在这里插入图片描述
对照imagenet1000标签.txt文件,可以看出,推理结果正确,如下:

在这里插入图片描述

以上就是RKNN零拷贝API开发板上落地部署RKNN模型的详细流程,希望能帮到你快速上手!

总结不易,多多支持!

感谢您阅读到最后!关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

到此这篇rknn模型(rknn模型部署)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 安卓软件后缀名是什么(安卓软件后缀名是多少)2025-11-04 18:45:10
  • vb1饭前还是饭后吃(vb6饭前还是饭后吃)2025-11-04 18:45:10
  • 软件后缀名为exe怎么打开(软件后缀名为exe怎么打开文件)2025-11-04 18:45:10
  • 电脑软件后缀名怎么改(如何更改电脑软件后缀)2025-11-04 18:45:10
  • redis客户端连接命令(redis命令行连接)2025-11-04 18:45:10
  • 电脑ip换了后,打印机怎么重新共享(打印机ip地址更换以后不能打印了该怎么办?)2025-11-04 18:45:10
  • chrony端口号(chrony 端口)2025-11-04 18:45:10
  • ip138查询地址(ip138查询地址归属地数字后面的代码是什么)2025-11-04 18:45:10
  • 电脑安装软件后缀怎么改(电脑app安装包的后缀名如何改)2025-11-04 18:45:10
  • redis对应端口(redis指定端口连接)2025-11-04 18:45:10
  • 全屏图片