NonMaxSuppression

功能

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

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

边界

【输入2-5】

boxes: tensor(float)

scores: tensor(float)

max_output_boxes_per_class: 可选,数据类型:tensor(int64)

iou_threshold: 可选,数据类型:tensor(float)

score_threshold: 可选,数据类型:tensor(float)

【输出】

selected_indices: tensor(int64)

【属性】

center_point_box: int 默认值:0

【约束】

昇腾310 AI处理器昇腾310P AI处理器昇腾910 AI处理器对于输入boxes和scores的数据类型仅支持float16。

该算子在昇腾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 v10/v11/v12/v13/v14/v15/v16/v17/v18