ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

VS2019+CUDA10.2+tensorRT7.0+opencv4.12环境配置

2022-03-06 14:06:12  阅读:519  来源: 互联网

标签:lib VS2019 tensorRT7.0 opencv4.12 yolo tensorrt dll opencv CUDA


为了在windows上运行yolo-tensorrt项目进行了VS2019+CUDA10.2+tensorRT7.0+opencv4.12的环境配置

1.1 首先安装VS2019

进入VS官网下载社区版2019

1.2 安装CUDA和CUDNN

注意:我之前为了配置python的深度学习环境,安装过CUDA,但是精简安装,最好还是重新安装。版本CUDA10.2+cuDNN v7.6.5
进入官网下载CUDA2019
安装CUDA和CUDNN参考这个链接的1.2和1.3节

1.3安装opencv4.1.2

参考这个视频下载opencv4.1.2
下载opencv选择releases,如下图,找到opencv4.1.2
在这里插入图片描述
在这里插入图片描述
解压,
添加opencv环境变量,路径是解压后opencv包的build/x64/vc15/bin,这一步直接看视频会更清楚。
在这里插入图片描述

1.4 安装tensorrt7.0

下载链接tensorrt7.0

请注意:我的版本是CUDA10.2+cuDNN v7.6.5,tensorrt也要下载对应的版本。
在这里插入图片描述
下载后解压文件,我把文件放在C盘的文档文件下,你可以选择自己熟悉的位置,比如D盘
在这里插入图片描述

添加环境变量在这里插入图片描述
复制dll文件到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin

在这里插入图片描述

安装uff和graphsurgeon
在终端激活一个自己的python虚拟环境,终端路径打开到TensorRT-7.0.0.11\graphsurgeon下,安装graphsurgeon-0.4.1-py2.py3-none-any.whl
如下示例
在这里插入图片描述
安装uff同理TensorRT-7.0.0.11\uff下

2 配置yolo-tensorrt项目

2.1 下载解压打开文件

下载项目
使用master分支

  • 解压文件夹后,把项目重命名为yolo-tensorRT,使用VS2019打开yolo-tensorRT/sln/sln.sln文件。看到下图,点击确定
    在这里插入图片描述

2.2 配置CUDA生成自定义项目

右击项目dll_detector,选择 生成依赖项->生成自定义。只选择CUDA10.2那一项,其他项取消。
test_dll同理
在这里插入图片描述

2.3配置属性表

  • 属性管理器->dll_detector->Releas|x64下新建属性表,分别命名为cuda10.2.props,opencv4.1.2.props,tensorrt_7.0.props
    在yolo_tensorRT\sln\dll_detector文件夹下出现这三个文件在这里插入图片描述

  • 配置CUDA属性表
    右击cuda10.2.props->属性
    包含目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\include
    库目录:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\lib\x64
    附加依赖项:
    cublas.lib
    cuda.lib
    cudadevrt.lib
    cudart.lib
    cudart_static.lib
    在这里插入图片描述
    在这里插入图片描述

  • 配置tensorRT属性表
    包含目录: C:\Users\freeyu\Documents\TensorRT-7.0.0.11\include
    库目录:C:\Users\freeyu\Documents\TensorRT-7.0.0.11\lib
    附加依赖项:
    myelin64_1.lib
    nvinfer.lib
    nvinfer_plugin.lib
    nvonnxparser.lib
    nvparsers.lib
    -配置opencv属性表
    包含目录:C:\Users\freeyu\Documents\opencv-4.1.2\build\include\opencv2
    C:\Users\freeyu\Documents\opencv-4.1.2\build\include
    库目录: C:\Users\freeyu\Documents\opencv-4.1.2\build\x64\vc15\lib
    附加依赖项:
    opencv_world412.lib
    opencv_world412d.lib

  • 属性管理器->test_dll->Releas|x64下添加现有属性表,找到上面三个文件就可以了。
    在这里插入图片描述

2.4修改运行格式

把上方修改成Release,x64
在这里插入图片描述

2.5 修改预处理器定义

项目->dll_detector->右击->属性->C/C+±>预处理器->预处理器定义->编辑
添加“_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING”
在这里插入图片描述

2.6 生成项目

项目->dll_detector->右击->生成
在这里插入图片描述
项目->test_dll->右击->生成
在这里插入图片描述
最后在文件夹里的文件如下图
在这里插入图片描述

2.7 运行文件

  1. 在yolo_tensorRT\configs文件中加入yolov4.weights
    yolov4.weights的百度云下载链接
    提取码:oeh6

在这里插入图片描述

  1. 点击test_dll.exe文件

在这里插入图片描述

  1. configs文件夹中生成yolov4-kFLOAT-batch1.engine
  2. 结果在这里插入图片描述

踩过的坑

用VS2019打开sln可执行文件后,显示dll_detector(已卸载)
在这里插入图片描述

报错1:

C:\Users\freeyu\Desktop\learn\yolo-tensorrt-master (2)\yolo-tensorrt-master\sln\test_dll\test_dll.vcxproj : error : 找不到导入的项目“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.1.props”。请确认 Import 声明“C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.1.props”中的表达式正确,且文件位于磁盘上。 C:\Users\freeyu\Desktop\learn\yolo-tensorrt-master (2)\yolo-tensorrt-master\sln\test_dll\test_dll.vcxproj

这个错误是由于它识别到了我的CUDA11.1。因为我踩了很多坑,之前用CUDA11.1配置过yolo_tensorrt项目导致的。
解决方法:在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\extras\visual_studio_integration\MSBuildExtensions文件下,把

CUDA 11.1.props
CUDA 11.1.targets
CUDA 11.1.xml

复制到

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations路径下。
如果你是先有的VS,再安装的CUDA10.2的话,在这个文件下,你也会看到

CUDA 10.2.props
CUDA 10.2.targets
CUDA 10.2.xml

再重新打开sln就没有问题。
配置CUDA
右击项目,生成依赖依赖项 生成自定义,只选择CUDA10.2,我的会选择CUDA11.1,把勾号去掉
在这里插入图片描述
加入CUDA10.2的属性表,如果不加会有下面的错误
在这里插入图片描述

将 _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 添加到预处理器定义中。
项目 -> 属性 -> C/C++ -> 预处理器 -> 预处理器定义。

标签:lib,VS2019,tensorRT7.0,opencv4.12,yolo,tensorrt,dll,opencv,CUDA
来源: https://blog.csdn.net/free_luojing/article/details/123306597

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有