跳转至

1. 快速开始

1 AI模型快速转换

onnx_yolov8s模型可在IPU_Toolchain同级目录的Quick_Start_Demo/onnx_yolov8s获取。

1.1 模型转换

初始化SGS_IPU_Toolchain

cd SGS_IPU_Toolchain
source cfg_env.sh

进入onnx_yolov8s目录

cd Quick_Start_Demo/onnx_yolov8s

运行如下命令转换

python3 SGS_IPU_Toolchain/Scripts/ConvertTool/SGS_converter.py onnx \
-i coco2017_calibration_set32 \
--model_file onnx_yolov8s.onnx \
--input_shape 1,3,640,640 \
--input_config input_config.ini \
-n onnx_yolov8s_preprocess.py
--output_file onnx_yolov8s_CHIP.img \
--export_models \
--soc_version CHIP

不同框架模型转化为IPU模型的使用方式详见原始模型到端侧模型转换指南


1.2 模型仿真运行

1.2.1 PC端仿真运行yolov8s浮点模型

yolov8_simulator.py脚本可在IPU_Toolchain同级目录的Quick_Start_Demo/onnx_yolov8s获取。

进入onnx_yolov8s目录

cd Quick_Start_Demo/onnx_yolov8s

运行如下命令

python3 yolov8_simulator.py \
--image 000000562557.jpg \
--model onnx_yolov8s_float.sim \
-n onnx_yolov8s_preprocess.py \
--draw_result output \
--soc_version CHIP

关于calibrator_custom的simulator Python API用法请参考自定义simulator简介

绘制图片保存在output目录,float模型仿真推理output结果(截取前2个展示):

{"image_id": 562557, "category_id": 42, "bbox": [43.684708,187.861725,99.633865,204.318481], "score": 0.947503},
{"image_id": 562557, "category_id": 1, "bbox": [431.325500,144.585709,106.798584,319.920639], "score": 0.890941},

1.2.2 PC端仿真运行yolov8s定点模型

python3 yolov8_simulator.py \
--image 000000562557.jpg \
--model onnx_yolov8s_fixed.sim \
-n onnx_yolov8s_preprocess.py \
--draw_result output \
--soc_version CHIP

绘制图片保存在output目录,fixed模型仿真推理output结果(截取前2个展示):
{"image_id": 562557, "category_id": 42, "bbox": [44.104973,189.841034,96.748329,201.353577], "score": 0.942028},
{"image_id": 562557, "category_id": 1, "bbox": [431.829865,145.265045,105.226593,319.568085], "score": 0.881899},

1.2.3 PC端仿真运行yolov8s离线模型

python3 yolov8_simulator.py \
--image 000000562557.jpg \
--model onnx_yolov8s_CHIP.img \
-n onnx_yolov8s_preprocess.py \
--draw_result output \
--soc_version CHIP

绘制图片保存在output目录,离线模型仿真推理output结果(截取前2个展示):
{"image_id": 562557, "category_id": 42, "bbox": [44.104973,189.841034,96.748329,201.353577], "score": 0.942028},
{"image_id": 562557, "category_id": 1, "bbox": [431.829865,145.265045,105.226593,319.568085], "score": 0.881899},

1.2.4 开发板运行yolov8s离线模型

Linux SDK-alkaid已提供sdk/verify/release_feature/source/dla/ipu_server的app。

板端运行ipu_server开启RPC服务(PORT为设定的port号)

./prog_dla_ipu_server -p PORT

板端已运行prog_dla_ipu_server app 开启了RPC服务,PC端使用yolov8_simulator.py运行AI离线模型。

python3 yolov8_simulator.py \
--image 000000562557.jpg \
--model onnx_yolov8s_fixed.sim_sgsimg.img \
-n onnx_yolov8s_preprocess.py \
--draw_result output \
--soc_version CHIP \
--host 板端ip地址 \
--port PORT

绘制图片保存在output目录,offline模型板端推理output结果(截取前2个展示):
{"image_id": 562557, "category_id": 42, "bbox": [44.104973,189.841034,96.748329,201.353577], "score": 0.942028},
{"image_id": 562557, "category_id": 1, "bbox": [431.829865,145.265045,105.226593,319.568085], "score": 0.881899},

参数解释如下:
--image: 推理图片
--model: AI离线模型(offline.img)
-n: 前处理.py文件
--draw_result: 推理画框结果保存文件夹
--port: 板端ip地址
--host: 设定端口号