首页 > 解决方案 > 在 Single Shot Multi-box 检测器中使用基本锚大小

问题描述

我正在挖掘Tensorflow 对象检测 API,以检查SSD 架构的锚框生成。在这个动态生成锚框的py 文件中,我无法理解base_anchor_size. 在相应的论文中,没有提到这样的事情。简而言之两个问题:

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

标签: tensorflowobject-detectionobject-detection-api

解决方案


在 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].


推荐阅读