faster rcnn中anchor的生成过程理解

首先,根据给定的base_size,生成一个所谓的base_anchor,其值为[0,0,base_size-1,base_szie-1]。例如当base_size=16的时候就生成一个坐标为[0,0,15,15]的矩形。

第二步根据上面的上面得到base_anchor进行坐标变换,计算出中心点xc,yc和矩形的高和宽w,h.即将我们说的xmin,ymin,xmax,ymax形式的坐标转化为w,h,xc,yc的坐标形式。用我们的例子就是从[0,0,15,15]变成了[16,16,7.5,7.5]。再依据w和h计算矩形的面积,这里记为base_anchor的size。将size除以不同的ratio得到一个数组,称之为size_ratios。此时size=256, size_ratios=[512,256,128]。接下来将每一个size_ratio开平方得到的值记为ws,而将ws*ratio的值记为hs,而每一对(ws,hs)和(xc,yc)则可以重新变换坐标生成一个anchor,三个size_ratio对应三对(ws,hs),即可以变换为三个anchor.将之堆叠在一起称为ratio_anchors. size_ratios=[512,256,128],对应的ws=[22,16,11],hs=[12,16,22]。则ratio_anchors=[[ -3.5 2. 18.5 13. ] ,[ 0. 0. 15. 15. ],[ 2.5 -3. 12.5 18. ]]

坐标转化的方法如下图,非常简单

  • [xmin,ymin,ymax,ymax]–>[ws,hs,xc,yc]

    在这里插入图片描述

  • [ws,hs,xc,yc]->[xmin,ymin,ymax,ymax]à->ratio_anchors

    在这里插入图片描述

  • ratio_anchors坐标轴上表示

    ratio_anchors坐标轴上表示
    第三步将上一步得到ratio_anchors的每一个anchor的w和h 乘上scales得到新的(ws,hs).如果scales=[8,16,32]三个scale,那么我们就可以得到3*3=9对(ws,hs),从而通过坐标变换得到9个anchors,这里是在(0,0)点处生成anchor,再进行滑动就可以得到所有的propsal区域

  • 9个anchor 的坐标及对应的ws,hs

    9个anchor 的坐标及对应的ws,hs

  • Anchor 的坐标绘制

     Anchor 的坐标绘制

根据上文,我的理解是在某一层上先生成这一层对应大小的anchors即ratio_anchors,乘上scales得到的anchors应该是指对应于不同尺度上的大小,相当于将这个anchor分别放大了8,16,32 倍来对应原图上不同尺度的物体,再和gt进行匹配。但之所以实验出错,推测还是在匹配上处理的有问题。
转自博文:https://blog.csdn.net/qq_26974871/article/details/81251851

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值