Deepstream 6.1.1 以及 Python Binding Docker 安装

Deepstream 6.1.1 以及 Python Binding Docker 安装

这里将详细介绍我们如何通过 docker 运行 Deepstream 6.1.1 以及 Python Binding。我们使用的硬件设备是 Jetson NX Dev Kit(系统通过SD Image 烧录)。


文章目录

  • Deepstream 6.1.1 以及 Python Binding Docker 安装
    • Deepstream 6.1.1 docker中运行
    • Deepstream 6.1.1 Python Binding 安装与运行
      • 一些预先需要安装的依赖
      • 安装,Compile Binding
      • Run deepstream-app Python Binding Example
    • 保存更新过的container到image中


Deepstream 6.1.1 docker中运行

首先,我们根据Nvidia Container 官网 把 image pull下来。

docker pull nvcr.io/nvidia/deepstream-l4t:6.1.1-samples

注意,这里我们选用的是Jetson对应的指令,image选用的是deepstream-l4t:6.1.1-samples

然后

xhost +

目的是Allow external applications to connect to the host's X display。我们将docker run起来:

sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -w /opt/nvidia/deepstream/deepstream-6.1 -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/deepstream-l4t:6.1.1-samples

这里具体的指令含义就不解释了,参见官网链接。我们输入上面的指令后,便可以在terminal中进入这个docker。接下来输入

/opt/nvidia/deepstream/deepstream/user_additional_install.sh

这是官网中包含的一些额外依赖。我也不知道是否有用,但我还是装了一下。

然后,我们可以尝试运行一下 deepstream-app,我的结果是可以运行起来,但由于是第一次生成engine,所以会比较慢:

cd /opt/nvidia/deepstream/deepstream-6.1/samples/configs/deepstream-app
deepstream-app -c source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt

接下来就是安装python bindings了。

Deepstream 6.1.1 Python Binding 安装与运行

在这之前,我安装了以下Deepstream 6.1.1 安装步骤官网上面的依赖,发现有的依赖并没有被安装过。这部分或许可以跳过,但我也附在这里了:

apt install \
libssl1.1 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstreamer-plugins-base1.0-dev \
libgstrtspserver-1.0-0 \
libjansson4 \
libyaml-cpp-dev

一些预先需要安装的依赖

(注意,这里我们使用的是Ubuntu 20.04)

apt install python3-gi python3-dev python3-gst-1.0 python-gi-dev git python-dev \
    python3 python3-pip python3.8-dev cmake g++ build-essential libglib2.0-dev \
    libglib2.0-dev-bin libgstreamer1.0-dev libtool m4 autoconf automake libgirepository1.0-dev libcairo2-dev

安装,Compile Binding

cd /opt/nvidia/deepstream/deepstream/sources
git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/
git submodule update --init
apt-get install -y apt-transport-https ca-certificates -y
update-ca-certificates
cd 3rdparty/gst-python/
./autogen.sh
make
make install
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/bindings
mkdir build
cd build
cmake ..  -DPYTHON_MAJOR_VERSION=3 -DPYTHON_MINOR_VERSION=8 \
    -DPIP_PLATFORM=linux_aarch64 -DDS_PATH=/opt/nvidia/deepstream/deepstream/
make
pip3 install ./pyds-1.1.4-py3-none*.whl
python3 -m pip install --upgrade pip

Run deepstream-app Python Binding Example

cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test1
python3 deepstream_test_1.py /opt/nvidia/deepstream/deepstream-6.1/samples/streams/sample_qHD.h264

保存更新过的container到image中

最后,让我们来保存一下这个container,下次可以继续用。我们需要在系统环境中的terminal内输入(不是container中):

sudo docker commit 828d1bf2b3e7 ds6.1.1-py:v2

下一次再打开这个image只需要

sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -w /opt/nvidia/deepstream/deepstream-6.1 -v /tmp/.X11-unix/:/tmp/.X11-unix ds6.1.1-py:v2

我们可以通过 sudo docker image ls 以及 sudo docker container ls 来查看保存的image以及正在运行的container。

你可能感兴趣的:(deepstream,python,docker,linux,deepstream)