nvidia.dali.fn.segmentation.random_object_bbox#
- nvidia.dali.fn.segmentation.random_object_bbox(__input, /, *, background=0, bytes_per_sample_hint=[0], cache_objects=False, class_weights=None, classes=None, foreground_prob=1.0, format='anchor_shape', ignore_class=False, k_largest=None, output_class=False, preserve=False, seed=-1, threshold=None, device=None, name=None)#
从掩码中随机选择一个对象并返回其边界框。
此操作符将标记的分段图作为输入。以
foreground_prob
的概率,它随机选择一个标签(均匀地或根据作为class_weights
给出的分布),提取具有所选标签的像素的连接 Blob,并随机选择其中一个 Blob。可以根据k_largest
和threshold
进一步过滤 Blob。输出是以format
中描述的格式之一的所选 Blob 的边界框。以 1-foreground_prob 的概率,返回输入的整个区域。
- 支持的后端
‘cpu’
- 参数:
__input¶ (TensorList) – 操作符的输入。
- 关键字参数:
background¶ (int 或 int 的 TensorList,可选,默认值 = 0) –
背景标签。
如果未指定,则为 0 或不在
classes
中的任何值。bytes_per_sample_hint¶ (int 或 int 列表,可选,默认值 = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则驻留在 GPU 或页面锁定主机内存中的操作符输出将被预先分配,以容纳此大小的样本批次。
cache_objects¶ (bool,可选,默认值 = False) –
缓存对象边界框,以避免在先前看到的输入中查找对象 Blob 的计算成本。
搜索连接像素的 Blob 并查找框可能需要很长时间。当数据集项目很少但项目大小很大时,您可以使用缓存来保存框,并在再次看到相同的输入时重用它们。输入基于 256 位哈希进行比较,这比重新计算对象框要快得多。
class_weights¶ (float 或 float 列表或 float 的 TensorList,可选) –
前景类别的相对概率。
每个值对应于
classes
中的类标签。如果未指定classes
,则分配连续的从 1 开始的标签。权重的总和不必等于 1 - 如果不等于 1,则权重将被归一化。
classes¶ (int 或 int 列表或 int 的 TensorList,可选) –
被视为前景的标签列表。
如果未指定,则所有不等于
background
的标签都被视为前景。foreground_prob¶ (float 或 float 的 TensorList,可选,默认值 = 1.0) – 选择前景边界框的概率。
format¶ (str,可选,默认值 = ‘anchor_shape’) –
返回数据的格式。
- 可能的选择是:
“anchor_shape”(默认值)- 有两个输出:锚点和形状
“start_end” - 有两个输出:边界框的起始和结束坐标(不包含结束坐标)
“box” - 有一个输出,其中包含串联的起始和结束坐标
ignore_class¶ (bool,可选,默认值 = False) –
如果为 True,则以相等的概率选择所有对象,而与它们所属的类别无关。否则,首先选择一个类别,然后从此类别中随机选择一个对象。
此参数与
classes
、class_weights
或output_class
不兼容。注意
此标志仅影响选择 Blob 的概率。它不会导致合并不同类别的 Blob。
k_largest¶ (int,可选) –
如果指定,则框按体积递减排序,并且仅考虑
k_largest
个框。如果
ignore_class
为 True,则k_largest
指的是所有框;否则,它指的是所选类别。output_class¶ (bool,可选,默认值 = False) –
如果为 True,则会生成一个额外的输出,其中包含所选框所属类别的标签,如果所选框不是对象边界框,则包含背景标签。
- 当发生以下任何情况时,输出可能不是对象边界框
样本是随机选择的(根据
foreground_prob
)不是前景框样本不包含前景对象
没有边界框满足所需的大小阈值。
preserve¶ (bool,可选,默认值 = False) – 阻止操作符从图中删除,即使其输出未使用。
seed¶ (int,可选,默认值 = -1) – 随机种子;如果未设置,将自动分配一个。
threshold¶ (int 或 int 列表或 int 的 TensorList,可选) –
要返回的边界框的每轴最小大小。
如果所选类别不包含任何满足此条件的边界框,则会拒绝它,并选择另一个类别。如果任何类别都不包含令人满意的框,则返回整个输入区域。