代码之家  ›  专栏  ›  技术社区  ›  floyd

generate_anchor_base()的参数是什么意思?

  •  1
  • floyd  · 技术社区  · 6 年前

    Github page

    generate_anchor_base 方法,在chaineercv中使用r-cnn-util方法更快。

    什么是 base_size = 16 ?我在文件中看到

    参考窗口的宽度和高度。

    但是“参考窗口”是什么意思?

    它还说 anchor_scales=[8, 16, 32] 是锚的面积,但我认为面积是(128、256、512)

    另一个问题:
    如果 base size 是16岁 h = 128 w=128 ,这是不是意味着 anchor_base[index, 0] = py - h / 2 是负值吗? 因为py=8和h/2=128/2

    1 回复  |  直到 6 年前
        1
  •  1
  •   corochann    6 年前

    这个方法是一个更快的r-cnn的效用函数,所以我假设你理解在更快的r-cnn中提出的“锚”是什么。

    base_size anchor_scales 确定定位点的大小。 例如,当 base_size=16 anchor_scales=[8, 16, 32] (和) ratio=1.0 )锚的高度和宽度 16 * [8, 16, 32] = (128, 256, 512) 如你所料。 ratio 确定高度和宽度纵横比。

    (我可能在下面的段落中出错,如果我错了请更正。)

    我想 基本尺寸 需要设置为当前隐藏层比例的大小。在 chainercv 更快的R-CNN实施, extractor 的功能已输入 rpn (区域提案网络)和 generate_anchor_base 用于 零售价 .所以你需要注意的是 萃取器 的输出。 卡内尔夫 使用vg16作为特征提取程序,以及 conv5_3 图层用作提取的特征(请参见 here )这层是一个 max_pooling_2d 应用4次,结果为2^4=16次小特征。

    对于另一个问题,我认为你的理解是正确的, py - h / 2 将为负值。但是这个 anchor_base 值只是一个相对值。一次 锚基 在模型初始化时准备( here ,实际(绝对值) anchor 在每次转接呼叫中创建( here _enumerate_shifted_anchor 方法。