generate_anchor_base() 的参数是什么意思?
What does generate_anchor_base()'s arguments mean?
寻找generate_anchor_base
方法,即ChainerCV中的Faster R-CNN util方法。
什么是base_size = 16
?我在文档中看到它是
The width and the height of the reference window.
但是 "reference window" 是什么意思?
它还说 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
该方法是 Faster R-CNN 的实用函数,因此我假设您了解 Faster R-CNN 中提出的 "anchor" 是什么。
- "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks" https://arxiv.org/abs/1506.01497
base_size
和 anchor_scales
决定锚点的大小。
例如,当 base_size=16
和 anchor_scales=[8, 16, 32]
(以及 ratio=1.0
)时,锚点的高度和宽度将是 16 * [8, 16, 32] = (128, 256, 512)
,如您所料。
ratio
决定高宽比。
(以下段落可能有错误,如有错误请指正。)
我觉得需要设置base_size
为当前隐藏层的scale的大小。在 chainercv
Faster R-CNN 实现中,extractor
的特征被馈送到 rpn
(区域提议网络)并且 generate_anchor_base
被用于 rpn
。所以你需要注意 extractor
输出的特征是什么。 chainercv
使用VGG16作为特征提取器,使用conv5_3
层作为提取特征(参见here),这一层是max_pooling_2d
应用了4次的地方,即结果 2^4=16 倍缩小特征。
另外一个问题,我觉得你的理解是正确的,py - h / 2
会是负值。但是这个anchor_base
值只是一个相对值。在 _enumerate_shifted_anchor
方法中的模型 (here), actual (absolute value) anchor
is created in each forward call (here) 初始化时准备好 anchor_base
。
寻找generate_anchor_base
方法,即ChainerCV中的Faster R-CNN util方法。
什么是base_size = 16
?我在文档中看到它是
The width and the height of the reference window.
但是 "reference window" 是什么意思?
它还说 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
该方法是 Faster R-CNN 的实用函数,因此我假设您了解 Faster R-CNN 中提出的 "anchor" 是什么。
- "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks" https://arxiv.org/abs/1506.01497
base_size
和 anchor_scales
决定锚点的大小。
例如,当 base_size=16
和 anchor_scales=[8, 16, 32]
(以及 ratio=1.0
)时,锚点的高度和宽度将是 16 * [8, 16, 32] = (128, 256, 512)
,如您所料。
ratio
决定高宽比。
(以下段落可能有错误,如有错误请指正。)
我觉得需要设置base_size
为当前隐藏层的scale的大小。在 chainercv
Faster R-CNN 实现中,extractor
的特征被馈送到 rpn
(区域提议网络)并且 generate_anchor_base
被用于 rpn
。所以你需要注意 extractor
输出的特征是什么。 chainercv
使用VGG16作为特征提取器,使用conv5_3
层作为提取特征(参见here),这一层是max_pooling_2d
应用了4次的地方,即结果 2^4=16 倍缩小特征。
另外一个问题,我觉得你的理解是正确的,py - h / 2
会是负值。但是这个anchor_base
值只是一个相对值。在 _enumerate_shifted_anchor
方法中的模型 (here), actual (absolute value) anchor
is created in each forward call (here) 初始化时准备好 anchor_base
。