基于Caffe格式部署YOLOV5模型
点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
【导语】本文为大家介绍了一个caffe部署yolov5 模型的教程,并开源了全部代码。主要是教你如何搭建caffe推理环境,对yolov5模型做onnx格式转换,onnx模型转caffe模型,实测在1070显卡做到了11ms一帧!
部署简介
如果说目标检测落地最广的是哪个算法,yolo系列肯定有一席之地,本文为大家介绍yolov5s 4.0模型如何转换为caffe模型并推理,据我所知,华为海思NNIE只支持caffe模型的转换,所以yolov5模型要想在海思芯片上部署,转换为caffe模型是有必要的(在我的1070显卡上,yolov5s 4.0 的模型inference做到了11ms一帧!)
环境配置
ubuntu:18.04
cuda:10.0
cudnn:7.6.5
caffe: 1.0
OpenCV:3.4.2
Anaconda3:5.2.0
相关的安装包我已经放到百度云盘,可以从如下链接下载: https://pan.baidu.com/s/17bjiU4H5O36psGrHlFdM7A 密码: br7h
cuda和cudnn的安装
可以参考我的TensorRT量化部署yolov5模型的文章(https://zhuanlan.zhihu.com/p/348110519)
Anaconda安装
chmod +x Anaconda3-5.2.0-Linux-x86_64.sh(从上面百度云盘链接下载) .- /Anaconda3-5.2.0-Linux-x86_64.sh
按ENTER,然后按q调至结尾
接受协议 yes
安装路径 使用默认路径
执行安装
在使用的用户.bashrc上添加anaconda路径,比如
export PATH=/home/willer/anaconda3/bin:$PATH
caffe安装
git clone https://github.com/Wulingtian/yolov5_caffe.git
cd yolov5_caffe
命令行输入如下内容:
export CPLUS_INCLUDE_PATH=/home/你的用户名/anaconda3/include/python3.6m
make all -j8
make pycaffe -j8
vim ~/.bashrc
export PYTHONPATH=/home/你的用户名/yolov5_caffe/python:$PYTHONPATH
source ~/.bashrc
编译过程踩过的坑
libstdc++.so.6: version `GLIBCXX_3.4.21' not found
解决方案:https://blog.csdn.net/phdsky/article/details/84104769?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf#commentBox
ImportError: No module named google.protobuf.internal
解决方案:https://blog.csdn.net/quantum7/article/details/83507364
wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or dir
解决方案:https://blog.csdn.net/weixin_37251044/article/details/79158823
yolov5s模型转换onnx模型
pip安装onnx和onnx-simplifier
pip install onnx
pip install onnx-simplifier
拉取yolov5官方代码
git clone https://github.com/ultralytics/yolov5.git
训练自己的模型步骤参考yolov5官方介绍,训练完成后我们得到了一个模型文件
cd yolov5
python models/export.py --weights 训练得到的模型权重路径 --img-size 训练图片输入尺寸
python -m onnxsim onnx模型名称 yolov5s-simple.onnx 得到最终简化后的onnx模型
onnx模型转换caffe模型
git clone https://github.com/Wulingtian/yolov5_onnx2caffe.git
cd yolov5_onnx2caffe v- im convertCaffe.py
设置onnx_path(上面转换得到的onnx模型),prototxt_path(caffe的prototxt保存路径),caffemodel_path(caffe的caffemodel保存路径)
python convertCaffe.py 得到转换好的caffe模型
caffe模型推理
定位到yolov5_caffe目录下
cd tools
vim caffe_yolov5s.cpp
设置如下参数:
INPUT_W(模型输入宽度)
INPUT_H(模型输入高度)
NUM_CLASS(模型有多少个类别,例如我训练的模型是安全帽检测,只有1类,所以设置为1,不需要加背景类)
NMS_THRESH(做非极大值抑制的阈值)
CONF_THRESH(类别置信度)
prototxt_path(caffe模型的prototxt路径)
caffemodel_path(caffe模型的caffemodel路径)
pic_path(预测图片的路径)
定位到yolov5_caffe目录下
make -j8
cd build
./tools/caffe_yolov5s 输出平均推理时间,以及保存预测图片到当前目录下,至此,部署完成!
华为海思NNIE部署拙见
如果有小伙伴,想把caffe模型部署到海思芯片,建议把yolov5的focus层替换为conv层(stride为2),upsample层替换为deconv层,如下图所示修改:
预测图片展示
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「3D视觉工坊」公众号后台回复:3D视觉,即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。
下载2
在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总,即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。
下载3
在「3D视觉工坊」公众号后台回复:相机标定,即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配,即可下载独家立体匹配学习课件与视频网址。
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近3000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
基于Caffe格式部署YOLOV5模型相关推荐
- win10环境下基于OpenVINO部署yolov5模型
以在Intel的OpenVINO上部署Yolov5模型为例,加深对模型部署的理解. 1. 训练准备 获取yolov5模型及数据集 git clone git://github.com/ultralyt ...
- tensorRT 部署 YOLOV5模型详解
tensorRT 部署 YOLOV5模型详解 第一步: 下载tensorRT库 https://developer.nvidia.com/nvidia-tensorrt-8x-download 欢迎使 ...
- 基于OpenVINOTM2022.2和蝰蛇峡谷优化并部署YOLOv5模型
文章作者 英特尔物联网行业创新大使 杨雪锋 博士 中国矿业大学机电工程学院副教授: 发表学术论文30余篇,获国家专利授权20多件(其中发明专利8件) 目录 1.1 OpenVINOTM 2022.2简 ...
- 基于Triton Server部署BERT模型
更多.更及时内容欢迎留意微信公众号: 小窗幽记机器学习 文章目录 背景 准备工作 下载数据 下载模型 构建容器 模型部署 将 checkpoint 导出为 torchscript 启动 Triton ...
- 使用c++onnxruntime部署yolov5模型并使用CUDA加速(超详细)
文章目录 前言 1.Yolo简介 2.onnxruntime简介 3.Yolov5模型训练及转换 4.利用cmake向C++部署该onnx模型 总结 前言 接到一个项目,需要用c++和单片机通信,还要 ...
- win10系统下使用openvino部署yolov5模型
文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.main.cpp 四.效果 五.后记 前言 上一篇介绍过使用onnxruntime实现模型推理 ...
- tensorrt部署YOLOv5模型记录【附代码,支持视频检测】
训练出来的模型最终都需要进行工业部署,现今部署方案有很多,tensorflow和pytorch官方也都有发布,比如现在pytorch有自己的Libtorch进行部署[可以看我另一篇文章有讲利用Libt ...
- (六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型
目录 介绍 Raspberry Pi的初始步骤 准备目录并创建虚拟环境 在Raspberry Pi上安装TFLite解释器和PyTorch 在Raspberry Pi上安装Coral USB Acce ...
- win10系统下使用onnxruntime部署yolov5模型
文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.mainwindow.h 3.mainwindow.cpp 四.YOLO 类封装 1.yolov5 ...
最新文章
- 【体验】TLD5098EL英飞凌恒流电源开发板,恒定电流源LED驱动板
- 科大星云诗社动态20210429
- 乘风破浪的Seq2Seq模型:在事件抽取上的应用
- C++ vector中的resize,reserve,size和capacity函数讲解
- c++基础学习(10)--(文件、流、异常处理、动态内存、命名空间)
- win7怎么解压rar文件_win7解压rar文件的方法
- SQL 判断 临时表是否存在
- 暑期集训20190727 水(water)
- 学习微机原理与接口这一篇就够了
- OverFeat笔记
- python实现pdf阅读器_PyQt5 从零开始制作 PDF 阅读器(一)
- Yarn的资源管理机制
- Java编程那些事儿
- 混沌数学之Chua's circuit(蔡氏电路)
- Android Studio 问题:improperly specified vm option
- JavaEE企业级实战项目 智牛股第五天 Netty的使用和项目数据库搭建
- Apollo决策技术分享
- python爬取网易云音乐飙升榜音乐_Python爬虫实战,30行代码轻松爬取网易云音乐热歌榜...
- 突破IP封锁,共享网络
- 5.1 频率响应概述