FCOS:One-stage论文及代码研读(1)

1. 论文阅读-FCOS: Fully Convolutional One-Stage Object Detection

认真研究篇1-在20年的几篇cvpr基于这个做出了很精彩的论文

摘要:
  1. anchor-free proposal-free
  2. 因为没有anchor-box 所以省去很多不必要的计算
  3. 易用,没有anchor-box的很多超参,调试简单
  4. 仅仅使用一个后处理非最大抑制(NMS),在one-stage中表现最优
  5. hope that the proposed FCOS framework can serve as a simple and strong alternative for many other instance-level tasks. (简单有用很重要)
intro中的几个key points
  1. anchor-based detectors suffer some drawbacks:a. 超参的调试需要很细心的调试(the sizes-anchor, aspect-ratios, the number of boxs) b. 由于anchor是fixed的,所以面对obj size variations比较大和不能泛化到其他任务(需要重新调参)。 c. 由于anchor boxes大多是负样本,所以在训练anchor的那部分net的时候会出现极大的样本不平衡问题。 d. anchor boxes包含比较复杂的计算。(第一段)
  2. 重点重点重点:提出问题-- 可以像语义分割一样对探测问题也是以逐像素的问题解决吗?
  3. 观察发现本文方法会产生很多低质量的距target中心很远的检测框,所以提出了 “center-ness branch” (a layer)去除离中心比较远的框,并融合NMS产生的detection results.
  4. 前面的已经足够叙述本文的advantages,所以不再重复稳重的总结。
ralated work
  1. anchor-based Detetors 基本点都是与上面重复的
  2. anchor-free detectors 三种 a . YOLOv1 输出靠近目标中心的box, 但是只有near center的box,所以suffer了low recall (注:只有near the center的point才被看做可以产生高质量的box),houmianv2的时候就有采用了anchor。b. CornerNet 预测框的左上右下的坐标,但是需要复杂的后处理去group 属于same instance 的坐标。c. DenesBox 应对overlapping bounding boxes效果不好 and recall low。
在下文中找,1. recall low 怎么解决 2. overlapping的问题。3. NMS 4. center-ness 如何使simpler detector达到比较好的效果
Approch
  1. 以per-pixel 的方式重构目标检测(这句话够)
  2. 使用multi-level 来提高recall和消除overlapping带来的ambiguity results
  3. center-ness branch—supress the low-quality detected bounding boxes.
    在这里插入图片描述
1. fully covolutional one-stage object detector在这里插入图片描述

整体框架,每个head(multi-level)都输出对每个feature map的每个位置x,y预测的class(80D)和4D的(l, t, r, b)分3类的sample positive negative,ambiguous。对于4D的target(label)的如下 l ∗ = x − x 0 i l^* = x-x_0^i l=xx0i
t ∗ = y − y 0 i t^* = y-y_0^i t=yy0i / r ∗ = x 1 i − x r^* = x_1^i-x r=x1ix / b ∗ = y 1 i − y b^* = y_1^i-y b=y1iy

损失函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述indictor function,背景不计算。
在这里插入图片描述

Multi-level Prediction with FPN for FCOS

面对两个问题的解决1. low best possible recall (BPR) ,本来first glance觉得BPR会不好,但是实验证明可以比anchor-based更好。2. 采用multi-level的prediction实验证明解决了ambiguity。
给每个feature level分配不同size的anchor box, 这样不同size的objs被分配到不同的feature level上去(FPN的),这样由于overlapping大多不同size的,ambiguity的程度会被减轻,另外,如果a pixel被分配不止一个gt box那选择较小的那个框作为target。
发现不同的feature level 需要不同的regress different size range,所以本文使用了 e x p ( s i x ) exp(s_ix) exp(six)

Center-ness

有了multi-level 但是精度仍然不够怎么办
分析原因:由于太多low-quality pre bounding boxes的存在(远离了obj的center)
so 有了center-ness branch test的时候class score要成center-ness的分数,这样就down-weight了far from center的obj
最后呢,再用NMS得到最终的框(我对NMS如何得到final pre不是特别懂,接下来看代码释疑吧)
c e n t e r n e s s ∗ = m i n ( l ∗ , r ∗ ) m a x ( l ∗ , r ∗ ) × m i n ( t ∗ , b ∗ ) m a x ( t ∗ , b ∗ ) centerness^* = \sqrt{\frac{min(l^*, r^*)}{max(l^*, r^*)} \times \frac{min(t^*, b^*)}{max(t^*, b^*)}} centerness=max(l,r)min(l,r)×max(t,b)min(t,b)
在这里插入图片描述

Experiments
  1. multi-level
    在这里插入图片描述
  2. center-ness
    在这里插入图片描述
  3. vs anchor-based
    在这里插入图片描述

NMS

参考就可NMS博文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值