1) 是框的中心点,是框的宽和高,N是所有标注框的个数,这是真实gt
2) 默认框(即预测框),我们希望其与gt的IOU最大,其中心与默认框的x,y最小(最好重合),即令 d=1-IOU(d为聚类中 心) ,即有
3)最后,我们需要
其中要点: 使用M-mean聚类初期,容易有坐标偏好
from os import listdir from os.path import isfile, join import argparse # import cv2 import numpy as np import sys import os import shutil import random import math def IOU(x, centroids): ''' :param x: 某一个ground truth的w,h :param centroids: anchor的w,h的集合[(w,h),(),...],共k个 :return: 单个ground truth box与所有k个anchor box的IoU值集合 ''' IoUs = [] w, h = x # ground truth的w,h for centroid in centroids: c_w, c_h = centroid # anchor的w,h if c_w >= w and c_h >= h: # anchor包围ground truth iou = w * h / (c_w * c_h) elif c_w >= w and c_h <= h: # anchor宽矮 iou = w * c_h / (w * h + (c_w - w) * c