昇腾社区首页
中文
注册

NonMaxSuppression

功能

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

该算法与坐标系原点无关,对坐标系的正交变换和平移操作保持不变。输出selected_indices为整数集,可通过Gather或GatherND操作获取对应边框坐标。

输入

  • boxes: 输入Tensor,数据类型:float,存储候选边界框信息。
  • scores:输入Tensor,数据类型:float,候选边界框对应的置信度分数。
  • max_output_boxes_per_class(可选): 输入常量值,数据类型:int64,每种类型最多可选取的边界框数量。
  • iou_threshold(可选): 输入常量值,数据类型:float,IOU重叠判断阈值。
  • score_threshold(可选):输入常量值,数据类型:float,置信度阈值。

属性

center_point_box:数据类型为 int,默认值为0,决定了边界框格式。

  • 等于0时,主要用于TF模型,数据以(y1,x1,y2,x2)形式提供,其中(y1, x1)(y2, x2)是对角线框角坐标,需要用户自行保证x1<x2、y1<y2。
  • 等于1时,主要用于pytorch模型,框数据以(x_center, y_center, width, height)形式提供。

输出

selected_indices:输出Tensor,数据类型:int64。

约束与限制

  • Atlas 200/300/500 推理产品Atlas 训练系列产品对于输入boxes和scores的数据类型仅支持float16。
  • max_output_boxes_per_class数值大于700时,可能会引发硬件资源不足问题。

支持的ONNX版本

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