VS2019编译Opencv4.6.0GPU版本(支持40系显卡)
1 准备工具
- CMake
- CUDA Toolkit + CUDNN
- VIstual Studio 2019
- OpenCV + OpenCV_contrib
点击上面链接跳转,我使用的是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推理时间减少一半。
参考:
2. IPPICV: Download failed: 6;“Couldn‘t resolve host name“
VS2019编译Opencv4.6.0GPU版本(支持40系显卡)的更多相关文章
- 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议
1 缘起 原来就了解些libcurl,一直没有机会在项目实际使用libcurl. 恰好最近一个云存储的项目,服务器使用openstack 恰好我负责现在的一个云存储SDK c++版本的开发中. 与 ...
- centos7 源码编译安装TensorFlow CPU 版本
一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...
- chromedriver版本支持的Chrome版本
下载chromedriver,链接:http://chromedriver.storage.googleapis.com/index.html chromedirver版本 支持的Chrome版本 ...
- scons编译mongodb(vs2008版本)遇到的问题总结
OS:win7 64 boost:1.49 mongodb:2.4.6(推荐64位版本,当然如果你系统是32位的,只能使用32的版本了) IDE:vs2008(2010的同学请跳过吧,因为官网提供的就 ...
- Linux操作系统内核编译之NTFS文件系统模块支持案例
Linux操作系统内核编译之NTFS文件系统模块支持案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内核编译概述 单内核体系设计.但充分借鉴了微内核设计体系的优点,为内核引 ...
- VS2019编译 当前最新版chromium
之前编译过webrtc和chromium, 由于长时间没用,被我删除了, 最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE, 火狐浏览器也没问题, ...
- New!Devexpress WPF各版本支持VS和SQL Server版本对应图
点击获取DevExpress v19.2.3完整版试用下载 本文主要为大家介绍DevExpress WPF各大版本支持的VS版本和支持的.Net版本图,Devexpress WPF v19.2.3日前 ...
- New!Devexpress WinForms各版本支持Visual Studo和SQL Server版本对应图
点击获取DevExpress v19.2.3最新完整版试用下载 本文主要为大家介绍DevExpress WinForms各大版本支持的VS版本和支持的.Net版本图,Devexpress WinFor ...
- vs2019编译opencv
序 微软家的宇宙第一ide:visual studio已经更新到了2019版,芒果也更新尝鲜了一遍,体验还不错,建议更新尝尝鲜.芒果顺便使用vs2019编译了一遍opencv,编译过程也非常顺利,以下 ...
- 记一次在mac上源码编译curl,使其支持NSS的过程
一.背景 在一次学习https原理的过程中,希望客户端指定特定的cipher suites来抓包分析SSL/TLS的握手过程,就想到了使用curl工具,而不是使用浏览器. 接下来使用man curl找 ...
随机推荐
- redis 简单整理——bitmaps[十二]
前言 简单介绍一下bitmaps这个东西. 正文 我们都知道bitmaps 翻译过来就是二进制. 那么二进制可以存一些什么呢? 图片.视频,还可也存些什么呢? 现代计算机用二进制(位)作为信息的基础单 ...
- 用fpga实现1G Eth TCP&UDP硬件协议栈
用fpga实现的1G 以太网硬件协议栈,属于轻的协议栈
- 第 8章 Python 爬虫框架 Scrapy(下)
第 8章 Python 爬虫框架 Scrapy(下) 8.1 Scrapy 对接 Selenium 有一种反爬虫策略就是通过 JS 动态加载数据,应对这种策略的两种方法如下: 分析 Ajax 请求 ...
- ECharts海量数据渲染解决卡顿的4种方式
场景 周五进行需求评审的时候: 出现了一个图表,本身一个图表本没有什么稀奇的: 可是产品经理在图表的上的备注,让我觉得这个事情并不简单: 那个图表的时间跨度可以是月,年,而且时间间隔很短: 这让我意识 ...
- Quick BI产品核心功能大图(五)移动端:让数据在更多业务场景中流通
简介:将数据更好的融入日常工作中,一个重要的前提条件就是多端多渠道的数据触达和办公协同能力. Quick BI凭借移动端交互体验,帮助用户随时随地便捷查看报表,并通过在线协同方式,追踪策略的执行落地 ...
- [Docker] 假如宿主机 Nginx 代理到 Docker 的 PHP
其实没有多少区别,同样 php 镜像启动服务暴露一个端口,nginx 的 proxy_pass 代理过去,唯一要注意的是 nginx 配置的项目路径. nginx 配置的 root 是本地项目路径,给 ...
- [FAQ] FinalCutPro 视频背景加模糊效果
1. 时间轴右上方,找到 倒数第二个 "显示或隐藏效果浏览器",里面有一个 "模糊" 效果: 2. "模糊"效果中的 "高斯曲线& ...
- js实现懒加载原理
概念:对于页面有很多静态资源的情况下(比如网商购物页面),为了节省用户流量和提高页面性能,可以在用户浏览到当前资源的时候,再对资源进行请求和加载.原理:当图片元素的偏移高度<=设备高度+滚动条与 ...
- 开源相机管理库Aravis例程学习(五)——camera-api
目录 简介 例程代码 函数说明 arv_camera_get_region arv_camera_get_pixel_format_as_string arv_camera_get_pixel_for ...
- fastreport .net打印普通报表
fastreport .net打印普通报表 前言: .net代码层先不记录在这,后续会单独写一篇博客来记录. 直接在工具上进行功能点的实现 一.效果图 二.功能点 分页 分页小计 金额大写 三.功能点 ...