NVIDIA GPU / CUDA 中使用 OpenCV 深度神经网络模块

本教程介绍了如何结合NVIDIA GPU、CUDA和cuDNN,从源代码编译OpenCV的深度神经网络(DNN)模块,以实现高达1549%的推理速度提升。内容涵盖安装CUDA和cuDNN,配置依赖项,确定GPU架构版本,使用cmake和make编译OpenCV,以及验证GPU支持的DNN模块运行情况。
摘要由CSDN通过智能技术生成

在本教程中,您将学习如何将 OpenCV 的“深度神经网络”(DNN) 模块与 NVIDIA GPU、CUDA 和 cuDNN 结合使用,以将推理速度提高 211-1549%。

早在 2017 年 8 月,我发表了我的第一个关于使用 OpenCV 的“深度神经网络”(DNN)模块进行图像分类的教程。

PyImageSearch 的读者非常喜欢 OpenCV 的 dnn 模块的便利性和易用性,因此我陆续发布了有关 dnn 模块的一些教程。

这些教程都使用 OpenCV 的 dnn 模块来进行下面操作:

(1) 从磁盘加载预训练的网络; 

(2) 对输入图像进行预测; 

(3) 显示结果,允许您构建自己的自定义计算机视觉 /deep learning 管道用于您的特定项目。

然而,OpenCV 的 dnn 模块最大的问题是缺乏 NVIDIA GPU/CUDA 支持——这些模型你不能轻易地使用 GPU 来提高管道的每秒帧数 (FPS) 处理率。

对于 Single Shot Detector (SSD) 教程来说,这并不是什么大问题,它可以轻松地在 CPU 上以 25-30+ FPS 的速度运行,但对于 YOLO 和 Mask R-CNN 来说,这是一个巨大的问题,它们很难做到在 CPU 上获得超过 1-3 FPS。

这一切在 2019 年的 Google Summer of Code (GSoC) 中发生了变化。

在 dlib 的 Davis King 的带领下,由 Yashas Samaga 实施,OpenCV 4.2 现在支持使用 OpenCV 的 dnn 模块进行推理的 NVIDIA GPU,将推理速度提高了 1549%!

在今天的教程中,我将向您展示如何编译和安装 OpenCV 以利用您的 NVIDIA GPU 进行深度神经网络推理。

然后在下周的教程中,我将为您提供 Single Shot Detector、YOLO 和 Mask R-CNN 代码,这些代码可用于使用 OpenCV 来利用您的 GPU。接着我们将对结果进行基准测试,并将它们与仅使用 CPU 的推理进行比较,以便您了解哪些模型可以从使用 GPU 中获益最多。

要了解如何使用 NVIDIA GPU、CUDA 和 cuDNN 支持编译和安装 OpenCV 的“dnn”模块,请继续阅读!

如何在 NVIDIA GPU、CUDA 和 cuDNN 中使用 OpenCV 的“dnn”模块

在本教程的其余部分,我将向您展示如何从源代码编译 OpenCV,以便您可以利用 NVIDIA GPU 加速推理来进行预训练的深度神经网络。

为 NVIDIA GPU 支持编译 OpenCV 时的假设

为了在 NVIDIA GPU 支持下编译和安装 OpenCV 的“深度神经网络”模块,我将做出以下假设:

1、你有一个 NVIDIA GPU。这应该是一个明显的假设。如果您没有 NVIDIA GPU,则无法编译具有 NVIDIA GPU 支持的 OpenCV 的“dnn”模块。

2、您正在使用 Ubuntu 18.04(或其他基于 Debian 的发行版)。说到深度学习,我强烈推荐基于 Unix 的机器而不是 Windows 系统(实际上,我在 PyImageSearch 博客上不支持 Windows)。如果您打算使用 GPU 进行深度学习,请在 macOS 或 Windows 上使用 Ubuntu——它更容易配置。

3、您知道如何使用命令行。我们将在本教程中使用命令行。如果您不熟悉命令行,我建议您先阅读此命令行介绍,然后花几个小时(甚至几天)练习。同样,本教程不适用于那些全新的命令行。

4、您能够阅读终端输出并诊断问题。如果您以前从未这样做过,从源代码编译 OpenCV 可能具有挑战性——有很多事情会让您感到困惑,包括丢失的包、不正确的库路径等。即使使用我的详细指南,您也可能会犯错误一路上。不要气馁!花点时间了解您正在执行的命令、它们的作用,最重要的是,阅读命令的输出!不要盲目复制粘贴;你只会遇到错误。

说了这么多,让我们开始为 NVIDIA GPU 推理配置 OpenCV 的“dnn”模块。

第 1 步:安装 NVIDIA CUDA 驱动程序、CUDA Toolkit 和 cuDNN

本教程假设您已经拥有:

一个英伟达 GPU
已安装该特定 GPU 的 CUDA 驱动程序
CUDA Toolkit 和 cuDNN 配置和安装

如果您的系统上有 NVIDIA GPU,但尚未安装 CUDA 驱动程序、CUDA Toolkit 和 cuDNN,则您需要先配置您的机器——我不会在本指南中介绍 CUDA 配置和安装。一旦您安装了正确的 NVIDIA 驱动程序和工具包,您就可以返回本教程。

第 2 步:安装 OpenCV 和“dnn”GPU 依赖项

为 NVIDIA GPU 推理配置 OpenCV 的“dnn”模块的第一步是安装适当的依赖项:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential cmake unzip pkg-config
$ sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libv4l-dev libxvidcore-dev libx264-dev
$ sudo apt-get install libgtk-3-dev
$ sudo apt-get install libatlas-base-dev gfortran
$ sudo apt-get install python3-dev

如果您遵循我的 Ubuntu 18.04 深度学习

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值