UOS部署图像检测服务-环境配置

目标

在uos环境部署图像检测程序。
通过opencv读取实时视频流解码成图片,通过TensorRT推理每一张图片的结果。保存告警图片与告警视频。

环境信息

  • 系统版本:UnionTech OS Server 20
  • 编译环境信息:cmake version 3.18.2;g++ (GCC) 8.5.0 20210514 (UnionTech 8.5.0-10.0.3);gcc (GCC) 8.5.0 20210514 (UnionTech 8.5.0-10.0.3)
  • GPU: Tesla T4
  • GPU驱动:520.61.05 (通过cuda安装文件一起安装的)
  • cuda: 11.8(官网下载cuda_11.8.0_520.61.05_linux.run 直接安装驱动与cuda)
  • cudnn:cudnn-linux-x86_64-9.2.0.82_cuda11-archive.tar.xz
  • VideoCodec:Video_Codec_Interface_12.2.72.zip
  • ffmpeg:ffmpeg-6.1.1.tar.xz opencv:4.10.0.zip
  • TensorRT:TensorRT-10.2.0.19.Linux.x86_64-gnu.cuda-11.8.tar.gz

配置开发环境

基础开发依赖安装

cuda安装

直接在官网下载cuda_11.8.0_520.61.05_linux.run,执行安装即可。
如果安装驱动失败,需要先停止X service;停止方式: systemctl stop lightdm

安装cudnn

官网下载cudnn-linux-x86_64-9.2.0.82_cuda11-archive.tar.xz,解压到/usr/local目录下,配置环境变量

配置环境变量

export PATH=$PATH:/usr/local/cuda-11.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cudnn-linux-x86_64-9.2.0.82_cuda11-archive/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/cudnn-linux-x86_64-9.2.0.82_cuda11-archive/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/cudnn-linux-x86_64-9.2.0.82_cuda11-archive/include
export CUDA_MODULE_LOADING=LAZY
export CUDA_HOME=/usr/local/cuda-11.8
export CPATH=/usr/local/cuda/targets/x86_64-linux/include

ffmpeg 源码安装

安装编解码依赖

让ffmpeg支持GPU硬件解码+支持h264 h265编解码格式。

fdk-aac
下载fdk-aac-2.0.0-3.el8.x86_64.rpm + fdk-aac-devel-2.0.0-3.el8.x86_64.rpm 离线安装包,通过rpm -ivh *.rpm --force --nodeps安装
x264
下载x264-0.164-6.20220602gitbaee400f.el8.x86_64.rpm + x264-devel-0.164-6.20220602gitbaee400f.el8.x86_64.rpm + x264-libs-0.164-6.20220602gitbaee400f.el8.x86_64.rpm 离线安装包,通过rpm -ivh *.rpm --force --nodeps安装	
x265
下载x265-3.5-5.el8.x86_64.rpm + x265-libs-3.5-5.el8.x86_64.rpm + x265-devel-3.5-5.el8.x86_64.rpm 离线安装包,通过rpm -ivh *.rpm --force --nodeps安装	
ffnvcodec
下载 nv-codec-headers 进入目录执行make  再执行make install 完成安装
配置环境变量:export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

源码安装

官网下载源码解压后执行

./configure --disable-asm --disable-x86asm --enable-parsers \
--enable-gpl --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfdk-aac \
--enable-cuda --enable-cuvid --enable-nvenc \
--enable-nonfree --enable-libnpp \
--extra-cflags=-I/usr/local/cuda/include \
--extra-cflags=-fPIC \
--extra-ldflags=-L/usr/local/cuda/lib64 \
--enable-libfreetype --disable-debug \
--enable-shared --disable-static --disable-doc

再执行make 与 make install 进行安装
安装完成后配置环境变量:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

opencv 源码安装

去官网下载源码后解压

添加硬件编解码支持

添加cuda的NVCUVENC支持:修改cmake/OpenCVDetectCUDA.cmake 69行为

  set(cuda_toolkit_dirs "${CUDA_TOOLKIT_TARGET_DIR}" "${CUDA_TOOLKIT_ROOT_DIR}" "/usr/include" "/usr/local/include/ffnvcodec")

添加cuda中的NVCUVID支持:

下载Video_Codec_Interface_12.2.72,将头文件cuviddec.h+nvcuvid.h导入/usr/local/include目录下。

添加cudnn支持:cmake添加如下选项:(下一步提供cmake指令)
-D CUDNN_LIBRARY=/usr/local/cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn.so

开始编译安装

创建build目录 mkdir build && cd build
执行cmake指令

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D ENABLE_PRECOMPILED_HEADERS=OFF -D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF  \
-D WITH_TBB=ON  -D BUILD_TBB=ON -D ENABLE_FAST_MATH=1 -D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1  -D WITH_V4L=ON  -D WITH_LIBV4L=ON -D WITH_CUDA=ON \
-D WITH_CUDNN=ON -D BUILD_opencv_cudacodec=ON \
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.8 \
-D cuda_toolkit_dirs=/usr/local/cuda-11.8/include:/usr/local/include:/usr/local/include/ffnvcodec \
-D CUDNN_INCLUDE_DIR=/usr/local/cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include \
-D WITH_NVCUVID=ON -D CUDA_ARCH_BIN=7.5 -D WITH_GTK_2_X=ON -D \
WITH_OPENGL=ON -D WITH_FFMPEG=ON -DOPENCV_DOWNLOAD_MIRROR_ID=gitcode \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

执行编译安装: make 与 make install

TensorRT 安装

解压TensorRT安装包到/usr/local目录下。
配置环境变量

export PATH=$PATH:/usr/local/TensorRT-10.2.0.19/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-10.2.0.19/targets/x86_64-linux-gnu/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT-10.2.0.19/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT-10.2.0.19/include
  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值