46.Isaac教程--在机器人应用Deepstream

news2024/11/19 9:25:56

在机器人应用Deepstream

在这里插入图片描述
ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html

文章目录

  • 在机器人应用Deepstream
    • 技术
    • 组件
    • 工具

技术

NVIDIA DeepStream SDK 为基于 AI 的视频和图像感知以及多传感器处理提供了完整的流分析工具包。 DeepStream 是 NVIDIA Metropolis 不可或缺的一部分,NVIDIA Metropolis 是构建端到端服务和解决方案的平台,可将像素和传感器数据转化为可操作的见解。

Isaac SDK 附带各种针对机器人用例量身定制的媒体采集、发布、编码、解码、推断和处理功能。 然而,多媒体支持不是机器人框架的主要职责。 机器人集成的大量多媒体需求使得直接支持变得困难,因此与作为 Isaac 组件的 DeepStream 集成提供了一个解决方案。

注意

NVIDIA DeepStream SDK 基于开源 GStreamer 库:一种基于管道的多媒体框架,可将各种媒体处理系统连接在一起。 GStreamer 本身基于 GLib:一组低级库,用于为 C、可移植性包装器、执行循环和接口提供数据结构处理。 访问 GStreamer 开源多媒体框架网站,了解详细信息和对该框架的贡献。

组件

开源 GStreamer 框架和 NVIDIA DeepStream SDK 作为 Isaac 组件的内部集成允许您重用它们的多媒体处理功能集合。 Isaac 和 DeepStream 产品在机器人和媒体用例方面自然互补。

GPU 加速的 DeepStream 元素可以用作 GStreamer 管道定义的一部分。 DeepStream 可以与 Jetson Nano 和 Xavier 平台的 Jetson JetPack 安装程序一起安装。 按照 DeepStream 安装说明使它们的元素在您的主机系统上可用。

注意

Isaac 不分发 DeepStream 或 GStreamer。 您必须选择要安装的模块并遵守其许可证。

媒体管道通过命名的 appsink 和 appsrc 元素连接到 Isaac 引擎,分别用于接收和传输。 组件管道配置参数允许您使用任何配置和元素启动任何 GStreamer 管道字符串。 管道可能包含零个或多个应用程序源或接收器。 不包含应用程序源或接收器的管道由 Isaac 管理但不共享数据,这对于机器人应用程序的间接多媒体支持很有用。

应用程序元素支持具有等效 Isaac protobuffer 消息的功能、格式和内存模型,详见下表。 使用适当的 videoconvert 和 nvvideoconvert 元素和 caps 过滤器以实现兼容性。 必须明确定义能力。

能力格式消息
video/x-rawRGBImageProto

DeepStream组件向其他Isaac组件传输消息的获取时间戳为发布时刻的节点时间。

该组件将一个 Isaac 调度程序线程池注入到 GStreamer 管道中。 线程池遵循Isaac线程规则和GStreamer线程规则:

  • 该组件为管道主循环运行单个服务作业。

  • 管道为其元素使用一个或多个作业。

  • 一个或多个元素可以在单个作业中运行。

  • 一个元素可以使用多个作业。

  • 这些元素分别对上游或下游线程使用基于推或拉的调度。

  • 这些工作使用最早的最后期限优先政策。

  • 每个作业都有一个执行组配置。

  • 管道分支可以配置为在具有队列元素的不同线程上运行。

  • 作业统计信息在调度程序报告中报告。

以下是 gstreamer_pipeline_multi 应用程序的示例作业统计报告。 管道由三个简单的独立分支组成,它们依次运行三个作业。

|=========================================================================================|
|                            Job Statistics Report (blocking)                             |
|=========================================================================================|
| Name                       |          Job Mode | Count | Time (Median - 90% - Max) [ms] |
|-----------------------------------------------------------------------------------------|
|         DeepStream Service | Blocking One Shot |     1 | 32816.30 | 32816.30 | 32816.30 |
| DeepStream Pipeline Thread | Blocking One Shot |     1 | 32814.40 | 32814.40 | 32814.40 |
| DeepStream Pipeline Thread | Blocking One Shot |     1 | 32814.42 | 32814.42 | 32814.42 |
| DeepStream Pipeline Thread | Blocking One Shot |     1 | 32814.52 | 32814.52 | 32814.52 |
|=========================================================================================|

工具

gst-inspect-1.0 命令行工具允许您查看主机上可用的元素:

$ gst-inspect-1.0
video4linux2:  v4l2src: Video (video4linux2) Source
video4linux2:  v4l2sink: Video (video4linux2) Sink
video4linux2:  v4l2radio: Radio (video4linux2) Tuner
video4linux2:  v4l2deviceprovider (GstDeviceProviderFactory)
dtls:  dtlsenc: DTLS Encoder
[...]
Total count: 265 plugins, 1420 features

gst-launch-1.0 命令行工具允许您构建和运行 GStreamer 管道。 通过将 GST_DEBUG 环境变量设置为 0(无调试输出)和 8(完整内存转储)之间的类别级别,为 GStreamer 启用调试输出。 4 级的信息通常是最实用的。

$ export GST_DEBUG=4
# Your application will now output debug information when you run it.

通过将 GST_DEBUG_DUMP_DOT_DIR 环境变量设置为现有的可写目录路径来获取管道图。 使用点工具生成可视图像。

$ sudo apt install graphviz
$ export GST_DEBUG_DUMP_DOT_DIR=/tmp
# Running your application will generate a FILENAME.dot file in the /tmp folder which can be
# converted by the following command:
$ dot -Tpng /tmp/FILENAME.dot > pipeline.png

例子
以下示例显示了来自 GStreamer FAQ 的测试视频,其中启用了调试信息、图形绘制和详细信息:

$ GST_DEBUG=4 GST_DEBUG_DUMP_DOT_DIR=. gst-launch-1.0 -v \
  videotestsrc ! videoconvert ! autovideosink

原始的 GStreamer 示例已更改为演示如何在 Isaac 应用程序中集成 GStreamer 管道。 Isaac 示例显示了如何将管道媒体导入或导出到应用程序配置中可用的 Isaac 通信通道。

管道有两个容器:一个测试视频源通过一个应用程序接收器进入 Isaac,一个应用程序源将视频流暴露给一个显示视频接收器。 应用程序元素的功能是有限的。 因此,videoconvert 元素确保源和接收器元素都支持 RGB 原始格式。 因此,管道更改为以下内容:

videotestsrc ! video/x-raw,format=RGB ! videoconvert ! appsink name=to_isaac

appsrc name=from_isaac ! video/x-raw,format=RGB ! videoconvert ! autovideosink

Isaac应用实例
下面是一个最小的 Isaac 应用程序,它通过 Isaac 将视频从接收器传递到源:

{
  "name": "example_pipeline_app",
  "modules": [
    "deepstream",
  ],
  "graph": {
    "nodes": [
      {
        "name": "deepstream",
        "components": [
          {
            "name": "message_ledger",
            "type": "isaac::alice::MessageLedger"
          },
          {
            "name": "pipeline",
            "type": "isaac::deepstream::Pipeline"
          }
        ]
      }
    ],
    "edges": [
      {
        "source": "deepstream/pipeline/to_isaac",
        "target": "deepstream/pipeline/from_isaac"
      }
    ]
  },
  "config": {
    "deepstream": {
      "pipeline": {
        "pipeline": "videotestsrc ! video/x-raw,format=RGB ! videoconvert ! appsink name=to_isaac  appsrc name=from_isaac ! video/x-raw,format=RGB ! videoconvert ! autovideosink"
      }
    }
  }
}

使用视频测试源可视化应用程序接收器在 Isaac WebSight 中如下所示:

packages/deepstream/apps 文件夹中提供了其他演示应用程序:

Application Name

Demonstration

gstreamer_pipeline

Trivial GStreamer video test source pipeline

gstreamer_pipeline_distributed_a

Acquire and publish MPEG-4 compressed video over UDP transport

gstreamer_pipeline_distributed_b

Receive MPEG-4 compressed video over UDP transport

gstreamer_pipeline_external

Isaac-managed external media pipelines

gstreamer_pipeline_multi

Multiple video pipelines in a single component

logitech_c920pro_cpu

USB connected, V4L2 interfaced, H.264 compressed, CPU decoded camera

philips_spc1330nc

Trivial USB connected, V4L2 interfaced raw, uncompressed camera

sony_snchmx70

Ethernet IP/RTSP transported, H.264 compressed camera

更多精彩内容:
https://www.nvidia.cn/gtc-global/?ncid=ref-dev-876561

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NUXT学习笔记【part1】nuxt的安装、自定义布局、路由跳转

一、NUXT概述 NUXT 是一个基于 Vue.js 的轻量级应用框架,可用来创建服务端渲染 (SSR) 应用,也可充当静态站点引擎生成静态站点应用,具有优雅的代码结构分层和热加载等特性。NUXT使用服务端渲染技术,可以获得更快的内容到达时间&a…

markdown 写微信公众号,排版交给 mdnice

mdnice 墨滴软件( https://product.mdnice.com/ ),提供了以面向微信公众号内容排版为主的辅助工具 Markdown Nice[1],效果堪称完美,极大的提升了发布微信公众号文章的效率。 使用其在线编辑器( https://e…

L4 Latent Variable Model

Lecture4 Latent Variable Model 在之前我们所介绍的Autoregressive Model和Flow Model中,讨论的都是observable的数据,及一切数据都是可以观测到的。这一讲主要讨论的是latent variable model,即有些变量我们是无法直接观测的。 Latent Va…

2022尚硅谷SSM框架跟学(六)Spring MVC基础一

2022尚硅谷SSM框架跟学 六Spring MVC基础一三、SpringMVC1.SpringMVC简介1.1什么是MVC1.2什么是SpringMVC1.3SpringMVC的特点2入门案例2.1开发环境2.2创建maven工程(1)添加web模块(2)打包方式:war(3)引入依赖2.3配置web.xml(1)默认配置方式(2)扩展配置方式2.4创建请…

C++封装Halcon算法动态链接库Dll补充

前面写了一篇关于C封装DLL的文章,这里是做一个补充。 一、关于如何配置halcon和opencv库不再多说,前面文章介绍的很详细。下面介绍封装新增的东西。 1.1 首先创建类function1,并编写function.h和function1.cpp代码。 function1.h代码 #pra…

处理任务失败附实验(RH294)

首先,一个任务执行失败是肯定会遇见的事情而这时候,就需要一个备用的计划忽略任务失败默认情况下 任务失败的时候play会终止但是,我们可以通过忽略失败的任务来覆盖此行文使用关键字 ignore_errors举个栗子- name: Latest version of notapkg…

《流浪地球 2》 Deepfake 小试牛刀,45+ 吴京「被」年轻,变身 21 岁小鲜肉

内容一览:在春节档科幻电影「流浪地球 2」中,主演吴京、刘德华、沙溢等人饰演的角色,跨越 14 年之久,视效团队正是借助 Deepfake de-aging 技术,呈现出了演员不同年龄段的容貌。 关键词:De-aging Deepfa…

回收租赁商城系统功能拆解13讲-分销会员

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格,后台调整最终回收价,用户同意回收后系统即刻放款,用户微信零…

springboot应用项目的打包和部署

jar包方式打包部署 springboot项目在为进行打包处理时就已经可以进行运行调试,是因为springboot项目内嵌了Tomcat服务器. .1添加Maven打包插件。在对Spring Boot项目进行打包(包括ar包和War包)前,需要在项目pom.xml文件中加入Maven打包插件&#xff0c…

倾角传感器的六大应用场合

倾角传感器又名水平传感器、水平仪、倾角仪,是角度传感器的一种,是运用惯性原理的一种加速度传感器,可以通过检测使用环境中的倾斜角度判断设备的倾斜状态,并在监测物出现角度偏差时,倾角传感器能够将异常数据传达给管…

【自学Docker 】Docker export命令

Docker export命令 概述 docker export教程 docker export 命令可以用于将 Docker容器 里的文件系统作为一个 tar 归档文件导出到标准输出。docker export 命令后面的 CONTAINER 可以是容器Id,或者是容器名。 docker save 命令用于将 Docker 镜像保存成 tar 包&a…

5nm三苯甲基/P3HT-PY/CdSe油溶性碳量子点CdSe/ZnS-PrPC的制备方法

5nm三苯甲基/P3HT-PY/CdSe油溶性碳量子点CdSe/ZnS-PrPC的制备方法今天小编分享制备三苯甲基功能化油溶性碳量子点的制备过程,一起看看吧:三苯甲基功能化油溶性碳量子点的制备过程:将50 mg Amino-CQDs放置在100 mL圆底烧瓶中,加入 50 mL二氯甲…

PyQt6-QLabel学习笔记

QLabel支持文本或图片显示,是任何GUI设计中最常用的控件之一。一、QLabel基本概述QLabel标签用于显示,可以以多种方式进行外观配置,没有提供用户交互功能,但是可以用于为另一个小部件指定焦点助记符或快捷键。显示内容类型类型说明…

HoloLens 2 应用开发流程笔记

本文链接:微信推文阅读效果更佳 目录安装工具应用开发举例配置 Unity创建新的 Unity 项目切换生成平台导入和配置资源导入 MRTK Unity 基础包配置 Unity 项目为 XR SDK 配置项目设置创建场景并配置 MRTK交互例子添加并调整第一个立方体向立方体添加脚本添加第二个立…

20篇高质量程序人生文章分享,做开发不仅仅只有代码

我一直觉得,我们做开发,不应该只有代码,合上公司的电脑脱离了公司的产品需求就脱离了程序,而应该结合软件的程序思维去更多的思考我们所处的生活和空间,从而指导自己面对更多的未曾见过的人与事,这可能就是…

Java基础之异常处理

一、小试牛刀 num1 / num2 当除数为零时,程序就会抛出异常,程序就会崩溃而导致退出。 我们可以通过异常处理机制来解决该问题 如果我们认为一段代码可能发生异常,可以使用try-catch-finally异常处理机制来解决。从而保证程序的健壮性。 将可能…

前端工程化-多维度检测重复代码

更多文章可关注我的个人博客:https://seven777777.github.io/myblog/ 1. 检测项目重复代码 1.1 检测方案:jscpd 方法一: 全局安装jscpd依赖npm i -g jscpd项目根路径执行:jscpd -p "src/**/*.js" -k 15 -l 5 方法二…

【黑马SpringCloud(3)】Docker

Docker初识DockerDocker与虚拟机的区别Docker架构DockerHubDocker镜像操作Docker容器操作数据卷自定义镜像镜像结构Dockerfile构建Java项目基于java:8-alpine镜像,构建java项目集群部署微服务Docker-Compose镜像仓库搭建私有镜像仓库Docker安装:https://…

Go第 14 章 :文件操作

Go第 14 章 :文件操作 14.1 文件的基本介绍  文件的概念 文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的 word文档,txt文 件,excel 文件…都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声 音… …

排序分页多表查询

文章目录一、排序ORDER BY排序规则单列排序多列排序二、分页LIMIT背景实现格式举例公式优点三、多表查询笛卡尔积(或交叉连接)的理解解决笛卡尔积问题多表查询分类等值连接非等值连接自连接内连接 vs 外连接SQL99实现多表查询基本语法内连接(…