热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

win10编译opencv4.5.0(gpu版)

1.背景正常官方推荐的exe安装,调用cv::dnn模块运行,超级慢,而且打印信息:setUpNetDNNmodulew
1. 背景

正常官方推荐的exe安装,调用cv::dnn模块运行,超级慢,而且打印信息:

setUpNet DNN module was not built with CUDA backend; switching to CPU

即使加上加速代码,依然超级慢,跑512x512图像,分割网络需要1s,2080ti 7.5算力:

this->loc_net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
this->loc_net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);

所以需要编译源码,开启cuda加速模块。




2. 环境

(1)win10,visual studio 2019 (试过2015编译失败),cuda10.2,cudnn8.0.3,opencv4.5.0, opencv-contrib-4.5.0.

(2)或者,visual studio 2019+cuda11.4+cudnn8.2.2(8.0.3)+opencv4.5.0+opencv-contrib4.5.0

(3) visual studio 2019+cuda11.1+cudnn8.0.3+opencv4.5.0+opencv-contrib4.5.0

3. 编译opencv

下载opencv4.5.0

Releases - OpenCVhttps://opencv.org/releases/page/2/下载opencv-contrib4.5.0

https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.0.ziphttps://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.0.zip下载.cache文件夹

opencv4.5.0对应的.cache文件夹-互联网文档类资源-CSDN下载里面的文件完整,如下所示:adedataffmpegippicvnvidia_optica更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/jizhidexiaoming/82456363

下载安装cmake 3.23

https://github.com/Kitware/CMake/releases/download/v3.23.0-rc2/cmake-3.23.0-rc2-windows-x86_64.msihttps://github.com/Kitware/CMake/releases/download/v3.23.0-rc2/cmake-3.23.0-rc2-windows-x86_64.msicmake配置源路径和目标路径

点击configure 

等待几分钟。

(1)勾选CUDA;

(2)设置opencv_contrib路径

 (3)勾选build_opencv_world

(4)去掉python,test、java加快后面的编译

再次点击configure 

(5)cuda_arch_bin算力设置

算力查询: 

CUDA GPU | NVIDIA Developerhttps://developer.nvidia.com/zh-cn/cuda-gpus

或者cuda_generation设置为auto

 

(6)勾选cuda_fast_math

(7) 去掉setupvars

点击configure,再点击generate

这时候在生成的文件夹下搜索opencv_world450d.lib是没有的,需要vs继续编译。

 vs2019打开opencv.sln,进行编译

 打开界面如下。

 任务栏-》生成-》配置管理器,勾选INSTALL

 点击生成解决方案。等待两小时。。。编译成功。




4. 问题

(1)2080ti的显卡算力是7.5,在2080ti编译的opencv,放到3090显卡算力8.6上跑报错:

OpenCV(4.5.0) Error: No CUDA support (OpenCV was not built to work with the selected device.

备忘下,原因还未知。。。继续第二步探索

(2)3090显卡上编译opencv,设置cuda_arch_bin = 7.5;8.6,vs2019编译时报错:

CMake Error at cuda_compile_1_generated_gpu_mat.cu.obj.Debug.cmake:22.

 备忘下,原因还未知。。。继续第三步探索

(3)3090显卡上编译opencv,设置cuda_generation= auto,点击configure后,cuda_arch_bin会自动识别到当前值应该为8.6

 继续探索

(4)编译3090编译opencv时报错(此时设置cuda_arch_bin=8.6):

nvcc fatal   : Unsupported gpu architecture 'compute_86'

LINK : fatal error LNK1104: 无法打开文件“..\..\lib\Debug\opencv_world450d.lib”

根据以下链接建议升高cuda版本(当前是10.2,建议升到11.4)。

ubuntu - nvcc fatal : Unsupported gpu architecture 'compute_86' - Stack Overflow

 (5)基于第4步,编译成功后进行测试,问题:

initCUDABackend CUDA backend will fallback to the CPU implementation for

原因未知。待解决。。。

(6)cuda\vc140.pdb, has an obsolete format, delete it and recompile

成功编译完release版本后,紧接着编译debug报这个错误,原因可能是有release生成的文件冲突了,解决办法:删掉编译release生成的所有文件,重新编译,或者更彻底的办法是重新走一遍上面的流程,即用cmake重新生成opencv.sln,然后重新编译debug版本。



推荐阅读
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Carve库在Visual Studio2015中的编译方法及注意事项
    本文介绍了在Visual Studio2015中编译Carve库的方法及注意事项。首先下载Carve库,并使用Visual Studio2015打开,生成后在bin目录下会生成.lib文件。同时,本文还指出了之前在Visual Studio2017中编译的问题,并提醒需要根据对应的平台进行编译,否则会出现报错。详细的步骤和注意事项请参考原文链接。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 线程漫谈——线程基础
    本系列意在记录Windwos线程的相关知识点,包括线程基础、线程调度、线程同步、TLS、线程池等。进程与线程理解线程是至关重要的,每个进程至少有一个线程,进程是线程的容器,线程才是真正的执行体,线程必 ... [详细]
  • 不可或缺的Windows管理工具有哪些呢?
      1win10管理工具。Keepass一般的IT管理员都要维护大量的密码,并保证它们的准确性,这对于他们来说确实是一个艰巨的任务。Keepass就是为此 ... [详细]
  • 说明:主要是基于ghostyu网友整理的《 armmini2440基于v4l2ffmpegx264的视频远程监控》。自己做了一遍,遇到不少问题,就整理记录下来。 1、平台硬件:ar ... [详细]
author-avatar
陈思有婚纱梦127092
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有