47.Isaac教程--ORB

news2024/11/24 3:55:03

ORB

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

文章目录

  • ORB
    • Gem 提供的类型
      • 关键点
      • 描述符
    • 如何使用 Gem(界面)
    • 构建包
    • Isaac Codelets
      • 示例应用程序
      • 主机设备
      • 嵌入式 Jetson 设备

这个 gem 提供了一个特征检测器和描述符提取器。

功能用于以下应用程序:

  • 使用运动结构的 3D 重建

  • 视觉里程计(运动跟踪)和 SLAM

  • 基于内容的图像检索

  • 图像对齐和全景拼接

“ORB”代表“Oriented FAST and rotated BRIEF”。 这表明 ORB 基于特征检测器 FAST 和二进制描述符 BRIEF。

Rublee 等人的原始出版物,标题为“ORB:SIFT 或 SURF 的有效替代品”,可在此处找到:http://www.willowgarage.com/sites/default/files/orb_final.pdf

与其他特征类型相比,ORB 具有以下关键特性:

  • 高效的; 出色的性能质量权衡

  • 抗图像噪声

  • 旋转不变性

  • 多尺度

Isaac SDK ORB gem 紧跟原始出版物。 除此之外,它还:

  • 通过在 GPU 上运行来实现 CUDA 中的大部分流水线以获得更高的性能

  • 添加空间正则化(“网格过滤”)步骤,通过在图像上更均匀地分布关键点来修复其他实现(例如 OpenCV 的)的基本缺陷。 这对于运动跟踪等应用具有显着优势。

算法步骤如下:

  1. 将输入图像下采样到不同的比例级别

  2. 在所有级别上提取 FAST 特征

  3. 应用网格过滤

  4. 提取特征方向

  5. 提取描述符

Gem 提供的类型

关键点

关键点具有以下属性:

  • x, y:从中提取的图像中的关键点坐标。 注意:由于有多个比例级别,请使用实用函数 GetCoordsAtTopLevel 获取最顶层(初始)图像级别的坐标。

  • response:特征的“强度”。 较高的分数意味着较高的局部对比度。

  • angle:方向角(以弧度为单位)

  • scale:支撑区域的半径(以像素为单位)

  • level:从中提取特征的比例级别。 从零开始。

关键点类型是关键点的向量。

描述符

描述符具有以下属性:

  • id:允许将描述符连接回其起源的关键点的 ID

  • elements:二进制描述符数据,打包到一个小的元素缓冲区中。

Descriptors 类型是描述符的向量。

如何使用 Gem(界面)

gem 提供了一个函数 ExtractOrbFeatures,用于从图像中提取 ORB 特征和描述符。

作为输入参数,必须传递图像。

作为输出参数,必须传递关键点和描述符对象。

这些是可以设置的附加参数:

  • 最大限 features (default 1500): 需要保留的最佳特征数量。

  • FAST 阈值(默认值 30):像素必须展示的最小局部对比度阈值才能被视为特征

  • 网格单元格数线性(默认 8):水平/垂直方向上用于空间正则化的箱数。 箱子的总数是参数的平方。 更高的数字意味着更均匀地分布特征。 设置为 1 将禁用正则化。

  • 下采样因子(默认 0.7):后续比例级别的大小,作为当前级别的比率。 允许介于 0.5(含)和 1.0(不含)之间的值。

  • 最大限levels (default 4): 使用多少比例级别。

构建包

运行以下命令来构建 gem、codelet 和示例应用程序:

$ bazel build //packages/orb/...

Isaac Codelets

ORB 包提供了一个单独的小代码,ExtractAndVisualizeOrb,其唯一目的是展示如何将 gem 与 ZED 相机一起使用的示例。

gem 当然可以直接在应用程序中使用,而无需通过 codelet。

示例应用程序

该示例应用程序从 ZED 相机接收到的图像中提取 ORB 特征,并使用 Websight 将它们可视化。

无论您在什么平台上运行示例应用程序,请务必先连接 ZED 相机。 在应用程序运行时,通过导航到 http://localhost:3000 在浏览器中打开 Isaac Sight。 如果您在 Jetson 平台上运行应用程序,请确保使用 Jetson 系统的 IP 地址而不是 localhost。

主机设备

运行以下命令启动演示:

$ bazel run //packages/orb/apps/orb_demo

嵌入式 Jetson 设备

按照应用程序控制台选项中的说明将 //packages/orb/apps/orb_demo:orb_demo-pkg 部署到机器人。

使用以下命令通过 SSH 连接到设备:

$ ssh nvidia@ROBOTIP

切换到部署目录后,使用以下命令在设备上运行演示应用程序:

$ cd orb_demo-pkg/
$ ./packages/orb/apps/orb_demo/orb_demo

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

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

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

相关文章

2011年专业408算法题

文章目录0 结果1 题目2 思路2.1 思路1(暴力解:排序)2.2 思路2(较优解:归并合并数组)2.3 思路3(较优解:数组指针后移)2.4 思路4(最优解:两个数组的…

webpack是如何进行依赖图谱收集的?

我自己学习webpack已有很长时间了,但是经常会遇到这样的问题: 可以熟练配置webpack的一些常用配置,但是对一些不常见的api或者概念总是云里雾里。因此,对着网上资料手写了一个简易版的webpack,现在对其中的依赖图谱收集部分进行梳…

Numpy(7)—字节交换、NumPy 副本和视图、深浅拷贝、矩阵库、NumPy 线性代数、NumPy IO(读写)、NumPy Matplotlib

1.字节交换 import numpy as npA np.array([1, 256, 8755], dtypenp.int16) print(A) print(list(map(hex, A))) print(A.byteswap(inplaceTrue)) print(list(map(hex, A)))2.NumPy 副本和视图 副本是一个数据的完整的拷贝,如果我们对副本进行修改,它不…

【MyBatis 持久层框架】Mapper代理开发详细解读

文章目录1. 前言2. Mapper 代理开发3. 过程剖析4. 总结1. 前言 前面在 MyBatis 快速入门篇中,我们使用了 MyBatis 原生的开发方式操作数据库,解决了 JDBC 操作数据库时的硬编码和操作繁琐的问题。实际上,在 Java 项目中,我们更常…

python3——函数

目录 一、函数定义 二、函数调用 1.打印Hello World 2.判断最大值 3.计算矩形面积 4.help说明文档 三、参数传递 (一)位置参数 (二)关键字参数 (三)默认参数(缺省参数) (四)可变参数(收集参数) 1.位置可变参数(接收所有的位置参数,返回一个元组) 2.关键…

高通开发系列 - MSM8909 lk aboot阶段点灯操作

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 第一种LK提供的接口实现第二种直接操作寄存器这篇文章之前请参考下:高通开发系列 - MSM8909指示灯操作 在LK中点灯有两种方式,一种…

JAVA-定位排查bug

在开发过程中难免会遇到bug,理解bug的含义,定位bug的位置,对于解决bug至关重要!掌握高效的排错技巧,对于程序员来说必不可少。 目录 一、错误异常的分类 二、常见报错信息及原因(持续更新中)…

域内权限维持:AdminSDHolder

01、简介 AdminSDHolder是一个特殊的AD容器,通常作为某些特权组成员的对象的安全模板。Active Directory将采用AdminSDHolder对象的ACL并定期将其应用于所有受保护的AD账户和组,以防止意外和无意的修改并确保对这些对象的访问是安全的。如果攻击者能完全…

Flex布局和主要属性用法详解

目录 前言 一个小例子 基本概念: 设置在主轴上的排列方式 设置在侧轴上的排列方式 更换主轴和侧轴方向 换行 align-content属性 元素(子容器)的相关属性 flex-basis flex-grow flex-shrink属性 flex属性 前言 flex布局是继标准…

JDBC-Statement

1.Statement执行静态sql语句(“字符串”) 返回结果 2.!实际工作一般用PreparedStatement来进行sql语句的执行,因为sql注入的风险 3and4.SQl注入就是Statement没有检查我们输入sql语句,一些别有用心的可能写一些危害数据…

智能手表主控芯片盘点,智能手表GUI,智能手表市场

聚焦:无线连接芯片,市场,技术 祝大家新年快乐,开工大吉!趁寒假简单梳理了下智能手表应用,做个分享,不对的地方欢迎交流指正; 01 市场容量,分类及拓扑 2个数据供参考 一个…

C++ dll、lib 的定义以及引用,

最近在研究socket,发现socket程序要依赖ws2_32.dll,涉及到动态链接库,有点懵,上网恶补了一下链接库的知识,最后总结出这么一篇文章 链接库分为两种:动态链接库(dll) 和静态链接库(lib) 动态链接库 : 动态链…

【C++】C++11语法解析

🌈欢迎来到C专栏~~C11 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&#x1f…

大数据分析案例-基于多元线性回归算法构建用户信用评分模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

ue4c++日记9(指定区域生成角色)

目录 创建C类 头文件 代码文件 结果 创建C类 头文件 // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "ASPawnVolum.generated…

vSphere with Tanzu概念介绍

vSphere with Tanzu是在vSphere7.0及之后出现的新功能,它可以在虚拟化层创建一个Kubernetes 控制平面,并将vSphere 集群资源转化为Kubernetes集群资源,这样可以直接在ESXI主机上运行Kubernetes工作负载,创建Kubernetes集群并部署容…

测试环境频繁Full GC问题的解决思路

背景 上游调用方,反馈当前welink-front服务不可用; 临时解决办法 手动重启welink-front服务,重启之后观测到业务日志正常刷,说明该问题暂时得到了解决; 但没过多久,上游调用方的同学又找来了&#xff0…

C++ 继承

一. 概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对程序设计的层次结构,体现了由…

IDEA开发 常用代码规范插件 常用辅助类插件

规范类 阿里巴巴规范 Alibaba Java Coding Guidelines 插件地址 阿里官方出的开源的代码规范插件 GitHub地址 配合阿里出的规范手册《码出高效 Java开发手册》食用效果更佳 不用购买哈!GitHub上开源的 码出高效:Java开发手册下载 静态代码检查 Sonar…

数学建模学习笔记(14)聚类模型

聚类模型K均值聚类算法和K均值聚类算法系统聚类算法(层次聚类)DBSCAN聚类算法聚类问题概述:把样本划分为由相似的对象组成的多个类的过程。 K均值聚类算法和K均值聚类算法 K均值聚类算法流程: 指定需要划分的簇的个数K。随机选…