当前位置:   article > 正文

树莓派部署yolo fastest ncnn记录_ncnn 编译 树梅派

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
  • 1
  • 2
  • 3
  • 4

2.获取ncnn代码

git clone https://github.com/Tencent/ncnn
cd ncnn
  • 1
  • 2

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

add_subdirectory(examples)
add_subdirectory(benchmark)
  • 1
  • 2

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

mkdir build
cd build
cmake ../
make -j4
make install 
  • 1
  • 2
  • 3
  • 4
  • 5

在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
  • 1

将会在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
  • 1

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

四、生成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

  • 1
  • 2

在这里插入图片描述
将会在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");
  • 1
  • 2
  • 3
  • 4
  • 5

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

sh build.sh
  • 1

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

./demo
  • 1

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

sudo apt install libopencv-dev
  • 1

安装一下libopencv-dev即可。

六、移植到树莓派

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

sh build.sh
  • 1
./demo
  • 1

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/101452
推荐阅读
相关标签
  

闽ICP备14008679号