RK3588環(huán)境配置過程全記錄 step 1
@[TOC](本文記錄了本人在配置RK3588 的PC環(huán)境時(shí)遇到的所有坑)
引言
最近在做畢設(shè),由于是第一次接觸NPU,所以踩了不少坑,順便將它記錄下來,防止后來者繼續(xù)踩(doge)hh。
許多人都和我一樣,剛到手拿到一塊NPU算力版的時(shí)候都不知道從何下手,是先在PC端操作呢還是直接在板子上操作?
本人雖然熟悉一些類似于STM32 ,esp等板子,但是也是第一次接觸NPU
在經(jīng)過我的踩坑和學(xué)習(xí)之后,大概總結(jié)出了這么一套流程:
先在PC端按照官方出的教程打包板子需要的系統(tǒng),我打包的是Ubuntu系統(tǒng)
繼續(xù)在PC端操作,主要是對于RKNN-Toolkit2環(huán)境的配置
在PC端跑一些demo,并將一些模型轉(zhuǎn)化為RKNN模型
最后部署到板子
第一步:安裝Ubuntu系統(tǒng):
在這一步中,有些板子是Ubuntu20.04,有些是18.04,我的建議是官方教程是什么版本就安裝什么版本,避免不需要的麻煩:
VM 和Ubuntu下載:
Ubuntu20.04 :Ubuntu20.04清華源
VM 17pro ?:VM 17proVMware虛擬機(jī)安裝Ubuntu20.04詳細(xì)圖文教程
在安裝好Ubuntu系統(tǒng)之后就是最煩人的步驟:配置環(huán)境了
經(jīng)過本人親測:Ubuntu20.04自帶的python3.8配置環(huán)境是失敗的,不知道大家是否有配置成功的(我反正是配了一天沒配好)
在RKNN Toolkit2中 有cp36和cp38的requirements文件,cp38的到后面總是報(bào)錯(cuò),但ubuntu20.04中又有一些之前build好的文件,所以我們在Ubuntu上裝一個(gè)python3.6,并將其設(shè)為默認(rèn)python版本,這樣就不會有版本沖突的問題啦!
上操作:
sudo?apt?update
sudo?apt?install?software-properties-common
sudo?apt?install?python3.36-dev
sudo?apt?install?python3.6-tk
然后再使用這篇博客中提到的方法,就成功將默認(rèn)python版本改為3.6了
Ubuntu更換python版本的方法



第二步:安裝并創(chuàng)建Virtuelenv環(huán)境管理python版本
Virtualenv 的安裝:
sudo?apt-get?install?virtualenv

Virtuelenv的使用
創(chuàng)建管理目錄、
mkdir?~/Virtualenv
創(chuàng)建環(huán)境
每次創(chuàng)建環(huán)境前,先cd到該目錄下,這樣創(chuàng)建的虛擬環(huán)境就存放在該目錄中了
cd?Virtualenv
virtualenv?-p?/usr/bin/python3.6?venv
##“/usr/bin/python3.6”即python3.6的安裝路徑,venv為環(huán)境名稱
激活環(huán)境
假如我要激活nenv環(huán)境:
source?venv/bin/activate
退出環(huán)境
輸入
deactivate
刪除環(huán)境
如果某個(gè)環(huán)境不想要了,想刪除環(huán)境,那么直接在Virtualenv目錄下執(zhí)行命令:
rm?-r?環(huán)境名
#類似于?rm?-r?venv
第三步:安裝python環(huán)境:
首先我們需要下載官方的sdk文件:FireFly下載
在其中找到對應(yīng)的:

點(diǎn)擊下載,注意,只需要下載RKNN_SDK_V1.3.0
下載好后放在Ubuntu系統(tǒng)的根目錄
安裝對應(yīng)的依賴:
pip3?install?-r?../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/doc/requirements_cp36-1.3.0.txt
#?注意自己存放的路徑
在這里可能會出現(xiàn)pip安裝速度慢或者一直超時(shí)不安裝的情況:
我們只需要更換pip源就可以了,這里介紹一種簡單的操作:
在 pip命令后自己設(shè)定收集源(-i +url),例如使用豆瓣源
pip3?install?pqi?-i?http://pypi.douban.com/simple?--trusted-host?pypi.douban.com
在pqi安裝好之后,我們可以輸入:
pqi?ls

然后你就可以選擇其中一個(gè)源了
pqi?use?douban
然后繼續(xù)輸入:
pip3?install?-r?../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/doc/requirements_cp36-1.3.0.txt
在安裝過程中可能依舊會有報(bào)錯(cuò):

我們只需要:
pip?install?numpy==1.16.6

當(dāng)出現(xiàn):

說明我們已經(jīng)將環(huán)境安裝好了
接下來我們繼續(xù)安裝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/

如果上面的以來都安裝好了,這個(gè)環(huán)節(jié)一般都不會出錯(cuò);
為了以防萬余,我們來測試一下:
python3
from?rknn.apt?import?RKNN

如果沒有任何報(bào)錯(cuò)信息,那就說明我們安裝成功了

在PC端運(yùn)行Demo
首先,cd到y(tǒng)olov5 的目錄下:
cd?../RK_NPU_SDK_1.3.0/rknn-toolkit2-1.3.0/examples/onnx/yolov5
直接運(yùn)行:
python3?test.py

我們可以看到程序中包括創(chuàng)建RKNN對象,模型配置;加載 onnx 模型;構(gòu)建 RKNN 模型;導(dǎo)出 RKNN 模型;加載圖片并推理,得到推理結(jié)果;釋放 RKNN 對象。
轉(zhuǎn) 換 后 的 模 型 默 認(rèn) 保 存 路 徑 為**/rknn-toolkit2-1.x.x/examples/onnx/yolov5/yolov5s.rknn **,推 理 的 圖 片 結(jié) 果 保 存 在/rknn-toolkit2-1.x.x/examples/onnx/yolov5/result.jpg
未完待續(xù)……………………
coding:Deepsort部署在RK3588平臺