DeepStream推理dewarped所有surfaces

原视频\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内容如下:

bash 复制代码
####################################################################################################
# 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: 1
  perf-measurement-interval-sec: 5
  gie-kitti-output-dir: streamscl

tiled-display:
  enable: 1
  rows: 1
  columns: 2
  width: 1920
  height: 1080
  gpu-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 Jetson
  nvbuf-memory-type: 0

source:
  csv-file-path: sources_2.csv

sink0:
  enable: 1
  #Type - 1=FakeSink 2=EglSink 3=File
  type: 2
  sync: 1
  source-id: 0
  gpu-id: 0
  nvbuf-memory-type: 0

sink1:
  enable: 1
  type: 3
  #1=mp4 2=mkv
  container: 1
  #1=h264 2=h265
  codec: 1
  #encoder type 0=Hardware 1=Software
  enc-type: 0
  sync: 0
  #iframeinterval=10
  bitrate: 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-preset
  profile: 0
  output-file: out.mp4
  source-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: 1
  source-id: 6
  config-file: /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-dewarper-test/config_dewarper.txt
  gpu-id: 0
  nvbuf-memory-type: 0
  num-output-buffers: 4

# following config is applicable to [source1]
dewarper1:
  enable: 1
  #Camera Id
  source-id: 11
  config-file: /opt/nvidia/deepstream/deepstream/sources/apps/sample_apps/deepstream-dewarper-test/config_dewarper.txt
  gpu-id: 0
  nvbuf-memory-type: 0
  num-output-buffers: 4
  num-batch-buffers: 4

osd:
  enable: 1
  gpu-id: 0
  border-width: 1
  text-size: 15
  text-color: 1;1;1;1
  text-bg-color: 0.3;0.3;0.3;1
  font: Serif
  show-clock: 0
  clock-x-offset: 800
  clock-y-offset: 820
  clock-text-size: 12
  clock-color: 1;0;0;0
  nvbuf-memory-type: 0
  display-mask: 1

streammux:
  gpu-id: 0
  ##Boolean property to inform muxer that sources are live
  batch-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 formed
  batched-push-timeout: 33000
  ## Set muxer output width and height
  width: 960
  height: 752
  ##Enable to maintain aspect ratio wrt source, and allow black borders, works
  ##along with width, height properties
  enable-padding: 0
  nvbuf-memory-type: 0
  num-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: 1


primary-gie:
  enable: 1
  gpu-id: 0
  model-engine-file: ../../models/Primary_Detector/resnet18_trafficcamnet_pruned.onnx_b4_gpu0_int8.engine
  batch-size: 4
  #Required by the app for OSD, not a plugin property
  bbox-border-color0: 1;0;0;1
  bbox-border-color1: 0;1;1;1
  bbox-border-color2: 0;0;1;1
  bbox-border-color3: 0;1;0;1
  interval: 0
  gie-unique-id: 1
  nvbuf-memory-type: 0
  config-file: config_infer_primary.yml

tests:
  file-loop: 0

sources_2.csv内容如下:

bash 复制代码
# 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。

相关推荐
fanstuck1 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记3 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
WoooChi4 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法4 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI4 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹4 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
咖啡屋和酒吧5 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
星栈独行5 小时前
翻完 Pi 源码:它和 Codex、Claude Code 有何不同
开发语言·javascript·人工智能·程序人生
没有梦想的咸鱼185-1037-16635 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
船漏了就会沉5 小时前
Kimi K3 vs DeepSeek-V4:国产大模型的技术路线之争
人工智能