在Ubuntu 20.04中使用CUDA安装OpenCV 4-600学习网
600学习网终身会员188,所有资源无秘无压缩-购买会员
OpenCV编译过程的屏幕截图。
安装预编译版本的OpenCV可能会导致您无法充分利用cuda硬件,这在GPU加速方面非常强大。。
在本文中,我们将使用带有CUDA和cuDNN的预安装环境从源代码构建OpenCV。
1.先决条件
1.1 CUDA和cuDNN
主要前提是安装NVIDIA CUDA工具包和NVIDIACUDA深度神经网络库(cuDNN)库。
如果您尚未安装这些,我建议您按照我之前的指南安装它们
设置后,让我们继续依赖关系。
1.2依赖关系
CMake和GCC需要配置安装和编译项目:
$sudo apt安装cmake
$sudo apt安装gcc g++
为了支持Python 3的安装,我们需要Python(大多数Ubuntu版本都已预装).Python-devel和Numpy:
$sudo apt安装python3 python3-dev python3-numpy
GUI功能.相机支持(v4l).媒体支持(ffmpeg.gstreamer…)等需要GTK:
$sudo apt安装libavcodec-dev libavformat-dev libswscale-dev
$sudo apt安装libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
$sudo apt安装libgtk-3-dev
下一个依赖项是可选的,但添加了对PNG.JPEG.JPEG2000.TIFF.WebP和其他格式的最新支持:
$sudo apt安装libpng-dev libjpeg-dev-libopenexr-dev-llibtiff-dev-labwebp-dev
现在,使用Git下载OpenCV存储库:
$git克隆https://github.com/opencv/opencv.git
我们还将下载OpenCV附加模块(CMake标志-D OpenCV_EXTRA_MODULES_PATH)存储库。这些模块需要与OpenCV一起使用CUDA功能。
$git克隆https://github.com/opencv/opencv_contrib.git
2.确定CUDA架构版本
CMake要求CUDA_ARCH_BIN设置一个标志,以使用正确的CUDA架构编译二进制文件。如果此标志设置不正确,二进制文件的最终使用将失败。
要正确设置标志,请首先使用英伟达smi L命令确定nvidia GPU型号:
现在转到https://developer.nvidia。com/cuda-gpus并找到您的GPU型号。
就我而言,我必须启用CUDA的GeForce和TITAN产品,然后找到GeForce GTX 1050:
在型号名称旁边,您将看到GPU的计算能力。这是NVIDIA GPU架构版本。它将是CMake标志的值:CUDA_ARCH_BIN=6.1
3.准备使用CUDA和cuDNN支持编译
我们将使用一组CMake标志来编译OpenCV。您可以在本文末尾找到这些详细的参考资料。
准备生成目录:
美元cd~/opencv
$mkdir建造
美元cd构建
使用以下标志运行CMake:
cmake公司
-D CMAKE_BUILD_TYPE=发布
-D CMAKE_安装_前缀=/usr/本地
-D,带_ CUDA=开
-D,其中_ CUDNN=开
-D,其中_立方=开
-D,其中_ TBB=开
-D OPENCV_DNN_CUDA=打开
-D OPENCV_启用_非自由=打开
-D CUDA_拱形_箱=6.1
-D OPENCV_EXTRA_MODULES_PATH=$HOME/OPENCV_contrib/MODULES
-D构建_示例=关闭
-D有_opencv _python3=ON
..
您应该具有类似于以下的输出:
...
–CXX编译器标识为GNU 9.4.0
...
–执行测试。。。
...
--OpenCV 4.5.5的一般配置-dev====
...
-NVIDIA CUDA:是(11.6版,CUFFT CUBLAS)
NVIDIA GPU架构:61
NVIDIA PTX拱门:
--
-cuDNN:是(8.3.2版)
...
—配置完成
–生成完成
–构建文件已写入:/home/j/opencv/Build
这表示预构建成功。
4.编译支持GPU加速的OpenCV
如果CMake没有错误,我们可以编译OpenCV。
我们只需要知道我们的CPU有多少内核可用。为此,请使用以下lscpu命令:
找到我们将在下一个命令中使用的CPU设置。
为了最终编译OpenCV,请使用make和-j或-jobs选项。此选项指定同时运行的作业数。它的值必须等于我们之前发现的内核数:
$make-j 8美元
就我而言,完成这项工作需要半个小时。
5.安装OpenCV
通过CUDA和cuDNN编译支持GPU加速的OpenCV后,我们可以像下载预编译包一样安装它。
在构建目录中,运行以下命令:
美元sudo制造安装
然后使用ldconfig创建必要的链接并将其缓存到我们新安装的OpenCV:
美元sudo ldconfig
最后一步是为Python 3创建一个到OpenCV绑定的符号链接,以供全局使用。如果您使用默认的Ubuntu安装,这是必要的,因为它的可执行文件将在目录中找到包dist包,并且OpenCV将默认安装在站点包中。
为此,请运行以下命令:
$sudo ln-s/usr/local/lib/python3.8/site-packages/cv2/usr/local/lib/pyton3.8/dist-package/cv3
使用python3解释器和cv2.cuda。printCudaDeviceInfo(0)以验证库是否正常工作:
就是这样。
清楚的
安装后,一些文件不再需要,可以安全删除:
美元cd~
$rm-rf opencv opencv_控制
使用的CMake标志引用
·CMAKE_BUILD_TYPE=RELEASE:禁用调试选项
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_general_debug
·CMAKE_INSTALL_PREFIX=/usr/local:设置生成的二进制文件的根目录
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_install_root
·WITH_CUDA=ON:启用CUDA支持
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_func_hetero
·当_CUDNN=ON时:(未记录)启用CUDNN支持
·WITH_CUBLAS=ON:(未记录)启用CUBLAS支持
·WITH_TBB=ON:使用线程构建块启用并行编程
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_func_core
·OPENCV_DNN_CUDA=ON:启用CUDA后端并构建DNN模块(需要CUDA.cuDNN和cuBLAS)
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_dnn
·OPENCV_ENABLE_NONFREE=ON:启用专利算法
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_misc
·CUDA_ARCH_BIN=6.1:指定NVIDIA GPU架构版本(请参阅第3节)
·https://github.com/opencv/opencw/blob/4.x/cmake/OpenCVDetectCUDA.cmake#L217
·OPENCV_EXTRA_MODULES_PATH=$HOME/OPENCV_contrib/MODULES:其他模块,包括OPENCV
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_general_contrib
·BUILD_EXAMPLES=OFF:禁用生成示例
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_general_tests
·HAVE_opencv_python3=ON:强制依赖opencv_python3
·https:/docs.opencv.org/4.x/db/d05/tutorial_config_reference.html#tutorial_config_reference_func
来源
·在Ubuntu中安装OpenCV-Python:https://docs。opencv。org/4.5.5/d2/de6/tutorial_py_setup_in_ubuntu.html
·OpenCV安装概述:https://docs。opencv。org/4.x/d0/d3d/tutorial_general_install.html
·OpenCV配置选项参考:https://docs。opencv。org/4.x/db/d05/tutorial_config_reference.html
·OpenCV的其他模块存储库:https://github.com/opencv/opencv_contrib
600学习网 » 在Ubuntu 20.04中使用CUDA安装OpenCV 4-600学习网