在目标检测任务中,常需为候选框选择一组代表性的 Anchor 尺寸。现给定 N 个矩形框的宽和高,使用基于 IOU 距离的 k-means 聚类得到 K 个 Anchor。初始化时直接取前 K 个框作为初始中心;每轮迭代将每个样本分配给距离最近的中心;随后将每个簇内样本的宽、高分别取均值并向下取整作为新中心。若达到最大迭代次数 T,或新旧中心之间的总“位移”小于 1e-4(用 d=1−IOU 作为中心间距离,并对 K 个中心求和),则停止。最终按 Anchor 面积(宽×高)从大到小输出 K 个中心。 说明与约束 1.距离度量:d = 1 − IOU,其中 IOU = 交集面积 并集面积,交集面积 = min(w1,w2) × min(h1,h2),并集面积 = w1×h1 + w2×h2 − 交集面积。 2.所有距离与 IOU 的计算均用浮点;每轮更新后的中心宽、高先取均值再向下取整为整数。 3.若某簇在某轮为空,则该簇中心保持不变。 4.输出前按面积从大到小排序;若面积相同,可按宽、再按高降序作为次序规则。
输入描述:
第一行:N K T(以空格分隔)  接下来 N 行:每行两个整数 w h,表示一个检测框的宽与高。


输出描述:
输出 K 行:每行两个整数,依次为一个 Anchor 的宽与高,按面积从大到小排序。
示例1

输入

9 3 10
100 50
30 20
10 10
102 49
98 52
29 21
31 19
11 9
9 11

输出

100 50
30 20
10 10

说明

初始中心为 (100,50)、(30,20)、(10,10)。  
分配后每个簇的均值向下取整仍为 (100,50)、(30,20)、(10,10),迭代收敛。  
按面积排序的结果如上。

备注:
本题由牛友@Charles 整理上传
加载中...