点击上方“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层,如下图所示修改:

修改后的模型配置yaml文件

预测图片展示

预测效果展示

本文仅做学术分享,如有侵权,请联系删文。

下载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模型相关推荐

  1. win10环境下基于OpenVINO部署yolov5模型

    以在Intel的OpenVINO上部署Yolov5模型为例,加深对模型部署的理解. 1. 训练准备 获取yolov5模型及数据集 git clone git://github.com/ultralyt ...

  2. tensorRT 部署 YOLOV5模型详解

    tensorRT 部署 YOLOV5模型详解 第一步: 下载tensorRT库 https://developer.nvidia.com/nvidia-tensorrt-8x-download 欢迎使 ...

  3. 基于OpenVINOTM2022.2和蝰蛇峡谷优化并部署YOLOv5模型

    文章作者 英特尔物联网行业创新大使 杨雪锋 博士 中国矿业大学机电工程学院副教授: 发表学术论文30余篇,获国家专利授权20多件(其中发明专利8件) 目录 1.1 OpenVINOTM 2022.2简 ...

  4. 基于Triton Server部署BERT模型

    更多.更及时内容欢迎留意微信公众号: 小窗幽记机器学习 文章目录 背景 准备工作 下载数据 下载模型 构建容器 模型部署 将 checkpoint 导出为 torchscript 启动 Triton ...

  5. 使用c++onnxruntime部署yolov5模型并使用CUDA加速(超详细)

    文章目录 前言 1.Yolo简介 2.onnxruntime简介 3.Yolov5模型训练及转换 4.利用cmake向C++部署该onnx模型 总结 前言 接到一个项目,需要用c++和单片机通信,还要 ...

  6. win10系统下使用openvino部署yolov5模型

    文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.main.cpp 四.效果 五.后记 前言   上一篇介绍过使用onnxruntime实现模型推理 ...

  7. tensorrt部署YOLOv5模型记录【附代码,支持视频检测】

    训练出来的模型最终都需要进行工业部署,现今部署方案有很多,tensorflow和pytorch官方也都有发布,比如现在pytorch有自己的Libtorch进行部署[可以看我另一篇文章有讲利用Libt ...

  8. (六)使用Coral USB Accelerator在Raspberry Pi上部署YOLOv5模型

    目录 介绍 Raspberry Pi的初始步骤 准备目录并创建虚拟环境 在Raspberry Pi上安装TFLite解释器和PyTorch 在Raspberry Pi上安装Coral USB Acce ...

  9. win10系统下使用onnxruntime部署yolov5模型

    文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.mainwindow.h 3.mainwindow.cpp 四.YOLO 类封装 1.yolov5 ...

最新文章

  1. 【体验】TLD5098EL英飞凌恒流电源开发板,恒定电流源LED驱动板
  2. 科大星云诗社动态20210429
  3. 乘风破浪的Seq2Seq模型:在事件抽取上的应用
  4. C++ vector中的resize,reserve,size和capacity函数讲解
  5. c++基础学习(10)--(文件、流、异常处理、动态内存、命名空间)
  6. win7怎么解压rar文件_win7解压rar文件的方法
  7. SQL 判断 临时表是否存在
  8. 暑期集训20190727 水(water)
  9. 学习微机原理与接口这一篇就够了
  10. OverFeat笔记
  11. python实现pdf阅读器_PyQt5 从零开始制作 PDF 阅读器(一)
  12. Yarn的资源管理机制
  13. Java编程那些事儿
  14. 混沌数学之Chua's circuit(蔡氏电路)
  15. Android Studio 问题:improperly specified vm option
  16. JavaEE企业级实战项目 智牛股第五天 Netty的使用和项目数据库搭建
  17. Apollo决策技术分享
  18. python爬取网易云音乐飙升榜音乐_Python爬虫实战,30行代码轻松爬取网易云音乐热歌榜...
  19. 突破IP封锁,共享网络
  20. 5.1 频率响应概述

热门文章

  1. 20万奖金池!【阿里安全 × ICDM 2022】大规模电商图上的风险商品检测赛火热报名中!...
  2. soap php 模块,soap 应用
  3. Boyer-Moore 算法讲解
  4. centos7 更新时间
  5. 第5章第23节:如何往幻灯片中添加声音和录制声音 [PowerPoint精美幻灯片实战教程]
  6. 文本域输入的内容正确的回显
  7. IBM让存储带来效益 TSM升级使企业更智慧
  8. mPaas-H5容器 如何将阿里特定H5容器打开的页面进行横屏?
  9. centos安装java8
  10. jdk api 1.8