目前tensorflow,pytorch首先需要将自己的模型转为onnx模型,再使用工具链条转换模型; caffe可直接使用工具链转换,目前Onnx支持的版本为opset10。
本文选择yolov2案例,官方已在工具链中提供yolov2的caffe模型,可直接运行测试。
一.检查模型
- 进入示例脚本放置的文件夹
cd samples/04_detection/01_yolov2/mapper
- 执行模型检查
sh 01_check.sh
二.校准
-
首先需要创建文件以下文件目录,准备一些数据。
#此文件只放图片(几十张就行了)
samples/01_common/data/coco/calibration_data
#此文件下需要放coco数据集格式
samples/01_common/data/coco/coco_val2017
-
开始校准
sh 02_preprocess.sh
三.build runtime模型
此步骤根据转换的配置文件,转换为开发板使用模型(自定义模型需要根据自己的模型更改)。
#yolov2的转换的配置文件为yolov2_config.yaml
sh 03_build.sh
转换成功后输出以下内容,以及在model_output下生成yolov2_hybrid_horizonrt.bin
四.Demo运行测试
此步骤建立在完成前面一二三步骤基础上。
4.1 开发机仿真运行(不需要的直接跳到4.2)
- 1.构建
cd samples/04_detection/01_yolov2/runtime_sim
sh 01_build.sh
构建结束后,会生成release 文件夹。
- 2.数据预处理
sh 02_preprocess.sh
- 3.推理
sh 03_infer.sh
推理完成会保存这在imgae_out下。
- 4.模型评测
因为没有完整数据集这里跳过这步
4.2 板上运行
- 1.构建
cd samples/04_detection/01_yolov2/runtime_arm
sh 01_build.sh
- 2.数据预处理(可以不需要)
sh 02_preprocess.sh
- 3.打包发送到开发板
#这里IP为开发板的IP地址
sh 03_scp_to_board.sh 192.168.124.103
发送文件后在开发板/userdata/samples目录下。
- 4.ssh开发板运行推理脚本
cd /userdata/samples/yolov2
sh dev_board_01_infer.sh
输出图片在image_out目录下
五.参考
https://developer.horizon.ai/resource
https://developer.horizon.ai/forum/id=5f5f19e8cc8b1e59c8582b0a