功能
从众多重叠的候选边界框中筛选出最优的边界框,过滤掉与先前选定的框有较高重叠的“交集-并集”(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。