从pytorch模型到ava节点

本文最后更新于:1 年前

将pytorch模型转换到onnx框架

直接调用pytorch中的API

1
2
3
4
5
6
7
8
9
10
 x = torch.randn(batch_size, *input_shape) # 生成张量
detect_bboxes = net(x)
export_onnx_file = "RSPnet0709.onnx" # 目的ONNX文件名
torch.onnx.export(net,
x,
export_onnx_file,
do_constant_folding=True, # 是否执行常量折叠优化
input_names=["input"], # 输入名
output_names=["output"] # 输出名
)

从onnx框架到mnn框架

参考 https://www.yuque.com/mnn/cn/model_convert

下载编译mnn转换工具,执行./MNNConvert -f ONNX –modelFile XXX.onnx –MNNModel XXX.mnn –bizCode biz 语句

编写检测层的C++代码

编写时需注意,用netron查看mnn模型,代码中输出层的名字要和mnn模型里的一致

编译ava节点

  1. 运行docker

sudo docker run -it –rm –name RSP2 -v /home/dreame/camera_ai_hand/:/work/build_farm/workspace -v ~/.ssh:/root/.ssh harbor.dreame.com/p2029/arm64:4.2 /bin/bash

  • 命令解读

    -i 在新容器内指定一个伪终端或者终端

    -t 允许你对容器内的标准输入进行交互

    –name ava_camera_sample 表示容器的名字(随便取)

    -v /home/dreame/camera_ai_hand/:/work/build_farm/workspace 表示将本地PC上的项目映射到容器里面的/work/build_farm/worksapce

    -v ~/.ssh:/root/.ssh 将本地的ssh映射到容器里面

    harbor.dreame.com/p2029/arm64:4.2 启动的镜像的名字(docker images查看,末尾加上:TAG

    /bin/bash 放在镜像后面的是命令,我们希望有一个互交式的shell,因此用/bin/bash

  1. 进入编译文件夹编译

​ cd build_farm/workspace/xbuild\

​ sudo cmake ..

​ sudo make -j4