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
: 设定端口号