YOLOv7(目标检测)入门教程详解---C++部署

目录

一.前言

二.源码下载

三.环境安装

 opencv安装

四.ONNX模型导出

五.总结


一.前言

     我们在之前的yolov7入门教程中讲到了如何进行环境的安装和python终端运行:

       YOLOv7(目标检测)入门教程详解---环境安装

       YOLOv7(目标检测)入门教程详解---检测,推理,训练

     今天我们就来学习一下如何用c++部署yolov7

二.源码下载

  c++源码下载地址: https://github.com/UNeedCryDear/yolov7-opencv-dnn-cpp

  使用这个源码的要求是opencv 版本>=4.5.0

三.环境安装

 opencv安装

  竟然要使用opencv,那我们当然要安装opencv了,博主用的是VS 2019去跑的,那么我就说一下VS 2019是如何安装opencv的

   由于我们要用GPU去加速,那在c++中就要利用到opencv-cuda去加速,那么这个时候官网的opencv包是不够的,我们同时还需要opencv_contrib的包去编译opencv。那么我们先说要准备的软件。

VS(默认已有)

opencv4.5.5

opencv4.5.5_contrib

cmake

 opencv官网:Home - OpenCV

点击官网的library->release 

 

 选择opencv-4.5.5的github,并且点击tags

选择4.5.5,下拉,点击opencv4.5.5-vc14_vc15.exe进行下载

下载完之后就会得到opencv的文件夹

opencv_contrib的下载:GitHub - opencv/opencv_contrib: Repository for OpenCV's extra modules

点击tags,选择与opencv相对应的版本

 下载好之后我们把,opencv_contrib和opencv放在同一目录下

Cmake下载:CMake

 选择较新的版本下载即可,但是记得注意:安装的时候勾选加入path,并且生成cmake-gui。

接下来具体操作,我给大家推荐一个非常好的b站视频教程,按着教程做,问题就全部解决了

视频链接:OpenCV4.5.x+CUDA11.0.x源码编译与YOLOv5加速测试!_哔哩哔哩_bilibili 

过程强调:

1.在vs生成中,一定要选择release版本

2.路径一定要写对

3.cuda与cudnn版本一定要对应

4.如果已经vs已经生成好了newbuild,之后如果要重装cuda,那就得重新生成

四.ONNX模型导出

  我们之前用python跑yolov7的时候权重都是pt文件,那么在c++中我们用net去读取onnx模型从而进行yolo的推理,所以这里我们需要将pt模型转成onnx模型。

 其实很简单,yolov7源码中自带了export.py文件,通过export直接导出。但是在之前我们需要安装onnx模型的插件。这个时候我们打开yolov7,找到里面的requirments。

把这三个#去掉,然后保存,之后在按我之前的教程中说的,在终端用清华镜像重新下载一遍即可

   YOLOv7(目标检测)入门教程详解---检测,推理,训练

进入我们之前创建好的虚拟环境,输入以下指令

 

显示success则导出成功,我的建议是不要按照yolov7的官网指令去导出,很容易出错,直接指定一个pt权重路径即可,然后img-size要对应,默认是640 640 不用去修改了。

此时我们把模型放到我们的vs项目文件夹之下

然后在c++源码中该model路径

 

 然后运行进行推理测试:

你会发现用GPU反而要三秒一张照片,这是因为第一次调用GPU需要一定的时间,所以第一次时间比较长。我们试试看处理一百张照片的时间要多久

 我们可以看到,大概在15ms左右的样子,速度是还不错的

五.总结

   综合博主的这三篇教程:

YOLOv7(目标检测)入门教程详解---环境安装_螺丝工人的博客-CSDN博客

YOLOv7(目标检测)入门教程详解---检测,推理,训练_螺丝工人的博客-CSDN博客YOLOv7(目标检测)入门教程详解---C++部署

已经可以完全自如的利用yolov7进行推理,检测,和训练了。并且同时适用与python环境和c++环境。

猜你喜欢

转载自blog.csdn.net/weixin_64524066/article/details/126899223