本文要实现一个屏幕检测系统,定时向服务器传输屏幕数据,技术栈采用yolov8_det/ppocr
模型训练导出 pt–>onnx–>rknn
本文使用ultralytics yolov8模型进行训练,因为官方的rknn_model_zoo中的示例yolov8支持的最全,包括目标检测、目标分割、目标旋转框检测、目标姿态检测等,当然如果只是检测的模型,选择yolo11也是可以的。
总体流程:ultralytics官方训练得到pt模型–>瑞芯微修改版导出为onnx模型–>rknn_model_zoo模型库examples文件夹下对应模型的convert.py导出为rknn
pt–>onnx
https://github.com/airockchip/ultralytics_yolov8.git
下载上方源代码,安装pytorch、以及相关依赖,不要直接pip install ultralytics这样是没有用到源代码库的,安装相关依赖就行,使用源代码进行训练,瑞星微是修改了部分代码适配的
此外,ultralytics官方库是仅支持检测模型的导出的,不支持分割、姿态检测、旋转框检测的,所以需要使用瑞星微官方修改的库进行onnx导出
onnx–>rknn
下载https://github.com/airockchip/rknn_model_zoo.git,这个需要在ubuntu中进行,可以使用docker
进入examples文件夹,根据模型名称找到对应文件夹
打开convert.py文件。
这里要开始搭建onnx-->rknn的python 3.8环境了[不要使用更高版本,报错]。这里重点就是rknn-toolkit2的安装,我是用的本地安装方式,文件来自于官方的github库:https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit2/packages/x86_64下面的whl文件,安装requirements_cp38-2.3.2.txt依赖然后安装https://github.com/airockchip/rknn-toolkit2/blob/master/rknn-toolkit2/packages/x86_64/rknn_toolkit2-2.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl就行
我的环境配置如下:
certifi==2026.1.4 charset-normalizer==3.4.4 cmake==4.2.1 colorama==0.4.6 coloredlogs==15.0.1 contourpy==1.1.1 cycler==0.12.1 fast-histogram==0.13 filelock==3.16.1 flatbuffers==25.12.19 fonttools==4.57.0 fsspec==2025.3.0 humanfriendly==10.0 idna==3.11 importlib_resources==6.4.5 Jinja2==3.1.6 kiwisolver==1.4.7 lit==18.1.8 MarkupSafe==2.1.5 matplotlib==3.7.5 ml-dtypes==0.2.0 mpmath==1.3.0 networkx==3.1 numpy==1.24.4 nvidia-cublas-cu11==11.10.3.66 nvidia-cublas-cu12==12.1.3.1 nvidia-cuda-cupti-cu11==11.7.101 nvidia-cuda-cupti-cu12==12.1.105 nvidia-cuda-nvrtc-cu11==11.7.99 nvidia-cuda-nvrtc-cu12==12.1.105 nvidia-cuda-runtime-cu11==11.7.99 nvidia-cuda-runtime-cu12==12.1.105 nvidia-cudnn-cu11==8.5.0.96 nvidia-cudnn-cu12==9.1.0.70 nvidia-cufft-cu11==10.9.0.58 nvidia-cufft-cu12==11.0.2.54 nvidia-curand-cu11==10.2.10.91 nvidia-curand-cu12==10.3.2.106 nvidia-cusolver-cu11==11.4.0.1 nvidia-cusolver-cu12==11.4.5.107 nvidia-cusparse-cu11==11.7.4.91 nvidia-cusparse-cu12==12.1.0.106 nvidia-nccl-cu11==2.14.3 nvidia-nccl-cu12==2.20.5 nvidia-nvjitlink-cu12==12.9.86 nvidia-nvtx-cu11==11.7.