地平线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)->模型优化->模型校准->模型量化->模型编译过程,最终生成结果如下图所示:

 完成整个转换过程。

原文地址:https://www.cnblogs.com/tianpeng-blog/p/15151445.html