引言

最近在做毕设,由于是第一次接触NPU,所以踩了不少坑,顺便将它记录下来,防止后来者继续踩(doge)hh。
许多人都和我一样,刚到手拿到一块NPU算力版的时候都不知道从何下手,是先在PC端操作呢还是直接在板子上操作?

本人虽然熟悉一些类似于STM32 ,esp等板子,但是也是第一次接触NPU
在经过我的踩坑和学习之后,大概总结出了这么一套流程:

  1. 先在PC端按照官方出的教程打包板子需要的系统,我打包的是Ubuntu系统
  2. 继续在PC端操作,主要是对于RKNN-Toolkit2环境的配置
  3. 在PC端跑一些demo,并将一些模型转化为RKNN模型
  4. 最后部署到板子

第一步:安装Ubuntu系统:

在这一步中,有些板子是Ubuntu20.04,有些是18.04,我的建议是官方教程是什么版本就安装什么版本,避免不需要的麻烦:

  1. VM 和Ubuntu下载:
    Ubuntu20.04 :Ubuntu20.04清华源
    VM 17pro :VM 17pro
  2. 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了

Ubuntu更换python版本的方法

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第二步:安装并创建Virtuelenv环境管理python版本

Virtualenv 的安装:

sudo apt-get install virtualenv

在这里插入图片描述

Virtuelenv的使用

  1. 创建管理目录、
mkdir ~/Virtualenv
  1. 创建环境
    每次创建环境前,先cd到该目录下,这样创建的虚拟环境就存放在该目录中了
cd Virtualenv
virtualenv -p /usr/bin/python3.6 venv
##“/usr/bin/python3.6”即python3.6的安装路径,venv为环境名称
  1. 激活环境
    假如我要激活nenv环境:
source venv/bin/activate
  1. 退出环境
    输入
deactivate
  1. 删除环境
    如果某个环境不想要了,想删除环境,那么直接在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

yolov5 deepsort rknn 博主改动

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐