docker-desktop安装测试DeepStream
·
准备工作
测试系统为win11,win10应该也可以,事先安装好docker-desktop、MobaXterm。
拉取镜像:
docker pull nvcr.io/nvidia/deepstream:8.0-samples-multiarch
创建容器:
docker run -it --gpus all -p 2222:22 -v D:\document\docker_share:/docker_share --name deepstream nvcr.io/nvidia/deepstream:8.0-samples-multiarch /bin/bash
进入容器后,按照docker容器安装图形界面安装xdm等图形相关。
执行
echo -e "service ssh start\nexport PATH=/usr/local/cuda-12.5/bin:\$PATH\nexport LD_LIBRARY_PATH=/usr/local/cuda-12.5/lib64:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
添加一些环境变量方便使用。
测试python sdk
参考:https://github.com/NVIDIA-AI-IOT/deepstream_python_apps/blob/master/bindings/README.md
在容器内执行:
cd /opt/nvidia/deepstream/deepstream/sources
git clone https://github.com/NVIDIA-AI-IOT/deepstream_python_apps
cd deepstream_python_apps/
git submodule update --init
apt install python3-venv python3-build python3-gi python3-dev python3-gst-1.0 python-gi-dev git meson python3 python3-pip python3-venv cmake g++ build-essential libglib2.0-dev libglib2.0-dev-bin libgstreamer1.0-dev libtool m4 autoconf automake libgirepository-2.0-dev libcairo2-dev
python3 -m venv pyds
python3 -m venv --system-site-packages pyds
source ./pyds/bin/activate
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/bindings
python3 -m build
pip install /opt/nvidia/deepstream/deepstream-8.0/sources/deepstream_python_apps/bindings/dist/pyds-1.2.2-cp312-cp312-linux_x86_64.whl
pip install cuda-python==12.5
pip install cuda-bindings==12.8.0
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/bindings/3rdparty/gstreamer/subprojects/gst-python/
meson setup build
cd build
ninja install
cd /opt/nvidia/deepstream/deepstream/sources/deepstream_python_apps/apps/deepstream-test1
python deepstream_test_1.py /opt/nvidia/deepstream/deepstream-8.0/samples/streams/sample_qHD.h264
运行结果输出:
Creating Pipeline
Creating Source
Creating H264Parser
Creating Decoder
Is it Integrated GPU? : 0
Creating EGLSink
Playing file /opt/nvidia/deepstream/deepstream-8.0/samples/streams/sample_qHD.h264
Adding elements to Pipeline
Linking elements in the Pipeline
Starting pipeline
libEGL warning: DRI3 error: Could not get DRI3 device
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering
Opening in BLOCKING MODE
0:00:02.292177781 5830 0x308d05a0 INFO nvinfer gstnvinfer.cpp:685:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:2109> [UID = 1]: deserialized trt engine from :/opt/nvidia/deepstream/deepstream-8.0/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b1_gpu0_fp16.engine
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:363 [Implicit Engine Info]: layers num: 0
0:00:02.292241560 5830 0x308d05a0 INFO nvinfer gstnvinfer.cpp:685:gst_nvinfer_logger:<primary-inference> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2212> [UID = 1]: Use deserialized engine model: /opt/nvidia/deepstream/deepstream-8.0/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b1_gpu0_fp16.engine
0:00:02.299824530 5830 0x308d05a0 INFO nvinfer gstnvinfer_impl.cpp:343:notifyLoadModelStatus:<primary-inference> [UID 1]: Load new model:dstest1_pgie_config.txt sucessfully
Frame Number=0 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=1 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=2 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=3 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=4 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=5 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=6 Number of Objects=7 Vehicle_count=5 Person_count=1
Frame Number=7 Number of Objects=7 Vehicle_count=6 Person_count=1
Frame Number=8 Number of Objects=7 Vehicle_count=6 Person_count=1
Frame Number=9 Number of Objects=8 Vehicle_count=7 Person_count=1
Frame Number=10 Number of Objects=8 Vehicle_count=6 Person_count=1
......
显示截图:
测试c++ sdk
cd /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-test1
export CUDA_VER=12.5
make
./deepstream-test1-app /opt/nvidia/deepstream/deepstream-8.0/samples/streams/sample_qHD.h264
运行结果输出:
Added elements to bin
Using file: /opt/nvidia/deepstream/deepstream-8.0/samples/streams/sample_qHD.h264
Opening in BLOCKING MODE
0:00:01.348375322 749 0x5ed3f0dbc8c0 INFO nvinfer gstnvinfer.cpp:685:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::deserializeEngineAndBackend() <nvdsinfer_context_impl.cpp:2109> [UID = 1]: deserialized trt engine from :/opt/nvidia/deepstream/deepstream-8.0/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b1_gpu0_fp16.engine
INFO: ../nvdsinfer/nvdsinfer_model_builder.cpp:363 [Implicit Engine Info]: layers num: 0
0:00:01.348424152 749 0x5ed3f0dbc8c0 INFO nvinfer gstnvinfer.cpp:685:gst_nvinfer_logger:<primary-nvinference-engine> NvDsInferContext[UID 1]: Info from NvDsInferContextImpl::generateBackendContext() <nvdsinfer_context_impl.cpp:2212> [UID = 1]: Use deserialized engine model: /opt/nvidia/deepstream/deepstream-8.0/samples/models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b1_gpu0_fp16.engine
0:00:01.358230584 749 0x5ed3f0dbc8c0 INFO nvinfer gstnvinfer_impl.cpp:343:notifyLoadModelStatus:<primary-nvinference-engine> [UID 1]: Load new model:dstest1_pgie_config.txt sucessfully
Running...
Frame Number = 0 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 1 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 2 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 3 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 4 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 5 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 6 Number of objects = 6 Vehicle Count = 5 Person Count = 1
Frame Number = 7 Number of objects = 7 Vehicle Count = 6 Person Count = 1
Frame Number = 8 Number of objects = 7 Vehicle Count = 6 Person Count = 1
Frame Number = 9 Number of objects = 8 Vehicle Count = 7 Person Count = 1
Frame Number = 10 Number of objects = 7 Vehicle Count = 6 Person Count = 1
......
更多推荐
所有评论(0)