模型转换说明:
1、环境准备(镜像版或源码版):
*docker镜像版安装:w4a8quant-1.7.6.tar.gz
*源码版安装:ppq-xs-1.7.6 (pip -r requirements.txt)
2、模型从.pt转.onnx:
yolov5系类参考脚本:
https://github.com/ultralytics/yolov5/blob/master/export.py
yolov8/yolov11系类参考脚本:
https://github.com/ultralytics/ultralytics/blob/main/tests/test_exports.py
3、模型从.onnx转换到.axmodel
模型配置文件(通用):
config/config_spec.yaml
模型及量化数据准备:
准备量化图片(建议使用训练的图片数据10~100张),将图片路径保存为文件列表filelist.txt 修改配置文件如下:
data:
path: filelist.txt #quantize calibration dataset,only support images list now.
准备onnx模型:
修改配置文件模型路径:
model:
path: deploy.onnx #input model file path. type: string. required: true.
修改配置文件模型信息,如下:
input_shape: # onnx model input shape
- 1
- 3
- 640
- 640
mean:
- 0
std:
- 255
修改生成axmodel文件名,如下:
deploy:
NPUDeploy: true # enable generate axmodel
export: true # enable generate quant model
output_bin_name: deploy.axmodel #rename output axmodel. type: string. required: false. default: compiled.axmodel.
config修改完成后,转换命令如下:
python app/ppq-xs/Helium/myes.py --config config/config_spec.yaml
4、板端运行sample, 目前提供yolov5、yolov8两个模型参考示例
samples/demo_yolov5
samples/demo_yolov8
该示例可以直接运行并绘制出目标框,对用户自己的模型,需修改如下地方:
修改模型位置,替换该目录下的模型:
/data/model/deploy.axmodel
修改模型检测类别数:
文件位置:src/detech.h,修改如下:
/***************************************************************************************************
* 宏定义
***************************************************************************************************/
#define DET_LABEL_NUM (80) // 对应类别数
修改模型输入shape:
文件位置:xpu_infer.cpp,修改如下:
static int gXpuTestNetWidth = 640; // 网络宽度
static int gXpuTestNetHeight = 640; // 网络高度
修改完成后,板端加载ko驱动
运行目录下run.sh即可