支持硬件加速的opencv编译

这篇具有很好参考价值的文章主要介绍了支持硬件加速的opencv编译。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

为了降低cpu的使用率提升系统的接入能力,需要将编解码模块移至GPU处理,opencv默认的发行版中不支持GPU加速,所以需要重新编译opencv使其支持GPU硬件加速。

读者

本文的读者须具备一定的Linux使用经验,如常规软件安装等操作不在本文档中描述。

术语

cuda:统一计算设备架构(Compute Unified Device Architecture, CUDA),是由NVIDIA推出的通用并行计算架构。解决的是用更加廉价的设备资源,实现更高效的并行计算。

nvcc:NVIDIA编译器,运行于GPU的程序后缀为“.cu”,此类型文件使用nvcc编译。

nvidia-smi :NVIDIA System Management Interface program。

依赖组件

git:版本管理工具,用于获取程序源码;

g++:c++程序的编译器;

cmake:c++程序的编译管理工具;

ffmpeg:主要作用拉取rtsp视频流,如果不添加此组件,opencv只能从本机摄像机处取视频流处理,该工具源码可从github获取。

cuda运行时库:NVIDIA发布的用来使用GPU的底层依赖库,可从NVIDIA官网获取。

Video_Codec_SDK:NVIDIA提供的视频编、解码库,可从NVIDIA官网获取。

Python3:现有视频事件主要使用该语言,所以需要做对python3的绑定。

Opencv编译

opencv默认的源码程序中不支持硬件加速,其硬件加速在扩展包opencv_contrib中,因此编译前,需要从网络上下载opencv与opencv_contrib两个源码包,获取地址如下:

opencv:“https://gitee.com/opencv/opencv?_from=gitee_search”

opencv_contrib:“https://gitee.com/opencv/opencv_contrib”.

获取源码,执行如下命令

git clone https://gitee.com/opencv/opencv.git

git clone https://gitee.com/opencv/opencv_contrib.git

切换至4.7.0版本,现有视频事件平台使用4.5.3版本的opencv,该版本在硬件加速编译中存在bug,所以我们选用4.7.0版本

分别进入opencv与opencv_contrib文件夹中,执行如下命令

git checkout 4.7.0

git checkout -b v4.7.0

安装python3

有时候系统中默认的python为软连接,连接目标是python2,删除该软连接,创建新的软连接,连接至python3。

安装python3的pip,执行如下命令

apt-get install python3-pip

安装numpy,执行如下命令,【该组件安装,不要使用国内加速镜像】

pip install numpy

安装ffmpeg

参见《支持硬件加速的ffmpeg编译.docx》

安装cuda

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run

安装过程中取消第一个驱动选项,其余选项默认。

安装Video_Codec_SDK

NVIDIA官网下载Video_Codec_SDK,并解压。将解压出来的头文件拷贝至“/usr/include”下,将库文件拷贝在“/usr/lib”下。

Opencv编译

修改“opencv/cmake/OpenCVDetectCUDA.cmake”文件,在第66行添加“/usr/include”,修改前如下图:

支持硬件加速的opencv编译

修改后,如下图:

支持硬件加速的opencv编译

执行如下命令,生成Makefile文件

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig/:/usr/lib/x86_64-linux-gnu/pkgconfig/

cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.7 \

-D CMAKE_BUILD_TYPE=Debug \

-D INSTALL_C_EXAMPLES=ON \

-D OPENCV_ENABLE_NONFREE=ON \

-D WITH_CUDA=ON \

-D WITH_FFMPEG=ON \

-D WITH_GTK_2_X=ON \

-D WITH_OPENGL=ON \

-D WITH_TBB=ON \

-D WITH_CUBLAS=1 \

-D CUDA_ARCH_BIN=8.6 \

-D OPENCV_GENERATE_PKGCONFIG=ON \

-D OPENCV_EXTRA_MODULES_PATH=/home/yangdong/opencv_contrib/modules \

-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \

-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \

-D WITH_WEBP=OFF \

-D WITH_OPENCL=OFF \

-D ETHASHLCL=OFF \

-D ENABLE_CXX11=ON \

-D BUILD_opencv_python3=ON \

-D BUILD_opencv_python2=OFF \

-D PYTHON_DEFAULT_EXECUTABLE=$(python -c "import sys; print(sys.executable)") \

-D PYTHON3_EXECUTABLE=$(python -c "import sys; print(sys.executable)") \

-D PYTHON3_NUMPY_INCLUDE_DIRS=$(python -c "import numpy; print (numpy.get_include())") \

-D PYTHON3_PACKAGES_PATH=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \

-D BUILD_EXAMPLES=OFF \

-D WITH_V4L=ON ..

上述cmake命令行关键参数介绍入下:

CMAKE_INSTALL_PREFIX:指定opencv安装路径;

WITH_CUDA=ON:打开cuda支持

WITH_FFMPEG=ON:打开ffmpeg支持

WITH_GTK_2_X=ON:打开gtk支持

WITH_OPENGL=ON:打开opengl支持【本次编译opengl未添加成功】

CUDA_ARCH_BIN=8.6:显卡算力值,该值需要从NVIDIA官网查询,本文档编译使用RTX3060,官网查询算力值为8.6

OPENCV_EXTRA_MODULES_PATH:opencv扩展包路劲,硬件加速代码主要在此包中

CUDA_TOOLKIT_ROOT_DIR:顾名思义,cuda toolkit路劲

BUILD_opencv_python3=ON:打开python3绑定

生成Makefile后,会生成如下提示信息,红框中的部分为关键部分,如果于下图不同,需要检查cmake命令中参数路劲是否准确。

支持硬件加速的opencv编译

需要保证ffmpeg为YES,NVIDIA CUDA 为YES,且包含NVCUVID NVCUVENC,Python3对应的条目值准确(条目值为实际安装的路径)

执行如下命令进行安装

make -j 16

make install

make -j 后的数字需要参考本机的核数填写,不能超过本机的核数,本文编译时使用32核机器,核数查询可以通过nproc命令查询。

安装完成后支持CUDA硬件加速的opencv编译安装成功。文章来源地址https://www.toymoban.com/news/detail-497863.html

到了这里,关于支持硬件加速的opencv编译的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 18.04 安装ffmpeg(支持GPU硬件加速)

    1:安装前请自行安装nvidia驱动和cudu cudnn 查看cuda版本 2:安装nv-codec-hearers 官网: https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/ 3:安装ffmpeg编码库 4:安装ffmpeg 5:建立软连接 增加安装目录的动态链接库 6 检查硬件加速 7:添加库连接 8 :运行实例检查 9:卸载

    2023年04月18日
    浏览(113)
  • NDK编译ffmpeg包含硬件加速vulkan和mediacodec

    NDK编译ffmpeg包含硬件加速vulkan和mediacodec flyfish ffmpeg:ffmpeg-6.0 NDK:android-ndk-r25c 硬件加速:vulkan 和 mediacodec target CPU:armv8-a host:Ubuntu 22.04 因为这里要编译硬件加速版本的ffmpeg-6.0,所以需要把vulkan中include下的两个文件夹 vk_video 和 vulkan 拷贝到 android-ndk-r25c/toolchains/llvm/prebuil

    2024年02月12日
    浏览(35)
  • FFmpeg 在Windows环境下 Intel ,Nvidia ,AMD 硬件加速编解码支持列表

    目录 前言 一. Intel 编解码硬件支持列表   1. Encode 编码硬件支持列表 (1)Intel 独显编码硬件支持列表 (2)第 11,12,13 代 Intel 处理器编码硬件支持列表 (3)第 10 代 Intel 处理器编码硬件支持列表 (4)第 9 代 Intel 处理器编码硬件支持列表 (5)第 5,6,7,8 代 Intel 处理器

    2024年02月03日
    浏览(50)
  • 【OpenCV】 OpenCV 源码编译并实现 CUDA 加速 (Windows)

    目录 1. 环境准备 1.1 软件环境 1. 2 源码下载 2. CMake编译项目 2.1 创建cmake项目 2.2 设置编译配置 2.3 解决异常 2.3.1 文件下载异常 2.3.2 解决CUDA版本异常 2.4 编译项目 3. Visual Studio 编译项目 4. 项目测试 5. 总结   OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器

    2024年02月03日
    浏览(42)
  • 为了降低个人股票投资者的决策误判概率,我们做了一款软件

    对于个人股票投资者而言,避免投资决策误判是最重要且最首要的,盈利多少都是次要的。 这是一个面向个人股票投资者的决策辅助工具【棱镜】,它旨在将你的分析决策逻辑转化为由文字和框架转化为算法,让计算机和算法辅助你共同决策,降低决策误判概率。网站:pr

    2024年02月04日
    浏览(51)
  • Jetson OpenCV 安装,支持cuda加速,已解决多个常见问题

    1 :本文主要介绍 Jetson Xavier NX (以下简称 NX ) 平台下 OpenCV 的卸载及编译安装带 CUDA 加速的OpenCV 2 :并提出解决依赖项无法安装的问题 为什么要卸载默认的 OpenCV ? 输入命令 按数字6查看INFO页面,可以看到 所以默认的 OpenCV 版本是不带 CUDA 加速的,无法充分利用 NX 的 GPU 性能

    2024年01月19日
    浏览(58)
  • 为了辅助个人股票投资者的降低决策误判概率,我们做了一款软件

    对于个人股票投资者而言,避免投资决策误判是最重要且最首要的,盈利多少都是次要的。 这是一个面向个人股票投资者的决策辅助工具【棱镜】,它旨在将你的分析决策逻辑转化为由文字和框架转化为算法,让计算机和算法辅助你共同决策,降低决策误判概率。网站:pr

    2024年02月03日
    浏览(47)
  • Win10 + VS2022 + OpenCV 4.7 + contrib + cuda加速 编译

    https://download.csdn.net/download/Kasper_2009/88252429 https://download.csdn.net/download/Kasper_2009/88252429 在cmd命令中打nvidia-smi看支持的cuda最高版本 cuda版本选择也不能过于早,作者之前用过cuda11.2,在后续vs编译环节发现其最高只支持vs2019,不支持vs2022。目前作者使用cuda11.8。 下载安装cuda:CU

    2024年02月17日
    浏览(45)
  • Python OpenCV配置CUDA以支持GPU加速 (不使用Visual Studio)

    Welcome to My Blog 文章唯一地址:https://blog.csdn.net/REAL_liudebai/article/details/119356958 问题:   1)Python通过pip或conda安装的OpenCV库仅支持CPU;   2)网上找到的教程基本都是通过VS配置CUDA环境( VS太强大了,但并不想安装 ); 解决办法:   3)可以使用官方预构建源代码配置支

    2024年01月22日
    浏览(60)
  • Jetson Orin NX 开发指南(5): 安装 OpenCV 4.6.0 并配置 CUDA 以支持 GPU 加速

    Jetson 系列的开发板 CPU 性能不是很强,往往需要采用 GPU 加速的方式处理图像数据,因此本文主要介绍如何安装带有 GPU 加速的 OpenCV,其中 GPU 加速通过 CUDA 来实现。 参考博客 Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0-CSDN博客Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.

    2024年02月04日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包