原视频\opt\nvidia\deepstream\deepstream\samples\streams\sample_cam6.mp4如上图所示,是一个360度的球型视频,DeepStream的nvdewarper插件可以将原视频拆分成多个单独的视频,nvdewarper可以生成最大4个dewarped surfaces.
\opt\nvidia\deepstream\deepstream-7.1\sources\apps\sample_apps\deepstream-dewarper-test例子只是将nvdewarper拆分的视频进行显示,并没有做推理,pipeline是source->dewarper->nvstreammux->tiler->sink.
deepstream-app可以支持对nvdewarper拆分的视频进行推理,
source2_dewarper_test.yml内容如下:
####################################################################################################
# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
#
# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
# property and proprietary rights in and to this material, related
# documentation and any modifications thereto. Any use, reproduction,
# disclosure or distribution of this material and related documentation
# without an express license agreement from NVIDIA CORPORATION or
# its affiliates is strictly prohibited.
####################################################################################################application:enable-perf-measurement: 1perf-measurement-interval-sec: 5gie-kitti-output-dir: streamscltiled-display:enable: 1rows: 1columns: 2width: 1920height: 1080gpu-id: 0#(0): nvbuf-mem-default - Default memory allocated, specific to particular platform#(1): nvbuf-mem-cuda-pinned - Allocate Pinned/Host cuda memory applicable for Tesla#(2): nvbuf-mem-cuda-device - Allocate Device cuda memory applicable for Tesla#(3): nvbuf-mem-cuda-unified - Allocate Unified cuda memory applicable for Tesla#(4): nvbuf-mem-surface-array - Allocate Surface Array memory, applicable for Jetsonnvbuf-memory-type: 0source:csv-file-path: sources_2.csvsink0:enable: 1#Type - 1=FakeSink 2=EglSink 3=Filetype: 2sync: 1source-id: 0gpu-id: 0nvbuf-memory-type: 0sink1:enable: 1type: 3#1=mp4 2=mkvcontainer: 1#1=h264 2=h265codec: 1#encoder type 0=Hardware 1=Softwareenc-type: 0sync: 0#iframeinterval=10bitrate: 2000000#H264 Profile - 0=Baseline 2=Main 4=High#H265 Profile - 0=Main 1=Main10# set profile only for hw encoder, sw encoder selects profile based on sw-presetprofile: 0output-file: out.mp4source-id: 0# "num-surfaces-per-frame" in all dewarper configs should be same
# and should be equal to "num-surfaces-per-frame" in "streammux" config# following config is applicable to [source0]
dewarper0:enable: 1source-id: 6config-file: /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-dewarper-test/config_dewarper.txtgpu-id: 0nvbuf-memory-type: 0num-output-buffers: 4# following config is applicable to [source1]
dewarper1:enable: 1#Camera Idsource-id: 11config-file: /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-dewarper-test/config_dewarper.txtgpu-id: 0nvbuf-memory-type: 0num-output-buffers: 4num-batch-buffers: 4osd:enable: 1gpu-id: 0border-width: 1text-size: 15text-color: 1;1;1;1text-bg-color: 0.3;0.3;0.3;1font: Serifshow-clock: 0clock-x-offset: 800clock-y-offset: 820clock-text-size: 12clock-color: 1;0;0;0nvbuf-memory-type: 0display-mask: 1streammux:gpu-id: 0##Boolean property to inform muxer that sources are livebatch-size: 8##time out in usec, to wait after the first buffer is available##to push the batch even if the complete batch is not formedbatched-push-timeout: 33000## Set muxer output width and heightwidth: 960height: 752##Enable to maintain aspect ratio wrt source, and allow black borders, works##along with width, height propertiesenable-padding: 0nvbuf-memory-type: 0num-surfaces-per-frame: 4## If set to TRUE, system timestamp will be attached as ntp timestamp## If set to FALSE, ntp timestamp from rtspsrc, if available, will be attached# attach-sys-ts-as-ntp: 1primary-gie:enable: 1gpu-id: 0model-engine-file: ../../models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b4_gpu0_int8.enginebatch-size: 4#Required by the app for OSD, not a plugin propertybbox-border-color0: 1;0;0;1bbox-border-color1: 0;1;1;1bbox-border-color2: 0;0;1;1bbox-border-color3: 0;1;0;1interval: 0gie-unique-id: 1nvbuf-memory-type: 0config-file: config_infer_primary.ymltests:file-loop: 0
sources_2.csv内容如下:
# SPDX-FileCopyrightText: Copyright (c) 2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: LicenseRef-NvidiaProprietary
#
# NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
# property and proprietary rights in and to this material, related
# documentation and any modifications thereto. Any use, reproduction,
# disclosure or distribution of this material and related documentation
# without an express license agreement from NVIDIA CORPORATION or
# its affiliates is strictly prohibited.
enable,type,uri,num-sources,gpu-id,cudadec-memtype
1,3,file://../../streams/sample_cam6.mp4,1,0,0
1,3,file://../../streams/sample_cam6.mp4,1,0,0
命令如下:deepsteram-app -c source2_dewarper_test.yml
结果如下:
可以看到,源有两个,每个源可以分成4个单独的图像,nvinfer再对8个单独图像做推理,画面上都有bbox。