<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          基于Caffe格式部署YOLOV5模型

          共 2969字,需瀏覽 6分鐘

           ·

          2021-03-03 09:23

          【GiantPandaCV導(dǎo)語】本文為大家介紹了一個(gè)caffe部署yolov5 模型的教程,并開源了全部代碼。主要是教你如何搭建caffe推理環(huán)境,對(duì)yolov5模型做onnx格式轉(zhuǎn)換,onnx模型轉(zhuǎn)caffe模型,實(shí)測在1070顯卡做到了11ms一幀!

          部署簡介

          如果說目標(biāo)檢測落地最廣的是哪個(gè)算法,yolo系列肯定有一席之地,本文為大家介紹yolov5s 4.0模型如何轉(zhuǎn)換為caffe模型并推理,據(jù)我所知,華為海思NNIE只支持caffe模型的轉(zhuǎn)換,所以yolov5模型要想在海思芯片上部署,轉(zhuǎn)換為caffe模型是有必要的(在我的1070顯卡上,yolov5s 4.0 的模型inference做到了11ms一幀!)

          推理速度截圖

          環(huán)境配置

          • ubuntu:18.04
          • cuda:10.0
          • cudnn:7.6.5
          • caffe: 1.0
          • OpenCV:3.4.2
          • Anaconda3:5.2.0
          • 相關(guān)的安裝包我已經(jīng)放到百度云盤,可以從如下鏈接下載: 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調(diào)至結(jié)尾
          • 接受協(xié)議 yes
          • 安裝路徑 使用默認(rèn)路徑
          • 執(zhí)行安裝
          • 在使用的用戶.bashrc上添加anaconda路徑,比如
          • export PATH=/home/willer/anaconda3/bin:$PATH
          • caffe安裝
          • git clone https://github.com/Wulingtian/yolov5_caffe.git
          • cd yolov5_caffe
          • 命令行輸入如下內(nèi)容:
          • 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模型轉(zhuǎn)換onnx模型

          • pip安裝onnx和onnx-simplifier
          • pip install onnx
          • pip install onnx-simplifier
          • 拉取yolov5官方代碼
          • git clone https://github.com/ultralytics/yolov5.git
          • 訓(xùn)練自己的模型步驟參考yolov5官方介紹,訓(xùn)練完成后我們得到了一個(gè)模型文件
          • cd yolov5
          • python models/export.py --weights 訓(xùn)練得到的模型權(quán)重路徑 --img-size 訓(xùn)練圖片輸入尺寸
          • python -m onnxsim onnx模型名稱 yolov5s-simple.onnx 得到最終簡化后的onnx模型

          onnx模型轉(zhuǎn)換caffe模型

          • git clone https://github.com/Wulingtian/yolov5_onnx2caffe.git
          • cd yolov5_onnx2caffe v- im convertCaffe.py
          • 設(shè)置onnx_path(上面轉(zhuǎn)換得到的onnx模型),prototxt_path(caffe的prototxt保存路徑),caffemodel_path(caffe的caffemodel保存路徑)
          • python convertCaffe.py 得到轉(zhuǎn)換好的caffe模型

          caffe模型推理

          • 定位到y(tǒng)olov5_caffe目錄下
          • cd tools
          • vim caffe_yolov5s.cpp
          • 設(shè)置如下參數(shù):
          • INPUT_W(模型輸入寬度)
          • INPUT_H(模型輸入高度)
          • NUM_CLASS(模型有多少個(gè)類別,例如我訓(xùn)練的模型是安全帽檢測,只有1類,所以設(shè)置為1,不需要加背景類)
          • NMS_THRESH(做非極大值抑制的閾值)
          • CONF_THRESH(類別置信度)
          • prototxt_path(caffe模型的prototxt路徑)
          • caffemodel_path(caffe模型的caffemodel路徑)
          • pic_path(預(yù)測圖片的路徑)
          • 定位到y(tǒng)olov5_caffe目錄下
          • make -j8
          • cd build
          • ./tools/caffe_yolov5s 輸出平均推理時(shí)間,以及保存預(yù)測圖片到當(dāng)前目錄下,至此,部署完成!

          華為海思NNIE部署拙見

          如果有小伙伴,想把caffe模型部署到海思芯片,建議把yolov5的focus層替換為conv層(stride為2),upsample層替換為deconv層,如下圖所示修改:

          修改后的模型配置yaml文件

          預(yù)測圖片展示

          預(yù)測效果展示

          歡迎關(guān)注GiantPandaCV, 在這里你將看到獨(dú)家的深度學(xué)習(xí)分享,堅(jiān)持原創(chuàng),每天分享我們學(xué)習(xí)到的新鮮知識(shí)。( ? ?ω?? )?

          有對(duì)文章相關(guān)的問題,或者想要加入交流群,歡迎添加BBuf微信:

          二維碼

          為了方便讀者獲取資料以及我們公眾號(hào)的作者發(fā)布一些Github工程的更新,我們成立了一個(gè)QQ群,二維碼如下,感興趣可以加入。

          公眾號(hào)QQ交流群


          瀏覽 77
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  三级片在线观看视频网址 | 国产成人AV一区二区三区在线观看 | 成人福利电影 | 亚洲无码天堂在线视频 | 看永久免费黄色视频 |