位置: IT常识 - 正文

rk3588使用npu进行模型转换和推理,加速AI应用落地(rk3328 sdk)

编辑:rootadmin
rk3588使用npu进行模型转换和推理,加速AI应用落地 文章目录🍉零、引言🍍一、主要功能🍎二、系统依赖🍌三、安装RKNN-Toolkit1、安装Python3.6和pip32、 安装相关依赖3、获取RKNN-Toolkit2安装包4、安装Python环境5、安装RKNN-Toolkit26、检验是否安装成功🍇四、在PC上仿真运行示例1、进入目录2、运行程序3、模型和推理结果🍉零、引言

推荐整理分享rk3588使用npu进行模型转换和推理,加速AI应用落地(rk3328 sdk),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:rk3566 sdk,rk3399pro npu开发,rk3399pro npu开发,rk3288 sdk,rk3288 isp,rk3588 npu,rk3566 npu,rk3588 npu,内容如对您有帮助,希望把文章链接给更多的朋友!

本文完成于2022-07-02 20:21:55。博主在瑞芯微RK3588的开发板上跑了deepsort跟踪算法,从IP相机中的server拉取rtsp视频流,但是fps只有1.2,和放PPT一样卡顿,无法投入实际应用。本来想使用tensorrt进行加速推理,但是前提需要cuda,rk的板子上都是Arm的手机gpu,没有Nvidia的cuda,所以这条路行不通。那么转过来,使用开发板自带的NPU进行加速推理,岂不是更加可行,而且它本身就是深度学习嵌入式板子,不用NPU真的可惜。

🏅问题来了:怎么使用NPU?在开发板上还是在自己的PC上?要安装什么环境?怎么安装?这些问题都需要依次考虑清楚。因为我在此之前也没有接触过NPU,所以为此做了很多功课,看了很多教程,总计有10h以上。然后今天自己成功实践了下转换rknn模型,并使用npu推理。为了让后面的同学少走弯路,特此花1个h记录下这个使用过程,因为官方教程真的很不详细,很多地方都需要自己踩坑然后填好,那么开始正题!

🍍一、主要功能

RKNN-Toolkit2 是为用户提供在 PC、 Rockchip NPU 平台上进行模型转换、推理和性能评估的开发套件,用户通过该工具提供的 Python 接口可以便捷地完成以下功能:

🏆模型转换:支持 Caffe、TensorFlow、TensorFlow Lite、ONNX、DarkNet、PyTorch 等模型转为 RKNN 模型,并支持 RKNN 模型导入导出,RKNN 模型能够在 Rockchip NPU 平台上加载使用。🎽量 化 功 能 : 支 持 将 浮 点 模 型 量 化 为 定 点 模 型 , 目 前 支 持 的 量 化 方 法 为 非 对 称 量 化 , 并 支 持 混 合 量 化 功 能 。asymmetric_quantized-16 目前版本暂不支持。🎯模型推理:能够在 PC 上模拟 Rockchip NPU 运行 RKNN 模型并获取推理结果;或将 RKNN模型分发到指定的 NPU 设备上进行推理并获取推理结果。🏋性能和内存评估:将 RKNN 模型分发到指定 NPU 设备上运行,以评估模型在实际设备上运行时的性能和内存占用情况。🎼量化精度分析:该功能将给出模型量化前后每一层推理结果与浮点模型推理结果的余弦距离,以便于分析量化误差是如何出现的,为提高量化模型的精度提供思路。

RK3588 内置 NPU 模块, 处理性能最高可达6TOPS。使用该NPU需要下载RKNN SDK,RKNN SDK 为带有 NPU 的RK3588S/RK3588 芯片平台提供编程接口,能够帮助用户部署使用 RKNN-Toolkit2 导出 RKNN 模型,加速 AI应用 的落地。

🍎二、系统依赖

本开发套件支持运行于 Ubuntu操作系统 (目前版本 Windows、MacOS、Debian 等暂不支持)。 Ubuntu系统需要满足以下运行环境要求:

操作系统版本Ubuntu18.04(x64)及以上Python 版本3.6 / 3.8Python 库依赖详见 doc/requirements*.txt🍌三、安装RKNN-Toolkit

下面我以 Ubuntu 18.04、Python3.6 为例,说明如何快速上手使用 RKNN-Toolkit2。我的开发板为ITX-3588J,但是开发板型号并不影响。

1、安装Python3.6和pip3sudo apt-get install python3 python3-dev python3-pip

2、 安装相关依赖sudo apt-get install zlib1g zlib1g-dev

注意这个包中间是数字1,不是字母l,直接复制命令回车最安全。

sudo apt-get install libxslt1-dev libglib2.0-0 libsm6 libgl1-mesa-glx libprotobuf-dev gcc

我的Ubuntu系统已经装了很多SLAM的环境,真的很担心依赖冲突,不过经过检验,发现并没有任何冲突。

3、获取RKNN-Toolkit2安装包

从Firefly官网获取RKNN_SDK_V1.3.0工具, 里面会有RKNN-Toolkit2 安装包,我是保存到百度网盘,然后在Windows下载好之后,使用U盘拷贝到Ubuntu系统的。当然也可以直接通过官网下载,但是比较慢。如果你是从网盘下载的,里面的docker镜像文件不需要下载,用不到,大家切记!解压后,你的文件夹内容应该和我一样(rknpu2_1.3.0是我从外面解压进来了,本教程还用不到,在后面的教程会用到)。

4、安装Python环境rk3588使用npu进行模型转换和推理,加速AI应用落地(rk3328 sdk)

之前安装的是Ubuntu依赖,这里需要安装numpy、python_opencv等依赖包。这里为了防止Python环境污染,我使用了virtualenv来管理环境,非常方便且安全,安装和使用方法可以查看这篇教程:如何安装和使用virtualenv——python环境的管理大师。这篇教程中创建的环境也就是我这里要使用的环境。

先激活环境,然后pip install -r doc/requirements_cp36-1.3.0.txt,如果出现报错:

上面在安装bfloat16时失败,因为它依赖于numpy,但是它并没有被安装呢,所以我们先手动安装下numpy。

pip install numpy==1.16.6

然后重新执行命令:pip install -r doc/requirements_cp36-1.3.0.txt,上面已经下载好的依赖不会重复下载,所有依赖下载完成后进行统一安装。

5、安装RKNN-Toolkit2sudo pip3 install packages/rknn_toolkit2-1.3.0_11912b58-cp36-cp36m-linux_x86_64.whl

可以看到在py36环境中,所有依赖都已满足。

6、检验是否安装成功python3from rknn.api import RKNN

如果导入 RKNN 模块没有失败,说明安装成功。同时按住 Ctrl+D 退出 Python3。

🍇四、在PC上仿真运行示例

RKNN-Toolkit2 自带了一个模拟器,可以用来仿真模型在 npu 上运行时的行为。就相当于Android Studio自带模拟器一样。那么真机就相当于开发板。RK3588目前只支持模拟仿真,还不支持连板调试,在真机上会报错显示rknn server版本过低,等后面官方更新好就可以连板推理了。

这里我以 yolov5 为例。examples中的yolov5是一个 onnx 模型,用于目标检测,它是在模拟器上运行的。

1、进入目录cd examples/onnx/yolov52、运行程序python3 test.py

可以看到程序中执行的主要操作有:创建 RKNN 对象;模型配置;加载 onnx 模型;构建 RKNN 模型;导出 RKNN 模型;加载图片并推理,得到推理结果;释放 RKNN 对象。

examples 目录中的其他示例的执行方式与 yolov5 相同,这些模型主要用于图像分类、目标检测。

3、模型和推理结果

简单修改下test.py文件,显示并保存结果图片,不得不说,npu推理的检测框置信度高的离谱,不愧是嵌入式神经网络,比原先yolov5高很多。而且运行速度也比官网的cpu版本快很多。

转 换 后 的 模 型 默 认 保 存 路 径 为/rknn-toolkit2-1.x.x/examples/onnx/yolov5/yolov5s.rknn ,推 理 的 图 片 结 果 保 存 在/rknn-toolkit2-1.x.x/examples/onnx/yolov5/result.jpg。

参考文献:Rockchip_Quick_Start_RKNN_Toolkit2_CN-1.3.0.pdf

本文链接地址:https://www.jiuchutong.com/zhishi/281327.html 转载请保留说明!

上一篇:dotnetfx.exe是什么进程(dotnetfx35.exe)

下一篇:Linux使用xinetd服务的管理方法案例详解(如何使用linux服务器)

  • 宝贝标题这样写才能增加曝光度(宝贝标题一般由哪些词组成)

    宝贝标题这样写才能增加曝光度(宝贝标题一般由哪些词组成)

  • 哈罗单车怎么取消月卡自动续费(哈罗单车怎么取消自动续费功能)

    哈罗单车怎么取消月卡自动续费(哈罗单车怎么取消自动续费功能)

  • 抖音上能私聊吗(抖音上能私聊吗?)

    抖音上能私聊吗(抖音上能私聊吗?)

  • oppo手机上的视频怎么在电视上播放(oppo手机上的视频如何投屏到电视)

    oppo手机上的视频怎么在电视上播放(oppo手机上的视频如何投屏到电视)

  • 抖音同城怎么设置不感兴趣(抖音同城怎么设置距离从近到远优先)

    抖音同城怎么设置不感兴趣(抖音同城怎么设置距离从近到远优先)

  • sas接口和sata接口的区别(sas接口和sata接口能混插吗)

    sas接口和sata接口的区别(sas接口和sata接口能混插吗)

  • 腾讯会议怎么没有共享(腾讯会议怎么没有聊天界面)

    腾讯会议怎么没有共享(腾讯会议怎么没有聊天界面)

  • 怎么在b站下载视频到手机(怎么在b站下载视频)

    怎么在b站下载视频到手机(怎么在b站下载视频)

  • 正在撤销对计算机所做的更改要等多久(正在撤销对计算机更改要多久)

    正在撤销对计算机所做的更改要等多久(正在撤销对计算机更改要多久)

  • 美国v版是什么意思(美版iphone v版)

    美国v版是什么意思(美版iphone v版)

  • etc显示蓝牙已开是什么意思(ETC显示蓝牙已开是怎么回事)

    etc显示蓝牙已开是什么意思(ETC显示蓝牙已开是怎么回事)

  • 苹果x扬声器没声音(苹果x扬声器没声音无线局域网打不开)

    苹果x扬声器没声音(苹果x扬声器没声音无线局域网打不开)

  • itunes备份是全部吗(itunes备份全吗)

    itunes备份是全部吗(itunes备份全吗)

  • 华为mate30有无线充电吗(华为mate30有无线耳机吗)

    华为mate30有无线充电吗(华为mate30有无线耳机吗)

  • oppo怎么弄时间水印(oppo怎么弄时间在桌面)

    oppo怎么弄时间水印(oppo怎么弄时间在桌面)

  • 键盘长度一般多少cm(键盘长度一般多少寸)

    键盘长度一般多少cm(键盘长度一般多少寸)

  • oppo电话拦截怎么取消(oppo电话拦截怎么开)

    oppo电话拦截怎么取消(oppo电话拦截怎么开)

  • 支付宝怎么预约花呗还款日(支付宝怎么预约健康证办理)

    支付宝怎么预约花呗还款日(支付宝怎么预约健康证办理)

  • 网页版b站怎么缓存(网页版b站怎么截图)

    网页版b站怎么缓存(网页版b站怎么截图)

  • 苹果手机xr能无线充电吗(苹果xr手机可以无线充电吗?)

    苹果手机xr能无线充电吗(苹果xr手机可以无线充电吗?)

  • Mtdacq.exe - Mtdacq是什么进程 有什么用

    Mtdacq.exe - Mtdacq是什么进程 有什么用

  • 深入学习 JavaScript 转译器 Babel ,AST还原混淆代码(java deep learning)

    深入学习 JavaScript 转译器 Babel ,AST还原混淆代码(java deep learning)

  • 对抗生成网络(GAN)中的损失函数(对抗生成网络算法)

    对抗生成网络(GAN)中的损失函数(对抗生成网络算法)

  • 对于HashMap的容量的一些分析(hashmap的使用场景)

    对于HashMap的容量的一些分析(hashmap的使用场景)

  • 车辆保险费发票的会计分录
  • 个人是否可以申请精神司法鉴定
  • 公司购进一台不需要安装的设备设备价款为700万元
  • 等线支付给劳务派遣单位的工资怎么做账
  • 买原材料怎么记账
  • 建筑企业外管证有效期
  • 股权转让开票怎么做账
  • 收取境外技术服务费如何
  • 个体工商户免征税额度是多少
  • 律师事务所的账务流程
  • 支付个人无发票怎么入账
  • 增值税专用发票抵扣期限
  • 兼营行为的税务处理办法
  • 当月发票未收到怎么办
  • 顺流交易为什么不管是否出售
  • 企业工资薪酬包括哪些内容
  • 个人增值税业务有哪些?
  • 制造费用属于成本类还是损益类
  • 过期没有进行申报印花税会怎样
  • 技术服务从哪年开始实施
  • 保险费可以抵扣嘛
  • 虚开发票可以做进项税额转出分录吗?
  • 这些常用的发票知识,你都知道了吗?
  • 超过单张发票限额
  • 金融衍生工具的特点不包括
  • 劳务派遣个税怎么扣
  • 电商平台收取的手续费
  • win10新建文件夹快捷键ctrl加什么
  • win11玩游戏怎样
  • 公司纳税高说明什么
  • 购入办公楼按多少折算
  • 怎么隐藏单元
  • ahc软件进不去
  • Win11怎么设置屏幕熄灭时间
  • 无偿调入固定资产
  • 对公帐户定期存款利率
  • PHP:stream_encoding()的用法_Stream函数
  • php运用
  • 技术安装工人包食宿
  • 个人信息提供者
  • 申请专利费用计入哪个科目
  • program status
  • 用python写
  • 应收应付对冲的会计分录
  • 什么是汇算清缴申报表
  • 地方教育附加是非税收入吗
  • 帝国cms8.0
  • python3.9怎么删除
  • macos装mysql
  • 收据可以当发票吗?
  • 房地产企业印花税计入什么科目
  • 税务处理决定书和处罚决定书
  • 其他应收款余额在贷方什么意思
  • 工商年审中实缴还是虚缴
  • 员工借款还款怎么做账
  • 用货款抵扣供应商成本
  • 搞活动的现金红包怎么用
  • 工程施工人工费,材料费,机械费占多少比例
  • 金税盘可以用热点吗
  • 结转已售材料成本6000元
  • ebr.ahrcu
  • winio在win7下使用
  • windows注册表修改任务栏
  • find.exe应用程序错误
  • linux bas
  • gzip: stdin: unexpected end of file tar: Unexpected EOF in archive tar: Unexpect
  • 系统自动保存文件在哪里
  • cocos2dx-js
  • 正则表达式语法 \d
  • Extjs ajax同步请求时post方式参数发送方式
  • 基于HTML5和CSS3的响应式Web的设计与实现
  • shell脚本用法
  • 用javascript
  • typescript的type
  • 前端闭包函数
  • 怎么在晋江查找观看记录
  • 中国税务精神内容英文
  • 支付宝怎么样开通刷脸支付
  • 华为领导班子成员名单
  • 四川省地方税务局公告2018年第1号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设