1.综述

anchor即目标检测的先验框,retinanet的anchor有scales和ratios,根据每个pyramid_levels生成三个scales,三个ratios,然后形成九种先验框。
scales:anchor的大小(宽)
ratios:anchor的宽高比

2.参数:pyramid_levels, strides, sizes, ratios, scales

  1. class Anchors(nn.Module):
  2. def __init__(self, pyramid_levels=None, strides=None, sizes=None, ratios=None, scales=None):
  3. super(Anchors, self).__init__()
  4. if pyramid_levels is None:
  5. self.pyramid_levels = [3, 4, 5, 6, 7]
  6. if strides is None:
  7. self.strides = [2 ** x for x in self.pyramid_levels]
  8. if sizes is None:
  9. self.sizes = [2 ** (x + 2) for x in self.pyramid_levels]
  10. if ratios is None:
  11. self.ratios = np.array([0.5, 1, 2])
  12. if scales is None:
  13. self.scales = np.array([2 ** 0, 2 ** (1.0 / 3.0), 2 ** (2.0 / 3.0)])

pyramid_level:feature map标号,对应resnet的p3层到p7层
strides:滑窗的步长
size:窗口的宽
ratios:宽高比
scales:面积比例