在 Single Shot Multi-box 检测器中使用 base anchor size

Use of base anchor size in Single Shot Multi-box detector

我正在挖掘动态生成锚框的 Tensorflow Object Detection API in order to check out the anchor box generations for SSD architecture. In this py file,我无法理解 base_anchor_size 的用法。在相应的论文中,没有提到这样的事情。简而言之两个问题:

  1. base_anchor_size参数有什么用?重要吗?
  2. 在原始输入图像的形状为 square 和非正方形的情况下,此参数如何影响训练?

在 SSD 架构中,锚点的尺度是固定在前面的,例如在 0.2-0.9 范围内的线性值。这些值与图像大小有关。例如,给定 320x320 的图像,那么最小的锚点(1:1 比率)将是 64x64,最大的锚点将是 288x288。但是,如果您希望在模型中插入更大的图像,例如640x640,但不改变锚点大小(例如,因为这些是远处物体的图像,所以不需要大物体;不让锚点大小保持不变,这样你就不会在新分辨率上微调模型),然后你可以简单地有一个 base_anchor_size=0.5,这意味着锚比例相对于输入图像大小为 0.5*[0.2-0.9]。

此参数的默认值为[1.0, 1.0],表示没有任何影响。

这些条目对应于 [height, width] 相对于 您可以放入图像中的最大正方形,即 [min(image_height,image_width),min(image_height,image_width)]。因此,例如,如果您的输入图像是 VGA,即 640x480,则 base_anchor_size 被认为是相对于 [480,480].