#AEAI03005. 分类检测结果去重

分类检测结果去重

题目描述

同一目标可能被检测器从多个相近位置重复报出。为了把候选结果送给机械臂执行模块,具身智能部需要先按类别做一次非极大值抑制。

给定若干带类别和置信度的检测框。先过滤掉分数低于阈值的候选,再按分数从高到低执行 NMS:只有同类别、且与已保留框 IoU 严格大于阈值的候选会被抑制。输出最终保留的候选编号。

输入格式

  • 第一行输入整数 N
  • 随后 N 行,每行输入 id class_id score x1 y1 x2 y2
  • 最后一行输入两个浮点数 Ts Tiou

输出格式

  • 第一行输出保留数量 K
  • K>0,第二行按保留顺序输出 Kid

判定规则

使用标准输出比较。

  • 只有 score >= Ts 的候选参与 NMS。
  • 参与候选按 score 降序、id 升序处理。
  • NMS 只在同一 class_id 内生效。
  • 当某候选与任一已保留同类框的 IoU > Tiou 时,该候选被抑制。

样例

输入样例 1

4
1 1 0.9 0 0 10 10
2 1 0.8 1 1 9 9
3 2 0.7 1 1 9 9
4 1 0.4 20 20 30 30
0.5 0.3

输出样例 1

2
1 3

样例解释 1

候选 4 分数不足被过滤;候选 2 与同类候选 1 重叠过高被抑制;候选 3 类别不同而保留。

输入样例 2

2
1 1 0.2 0 0 1 1
2 1 0.3 2 2 3 3
0.5 0.5

输出样例 2

0

样例解释 2

所有候选分数都低于 Ts,没有保留结果。