vs配置opencv和libtorch(cuda12.0)

这篇具有很好参考价值的文章主要介绍了vs配置opencv和libtorch(cuda12.0)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网上很多教程刚开始都让切release模式,博主最初因为没找到哪里切换,所以用的默认的debug模式。他们配置方法一样,其区别在于

  • Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂),便于程序员调试。Debug模式下生成两个文件,除了.exe或.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息

  • Release:发布版本,不对源代码进行调试,编译时对应用程序的速度进行优化,使得程序在代码大小和运行速度上都是最优的。(调试信息可在单独的PDB文件中生成)。 Release模式下生成一个文件.exe或.dll文件。

具体有兴趣的可以进一步查阅资料。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
图里可以看到debug模式下代码正常,切换到release之后如图:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
因为release模式下,opencv并未配置。所以这里博主重新配置一遍release模式下的过程。

主要是一下三个操作步骤:
右键项目点击【属性】进入一下页面:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

一 、opencv配置

1.1、opencv下载

下载地址:opencv
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

这里博主下载的是【Windows】版本,【Sources】版本是源码安装,可以参考博主另一篇博文win下C++部署深度学习模型之clion配置pytorch+opencv教程记录。

1.2、【VC++目录→包含目录】

点击编辑
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
【新行】→【…】
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
定位到D:\opencv-4.8.0-windows\opencv\build\include后点击确定。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

添加玩之后如图所示:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

1.3、【VC++目录→库目录】

操作和1中类似,区别在于添加的目录地址不一样。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

定位到D:\opencv-4.8.0-windows\opencv\build\x64\vc16\lib点击确定。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

1.4、【链接器→输入→附加依赖项】

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
需要添加opencv_world480.lib文件的绝对路径地址即D:\opencv-4.8.0-windows\opencv\build\x64\vc16\lib\opencv_world480.lib
。此处大家根据自己的实际路径填写**\opencv\build\x64\vc16\lib\opencv_world480.lib

划重点
图里有两个类似的文件opencv_world480.libopencv_world480d.lib。网上很多教程,有的这里添加的是前者有的是后者。博主被这个坑惨了,这里分享给大家避免踩雷。下图可以看到博主此时是在release模式下,所以对应选择opencv_world480.lib;如果是debug,则应该选择opencv_world480d.lib。否则不匹配将会发生如下错误:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
这个问题如果排查起来很折磨人!
正确配置好后如下所示:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

1.5、测试运行

配置完成后点击项目下【源文件】,右键【添加】→【信件项】后按下图所示新建一个cpp文件,自定义取名。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
输入以下测试代码:

#include <opencv2\opencv.hpp> 
#include <iostream>

using namespace std;   // c++标准库中所有标识符都被定义于一个名为std的namespace中
using namespace cv;

int main()
{
    //这里给出自定义目录图片目录
	Mat img = imread("E:/6.jpg");
	if (img.empty())
	{
		cout << "该图片读取有问题" << endl;
		return 0;
	}
	imshow("test", img);
	waitKey(0);
	return 0;
}

再点击下图任一按钮即可运行程序。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

二、libtorch配置

2.1、 libtorch下载

下载地址:libtorch官方下载地址
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
注意上图中标注的几项,cuda版本向下兼容,选择适配自己环境的release版本进行下载。

2.2、【VC++目录→包含目录】

此处同理opencv配置,定位到2.1中下载的D:\libtorch-cu121\libtorch\include和“D:\libtorch-cu121\libtorch\include\torch\csrc\api\include”目录进行添加。

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

添加之后如图所示:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

2.3、【VC++目录→库目录】

同理opencv 【2.3】定位到D:\libtorch-cu121\libtorch\lib进行添加。

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

2.4、【链接器→输入→附加依赖项】

定位到下图所示目录:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

有两种方式可以添加:
方法一

将目录D:\libtorch-cu121\libtorch\lib路径下的所有lib文件添加到该位置,不同版本有不同的.lib文件,这里建议可以将其先存为一个TXT文件,方便后续出错后修改。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

方法二
给出绝对路径地址+“*.lib”即可。
博主这里即为:D:\libtorch-cu121\libtorch\lib\*.libvs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

2.5、【配置属性】→【调试】→【环境】

按照上述配置后,进行测试,发生报错:“无法定位程序输入点?check_range@Symlnt@c10@@ .exe或是.dll”

解决方法:在调试——环境中设置lib文件夹里的DLL文件的环境变量。
编辑【环境】为PATH=D:\libtorch-cu121\libtorch\lib;%PATH%
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

2.6、试运行

输入以下代码进行测试:

#include <iostream>
#include <torch/torch.h>
#include<torch/script.h>
using namespace std;


int main()
{
	cout << "cuda是否可用:" << torch::cuda::is_available() << endl;
	cout << "cudnn是否可用:" << torch::cuda::cudnn_is_available() << endl;
	cout << torch::cuda::device_count() << endl;


	torch::Tensor tr = torch::arange(0, 9, torch::kFloat32).reshape({ 3,3 });
	cout << tr << endl;
	return 0;
}

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
如果程序返回结果都为非0,那证明CUDA以及CUDNN都是可用的,自此环境已经搭建完成,但是也有可能返回结果为0证明CUDA以及CUDNN都不可用。需要进行CUDA的配置命令:
【属性】→【命令行】,输入:

/INCLUDE:"?ignore_this_library_placeholder@@YAHXZ" 

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
成功运行:
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习
注意这里不同版本libtorch对应命令不一,博主是用的cuda12.1对应的libtorch,即LibTorch1.13.1版本。更早版本的可以参考以下命令:

libtorch1.8.1/cuda10:
/INCLUDE:?warp_size@cuda@at@@YAHXZ

libtorch1.9.0/cuda11: 
/INCLUDE:"?searchsorted_cuda@native@at@@YA?AVTensor@2@AEBV32@0_N1@Z 

libtorch1.10.2+cu113: 
/INCLUDE:?warp_size@cuda@at@@YAHXZ -INCLUDE:?searchsorted_cuda@native@at@@YA?AVTensor@2@AEBV32@0_N1@Z 

三、BUG记录

3.1、 #error You need C++17 to compile PyTorch

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

这个错误导致程序直接无法运行,搜了下原因

  • libtorch (PyTorch C++)根据系统(Win/Mac/Linux)和GPU/CUDA(version) 选择install 之后就可通过Cmake find_package 直接使用,但是默认编译libtorch 为 C++14,如果和其他 C++17 编译得到的库共同链接到项目,就可能产生一系列问题:如下图,原因是先链接 C++14 编译的torch,会将编译设为 C++14,再去链接C++17的库,就无法识别C17加入标准库的内容,编译报错。

网上很多教程都没用,最后我是从版本入手,想着直接修改C++版本,最后成功解决,而且极为简单。
【常规】→【C++语言标准】,初次打开是默认的C++14,这里改为C++17即可。
vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

3.2、“LNK 200:/INCLUDE:?warp_size@cuda@at@@YAHXZ -INCLUDE:?searchsorted_cuda@native@at@@YA?AVTensor@2@AEBV32@0_N1@Z 未识别的指令”

这个就是cuda配置的时候添加了和版本不适配的命令,按照【2.5】种cuda配置进行修改即可。

3.3、 “#error std 不明确的符号”

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

把《符合模式》改为否;

vs配置opencv和libtorch(cuda12.0),# 环境配置安装教程,opencv,人工智能,计算机视觉,pytorch,c++,深度学习

3.4、由于找不到xxx.dll,无法继续执行代码,重新安装程序可能会解决此问题

2种方法可以解决。

  • 方法1:将缺失的.dll文件拷贝到工程目录里,即“当前工程的Example\build\Release(或debug,取决于你是采用release还是debug模式)”里,或者说放置在工程编译后的可执行文件同一目录下。
  • 方法2:即【2.5】中的方法,直接在【配置属性】→【调试】→【环境】中添加添加libtorch动态库的路径PATH=**\libtorch-cu121\libtorch\lib;%PATH%

3.5 由于找不到VCRUNTIME 140_1D.dll,无法继续执行代码

除了外部动态库,程序还需要一些windows系统自带的动态库,但有的时候也会出现找不到这些库的情况,这大概率是因为你的系统里就是没有这些库。
解决方法也很简单,只需要去https://www.dll-files.com/网站下载你缺少的dll动态库,得到该文件的压缩包,然后解压把该.dll文件复制到C:\Windows\System32目录下即可。

更多BUG可以参考BUG

终于结束。踩雷无数,在解决问题中进步吧。文章来源地址https://www.toymoban.com/news/detail-853941.html

到了这里,关于vs配置opencv和libtorch(cuda12.0)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【附安装包】EViews 12.0安装教程

    ---------------------------END--------------------------- 当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下. 感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

    2024年02月10日
    浏览(30)
  • nvidia安装程序失败 - Win 10 安装NVIDIA CUDA 12.0 - Nsight Visual Studio Edition 安装失败及相关的一系列问题

    导读 在Win 10 安装 CUDA 12.0 时出现安装失败的提示。尝试了很多解决方案,也参考了官方的,还是不行。最终将原因定位到了 Nsight Visual Studio Edition安装失败 ,本文记录跳过安装的方法。 想快速解决问题(可能存在副作用),请看 方案一 ;想了解问题出现的浅层原因,并彻底

    2024年02月05日
    浏览(50)
  • VS2022下安装和配置OpenCV环境参数

    网上OpenCV的安装配置教程一堆,本人参照并尝试了几个都有差错。自己整理并分享在VS2022下安装和配置OpenCV环境参数的笔记。(所用VS2022是官网社区版,OpenCV版本是4.5.5) 一、下载OpenCV 官网下载地址 选择Windows版本下载并解压到本地磁盘,建议路径不带中文,我的解压安装地

    2024年02月04日
    浏览(46)
  • Orin 安装CUDA CUDNN TensorRT Opencv和输入法的环境配置

    有两种方法可以安装CUDA环境 在刷机完成的Orin,执行如下命令: 注释–如果在执行第三行命令,报错的话,先查看nvidia-l4t-apt-source.list 将其修改为 修改完后,重新执行上面那三行命令 CUDA 检查是否安装成功 运行命令 输出结果 如果报错,需要把nvcc添加到环境变量,方法如下

    2024年02月10日
    浏览(31)
  • Ubuntu20.04卸载cuda12.0

    刚装cuda的时候没仔细看版本,默认安装了cuda12.0,然后发现pytorch并不支持12.0的版本,于是卸载重装,先贴解决办法再吐槽:解决办法是参考的Nvidia官方文档 只需要两步: 官方文档中实际上是三步: 其中第二步是用来卸载nvidia驱动的,但是我想保留驱动而只卸载cuda所以就跳过了

    2024年02月11日
    浏览(41)
  • Cuda配置-02 VS环境配置

          要进行CUDA编程开发就必须安装CUDA驱动,CUDA驱动的硬件条件为英伟达显卡以及对应的驱动软件。一般进行CUDA编程开发的操作系统主要是两种:Windows操作系统和Linux操作系统。Windows操作系统的集成开发环境可以使用Visual Studio(简称VS)或CLion,Linux操作系统的集成开发环

    2024年02月15日
    浏览(24)
  • jetson nx目标检测环境配置遇到的一万个坑,安装v1.12.0版本的pytorch和v0.13.0版本的vision torchvision,以及使用TensorRT部署YOLOv5.

    本文参考了许多官网和博客,肯定是存在抄袭的,请各位大哥不要喷我啊。 自己工作找到的是医学信号方向的算法工程师,所以以后和CV可能无缘了,将自己一个多星期的心血历程发表出来,希望大家接起我的CV火炬,接着前行,各位加油!(后面也学习了yolov5-6.0 yolov7的模型

    2024年02月05日
    浏览(34)
  • OpenCV(vs)安装与配置环境,以及找不到opencv_world460.dll的问题

    目录 一、opencv官网下载 二、配置 1.vs新建一个C++项目 ​编辑   2. 找到属性管理器  3. 开始添加  4. 测试 三、关于找不到opencv_world460.dll(或者其他版本)的问题 官网下载地址: https://opencv.org/releases/ 解决方案配置选择Release,解决方案平台选择x64 vs2019版本步骤:视图---其他窗

    2024年02月09日
    浏览(32)
  • OpenCV_CUDA_VS编译安装

    我这里是下载的OpenCV4.5.4,但是不知道到在vs里面build时一直报错,后面换了4.7.0的版本测试,安装成功。 Release OpenCV 4.5.4 · opencv/opencv · GitHub 这个里面有官方预编译好的OpenCV库,可以直接食用。 扩展包: https://github.com/opencv/opencv_contrib/releases/tag/4.5.4 这里cmake版本要求应该不是

    2024年02月09日
    浏览(36)
  • Windows 系统从零配置 Python 环境,安装CUDA、CUDNN、PyTorch 详细教程

    进入anaconda官网:https://www.anaconda.com/ 点击 download 下载文件,我这里是 Anaconda3-2022.10-Windows-x86_64.exe (后续更新版本exe文件会有差别) 下载后打开 .exe 文件下载 anaconda: 选择安装路径(用默认的路径也可以): 这里两个都选: 然后安装就可以了。 打开 cmd,输入 conda(如果是

    2024年02月03日
    浏览(82)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包