在目标检测任务中,常需为候选框选择一组代表性的 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.输出前按面积从大到小排序;若面积相同,可按宽、再按高降序作为次序规则。