题目:FCOS:Fully Convolutional One-Stage Object Detection
第一作者:Zhi Tian The University of Adelaide, Australia
发表:CVPR2019
论文:https://arxiv.org/pdf/1904.01355.pdf
代码:https://github.com/tianzhi0549/FCOS

思路:Anchor-based detectors有以下几个不足:

  1. 检测的效果对与anchor box有关的超参数十分敏感,需要精心设计
  2. 对新的任务参数需要重新设计,移植性差
  3. 为了提高召回率而使用了大量anchor box,而大多数box会被标记为负样本,从而导致正负样本的不均衡
  4. 大量的anchor boxes导致训练和测试过程中大量繁杂的IoU计算

可以看出这些不足主要和anchor box有关,当然它也有效的提高了AP,那有没有一种方法在保持高AP的同时,又避免anchor box的缺点呢,一种思路是针对anchor box的缺点进行设计,比如自动设计anchor box的参数,解决不足1和2,当然也会有其他方法解决3和4,另一种思路就是像本文提出的FCOS一样,直接去掉anchor box,这样带来的好处如下:

  1. 可以复用其他FCN-solvable tasks比如语音分割的方法
  2. 极大减少了参数,避免了设计的困难
  3. 减少了冗余的计算
  4. 移植性好

网络结构:FCOS论文简析Backbone + FPN + head
参考https://www.jianshu.com/p/4dc31334eec6和源码

关键因素:

  1. 逐像素预测:在每个featuremap的像素上进行预测,与只考虑中心的YOLOv1相比显而易见的提高了召回率(参见论文)
  2. FPN: 实现多尺度的预测,anchor free不可避免的会产生一种情况,一个像素同时对应多个box,不同box对应不同大小的物体,如果简单舍弃则会导致召回率下降,引入FPN之后就可以在不同的层检测出所有的物体
  3. centerness:因为是逐像素预测,所以会不可避免地引入赘余的regression box,为了在NMS中去掉多余的box,引入centerness,使每个像素预测出的box尽可能中心一致

相关文章: