地平线J3平台yolov3模型部署
1 环境搭建(参看另外文档)
2 将caffe模型(浮点型)定点量化
2.1 在工作目录下创建个人目录
(1) 工作目录为:/tp_work/ddk/samples/ai_toolchain/horizon_model_convert_sample/04_detection
(2) 在该目录下创建个人目录 08_tp_yolov3
(3) 将02_yolov3里的mapper文件夹全部拷贝进 08_tp_yolov3
(4) cd 08_tp_yolov3/mapper 进入mapper目录
(5)创建weights文件夹,用于存放训练权重文件和网络文件 mkdir weights
(6)拷贝 model_zoo里的yolov3的示例权重和网络文件
cp ../../../../model_zoo/mapper/detection/yolov3/* weights/
也可以用自己训练出来的权重文件,如果使用darknet框架,则需要将模型文件转成caffemodel,参见另外文档。
此时目录树为:
2.2 模型验证
验证所使用的网络模型是否符合地平线的算子约束,并生成相应结果信息。
vim 01_check.sh
将proto和caffe_model的路径改为自己的模型网络文件(*.prototxt)和权重文件(*.caffemodel)的路径。
执行脚本: sh 01_ckeck.sh
结果没有报错,说明网络模型符合地平线J3平台算子约束。
2.3 模型转换
将训练出来的复电模型转换为J3平台支持的混合异构模型。
vim yolov3_config.yaml
将图中三个路径改为自己的路径,将preprocess_on 设置为True,确保校准图像和训练图像大小不一致时进行适配。
执行 sh 03_build.sh
该脚本完成 模型解析(转成onnx)->模型优化->模型校准->模型量化->模型编译过程,最终生成结果如下图所示:
完成整个转换过程。