generate_anchor.py运算解读

本文详细解析了generate_anchors.py中生成anchor的函数实现,从base_size、ratios和scales参数开始,逐步讲解_ratio_enum、_whctrs、_mkanchors和_scale_enum等函数的作用,最后展示生成的9个anchors坐标及其对应比例和尺寸。
摘要由CSDN通过智能技术生成

为自己普及一下生成anchor的函数实现原理,方便看懂原理,追随源码(generate_anchors.py):
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
ratio_anchors = _ratio_enum(base_anchor, ratios)
anchors = np.vstack([_scale_enum(ratio_anchors[i, :], scales)
                     for i in xrange(ratio_anchors.shape[0])])
return anchors

这个函数就是生成九个anchors的函数,首先有一个base_anchor坐标为[0,0,15,15],因为电脑是从0开始计数的,其实是[1,1,16,16],先调用_ratio_enum
def _ratio_enum(anchor, ratios):

w, h, x_ctr, y_ctr = _whctrs(anchor)
size = w * h
size_ratios = size / ratios
ws = np.round(np.sqrt(size_ratios))
hs = np.round(ws * ratios)
anchors = _mkanchors(ws, hs, x_ctr, y_ctr)
return anchors

在这个函数里先调用了_whctrs,作用是得到anchor 的四个参数,宽度w

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值