本文就faster rcnn中anchors的函数generate_anchors.py为例,介绍anchors的生成过程。
首先看下主函数入口。论文中提到anchor两个参数:ratios和scales,长宽比和尺度变换都需要有个基础anchor的大小,也就是base_size的由来,至于16的由来,则等于网络的输入大小 / 特征图大小(生成anchor的feature map层)
def generate_anchors(base_size=16, ratios=[0.5, 1, 2],
scales=2**np.arange(3, 6))
这样," base_anchor = np.array([1, 1, base_size, base_size]) - 1 "就表示基础anchor的大小了。
其次,看下如何生成长宽比不同的anchors。这里是对anchor的宽高都进行了改变,具体是将宽变为,高变为,这样长宽比就变为ratios了。此时生成3个长宽比不同的anchors。