ssd\src\utils.py 中的代码段 for idx, sfeat in enumerate(self.feat_size): sk1 = scales[idx] / fig_size # scale转为相对值[0-1] sk2 = scales[idx + 1] / fig_size # scale转为相对值[0-1] sk3 = sqrt(sk1 * sk2) # 先添加两个1:1比例的default box宽和高 all_sizes = [(sk1, sk1), (sk3, sk3)] for w, h in all_sizes: for i, j in itertools.product(range(sfeat), repeat=2): # i -> 行(y), j -> 列(x) # 计算每个default box的中心坐标(范围是在0-1之间) cx, cy = (j + 0.5) / fk[idx], (i + 0.5) / fk[idx] self.default_boxes.append((cx, cy, w, h)) anchor的绝对坐标是以特征图的像素值(scale)为基础,如果不进行归一化,在后续的训练过程中发生尺度变化,或最后映射回原图时,就会产生坐标偏移,造成不必要的误差。 进行归一化处理后的相对坐标是以在特征图上的比例为原则,根据图像的scale就能得到相应的目标框。 绝对坐标 相对坐标