yolov5s使用Pnnx部署到树莓派4B(Ncnn)


一、pt->torchscript->param+bin(Pnnx)->Ncnn->Ncnnfp16

由于我在树莓派4B将torchscript使用pnnx得到.param+.bin文件报bug,没解决,于是我又在windows10上进行格式的转换。

二、将pt格式转换成.param和.bin格式

这几步我是在windows10 x64 上进行的。

2.1配置基本环境以及yolov5s.pt文件配置

我用的是稍微比较旧的版本,使用conda创建的环境,对yolov5s.pt文件进行格式转换。具体环境也可参照https://github.com/ultralytics/yolov5requirements.txt进行配置。
下载yolov5官方源码https://github.com/ultralytics/yolov5,下载最新的yolov5s.pt文件https://github.com/ultralytics/yolov5/releases/tag/v6.1并将yolov5.pt文件放到解压后的yolov5-master文件下

2.2yolov5s.pt->yolov5s.torchscript

在终端输入指令在yolov5s-master中激活环境输入以下指令(记得添加train参数)

 python export.py --weights yolov5s.pt --include torchscript --train

在yolov5-master文件夹下得到yolov5s.torchscript文件
在这里插入图片描述

2.3yolov5.torchscript->yolov5s.ncnn.param/bin

下载pnnx工具包https://github.com/pnnx/pnnx,有三个版本,我在树莓派4B上跳bug,就在windows上进行。下载完成后将yolov5s.torchscript放到pnnx文件夹下,在终端上输入如下指令

pnnx.exe yolov5s.torchscript inputshape=[1,3,640,640] inputshape2=[1,3,320,320]

使用pnnx.exe运行yolov5s.torchscript,生成yolov5s.ncnn.param和yolov5s.ncnn.bin文件。

在这里插入图片描述

三、树莓派Ncnn环境配置

3.1安装git和cmake依赖、其他依赖

sudo apt-get install git cmake

sudo apt-get install -y gfortran
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev

3.2下载Ncnn并解压

到倪辉巨佬的git下载ncnn,https://github.com/Tencent/ncnn

四、编译Ncnn

在ncnn文件夹下新建一个build文件夹,在这个文件夹下输入以下指令进行编译,注意:yolov5_pnnx.cpp文件ncnn/example已经给出,我修改部分(添加了摄像头检测)已经上传至(https://github.com/wodianlehaibuxingma/yolov5_ncnn我没有修改yolov5_pnnx.cpp名字)

cmake -DCMAKE_BUILD_TYPE=Release -DNCNN_VULKAN=OFF -DNCNN_BUILD_EXAMPLES=ON ..
make -j$(nproc)

注意:…VULKAN=OFF…
在这里插入图片描述
编译完成,会在build文件夹下生成yolov5_pnnx

五、测试摄像头

将生成的yolov5s.ncnn.param、yolov5s.ncnn.bin文件、yolov5_pnnx.cpp和编译后的yolov5_pnnx放到同一个文件夹下
在这里插入图片描述
在终端打开test文件夹输入指令

./yolov5_pnnx

在这里插入图片描述
成功调用摄像头进行检测。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值