Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    【GiantPandaCV】基于Caffe格式部署YOLOV5模型

    CV领域
    2
    2
    96
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Violet_恒源智享云
      Violet_恒源智享云 last edited by Violet_恒源智享云

      【GiantPandaCV导语】本文为大家介绍了一个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文件

      预测图片展示


      预测效果展示

      ————————————————————————————
      转载来源:公众号【GiantPandaCV】
      公众号简介:专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每周一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆

      1 Reply Last reply Reply Quote 3
      • Alice_恒源云
        Alice_恒源云 last edited by

        博主分享的踩坑经历,很有帮助~感兴趣的用户可以关注博主公众号哈

        1 Reply Last reply Reply Quote 0
        • First post
          Last post