周六日在家捣腾了一下,把过程记录下来。
前置条件
- Visual Studio C++ 生成工具
- 和本机显卡适配的CUDA
- 与CUDA匹配的cuDNN
- Python 3
- NumPy
- OpenCV源代码以及对应版本的OpenCV-contrib模块源码
- CMake
Visual Studio
下载Visual Studio(我本机的是VS2022),通过Visual Studio Installer安装程序,安装C++工具集(或C++工作负荷),详细安装过程可参考这里。
CUDA和cuDNN
下载安装最新版的CUDA Toolkit,注意与本地GPU兼容,或者检查本地路径,看是否已经安装CUDA工具包。以我本机为例,CUDA12.5安装在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.5。同上,登录NVIDIA账号下载cuDNN,并将cuDNN文件中的内容复制到CUDA Toolkit所在目录(如C:\Program Files\NVIDIA\CUDNN\vX.X)的bin、include和lib/x64等文件夹下,我本机的cuDNN是9.2.1版。
Python、NumPy及pip
安装Python3.x版本,由于需要使用numpy矩阵替代cv:Mat,,故还需安装numpy,保证已经安装好numpy(pip install numpy)并确保包括opencv-python和opencv-contrib-python等opencv包卸载干净。
pip uninstall opencv-python
pip uninstall opencv-contrib-python
删除cv2目录——YOUR_PYTHON_PATH/Lib/site-packages/cv2
OpenCV
从github仓库下载,或克隆仓库到本地,内容包括OpenCV及版本匹配的opencv-contrib。
CMake配置
给opencv和opencv-contrib创建build目录,然后配置cmake。Cmake配置可参考官网链接:OpenCV: OpenCV configuration options reference。
这是一个漫长的过程,中途需要下载3rdparty文件夹里引用的第三方内容,个别库还可能出错,需要手工下载。
本例我们把Python也选上: