树莓派部署yolo fastest ncnn记录

树莓派部署yolo fastest ncnn记录

部署环境

1.ubuntu18
2.cpencv452
3.cuda10.2
4.pytorch1.8.1
5.树莓派4b
前言:第一到五节,均在PC端ubuntu下完成,第六节在树莓派完成。

一、编译ncnn

1.ncnn环境配置

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

2.获取ncnn代码

git clone https://github.com/Tencent/ncnn
cd ncnn

3.修改CmakeList.txt文件
在这里插入图片描述

add_subdirectory(examples)
add_subdirectory(benchmark)

两个前面的注释去除。#号,本身就没有的话,就不用修改了
4.编译
在ncnn目录下

mkdir build
cd build
cmake ../
make -j4
make install 

在build目录下会出现三个文件夹。examples install tools,至此第一步ncnn编译成功。接下来可以使用ncnn进行文件转换了!

二、文件转化测试

这一节使用yolov4进行转化测试。
1.下载yolov4.cfg和yolov4.weights文件
进入这个git库:https://github.com/AlexeyAB/darknet
1).yolov4.cfg在cfg文件夹下
2).yolov4.weights文件,别想了,除非‘科学上网’,我这下载好了
链接:https://pan.baidu.com/s/139AcHtgFwDIc-qKvZdJswA 提取码:6666
在这里插入图片描述

2.生成目标文件
1).在ncnn根目录下新建一个Model文件夹,将yolov4.cfg和yolov4.weights文件拷贝到该文件夹中。
2).在ncnn/build/tools/darknet路径下打开终端,输入:

./darknet2ncnn ../../../Model/yolov4.cfg ../../../Model/yolov4.weights ../../../Model/yolov4.param ../../../Model/yolov4.bin

将会在Model文件夹中生成yolov4.param 和yolov4.bin文件
在这里插入图片描述
在这里插入图片描述
看到这个界面和文件就是成功了!第二步搞定。

三、测试

1.将生成的yolov4.param 和yolov4.bin文件,复制到ncnn/build/examples文件夹下。
2.修改yolov4.param----->yolov4-tiny-opt.param
yolov4.bin-------->yolov4-tiny-opt.bin
在这里插入图片描述

3.随意找一张图,放入examples文件夹,如上图两张图。输入:

./yolov4 2.jpg

效果如下
在这里插入图片描述
到这第三步测试就算通过了,小开心。
在这里插入图片描述

四、生成yolo-fastest的ncnn文件

1.首先,要有yolo-fastest的配置文件(.cfg)和权重文件(.weights)。这个我是自己训练的文件,作二维码检测。具体怎么训练自己的数据,可以看我上一篇博客。同样的在ncnn根目录下新建文件夹Modelyolofastest,并将yolo-fastest-1.1.cfg和yolo-fastest-1_last.weights文件复制到该文件夹下。
2.在ncnn/build/tools/darknet文件夹下,打开终端。输入:

./darknet2ncnn ../../../Modelyolofastest/yolo-fastest-1.1.cfg ../../../Modelyolofastest/yolo-fastest-1_last.weights ../../../Modelyolofastest/yolo-fastest-1.1.param ../../../Modelyolofastest/yolo-fastest-1_last.bin

在这里插入图片描述
将会在Modelyolofastest文件夹里生成对应文件。
在这里插入图片描述

五、移植到yolo-fastest------PC端

1.下载代码
https://github.com/dog-qiuqiu/Yolo-Fastest
2.复制文件
将yolo-fastest-1.1.param和yolo-fastest-1_last.bin文件拷贝到Yolo-Fastest-master/sample/ncnn/model下。
在这里插入图片描述
并将ncnn/build/install文件拷贝到Yolo-Fastest/sample/ncnn下。注意是复制install文件夹下的两个文件夹,不是直接复制install文件夹。
在这里插入图片描述

3.修改代码

int testCam() {
    YoloDet api;
    //Init model
    api.init("model/yolo-fastest-1.1.param", 
              "model/yolo-fastest-1_last.bin");

改成自己的就可以。
4.测试
1.在Yolo-Fastest-master/sample/ncnn文件夹下打开终端,输入

sh build.sh

在这里插入图片描述
2.继续终端输入

./demo

5.pc端效果
在这里插入图片描述
简直飞起的速度,仅仅用cpu,稳定运行后大概只要10ms一帧。opencv_dnn在我的电脑上要30ms。
在这里插入图片描述
到这里第五步pc端移植yolo-fastest也做好了。
遇到的问题记录:
1.电脑要有摄像头
嗯…居然会遇到这样的问题,值得思考一下!
2.ubuntu安装opencv后,出现libopencv相关库找不到。

sudo apt install libopencv-dev

安装一下libopencv-dev即可。

六、移植到树莓派

1.配置环境
老规矩和上面一样,需要配置opencv,ncnn。如果树莓派的系统也是ubuntu就基本上按照上面的来就行。
2.将ncnn/build/install中的文件复制到树莓派中Yolo-Fastest/sample/ncnn下。
3.在Yolo-Fastest-master/sample/ncnn文件夹下输入

sh build.sh
./demo

开始测试,速度嘛,有点难过。可能是还有什么地方没搞好!下一篇再写优化吧,毕竟还需要学习。
在这里插入图片描述

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小俊俊的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值