安装教程参考: ZONG_XP
一、gcc等安装
sudo apt-get install build-essential
二、显卡驱动以及cuda和cudnn
cat /usr/local/cuda/version.txt
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
注意: 需要禁用原显卡驱动才可以安装新的驱动。
由于cuda包含了显卡驱动,所以禁用显卡驱动后可以直接安装cuda,此时默认全部勾选;
若提前装好了显卡驱动,则安装cuda时取消勾选driver
i.e. [x]Driver -> [ ]Driver
sudo rm -rf /usr/local/cuda-10.2/include/cudnn.h
sudo rm -rf /usr/local/cuda-10.2/lib64/libcudnn*
sudo cp include/cudnn.h /usr/local/cuda-10.2/include/
sudo cp lib64/lib* /usr/local/cuda-10.2/lib64/
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*
cd /usr/local/cuda-10.2/targets/x86_64-linux/lib/
sudo ln -sf libcudnn.so.7.6.5 libcudnn.so.7
三、解压SDK
官网下载好之后解压
sudo tar -jvxf deepstream_sdk_v5.0.0_x86_64.tbz2 -C /
注意: 必须要加-C / 解压到根目录下,否则执行./install.sh时会报错
安装依赖
sudo apt install libssl1.0.0 libgstreamer1.0-0 gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav libgstrtspserver-1.0-0 libjansson4
sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libgstrtspserver-1.0-dev gstreamer1.0-rtsp
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgstrtspserver-1.0-dev libx11-dev libgstrtspserver-1.0-dev gstreamer1.0-rtsp ffmpeg
四、安装TensorRT
1.安装uff所需要的tensorflow-gpu
由于cuda是10.2,在官方对应表中只支持tensorflow2.0+,然而deepstream只支持tensorflow1,尝试过后发现tensorflow1.14可以完美兼容
pip install tensorflow-gpu==1.14
但是cuda10对tf1.14的兼容有一点问题,直接导入会出现以下错误:
此时可以通过降级numpy到1.16来解决
pip install numpy==1.16
此时问题解决
2.安装TensorRT
TensorRT安装教程
使用python的cuda需要安装这个
pip install 'pycuda>=2017.1.1'
出错的话看看这个
TensorRT下载网址
下载完解压
tar xzvf TensorRT-7.0.0.11.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn7.6.tar.gz
添加到环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/kuangping/TensorRT/TensorRT-7.0.0.11/lib
进入TensorRT目录,安装以下三个包
#安装TensorRT
cd TensorRT-7.0.0.11/python
pip install tensorrt-7.0.0.11-cp37-none-linux_x86_64.whl
#安装UFF
cd TensorRT-7.0.0.11/uff
pip install uff-0.6.5-py2.py3-none-any.whl
#安装graphsurgeon
cd TensorRT-5.0.2.6/graphsurgeon
pip install graphsurgeon-0.4.1-py2.py3-none-any.whl
为了避免后边deepstream找不到tensorrt的库,建议把tensorrt的库和头文件添加到系统路径下
# TensorRT路径下
sudo cp -r ./lib/* /usr/lib
sudo cp -r ./include/* /usr/include
3.环境测试
使用python来测试安装的包能否导入
五、安装librdkafka
在新目录下
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
make
sudo make install
sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-5.0/lib
六、安装OpenCV
这是所有安装步骤中最复杂,最容易出错,也最漫长的一步
参考链接
在新目录下
mkdir opencv
cd opencv
wget https://github.com/opencv/opencv/archive/3.4.0.zip -O opencv-3.4.0.zip
unzip opencv-3.4.0.zip
wget https://github.com/opencv/opencv_contrib/archive/3.4.0.zip -O opencv_contrib-3.4.0.zip
unzip opencv_contrib-3.4.0.zip
cd opencv-3.4.0
mkdir build && cd build
下载过程有点慢,如果提前下好了所有的包则创建opencv目录,进入并将下载好的包丢进来,执行下面步骤即可
unzip opencv-3.4.0.zip
unzip opencv_contrib-3.4.0.zip
cd opencv-3.4.0
mkdir build && cd build
然后cmake
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr -D BUILD_PNG=OFF -D BUILD_TIFF=OFF -D BUILD_TBB=OFF -D BUILD_JPEG=OFF -D BUILD_JASPER=OFF -D BUILD_ZLIB=OFF -D BUILD_EXAMPLES=OFF -D BUILD_opencv_java=OFF -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D WITH_OPENCL=OFF -D WITH_OPENMP=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_CUDA=ON -D WITH_GTK=ON -D WITH_VTK=ON -D WITH_TBB=ON -D WITH_1394=OFF -D WITH_OPENEXR=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/kuangping/opencv/opencv_contrib-3.4.0/modules -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 -D CUDA_ARCH_BIN=**7.5** -D INSTALL_C_EXAMPLES=ON -D INSTALL_TESTS=OFF ..
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr -D BUILD_PNG=OFF -D BUILD_TIFF=OFF -D BUILD_TBB=OFF -D BUILD_JPEG=OFF -D BUILD_JASPER=OFF -D BUILD_ZLIB=OFF -D BUILD_EXAMPLES=OFF -D BUILD_opencv_java=OFF -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D ENABLE_PRECOMPILED_HEADERS=OFF -D WITH_OPENCL=OFF -D WITH_OPENMP=OFF -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_CUDA=ON -D WITH_GTK=ON -D WITH_VTK=ON -D WITH_TBB=ON -D WITH_1394=OFF -D WITH_OPENEXR=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/kuangping/opencv/opencv_contrib-3.4.0/modules -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2 -D CUDA_ARCH_BIN=7.5 -D INSTALL_C_EXAMPLES=ON -D INSTALL_TESTS=OFF …
注意: 这里加粗的地方是自己需要修改的,修改成本机对应目录和版本
注意: 最后的OFF后面是 空格 两个.
markdown语法自动将两个.变成了…
如果未安装cmake则需要安装一下
然后make
make
sudo make install
注意: 这里不要make -j8 ,否则编译出错
安装完之后使用下边的指令查看安装情况
pkg-config --modversion opencv
pkg-config --cflags --libs opencv
1.dynlink_nvcuvid.h问题
cuda10不再提供dynlink_nvcuvid.h功能,修改opencv-3.4.0/modules/cudacodec/src目录下的文件
modules/cudacodec/src/precomp.hpp
modules/cudacodec/src/video_decoder.hpp
modules/cudacodec/src/video_parser.hpp
modules/cudacodec/src/cuvid_video_source.hpp
modules/cudacodec/src/frame_queue.hpp
把
#if CUDA_VERSION >= 9000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
替换为
#if CUDA_VERSION >= 9000 && CUDA_VERSION < 10000
#include <dynlink_nvcuvid.h>
#else
#include <nvcuvid.h>
#endif
然后重新cmake,如果还不行,则去官网下载nvidia-sdk
然后解压
unzip Video_Codec_SDK_9.0.20
进入解压后目录的include,将以下文件拷贝一下
sudo cp cuviddec.h /usr/local/cuda/include
sudo cp nvcuvid.h /usr/local/cuda/include
最后重新cmake,然后make
2.boostdesc_bgm.i等问题
这是由于cmake的时候下载的包不完整
在stackoverflow上有人解答过,在此贴上
#!/bin/bash
cd ./cache/xfeatures2d/
cd boostdesc
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i > 0ae0675534aa318d9668f2a179c2a052-boostdesc_lbgm.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i > e6dcfa9f647779eb1ce446a8d759b6ea-boostdesc_binboost_256.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i > 98ea99d399965c03d555cef3ea502a0b-boostdesc_binboost_128.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i > 202e1b3e9fec871b04da31f7f016679f-boostdesc_binboost_064.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i > 324426a24fa56ad9c5b8e3e0b3e5303e-boostdesc_bgm_hd.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i > 232c966b13651bd0e46a1497b0852191-boostdesc_bgm_bi.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i > 0ea90e7a8f3f7876d450e4149c97c74f-boostdesc_bgm.i
cd …/vgg
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i > 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i > 7126a5d9a8884ebca5aea5d63d677225-vgg_generated_64.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i > e8d0dcd54d1bcfdc29203d011a797179-vgg_generated_48.i
curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i > 7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
缺什么下什么,然后拷贝到opencv_contrib/modules/xfeatures2d/src路径即可。
七、安装deepstream
进入解压的目录并安装
cd /opt/nvidia/deepstream/deepstream-5.0/
sudo ./install.sh
sudo ldconfig
安装完成后输入以下命令查看安装情况
deepstream-app --version-all