物体检测器自己学anchor

参考:

Anchor

  1. anchor是物体检测中的重要概念,通常是人为设计的一组框,作为分类和框回归的基准框。无论是单阶段检测器还是两阶段检测器,都使用了anchor。
  2. 两阶段检测器的第一阶段是采用RPN生成proposals,是对anchor进行分类和回归的过程。即anchor—proposals—detection bbox。
  3. 大部分单阶段检测器是直接对anchor进行分类和回归,即anchor—detection bbox。
  4. 常见的生成anchor的方式是滑窗,也就是首先定义k个特定尺寸和长宽比的anchor,然后在全图上以一定的步长滑动。这种方式在Faster RCNN和SSD和RetinaNet等方法中使用。
  5. 通过滑窗生成anchor虽简单但是很多缺点。
    缺点一:anchor的尺度和长宽比需要预先定义,这是一个对性能影响很大的超参,而且对于不同数据集和方法需要单独调整。
    缺点二:若预先设定的anchor的尺度和长宽比设置不合适,会导致recall不够高。
    缺点三:若预先设定的anchor的尺度和长宽比设置不合适,会导致大部分的anchor都分布在背景区域,对proposal或者检测不会有任何正面作用。
    缺点四:预先定义好的anchor形状不一定满足极端大小或者长宽比悬殊的物体。
  6. 综上这4个缺点,所以想要的是稀疏、且形状根据位置可变的anchor。
anchor的生成
  1. 通常使用4个数(x,y,w,h)来描述一个anchor。即中心点坐标和宽高。
  2. anchor的生成可以被分解为两个过程
    过程一:anchor位置预测
    过程二:anchor形状预测
位置预测
  1. 位置预测的目标是预测哪些区域应该作为中心点来生成anchor,是一个二分类问题,不同于RPN和segmentation的分类,这里不是预测每个点是前景还是背景,而是预测是不是物体的中心。
  2. 将整个feature map的区域分为物体中心区域、外围区域和忽略区域。将ground truth框的中心一小块对应在feature map上的区域标为物体中心区域,在训练的时候作为正样本,其余区域按照离中心的距离标记为忽略样本或者是负样本。
  3. 通过位置预测,可以筛选出一小部分区域作为anchor的候选中心点位置,使得anchor的数量降低。
  4. 在inference时,预测完位置后,可以采用masked conv替代普通的conv,只在有anchor的地方进行计算,可以加速。
形状预测
  1. 形状预测的目标是给定anchor中心点,预测最佳的长和宽,是回归问题。
  2. 以前预测长和宽的方法是:先算出target,即该中心点的anchor最优的w和h。然后用L1/L2/Smooth L1这类loss来监督。但是target不好计算。
  3. 改进办法:直接使用IOU监督来学习w和h。计算IOU是可导的操作,让网络自己去优化使得IOU最大。
  4. 对于以前常规的anchor,是计算它和所有ground truth的IOU,然后将它分配给IOU最大的ground truth。
  5. 对于上面提出的改进办法中,现在的anchor的w和h都是不确定的,所以不可能把所有可能的w和h遍历一遍然后求IOU的最大值。所以采用近似方法,采样一些常见的w和h值,例如实践发现采样9组w和h值就足够,而且发现结果对于采样的w和h的组数的超参是不敏感的。即表示:不管采样多少组,近似效果已经足够。
生成anchor
  1. 得到anchor位置和中心点的预测后,就可以生成anchor,此时生成的anchor是稀疏而且每个位置不一样。
  2. 采样生成的anchor取代滑动窗,平均召回率超过普通的RPN区域候选网络很多,代价仅仅是增加两个1 * 1卷积(这个代价是很小的)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值