本文记录了本人在配置RK3588 的PC环境时遇到的所有坑
引言
最近在做毕设,由于是第一次接触NPU,所以踩了不少坑,顺便将它记录下来,防止后来者继续踩(doge)hh。
许多人都和我一样,刚到手拿到一块NPU算力版的时候都不知道从何下手,是先在PC端操作呢还是直接在板子上操作?
本人虽然熟悉一些类似于STM32 ,esp等板子,但是也是第一次接触NPU
在经过我的踩坑和学习之后,大概总结出了这么一套流程:
- 先在PC端按照官方出的教程打包板子需要的系统,我打包的是Ubuntu系统
- 继续在PC端操作,主要是对于RKNN-Toolkit2环境的配置
- 在PC端跑一些demo,并将一些模型转化为RKNN模型
- 最后部署到板子
第一步:安装Ubuntu系统:
在这一步中,有些板子是Ubuntu20.04,有些是18.04,我的建议是官方教程是什么版本就安装什么版本,避免不需要的麻烦:
- VM 和Ubuntu下载:
Ubuntu20.04 :Ubuntu20.04清华源
VM 17pro :VM 17pro - VMware虚拟机安装Ubuntu20.04详细图文教程
在安装好Ubuntu系统之后就是最烦人的步骤:配置环境了
经过本人亲测:Ubuntu20.04自带的python3.8配置环境是失败的,不知道大家是否有配置成功的(我反正是配了一天没配好)
在RKNN Toolkit2中 有cp36和cp38的requirements文件,cp38的到后面总是报错,但ubuntu20.04中又有一些之前build好的文件,所以我们在Ubuntu上装一个python3.6,并将其设为默认python版本,这样就不会有版本冲突的问题啦!
上操作:
sudo apt update
sudo apt install software-properties-common
sudo apt install python3.36-dev
sudo apt install python3.6-tk
然后再使用这篇博客中提到的方法,就成功将默认python版本改为3.6了
第二步:安装并创建Virtuelenv环境管理python版本
Virtualenv 的安装:
sudo apt-get install virtualenv
Virtuelenv的使用
- 创建管理目录、
mkdir ~/Virtualenv
- 创建环境
每次创建环境前,先cd到该目录下,这样创建的虚拟环境就存放在该目录中了
cd Virtualenv
virtualenv -p /usr/bin/python3.6 venv
##“/usr/bin/python3.6”即python3.6的安装路径,venv为环境名称
- 激活环境
假如我要激活nenv环境:
source venv/bin/activate
- 退出环境
输入
deactivate
- 删除环境
如果某个环境不想要了,想删除环境,那么直接在Virtualenv目录下执行命令:
rm -r 环境名
#类似于 rm -r venv
第三步:安装python环境:
首先我们需要下载官方的sdk文件:FireFly下载
在其中找到对应的:
点击下载,注意,只需要下载RKNN_SDK_V1.3.0
下载好后放在Ubuntu系统的根目录
安装对应的依赖:
pip3 install -r ../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/doc/requirements_cp36-1.3.0.txt
# 注意自己存放的路径
在这里可能会出现pip安装速度慢或者一直超时不安装的情况:
我们只需要更换pip源就可以了,这里介绍一种简单的操作:
在 pip命令后自己设定收集源(-i +url),例如使用豆瓣源
pip3 install pqi -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
在pqi安装好之后,我们可以输入:
pqi ls
然后你就可以选择其中一个源了
pqi use douban
然后继续输入:
pip3 install -r ../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/doc/requirements_cp36-1.3.0.txt
在安装过程中可能依旧会有报错:
我们只需要:
pip install numpy==1.16.6
当出现:
说明我们已经将环境安装好了
接下来我们继续安装RKNN-Toolkit2
第四步:安装RKNNToolkit2
pip install ../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/packages/rknn_toolkit2-1.3.0_11912b58-cp36-cp36m-linux_x86_64.whlLooking in indexes: http://pypi.douban.com/simple/
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad0acf6086784ef08094db3a536a8ffc.png
如果上面的以来都安装好了,这个环节一般都不会出错;
为了以防万余,我们来测试一下:
python3
from rknn.apt import RKNN
如果没有任何报错信息,那就说明我们安装成功了
在PC端运行Demo
首先,cd到yolov5 的目录下:
cd ../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/examples/onnx/yolov5
直接运行:
python3 test.py
我们可以看到程序中包括创建RKNN对象,模型配置;加载 onnx 模型;构建 RKNN 模型;导出 RKNN 模型;加载图片并推理,得到推理结果;释放 RKNN 对象。
转 换 后 的 模 型 默 认 保 存 路 径 为**/rknn-toolkit2-1.x.x/examples/onnx/yolov5/yolov5s.rknn ,推 理 的 图 片 结 果 保 存 在/rknn-toolkit2-1.x.x/examples/onnx/yolov5/result.jpg**
未完待续……………………
coding:Deepsort部署在RK3588平台
YOLOV5_Deepsort_RKNN