NonMaxSuppression

功能

过滤掉与先前选定的框有较高重叠的“交集-并集”(IOU)框。移除得分小于score_threshold的边界框。边界框格式由属性center_point_box表示。

注意,该算法不知道原点在坐标系中的位置,更普遍地说,它对坐标系的正交变换和平移是不变的。因此,平移或反射坐标系统的结果在相同的方框被算法选择。selected_indices输出是一组整数,索引到表示所选框的边界框的输入集合中。然后可以使用Gather或gathernd操作获得与所选索引对应的边框坐标。

输入

2-5输入:

boxes: tensor(float)。

scores: tensor(float)。

max_output_boxes_per_class: 可选,数据类型:int64。

iou_threshold: 可选,数据类型:float。

score_threshold: 可选,数据类型:float。

输出

一个输出:

selected_indices: tensor(int64)。

属性

center_point_box: int,默认值0。决定了边界框格式。

约束

Atlas 200/300/500 推理产品Atlas 训练系列产品对于输入boxes和scores的数据类型仅支持float16。

max_output_boxes_per_class数值大于700时,可能会引发硬件资源不足问题。

该算子在昇腾AI处理器上的输出Shape为[max_output_boxes_per_class * batch_size * class_num, 3],如果最终每个类筛选出的框不足max_output_boxes_per_class个,则会填充-1。例如:

batch_size = 1

class_num = 2

max_output_boxes_per_class = 5

第一个类筛选出 3 个框 第二个类帅选出 1 个框,则最终结果为:

[0, 0, 8]

[0, 0, 5]

[0, 0, 7]

[-1, -1, -1]

[-1, -1, -1]

[0, 1, 9]

[-1, -1, -1]

[-1, -1, -1]

[-1, -1, -1]

[-1, -1, -1]

支持的ONNX版本

Opset v11/v12/v13/v14/v15/v16/v17/v18