总有人间一两风,填我十万八千梦

Windows下编译带有CUDA的OpenCV

其他 Zero、J 2202℃ 0评论

本文将会讲解在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

软件要求

下载并安装以下软件:

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

喜欢 (0)or分享 (0)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址