赞
踩
首发时间:2024年4月23日10点09分
更新时间:2024年5月24日15点05分 (更新 后续任务:2. 对自己训练的模型进行部署)
首先,下载整个部署工作需要的文件,如下:
注意:以下文件最好放到ubuntu子系统里面进行解压,windows下解压会出现文件缺失,问题很严重。
- RKNN Model Zoo基于 RKNPU SDK 工具链开发, 提供了目前主流算法的部署例程. 例程包含导出RKNN模型, 使用 Python API, CAPI 推理 RKNN 模型的流程。
- https://github.com/airockchip/rknn_model_zoo
-
- yolov8s.onnx模型
- https://ftrg.zbox.filez.com/v2/delivery/data/95f00b0fc900458ba134f8b180b3f7a1/examples/yolov8/yolov8s.onnx
-
- rknn官方压缩文件
- https://github.com/rockchip-linux/rknn-toolkit/archive/refs/tags/v1.7.5.tar.gz
-
- rknn官方安装包压缩文件
- https://github.com/rockchip-linux/rknn-toolkit/releases/download/v1.7.5/rknn-toolkit-v1.7.5-packages.tar.gz
-
- arm交叉编译工具
- https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz?revision=e09a1c45-0ed3-4a8e-b06b-db3978fd8d56&rev=e09a1c450ed34a8eb06bdb3978fd8d56&hash=9C4F2E8255CB4D87EABF5769A2E65733
-
在微软商店下载安装ubuntu18.04LTS
ubuntu子系统默认已经安装python,输入python3可以看到版本为python3.6.9
为了方便演示,重新安装python3.6.8取代python3.6.9(不使用conda)
- sudo apt update
-
- sudo apt upgrade
-
- sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev gcc
-
- wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
-
- tar zxvf Python-3.6.8.tgz
-
- cd Python-3.6.8
-
-
- ./configure --enable-optimizations
-
- make
-
- sudo make install

重启并输入python3和pip list进行验证
安装如下python包
推荐先安装rknn-toolkit。在rknn官方安装包压缩文件中找到如下文件用pip安装。
rknn_toolkit-1.7.5-cp36-cp36m-linux_x86_64.whl
然后安装torch,tensorflow等。推荐加上清华源。
最后安装简单的包。
安装过程中出现问题可以直接在如下网址找whl安装。好用。
安装完成后,python环境如下所示。
- Package Version
- -------------------- -----------
- absl-py 1.4.0
- appdirs 1.4.4
- astor 0.8.1
- audioread 3.0.1
- cached-property 1.5.2
- certifi 2024.2.2
- cffi 1.15.1
- chardet 3.0.4
- click 8.0.4
- cycler 0.11.0
- dataclasses 0.8
- decorator 5.1.1
- dill 0.2.8.2
- Flask 2.0.2
- flatbuffers 1.10
- gast 0.5.4
- google-pasta 0.2.0
- graphviz 0.8.4
- grpcio 1.48.2
- h5py 2.10.0
- idna 2.8
- importlib-metadata 4.8.3
- importlib-resources 5.4.0
- itsdangerous 2.0.1
- Jinja2 3.0.0
- joblib 1.1.1
- Keras-Applications 1.0.8
- Keras-Preprocessing 1.1.2
- kiwisolver 1.3.1
- librosa 0.8.0
- llvmlite 0.36.0
- lmdb 0.93
- Markdown 3.3.7
- MarkupSafe 2.0.1
- matplotlib 3.3.4
- mxnet 1.5.0
- networkx 1.11
- numba 0.53.1
- numpy 1.19.5
- onnx 1.10.0
- onnxoptimizer 0.2.7
- onnxruntime 1.9.0
- opencv-python 4.5.1.48
- packaging 21.3
- Pillow 8.4.0
- pip 21.3.1
- ply 3.11
- pooch 1.6.0
- protobuf 3.13.0
- psutil 5.6.2
- pycparser 2.21
- pyparsing 3.1.2
- python-dateutil 2.9.0.post0
- requests 2.22.0
- resampy 0.4.3
- rknn-toolkit 1.7.5
- ruamel.yaml 0.15.81
- scikit-learn 0.24.2
- scipy 1.4.1
- setuptools 59.6.0
- six 1.16.0
- sklearn 0.0
- soundfile 0.12.1
- tensorboard 1.14.0
- tensorflow 1.14.0
- tensorflow-estimator 1.14.0
- termcolor 1.1.0
- threadpoolctl 3.1.0
- torch 1.9.0
- torchaudio 0.9.0
- torchvision 0.10.0
- tqdm 4.63.0
- typing_extensions 4.1.1
- urllib3 1.25.11
- Werkzeug 2.0.3
- wheel 0.37.1
- wrapt 1.16.0
- zipp 3.6.0

进行验证
运行如下命令解压arm编译工具:
- xz -d gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
- tar -xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar
解压完成后将解压目录设置到bash里,设置环境变量:
- vim ~/.bashrc
- export PATH=/home/ss/RV1126/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:$PATH
- # 修改为自己的目录,加到最末尾即可
- source ~/.bashrc
验证版本信息
arm-linux-gnueabihf-gcc --version
方便演示,直接使用官方模型。
进入如下目录,把onnx模型放到该目录下。
运行如下命令:
python3 convert.py yolov8s.onnx rv1126
运行成功可以在如下目录生成rknn模型:
进入rknn_model_zoo中build-linux.sh文件所在目录
运行如下命令保证编译环境导入成功
- export GCC_COMPILER=/home/aoweineng2/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf
-
- # 换成自己的路径
赋予权限
chmod 777 build-linux.sh
升级cmake
cmake版本要求3.15.0以上,cmake官网下载高版本的cmake
运行如下命令:
- tar -zxvf cmake-3.17.3.tar.gz
- cd cmake-3.17.3/
- ./configure
- make -j8
- sudo make install
- cmake --version
运行如下命令进行编译
./build-linux.sh -t rv1126 -a armhf -d yolov8
等待一段时间,编译成功即可。
编译后在如下目录得到 rknn_yolov8_demo 文件。
以上工作顺利完成后,后面就很简单了。
先整理需要放置到rv1126开发板上的文件。
需要创建一个文件夹,文件夹下文件如下(包含第4步得到的yolov8编译文件,第5步得到的yolov8.rknn模型。以及待测图片和类别txt文件):
此处由于工作环境受限,开发板无法联网。
使用adb调试。
需提前安装adb,可以参考链接ADB安装及使用详解(非常详细)从零基础入门到精通,看完这一篇就够了-CSDN博客
在cmd中输入adb devices,可以看到rv1126开发板ID,即连接成功。
在cmd中输入adb shell,进入rv1126系统目录。
将第6步得到的文件夹push到rv1126开发板,在本地电脑cmd环境下运行:
adb push rknn_yolov8_demo /install
进入rknn_yolov8_demo 目录,运行:
- chmod 777 rknn_yolov8_demo # 赋予足够权限
-
- ./rknn_yolov8_demo yolov8.rknn bus.jpg
得到如下运行结果和输出图片:
成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
下面的步骤依旧是在ubuntu18.04LTS子系统上进行
这里需要借助一个gitee项目,地址:
- https://gitee.com/Coder_Zr/YOLOv8_RKNN
-
- # 项目比较大,需要用git.exe下载
项目放在windows驱动器上即可。
将下面目录中清空,放入自己的pt模型:
在ubuntu18.04LTS子系统中运行命令:
- cd /mnt/d/shengong/rv1126/YOLOv8_RKNN/ultralytics_yolov8/ # 进入自己下载的路径
- export PYTHONPATH=./
- python3 ./ultralytics/engine/exporter.py
-
- # 运行python3 ./ultralytics/engine/exporter.py可能出现缺包问题
- #尤其是from _lzma import * 报错比较麻烦
-
- #运行
- apt install -y liblzma-dev
- pip3 install backports.lzma
-
- sudo vim /usr/local/lib/python3.6/lzma.py # 修改文件
-
- from _lzma import *
- from _lzma import _encode_filter_properties, _decode_filter_properties
- 修改为
- try:
- from _lzma import *
- from _lzma import _encode_filter_properties, _decode_filter_properties
- except ImportError:
- from backports.lzma import *
- from backports.lzma import _encode_filter_properties, _decode_filter_properties

就可以在YOLOv8_RKNN/model文件夹下得到best.onnx模型。
这里就可以回到之前的项目 rknn_model_zoo-main 中,参考4. onnx转rknn
瑞芯微RV1126/1109开发流程之yolov5部署(c++版本)
rv1126上跑yolov8。借助rknn_model_zoo 2.0更新,重点:在线预编译
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。