yolov8系列模型转换步骤
1. pt->onnx
- 在官方给出的airockchip/ultralytics_yolov8下,配置cfg/default.yaml中task,mode,model路径:
task: segment # (str) YOLO task, i.e. detect, segment, classify, pose
mode: export # (str) YOLO mode, i.e. train, val, predict, export, track, benchmark
model: xx/yolov8n-seg.pt(自己训练的模型路径) # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
...
format: rknn
- run engine/exporter.py转换为官方算子适应的onnx
PyTorch: starting from '' with input shape (16, 3, 640, 640) BCHW and output shape(s) ((16, 64, 80, 80), (16, 80, 80, 80), (16, 1, 80, 80), (16, 32, 80, 80), (16, 64, 40, 40), (16, 80, 40, 40), (16, 1, 40, 40), (16, 32, 40, 40), (16, 64, 20, 20), (16, 80, 20, 20), (16, 1, 20, 20), (16, 32, 20, 20), (16, 32, 160, 160)) (6.7 MB)
RKNN: starting export with torch 2.4.1+cu121...
ultralytics版本不一致可能会导致(import优先导入了虚拟环境中的包):
ImportError: cannot import name ‘default_class_names’ from ‘ultralytics.nn.autobackend’
pip install -e . 解决问题
2. onnx->rknn
- run rknn_model_zoo/examples/yolov8/python下的convert.py
注意转换前要在rknn toolkit2环境下
python convert.py ./xxx.onnx rk3588
- 最终转换的rknn模型如下图(官方的yolov8n-seg.rknn):13个output

318

被折叠的 条评论
为什么被折叠?



