46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
|
|
# 导出 RKNPU 适配模型说明
|
|||
|
|
|
|||
|
|
## Source
|
|||
|
|
|
|||
|
|
本仓库基于 https://github.com/ultralytics/ultralytics 仓库的 0b0bc56675997fe66b13aa0d250b777c8a467e32 commit 进行修改,验证.
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 模型差异
|
|||
|
|
|
|||
|
|
在基于不影响输出结果, 不需要重新训练模型的条件下, 有以下改动:
|
|||
|
|
|
|||
|
|
- 修改输出结构, 移除后处理结构. (后处理结果对于量化不友好)
|
|||
|
|
|
|||
|
|
- dfl 结构在 NPU 处理上性能不佳,移至模型外部的后处理阶段,此操作大部分情况下可提升推理性能。
|
|||
|
|
|
|||
|
|
|
|||
|
|
- 模型输出分支新增置信度的总和,用于后处理阶段加速阈值筛选。
|
|||
|
|
|
|||
|
|
|
|||
|
|
以上移除的操作, 均需要在外部使用CPU进行相应的处理. (对应的后处理代码可以在 **RKNN_Model_Zoo** 中找到)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 导出onnx模型
|
|||
|
|
|
|||
|
|
在满足 ./requirements.txt 的环境要求后,执行以下语句导出模型
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
# 调整 ./ultralytics/cfg/default.yaml 中 model 文件路径,默认为 yolov8n.pt,若自己训练模型,请调接至对应的路径。支持检测、分割、姿态、旋转框检测模型。
|
|||
|
|
# 如填入 yolov8n.pt 导出检测模型
|
|||
|
|
# 如填入 yolov8-seg.pt 导出分割模型
|
|||
|
|
|
|||
|
|
export PYTHONPATH=./
|
|||
|
|
python ./ultralytics/engine/exporter.py
|
|||
|
|
|
|||
|
|
# 执行完毕后,会生成 ONNX 模型. 假如原始模型为 yolov8n.pt,则生成 yolov8n.onnx 模型。
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
## 转RKNN模型、Python demo、C demo
|
|||
|
|
|
|||
|
|
请参考 https://github.com/airockchip/rknn_model_zoo
|
|||
|
|
|