IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> win10+cuda10.0+opencv455+opencv_contrib455实现yolov5(6.06.1版本)的GPU加速 -> 正文阅读

[人工智能]win10+cuda10.0+opencv455+opencv_contrib455实现yolov5(6.06.1版本)的GPU加速

说明:本文主要实现在win10下,使用VS2015或VS2017或VS2019,使用C++控制台程序或MFC程序,结合opencv以及yolov5转化的onnx模型,实现图像的实时目标检测。记录总结一下环境部署的过程,以及部署环境过程中踩到的坑。

我的计算机配置:CPU:I5-7500,内存:8G,显卡:1050Ti(cuda10.0,cudnn7.6.5)

使用yolov5的C++代码:我在github上找到这个大佬的代码链接:

doleron · GitHub

点击下面红色框的链接下载(yolov5-opencv-cpp-python)

或者查看这个大佬的链接,里面有C++源码:

windows上yolov5 opencv dnn c++部署 cuda加速_野马AS的博客-CSDN博客

CPU版:直接使用opencv455就好了,使用VS2015或2017或2019配置好opencv环境(x64下),然后可以直接运行,release下我跑的官方yolov5s.onnx模型,大概2-3帧/s

?GPU版:

前期准备:下载好opencv455,opencv_contrib-4.5.5,CMake,cuda, cudnn,需要安装python3.7及以上版本(python在后面cmake结束后生成解决方案的时候会用到)。

参考链接:windows安装配置opencv opencv_contrib_野马AS的博客-CSDN博客_opencv_contrib

按照上面大佬的链接进行cmake就行,我第一次使用VS2019编译的(x64下),编译到最后提示我cuda10.0不适合VS2019,阿西吧。两种解决办法:1.换成cuda10.2及以上版本;2.使用VS2015或2017重新编译;注意:把先前编译失败的文件夹全部删掉,没有别的原因,主要是因为占C盘的空间太大。

在cmake,configure期间,提示我很多错误,根据上面大佬的链接在CMakeDownloadLog.txt中缺失的对应链接下载即可,大部分都需要翻墙下载,我是挨个翻墙下载的。全部都是.cache文件夹下的东西,路径为 ..../opencv455/sources/.cache。下面是我的路径截图:

.cache文件我已经上传到网盘,需要的可以下载,不过也有可能对你不适用 - -!。

链接:https://pan.baidu.com/s/1LVW1eOaJZZ9K50Guk8AfDA?
提取码:ssss

对于一些.cmake或者.prototxt结尾的文件,需要网页保存,要不然还会出错,可参考:

??????cmake编译Opencv出现ffmpeg_cmake手动下载后也无法使用问题_小MarkK的博客-CSDN博客_ffmpeg_version.cmake

好了,按照上述步骤,cmake可以全部通过了。然后点击Generate完成后点击Open Project:

我第二次选择的是VS2015(x64),第一次编译报了两个错误:第一个是已超过内部ILK大小限制,链接使用/INCREMENTAL:NO;第二个是python报错,去修改python的一行代码,修改参考链接:

opencv4.3.0 Cmake后debug模式生成不了opencv_world430d.lib_航天城拖地的的博客-CSDN博客_opencv world生成失败?python报错在OpenCV.sln解决方案下找到bindings/外部依赖项/pyconfig.h,修改第274行代码,修改后结果为:(这也可能是我个人的情况)

至此,我编译全部通过了,然后新建控制台程序,配置新编译好的opencv455(其实与正常配置opencv455方式一样,只不过我们现在用的是编译出来的 opencv_world455.lib或者opencv_world455d.lib,具体可参考上面第二条链接也行的),然后跑C++代码,我一开始跑的时候,巨卡,比CPU版还卡,经过一翻摸索,发现是这个地方有问题,如图下方的红线部分,原代码是DNN_TARGET_CUDA_FP16,我估计1050TI用不了这个,所以换成了DNN_TARGET_CUDA,然后运行立刻就跑通了,大概14帧/s。

?使用MFC开两个线程同时跑的如下图,开两个模型,显存大概占了500MB:

?ok,现在我需要跑我自己训练的模型进行检测,按照官方教程,把训练好的.pt转成.onnx。然后修改classes.txt中的类别,接着使用根据Netron,查看你自己的模型的输出:比如我自己训练的模型:

?点击output,右边最后一行会弹出数据:[1,6300,16],我训练的是11个类别,这个时候需要把C++代码中的一些参数修改掉,在detect()函数中:

?同时也要修改自己训练模型的分辨率,置信度修不修改看需要:

这样,就可以跑自己的模型了。我跑的分辨率320的?yolov5m的onnx模型,大概80MB,跑到34帧/s,我个人感觉还不错,说到底,我不太想裁剪yolov4的网络,哈哈。?

另外,经过上面的操作,我在我自己电脑上运行yolov5已经可行,我尝试换几台机器运行yolov5是否可行,答案是可行的,也无需在新的电脑重新cmake;前提是:那台电脑的显卡驱动版本号大于等于你cmake时使用的电脑(简单的方法就是用最新的驱动就好了),并且在新的电脑上你只能使用你cmake时的cuda版本对应的编译文件(比如我的版本是cuda10.0),如果想换成大于cuda10.0,需要重新安装,重新cmake才能使用。举个我尝试的例子,我现在需要在另外一台电脑使用yolov5,另外一台电脑的配置是CPU:i5-9400,内存16G,1050Ti显卡,cuda是11.0,cudnn是对应11.0的具体我没仔细查看(这些配置都是曾经几年前已经安装好的);我的做法是:把我在我自己电脑上已经cmake编译好的(我的是在bulid下)文件夹直接拷贝另一台电脑上去,如图:

我这次拷贝到了另外一台电脑的D盘,同样按照配置opencv的方法配置好VS2015的控制台或MFC程序。然后调试运行提示我少很多cuda10.0的东西,然后我就按照提示少的dll文件,从我的电脑上一个一个全部复制过去(其实主要就是缺少cuda10.0/bin/下的dll文件),直接复制到控制台或MFC程序下就行(比如我复制到了和.cpp文件放在一起,对于需要使用debug和release下.exe文件的,当然需要和.exe文件放在一起了),直到不再提示,然后运行程序,顺利跑通。

####

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:11:01  更:2022-05-07 11:13:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 7:44:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码