在 Ubuntu 20.04 中使用 CUDA 安装 OpenCV 4

本文详细介绍了如何在 Ubuntu 20.04 上从源代码编译并安装带有 CUDA 和 cuDNN 支持的 OpenCV 4,包括安装先决条件、确定 CUDA 架构版本、配置 CMake、编译以及安装步骤。遵循此指南,用户将能够充分利用 GPU 加速功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

eda4f7abd043733c02b8614bee7e01bc.png

OpenCV 编译过程的截图。

安装一个预编译版本的OpenCV可能会导致你不能充分利用cuda硬件,而cuda硬件在GPU加速方面是非常强大的。。

本文,我们将使用带有 CUDA 和 cuDNN 的预安装环境从源代码构建 OpenCV。

1. 先决条件

1.1 CUDA 和 cuDNN

主要的先决条件是安装 NVIDIA CUDA 工具包和 NVIDIA CUDA 深度神经网络库 (cuDNN) 库。

如果你还没有安装这些,建议你按照我之前的指南安装它们:

https://medium.com/@juancrrn/installing-cuda-and-cudnn-in-ubuntu-20-04-for-deep-learning-dad8841714d6

设置好后,让我们继续依赖关系。

1.2 依赖项

需要 CMake 和 GCC 来配置安装和编译项目:

$ sudo apt install cmake

$ sudo apt install gcc g++

为了支持 Python 3 安装,我们需要 Python(大多数 Ubuntu 版本都预装了它)、Python-devel 和 Numpy:

$ sudo apt install python3 python3-dev python3-numpy

GUI 功能、相机支持 (v4l)、媒体支持 (ffmpeg、gstreamer...) 等都需要 GTK:

$ sudo apt install libavcodec-dev libavformat-dev libswscale-dev

$ sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

$ sudo apt install libgtk-3-dev

下一个依赖项是可选的,但添加了对 PNG、JPEG、JPEG2000、TIFF、WebP 等格式的最新支持:

$ sudo apt install libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev

现在,使用 Git 下载 OpenCV 存储库:

$ git clone https://github.com/opencv/opencv.git

我们还将下载 OpenCV 的额外模块 (CMake flag -D OPENCV_EXTRA_MODULES_PATH) 存储库。需要这些模块才能将 CUDA 功能与 OpenCV 一起使用。

$ git clone ht
### 安装支持 CUDAOpenCV 为了在 Ubuntu 20.04 上成功安装带有 CUDA 支持的 OpenCV,需遵循一系列特定步骤来确保兼容性和性能优化。以下是详细的指南: #### 准备工作环境 更新现有包列表并升级已安装软件包至最新版本[^1]。 ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装依赖项 安装构建工具和其他必要的库文件。这一步骤对于后续编译过程至关重要。 ```bash sudo apt install build-essential cmake git pkg-config libgtk-3-dev \ libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev \ gfortran openexr libatlas-base-dev protobuf-compiler \ libgoogle-glog-dev libgflags-dev libeigen3-dev \ libopenblas-dev liblapack-dev checkinstall yasm \ libfaac-dev libmp3lame-dev libtheora-dev libvorbis-dev \ libxvidcore-dev x264 v4l-utils ffmpeg qtbase5-dev \ qtchooser qt5-qmake qtbase5-dev-tools libvtk7-dev \ libdc1394-22-dev libharfbuzz-dev libfreetype6-dev \ libfontconfig1-dev libglu1-mesa-dev wget unzip curl \ doxygen graphviz imagemagick libprotobuf-dev \ libsuitesparse-dev libassimp-dev libceres-dev \ libpcl-dev libboost-all-dev libjsoncpp-dev \ libyaml-cpp-dev libgdal-dev libspatialindex-dev \ libgeos++-dev libqhull-dev libflann-dev \ libtinyxml2-dev liburdfdom-dev libconsole-bridge-dev \ ros-noetic-turtlebot3-msgs ros-noetic-sensor-msgs \ ros-noetic-nav-msgs ros-noetic-actionlib msgpack-python \ msgpack-cxx libopencv-contrib-dev libopencv-features2d-dev \ libopencv-flann-dev libopencv-highgui-dev libopencv-imgcodecs-dev \ libopencv-imgproc-dev libopencv-ml-dev libopencv-objdetect-dev \ libopencv-photo-dev libopencv-shape-dev libopencv-stitching-dev \ libopencv-superres-dev libopencv-ts-dev libopencv-video-dev \ libopencv-videostab-dev libopencv-xfeatures2d-dev \ libopencv-ximgproc-dev libopencv-aruco-dev libopencv-bgsegm-dev \ libopencv-bioinspired-dev libopencv_ccalib-dev \ libopencv-cvv-dev libopencv-datasets-dev \ libopencv-dpm-dev libopencv-face-dev libopencv-fuzzy-dev \ libopencv-hfs-dev libopencv-line_descriptor-dev \ libopencv-optflow-dev libopencv-phase_unwrapping-dev \ libopencv-plot-dev libopencv-reg-dev libopencv-rapid-dev \ libopencv-rgbd-dev libopencv-saliency-dev \ libopencv-sfm-dev libopencv-stereo-dev libopencv-structured_light-dev \ libopencv-text-dev libopencv-tracking-dev libopencv-wechat_qrcode-dev \ libopencv_xphoto-dev ``` 注意:上述命令中的部分依赖可能并非全部必需;具体需求取决于个人项目要求以及所使用OpenCV模块[^2]。 #### 配置 NVIDIA 开发环境 下载并安装适用于系统的NVIDIA驱动程序、CUDA Toolkit 和 cuDNN SDK 。访问[NVIDIA官方网站](https://developer.nvidia.com/cuda-downloads),按照提示完成相应组件的选择与部署。 验证CUDA安装是否正确无误: ```bash nvcc --version nvidia-smi ``` #### 获取源码并编译 克隆官方GitHub仓库获取最新的OpenCV源代码,并切换到目标分支或标签页(此处假设为`master`)。创建一个新的构建目录用于存放生成文件,执行CMake配置脚本指定启用GPU加速选项以及其他个性化设置参数。 ```bash git clone https://github.com/opencv/opencv.git ~/opencv cd ~/opencv mkdir build cd build cmake .. -D CMAKE_BUILD_TYPE=Release \ -D WITH_CUDA=ON \ -D ENABLE_FAST_MATH=ON \ -D CUDA_ARCH_BIN="8.6" \ # 替换为你自己的 GPU 架构编号 -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ .. ``` > **重要**: `OPENCV_EXTRA_MODULES_PATH`指向额外功能模块路径,在此之前还需另行clone opencv_contrib仓库以解锁更多特性支持。 启动多线程模式加快编译速度,最后打包成deb格式便于分发给其他机器使用或者直接本地安装。 ```bash make -j$(nproc) sudo make install ``` 至此,已完成整个流程的操作说明。通过以上步骤可以实现在Ubuntu 20.04 LTS平台上顺利搭建起一套完整的基于CUDA硬件加速特性的计算机视觉开发框架——OpenCV
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值