1 准备工具

点击上面链接跳转,我使用的是CMake3.24,CUDA11.1,CUDNN8.0.5,已上传至百度网盘。

链接:https://pan.baidu.com/s/1NqyHujPUkk8j3LdqH22sGw

提取码:u2it

2. 编译流程

2.1 CUDA

安装CUDA和对应的CUDNN,并配置环境变量。

网址:https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-853/support-matrix/index.html

40系显卡需要cuda11.8以上,不然会编译报错:找不到opencv_world460.lib!

我的显卡4070,cuda11.8,cudnn8.6.0。

2.2 CMake

2.2.1 解压OpenCV和OpenCV_contrib,打开CMake-gui设置source和build(新建)路径,点击Configure。

第一次Configure出现报错,PPICV和FFMPEG下载失败

以PPICV为例,在目标路径下找到CMakeDownloadLog.txt,其中关于IPPICV的信息如下

打开https://ghproxy.com/,输入网址,下载ippicv_2020_win_intel64_20191018_general.zip

找到放置zip的路径D:\tool\opencv-4.6.0\.cache\ippicv,替换其中的zip

2.2.2 再次Configure,在新生成的选项中,勾选/取消勾选相关内容:

1. 勾选WITH_TBB

2. 勾选CUDA相关

3. 取消选择 java 的编译选项(个人不需要)

4. 勾选nonfree

5. 取消勾选TEST,加速编译

6. 勾选 BUILD_opencv_world 最终只生成一个动态链接库方便使用

7. 在 OPENCV_EXTRA_MODULES_PATH 中填入 OpenCV_contrib 解压文件夹 modules 的路径

8. 取消选择 OPENCV_GENERATE_SETUPVARS

2.2.3 再次Configure,xfeatures和face报错,因为用不到,我取消了勾选。选择显卡算力,10系卡为6.1,20系卡为7.5,30系卡为8.6,40系卡为8.9。

2.2.4 再次Configure,确保没有红色报错,然后点Generate。

2.3 VS2019

打开生成的 OpenCV.sln 文件,找到项目 INSTALL 右击生成。大概1个半小时后

最终会在当前 build 目录下生成一个 install 目录,这就是我们需要的可执行文件和库,最后添加到环境变量中测试效果。

3 使用

3.1 属性页设置

3.2 拷贝opencv_world460.dll到release下

3.3 开启cuda加速

#include <opencv2/dnn.hpp>
using namespace dnn;
...
this->net.setPreferableBackend(DNN_BACKEND_CUDA);
this->net.setPreferableTarget(DNN_TARGET_CUDA);

yolov5推理时间减少一半。 

参考:

1. OpenCV cuda 版本编译使用

2. IPPICV: Download failed: 6;“Couldn‘t resolve host name“

VS2019编译Opencv4.6.0GPU版本(支持40系显卡)的更多相关文章

  1. 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议

    1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl.   恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与 ...

  2. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  3. chromedriver版本支持的Chrome版本

    下载chromedriver,链接:http://chromedriver.storage.googleapis.com/index.html   chromedirver版本 支持的Chrome版本 ...

  4. scons编译mongodb(vs2008版本)遇到的问题总结

    OS:win7 64 boost:1.49 mongodb:2.4.6(推荐64位版本,当然如果你系统是32位的,只能使用32的版本了) IDE:vs2008(2010的同学请跳过吧,因为官网提供的就 ...

  5. Linux操作系统内核编译之NTFS文件系统模块支持案例

    Linux操作系统内核编译之NTFS文件系统模块支持案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内核编译概述 单内核体系设计.但充分借鉴了微内核设计体系的优点,为内核引 ...

  6. VS2019编译 当前最新版chromium

    之前编译过webrtc和chromium, 由于长时间没用,被我删除了, 最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE, 火狐浏览器也没问题, ...

  7. New!Devexpress WPF各版本支持VS和SQL Server版本对应图

    点击获取DevExpress v19.2.3完整版试用下载 本文主要为大家介绍DevExpress WPF各大版本支持的VS版本和支持的.Net版本图,Devexpress WPF v19.2.3日前 ...

  8. New!Devexpress WinForms各版本支持Visual Studo和SQL Server版本对应图

    点击获取DevExpress v19.2.3最新完整版试用下载 本文主要为大家介绍DevExpress WinForms各大版本支持的VS版本和支持的.Net版本图,Devexpress WinFor ...

  9. vs2019编译opencv

    序 微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜.芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下 ...

  10. 记一次在mac上源码编译curl,使其支持NSS的过程

    一.背景 在一次学习https原理的过程中,希望客户端指定特定的cipher suites来抓包分析SSL/TLS的握手过程,就想到了使用curl工具,而不是使用浏览器. 接下来使用man curl找 ...

随机推荐

  1. 重新点亮linux 命令树————压缩和解压缩[四]

    前言 简单整理一下压缩和解压缩. 正文 在windows 中我们使用压缩和解压缩一般是7z这个压缩和解压软件,但是在linux中压缩和解压是两个不同的软件. 在最早的linux 备份介质是磁带,使用的 ...

  2. redis如何在保持读写分离+高可用的架构下,还能横向扩容支撑1T+海量数据

    单机redis在海量数据面前的瓶颈. 怎么才能够突破单机瓶颈,让redis支撑海量数据? redis集群架构 redis cluster 支撑N个redis master node,每个master ...

  3. 他来了他来了,.net开源智能家居之苹果HomeKit的c#原生sdk【Homekit.Net】1.0.0发布,快来打造你的私人智能家居吧

    背景介绍 hi 大家好,我是三合,作为一个非著名懒人,每天上完班回到家,瘫在沙发上一动都不想动,去开个灯我都嫌累,此时,智能家居拯救了我,只需要在手机点点点,开关灯,空调,窗帘就都搞定了,一开始我用的 ...

  4. AGC066 题解

    题解:AT_agc066_a [AGC066A] Adjacent Difference 笑点解析:没有必要将总成本最小化. 我们将格子间隔的黑白染色(显然有两种染色方法),对于黑点我们要求它是奇数倍 ...

  5. 从源码入手详解ReentrantLock,一个比synchronized更强大的可重入锁

    写在开头 随手一翻,发现对于Java中并发多线程的学习已经发布了十几篇博客了,多线程 是Java基础中的重中之重!因此,可能还需要十几篇博客才能大致的讲完这部分的知识点,初学者对于这部分内容一定要多花 ...

  6. Koordinator v0.7: 为任务调度领域注入新活力

    简介: 在这个版本中着重建设了机器学习.大数据场景需要的任务调度能力,例如 Coscheduling.ElasticQuota 和精细化的 GPU 共享调度能力.并在调度问题诊断分析方面得到了增强,重 ...

  7. 一文读懂 BizDevOps:数字化转型下的技术破局

    简介: 目标.方法与实践. 我们正迈向数字经济时代,数字化转型成为普遍行动.未来绝大多数业务都将运行在数字基座之上,软件系统成为业务创新和发展的核心引擎.在这一趋势下,产品研发的交付能力面临巨大挑战, ...

  8. Yurt-Tunnel 详解|如何解决 K8s 在云边协同下的运维监控挑战

    简介: 伴随着 5G.IoT 等技术的快速发展,边缘计算被越来越广泛地应用于电信.媒体.运输.物流.农业.零售等行业和场景中,成为解决这些领域数据传输效率的关键方式.与此同时,边缘计算形态.规模.复杂 ...

  9. 阿里云CDN操控2.0版本正式发布

    ​简介: 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级. 2021年8月,阿里云边缘云CDN完成过去3年来最大的一次版本升级.本次升级根据上万企业客户的使用反馈和行业应用特征,从 ...

  10. Serverless 工程实践 | Serverless 应用开发观念的转变

    ​简介: Serverless 架构带来的除了一种新的架构.一种新的编程范式,还包括思路上的转变,尤其是开发过程中的一些思路转变.有人说要把 Serverless 架构看成一种天然的分布式架构,需要用 ...