RetinaNet-单阶段目标检测模型

RetinaNet

动机

one stage的方法思路都得密集采样,然后基于base进行回归,那这个过程中采样出的fake anchor的数量中,正负样本是极端不平衡的,除了像SSD中那样在计算loss时通过score筛选下参与学习的bbox以保持正负样本比的方案,使用有权重的损失函数也会比较好的解决这个问题,这就是retina net中提出的Focal Loss.

方法概要

  • 目的很简单,就是想让数量少的正样本anchor分量重一点,让数量极多的负样本分量轻一点。

    • 先是分类时用到的交叉熵【这里p为预测为正样本的概率】
      在这里插入图片描述
    • 然后我们统一写做:
      在这里插入图片描述
      在这里插入图片描述
    • 进一步我们有BCEloss,就是balanced 交叉熵,给交叉熵带了个权:【这里的\alpha_t的话,当y=1时为\alpha, 其他情况是1-\alpha】
      在这里插入图片描述
    • 然后focalloss来了【不管你本来是正样本在预测时置信度偏小,还是你本来是负样本在预测时置信度偏小,这两种情况都可以叫做hard,这种情况下都会让p_t偏小,然后在Focalloss中会有一个较大的loss累计,当你本来就是负样本,然后很轻松的得到较高的置信度被预测正确时,或者说你本来是正样本被预测正确了,这两种情况下都叫做easy sample,这时对于loss的累计贡献就比较低。因此Focal loss变相压制了easy sample的loss贡献,而其中受到迫害最严重的莫过于非常easy的大量负样本。这样被压制之后,正负样本不就平衡了吗】
      在这里插入图片描述
      在这里插入图片描述
  • 那再把普通的balance参数\alpha加进去就是终极奥义了。
    在这里插入图片描述

细节及注意事项

  • 实现上用了FPN+解耦双头

评价

  • 其实整个压制负样本的过程有点亡羊补牢的意味了,虽然不晚,但是进行了比较多的无意义的loss的计算和累计,其实最好的办法还是在分配anchor时就提前做好正负样本均衡。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值