README.md

NMSWithMask

产品支持情况

产品 是否支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品

功能说明

  • 算子功能:对候选框执行非极大值抑制(NMS),输出候选框保留掩码,支持IOU阈值、置信度阈值过滤。
  • 输入坐标格式为 <x1,y1,x2,y2>(左下角和右上角坐标),在代码中以一维数组形式存储([N,4] 维度展开为长度N*4的一维数据)。
  • 计算公式:
    • 输入节点:

      • x (shape[N,4], FLOAT32) - 候选框坐标(x1,y1,x2,y2)
      • y (shape[N], FLOAT32) - 候选框置信度
      • iou_threshold (shape[1], FLOAT32) - IOU过滤阈值
      • scores_threshold (shape[1], FLOAT32) - 置信度过滤阈值
    • 计算节点:

      • Step1: 置信度降序排序索引idx_sorted(该算子默认已降序排序,需用户自行保证)
      • Step2: 初始化临时掩码标记所有候选框为保留状态(值为1),输出掩码初始化为0;
      • Step3: 遍历候选框,跳过已标记为过滤的框,过滤置信度低于scores_threshold的框(临时掩码置0);
      • Step4: 对保留的候选框标记输出掩码为1,计算其与后续所有候选框的IOU(IOU=交集面积/(当前框面积+对比框面积−交集面积)IOU = 交集面积 /(当前框面积 + 对比框面积 - 交集面积));
      • Step5:将IOU高于iou_threshold的后续框标记为过滤(临时掩码置0);
      • 重复步骤Step3-Step5直至所有框处理完成。
    • 输出节点:

      • z (shape[N], UINT8) - 候选框保留掩码

参数说明

参数名 输入/输出/属性 描述 数据类型 数据格式
x 输入 候选框坐标(左下和右上)[N,4]。 FLOAT32 ND
y 输入 置信度。 FLOAT32 ND
iou_threshold 输入 IOU阈值。 FLOAT32 ND
scores_threshold 输入 置信度阈值。 FLOAT32 ND
z 输出 选中候选框对应掩码。 UINT8 ND

约束说明

  • 目前只支持float32输入

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_nms_with_mask_example 通过aclnnNMSWithMask接口方式调用NMSWithMask算子。