1. 环境准备与模型转换
在开始 YOLOv8 OBB 旋转目标检测的 RK3588 部署之前,需准备好开发环境和模型文件。
首先准备 RKNN Toolkit2 工具包,这是瑞芯微官方提供的模型转换工具。建议使用 Python 3.6 或 3.7 版本,较高版本可能存在兼容性问题。建议在 Ubuntu 18.04 或 20.04 系统上运行,Windows 环境偶发错误,推荐使用 Linux 系统。
安装依赖包时注意版本匹配:
pip install numpy==1.16.6 pip install opencv-python==4.5.4.60 pip install onnx==1.10.2
模型转换是关键步骤,YOLOv8 OBB 的旋转框检测与普通目标检测有所不同。转换时需特别注意输出节点的设置:
from rknn.api import RKNN
rknn = RKNN()
ret = rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]])
ret = rknn.load_onnx(model='yolov8obb.onnx')
ret = rknn.build(do_quantization=True, dataset='./quant.txt')
ret = rknn.export_rknn('./yolov8obb.rknn')
量化环节易出问题,建议准备 500-1000 张覆盖各种场景的图片作为量化数据集。若量化图片太少或代表性不足,转换后模型精度会明显下降。
2. RK3588 开发环境搭建
RK3588 开发环境搭建需注意以下几点。首先是交叉编译工具的配置,官方提供的 rknn-toolkit2 包已包含完整的交叉编译工具链。
C++ 部署需依赖 RKNN API 和 OpenCV 库。OpenCV 建议使用 4.5 版本以上,编译时需开启 NEON 优化:
git clone https://github.com/opencv/opencv.git
cd opencv && mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_NEON=ON \
-D BUILD_LIST=core,imgproc,imgcodecs ..

