[记录]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.1_516.94_windows.exe (自行选择适配版本)

5、cudnn-windows-x86_64-8.8.0.121_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 官方

教程:

一、配置cuda环境

直接按照下面教程安装

CUDA安装及环境配置——最新详细版

二、CMake编译OpenCV源码得到OpenCV.sln工程文件

注:原有的opencv的python包必须卸载,python必须先安装numpy

此步骤需要下载github上的依赖,需要满足一定的网络条件

1、创建一个目录opencv_build (此目录以后不能变更,暂未找到解决办法)

opencv-4.7.0.zipopencv_contrib-4.7.0.zip都解压到opencv_build目录。再创建一个build目录为编译目录

2、打开Cmake-gui,选择以下相应的目录

3、第一次点击 configure,选择vs 2022x64架构,点击finish,开始第一次编译

4、编译完成后,在Search框内输入CUDAfast,勾选三个配置 : WITH_CUDA OPENCV_DNN_CUDAENABLE_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、search框搜MODULES,在OPENCV_EXTRA_MODULES_RATH一项,添加opencv_contrib4.7.0中的modules目录。再点击 configure

10、搜索框输入cuda,勾选CUDA_FAST_MATH CUDA_ARCH_BIN中将显卡的算力内容改成自己显卡的算力。查询算力网站再点击 configure

10、去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的选项可以加快速度,但人脸识别功能应该也会失效。

三、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 目录以后不能变更,暂未找到解决办法

暂无评论

发送评论 编辑评论


				
上一篇
下一篇