YOLOV5:ncnn的编译部署(Linux)


前言

我在windows环境下得到.bin+.param文件,再完成ncnn在Linux的编译部署
win处的工作可参考:

Windows下 yolov5 6.0版本转onnx转ncnn +安卓部署 附加ncnn环境配置 保姆级详细教程

**ncnn部署准备:**与安卓部署类似,ncnn在Linux环境下需安装ncnn+protobuf+opencv
参考: https://blog.csdn.net/shanglianlm/article/details/103188992/


1.安装g++ gcc

meta package是一个包含了很多与编译有关的软件包,当然你也可以单独安装g++ gcc

方法1:
sudo apt-get install build-essential
方法2:
sudo apt-get install g++
sudo apt-get install gcc

2.安装cmake

CMake是一个跨平台的、开源的构建工具。简而言之就是 编译工程时的必要工具。

方法1:
sudo apt-get install cmake

方法2:
# 下载地址: https://cmake.org/ 
tar -xvf cmake-3.24.0-rc1.tar.gz
chmod -R 777 cmake-3.24.0-rc1
cd cmake-3.24.0-rc1
sudo ./bootstrap 
sudo make 
sudo make install 

#安装成功查看cmake版本:
cmake --version

3.安装protobuf

安装automake工具

sudo apt-get install autoconf automake libtool

下载protobuf

我建议是下载protobuf-all系列的库

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.zip

解压、编译

cd protobuf-3.19.4
./autogen.sh
./configure

make
sudo make install
sudo ldconfig
protoc --version

安装完成!

4.安装opencv

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

4.编译ncnn

#cd yolov5
git clone https://github.com/Tencent/ncnn.git
#cd /yolov5pro/ncnn
mkdir -p build
#cd /content/ncnn/build
cmake -DNCNN_VULKAN=OFF ..  
#vulkan是针对gpu的,如果想要ncnn能调用gpu做推理,那么选项需要打开,设置为ON。 
#最后的 .. 不可少
make -j4  #开始编译

出现100%即为编译完成
在这里插入图片描述

如果我们使用自己的模型则需要改动:ncnn\examples 文件中的cpp*
*修改其读取的bin、param名称 ,3个output及对应anchors、类别

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.调用ncnn检测

根据自己的模型修改cpp后,重新编译。
建议用vs code进行修改,不建议用linux的文本器修改cpp,容易出未知错误。

#cd /content/ncnn/build
cmake -DNCNN_VULKAN=OFF ..  
make -j4 

编译成功后,将工程和.bin .param放到同一个文件夹,开始检测吧!
!](https://img-blog.csdnimg.cn/c94e6b611c3643bdbb9c282002d062c1.png)

猜你喜欢

转载自blog.csdn.net/CSDNXXXR/article/details/125720491