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)

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据引用内容和,yolov5lite ncnn是一个基于ncnn框架实现的轻量级目标检测模型。在使用yolov5lite ncnn之前,需要将模型转化为ncnn模型。首先,需要将onnx模型转化为ncnn模型,可以使用命令"./onnx2ncnn yolov5ss-sim.onnx yolov5-lite.param yolov5-lite.bin"来进行转化。接着,可以使用命令"./ncnnoptimize yolov5-lite.param yolov5-lite.bin yolov5-lite-opt.param yolov5-lite-opt.bin 65536"对模型进行优化。然后,可以使用命令"./ncnn2table yolov5-lite-opt.param yolov5-lite-opt.bin imagelist.txt yolov5-lite.table mean=[104,117,123 norm=[0.017,0.017,0.017 shape=[640,640,3 pixel=BGR thread=8 method=kl"将模型转换为table格式。最后,可以使用命令"./ncnn2int8 yolov5-lite-opt.param yolov5-lite-opt.bin yolov5-ite-opt-int8.param yolov5-lite-opt-int8.bin yolov5-lite.table"将模型转换为int8格式。 关于yolov5lite ncnn编译和安装,可以参考引用内容中提到的在Linux环境下的教程进行操作。其中,需要进行onnx模型的提取和转换。可以使用命令"python models/export.py --weights weights/yolov5-lite.pt --img 640 --batch 1"来提取模型,并使用命令"python -m onnxsim weights/yolov5-lite.onnx weights/yolov5-lite-sim.onnx"来进行简化和优化。 总结起来,yolov5lite ncnn是一个基于ncnn框架的目标检测模型,需要将模型转化为ncnn模型,并进行优化和转换为table和int8格式。关于编译和安装,可以参考在Linux环境下的教程进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [YOLOv5-Lite:NCNN+Int8部署和量化,树莓派也可实时](https://blog.csdn.net/weixin_45829462/article/details/119787840)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值