Region of Interest(感兴趣区域)

感兴趣区域 (ROI) 可用于移除用户定义的感兴趣区域之外的点。 ROI可以是3D点云中的框、距离相机的一段z值范围(深度过滤),或两者兼而有之。

如果应用程序只需要一部分视野而不是整个场景,那么ROI功能会很有用。例如,如果您想要检测料箱中的零件,相对于针对真个场景进行检测,您的检测算法可能会受益于搜索空间减少的料箱*内部*空间。

备注

ROI 不会 减少捕获时间。它属于后处理,所以会增加几毫秒的捕获时间。但是,它直接在GPU中进行处理,所以可能比第三方实现方法更快。

../../_images/roi.png

盒子定义的ROI

三个点(point) 定义了盒子的底面, 两个范围(extent) 定义了盒子的高度:

  • 这三个点在3D相机参考系中给出,并定义了盒子的基平面。自动找到第四个点以将基平面绑定到坐标系中并完成矩形的设定。三点依次构成两个向量:

    • 点O是向量的原点。

    • 点A定义了从原点生成的第一个向量。

    • 点B定义了从原点生成的第二个向量。

  • 两个范围(extent)将基坐标系挤压成一个框。由点 O、点A和点B定义的向量 OAOB 的叉积给出了范围(extent)的方向。因此,负范围(extent)将沿叉积的相反方向延伸。

../../_images/roi_explanation.png

ROI盒的示意图:三个点(O、A和B)定义了框的底部平面,并自动选择第四个点来完成矩形。然后可以向上 (+E2) 和向下 (-E1) 拉伸由四个点定义的有界平面以完成框的定义。

备注

ROI盒的基坐标系 没有 被限制为一个角垂直的矩形。因此可以定义一个平行四边形作为底面,并定义一个平行六面体的ROI盒。

小技巧

请遵循以下经验法则来选择三个定义点:

  1. 在任意的一个角落选择点O。

  2. 选择点A,使点B位于相对于点A 逆时针 方向的位置。

  3. 在点A逆时针方向的某个位置选择点B。

这样,范围(extents)将具有朝向相机的正方向。

深度范围定义的ROI

ROI也可以由相机的z值范围定义,即保留 最小深度阈值最大深度阈值 范围内的点。如果场景的前方或后方有需要过滤的点,那么这种方式将会很有用。请注意,z值是基于相机参考系给出的,即垂直于相机方向进行过滤。因此,如果相机垂直安装在您要拍摄的物体上,效果最佳。

../../_images/roi_depth.png

表现

备注

ROI功能在每个3D捕获中将增加以下处理时间:

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD i5G1

NVIDIA 4070

Intel UHD 770

Low-end [1]

High-end [2]

RegionOfInterest - Box

4 (±4) ms

0 (±1) ms

3 (±1) ms

RegionOfInterest - Depth

2 (±5) ms

0 (±1) ms

0 (±1) ms

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [3]

Low-end [4]

High-end [5]

RegionOfInterest - Box

2 (±4) ms

3 (±101) ms

0 (±2) ms

RegionOfInterest - Depth

1 (±4) ms

1 (±72) ms

0 (±2) ms

以毫秒为单位的预期中位数 (±stddev)

过滤器

Intel UHD 750

Intel UHD i3G1

NVIDIA 3070

High-end [6]

Low-end [7]

High-end [8]

RegionOfInterest - Box

3 (±2) ms

4 (±2) ms

0 (±1.0) ms

RegionOfInterest - Depth

1 (±3) ms

3 (±2) ms

0 (±1) ms

查看 感兴趣区域(ROI)的使用教程 以获得有关在您的应用中使用ROI的更深入的教程。

版本历史

SDK

变更

2.9.0

新增了ROI API。