本文将会讲解在Windows下编译带有CUDA的OpenCV
简介
在计算机视觉领域工作了十年,我一直在使用流行的应用程序框架来帮助我完成复杂的任务,例如图像处理,对象跟踪,人脸检测等。
其中两个工具是OpenCV和CUDA。
- OpenCV是一组编程模块,可帮助我们轻松完成复杂的实时计算机视觉任务。由于其可靠性和开源理念,它一直是最受欢迎的计算机视觉工具之一
- CUDA是一个并行计算工具包,它允许我们使用NVidia GPU的强大功能来显着提高应用程序的性能。
James Bowley发布了详细的性能比较,您可以在其中看到CUDA对OpenCV的影响(链接地址)
但是,官方OpenCV二进制文件不包括安装即可使用的GPU支持。如果要充分利用GPU的全部功能,您需要自己构建相关的库。
下面的内容将会介绍如何编译带有CUDA的OpenCV,为方便起见,我上传了最新稳定版的二进制文件。
原文作者将附件上传到了Google Driver,点此下载
如果您不能访问Google Driver,我已经转存到了百度网盘,链接:https://pan.baidu.com/s/1bMcb466L30OctKlZ3_q5Cw 提取码:qxw5
请记住:如果您下载二进制文件,请分享此帖子以帮助其他开发人员!
系统环境要求
硬件要求
请确保您的计算机具有以下的硬件支持:
- 支持CUDA的GPU(原作者在Nvidia 1060上测试通过)
- 推荐CPU Intel Core i7及以上的CPU
软件要求
下载并安装以下软件:
- Windows 10 操作系统(原文作者指向了微软官网,国内用户系统建议到 http://msdn.itellyou.cn/ 下载,这里提供的是原版纯净系统)
- Visual Studio 2015(同上,VS各大版本在itellyou上都有)
- CUDA Toolkit 9.1
- CUDA Toolkit 9.1 Patch 1(9.1的补丁包,如果下载最新版本目测不需要)
- cuDNN 7.1.3
- CMake 3.10.1
Nvidia CUDA下载页面(地址为 https://developer.nvidia.com/cuda-downloads ),如下图所示。
国内网络环境,建议勾选exe(local)完整安装包的形式下载,原文中采用的是在线安装的方式。
Nvidia cuDNN 下载页面(下载地址为https://developer.nvidia.com/cudnn,需要用户注册登录),如下图所示。
编译构建OpenCV
这一步将会下载和编译支持CUDA的OpenCV(版本为最新版本)
1、Clone OpenCV (原作者使用的Git,如果没有Git,请到 https://github.com/opencv/opencv 这里下载zip)
git clone https://github.com/opencv/opencv.git
在原文中,作者将下载的代码包解压到了 C:\Users\Vangos\Projects\OpenCV 这个路径,如下图所示。
2、生成Visual Studio解决方案
在继续下面的操作之前,我们还需要确保当前计算机的环境变量已经包含了路径 C:\Program Files (x86)\Windows Kits\8.1\bin\x64 (环境变量如果不会,请自行百度)
如下图所示,是添加的环境变量,添加到path中。
如果你计算机中未包含该路径,请手动添加。
打开控制台CMD,然后输入以下命令,注意命令中的PATH_TO_SOURCE表示的是你的代码解压路径(如果你的CMAKE已经加入到环境变量,可以直接使用CMAKE):
"C:\Program Files\CMake\bin\cmake.exe" -B"PATH_TO_SOURCE\build" -H"PATH_TO_SOURCE" -G"Visual Studio 14 2015 Win64" -DBUILD_opencv_world=ON -DWITH_CUDA=ON -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON
例如原作者的命令例子:
"C:\Program Files\CMake\bin\cmake.exe" -B"C:\Users\Vangos\Projects\OpenCV\build" -H"C:\Users\Vangos\Projects\OpenCV" -G"Visual Studio 14 2015 Win64" -DBUILD_opencv_world=ON -DWITH_CUDA=ON -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON
3、开始编译
打开你的代码所在的路径,也就是编译的时候PATH_TO_SOURCE这个路径,找到OpenCV.sln文件并使用Visual Studio 2015打开它。
在配置管理器中找到并选中下面的选项。(就是设置为x64平台,编译为Release,这个选项在运行按钮边上就可以修改)
- Active solution configuration: Release
- Active solution platform: x64
在解决方案资源管理器中,找到名为INSTALL的项目,如下图所示。
右键单击INSTALL项目并选择“Build”,然后耐心等待….根据您计算机的配置,可能需要几分钟甚至几个小时。
4、验证安装
编译完成之后,编译后的二进制文件位于 build/install 文件夹,其结构如下图所示。
您现在可以按照官方OpenCV指南,在您自己的应用程序中集成OpenCV和CUDA支持!
5、使用Visual C ++运行OpenCV
使用Visual Studio运行OpenCV项目时,需要包含以下的头文件目录:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include C:\Users\Vangos\Projects\OpenCV\build\install\include
同时还需要添加以下的附加库目录
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\lib\x64 C:\Users\Vangos\Projects\OpenCV\build\install\x64\vc14\lib
然后还要添加以下依赖库
opencv_world400.lib cudnn.lib
如果你不能理解上面的这些东西,我建议你去好好学习以下VS下C++的一些工程设置,包括库的添加、附加头文件目录、编译选项等知识。
至此,您现在可以使用GPU加速的OpenCV构建的全部功能。如果您只想要预编译的二进制文件,你可以使用文中开头所提供的二进制文件。
原文地址:https://www.codeproject.com/Articles/1265544/How-to-Build-OpenCV-for-Windows-with-CUDA
转载请注明:悠然品鉴 » Windows下编译带有CUDA的OpenCV