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 的)的基本缺陷。 这对于运动跟踪等应用具有显着优势。
算法步骤如下:
-
将输入图像下采样到不同的比例级别
-
在所有级别上提取 FAST 特征
-
应用网格过滤
-
提取特征方向
-
提取描述符
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