Python 编译支持cuda gpu加速的Opencv4.7
[记录]Python 编译支持cuda gpu加速的Opencv4.7
参考
依赖
1、VisualStudio (我使用的是2022版)VisualStudioSetup.exe – 蓝奏云 (lanzoup.com)
2、python-3.8.0-amd64.exe python-3.8.0-amd64.exe
3、cmake-3.26.0-windows-x86_64.msi cmake-3.26.0-windows-x86_64.msi.zip 官方
4、cuda_11.7.0_516.01_windows.exe (自行选择适配版本)
5、cudnn-windows-x86_64-8.9.6.50_cuda11-archive.zip (自行选择适配版本)
6、opencv-4.7.0.zip https://wwi.lanzoup.com/iWXkg0qghgxe 官方
7、opencv_contrib-4.7.0.zip https://wwi.lanzoup.com/iq29C0qgh9ed 官方
最新版:
git clone https://gitclone.com/github.com/opencv/opencv
git clone https://gitclone.com/github.com/opencv/opencv_contrib
注:本机笔记本2060,cuda_11.7.0,cudnn-8.9.6,Python 3.8.10
教程:
一、配置cuda环境
直接按照下面教程安装
二、CMake编译OpenCV源码得到OpenCV.sln工程文件
注:原有的opencv的python包必须卸载,python必须先安装numpy
库
此步骤需要下载github上的依赖,需要满足一定的网络条件 另:网络错误解决方案 或尝试使用steam++(watt tookit)加速
1、创建一个目录opencv_build
(此目录以后不能变更,暂未找到解决办法)
把opencv-4.7.0.zip
和opencv_contrib-4.7.0.zip
都解压到opencv_build
目录。再创建一个build
目录为编译目录
2、打开Cmake-gui,选择以下相应的目录
3、第一次点击 configure
,选择vs 2022
和x64
架构,点击finish
,开始第一次编译
4、编译完成后,在Search
框内输入CUDA
和fast
,勾选三个配置 : WITH_CUDA
、OPENCV_DNN_CUDA
、ENABLE_FAST_MATH
。
5、Search框搜world
,将build_opencv_world
打勾。
6、Search框搜BUILD
,勾选BUILD_opencv_python3
。
7、Search框搜CMAKE_CONFIGURATION_TYPES
,内容只留下Release
。
8、search框搜NON
,把OPENCV_ENABLE_NONFREE
打勾。
9、去掉OPENCV_GENERATE_SETUPVARS
10、search框搜MODULES
,在OPENCV_EXTRA_MODULES_PATH
一项,添加opencv_contrib4.7.0
中的modules
目录。再点击 configure
。
11、搜索框输入cuda
,勾选CUDA_FAST_MATH
。CUDA_ARCH_BIN
中将显卡的算力内容改成自己显卡的算力。查询算力网站。再点击 configure
。
12、去D:\opencv_build\build
目录查看CMakeDownloadLog.txt
文件。搜索https
,如果搜索有结果,就表明网络条件不达标,文件下载失败。可以尝试使用steam++(watt tookit)加速,删除CMakeDownloadLog.txt
文件。再点击 configure
。再次打开文件搜索https
,有结果就删除CMakeDownloadLog.txt
文件,再点击 configure
。最后查看自动生成的CMakeDownloadLog.txt内容,没有https开头的东西,说明所有文件全部成功。单击Generate
来生成OpenCV.sln
文件。
注:取消勾选带有java和face的选项可以加快速度,但人脸识别功能应该也会失效。
另外:编译 CUDA加速的 OpenCV-4.8.0 版本_opencv 4.8.0 gpu 编译-CSDN博客
- 去除Java相关;
- 去除JS相关;
- 去除tests相关;
- 勾选CUDA相关
- 将 OpenCV-Contrib 加入到项目中
- 勾选 build_opencv_world
- 去除 OpenCV_ENABLE_NONFREE
- 勾选 ENABLE_FAST_MATH
- 再次点击Configure
- 完成之后,选择CUDA_ARCH_BIN并勾选 CUDA_FAST_MATH
- 再次点击Configure;
- 如果这次完成之后,没有红色,那么就直接Generate,done就结束了。
三、VS编译OpenCV.sln
1、点击Cmake-Gui里的Open Project,打开VS编译OpenCV.sln。
2、右击ALL_BUILD
点击生成,等待一个小时左右(大概生成一百多项)。如果生成没有失败项就表示生成成功。在右击INSTALL
点击生成,生成成功后就编译完成了。
四、测试
打开cmd输入python -c "import cv2; print(f'OpenCV: {cv2.__version__} for python installed and working')"
若输出OpenCV: 4.7.0 for python installed and working
就表明成功编译。
注:opencv_build
目录以后不能变更,暂未找到解决办法
本文系作者 @ATRAY 原创发布在ATRAY站点。未经许可,禁止转载。
暂无评论数据