firefly RK3399pro 更新 rknn 三件套 & 编译OpenCV !!!

系列文章目录

文章目录

  • 系列文章目录
  • 前言
  • 一、RKNN 三件套介绍
  • 二、更新 DRV
    • 1.查看当前 DRV 版本(1.3.1):
  • 三、更新 rknn-toolkit
    • 1.百度云盘拉取 rknn-toolkit-1.4.0.7z 包并且解压
    • 2.安装 python3.7
    • 3. virtualenv管理python版本
  • 四、更新 API
  • 五、编译OpenCV

前言

本人使用的为firefly官方的RK3399PRO开发板

一、RKNN 三件套介绍

1、rknn-toolkit -> 模型转换推理的 python 环境开工具
2、DRV -> npu 和上位机通信的服务
3、API -> 调用 npu 硬件支援的 api 接口

二、更新 DRV

Firefly 已经把关于 npu 相关的服务程序打包成 deb 包并且推上了 apt 服务器,使用 apt 就可轻松完成更新。

1.查看当前 DRV 版本(1.3.1):

firefly@firefly:~$ dpkg -l | grep 3399pro
ii  firefly-3399pronpu-driver  1.3.1  arm64  <insert up to 60 chars description>

如果 DRV 版本为 1.4.0 就不需要更新跳过此步,否则使用 apt 更新DRV

sudo apt update
sudo apt install firefly-3399pronpu-driver   # 更新完之后重启

三、更新 rknn-toolkit

1.百度云盘拉取 rknn-toolkit-1.4.0.7z 包并且解压

地址:https://pan.baidu.com/s/1bSiUHo-HT5yOP3UuxVg24A
密码: r5tt

也可以在toybrick官网下载rknn-toolkit包

2.安装 python3.7

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt install python3.7-dev

3. virtualenv管理python版本

由于 ubuntu18.04 自带 python3.6 所以需要安装 virtualenv 对多个 python 版本进行管理

sudo apt install virtualenv
virtualenv -p /usr/bin/python3.7 venv

source venv/bin/activate  激活venv环境
(venv) firefly@firefly:~$ pip3 -V
pip 20.3.1 from /home/firefly/venv/lib/python3.7/site-packages/pip (python 3.7)

到此为止,python环境已经准备完毕,然后可以根据rknn-toolkit包内doc文档安装RKNN-Toolkit。
注意:Rokchip 发布的 whl 安装包中也支持 python3.7,但是 Tensorflow 官方并不支持 python3.7。本人建议开发板安装python3.7版本的rknn-toolkit-lite,只含推理功能。另外 rknn-toolkit 也可以安装在 PC 上主要用作模型转换,具体方法请参考 doc/ 下文档,PC下安装使用anaconda管理非常容易。

四、更新 API

1.在完成了 rknn-toolkit 安装后其实同时已经完成了 api 的更新了,如果直接使用 rknn-toolkit 进行开发就可以看到内部调用 api 的版本就是 1.4.0,如:
firefly RK3399pro 更新 rknn 三件套 & 编译OpenCV !!!_第1张图片

2.Rockchip rknn api 除了支持 python 接口同时也支持 C/C++ 接口,C/C++无需依赖任何安装包,只需链接上librknn_api.so和rknn_api.h,下载 rknpu 仓库就可以获取对应库文件和 demo 了

git clone https://github.com/FireflyTeam/rknpu.git -b rk

五、编译OpenCV

以下方法本人亲测可行,并且非常简单,aarch64架构无法用pip安装OpenCV,需要源码编译,这样就能python能用,C、C++也能用编译的OpenCV了
1.安装所需库等等

sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python3.7-dev python3.7-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

2.下载opecv源码并切换分支到3.4.x # 选择想安装的OpenCV版本

git clone https://github.com/opencv/opencv.git
cd opencv/
git checkout 3.4.x
git clone https://github.com/opencv/opencv_contrib.git   # 可选
cd opencv_contrib/
git checkout 3.4.x

3.build

cd opencv/
mkdir build
cd build/
 
export PY_NAME=$(python3.7 -c 'from sys import version_info as v; print("python%d.%d" % v[:2])')   # 替换你想绑定的python版本
export PY_NUMPY_DIR=$(python3.7 -c 'import os.path, numpy.core; print(os.path.dirname(numpy.core.__file__))')   # 替换你想绑定的python版本
 
cmake -DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
\
-DPYTHON_DEFAULT_EXECUTABLE=$(which python3.7) \   # 替换你想绑定的python版本
-DPYTHON3_EXECUTABLE=$(which python3.7) \          # 替换你想绑定的python版本
-DPYTHON3_INCLUDE_DIR=/usr/include/$PY_NAME \
-DPYTHON3_INCLUDE_DIR2=/usr/include/aarch64-linux-gnu/$PY_NAME \
-DPYTHON3_LIBRARY=/usr/lib/aarch64-linux-gnu/lib$PY_NAME.so \
-DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/$PY_NAME/dist-packages/numpy/core/include/ \
\
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_PERF_TESTS=OFF \
\
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \   # 可选
..

make -j$(nproc)
sudo make install

4.环境变量配置

执行:sudo vim /etc/ld.so.conf  在后面添加:/usr/local/lib
执行:/sbin/ldconfig 使得环境变量生效

你可能感兴趣的:(RK3399,神经网络)