模型转换说明: # 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即可