2021SC@SDUSC
相比two-stage方法,one-stage的目标检测算法更受追捧。one-stage的模型目前可以分为两大类:anchor-based和anchor-free方法。基于anchor-based的检测模型包括SSD,YOLOv3,RetinaNet等,这些模型需要在每个位置预先定义一系列anchor来预测边界框,整个训练和测试阶段都依赖anchor。基于anchor-free的模型不需要anchor,主要是通过检测关键点来直接预测边界框,如CornerNet是检测物体的左上角和右下角顶点,但是却需要耗时的分组策略来得到最终的边界框,还有一类是检测物体中心点的方法,如CenterNet通过预测物体的中心点和大小来检测物体,架构上更简单,速度也更快。这里要介绍的FCOS属于anchor-free,但是却不是基于关键点检测的方法,严格来看其更接近基于anchor-based的方法,但是不需要anchor并加上特殊的设计却能够实现更好的效果。
对于anchor-based的方法,其在输出特征图每个位置放置一系列固定的anchor,这样做的好处是将目标框和anchor绑定在一起,在训练过程中只需要计算GT和anchor的IoU并设定阈值条件来定义正负样本,另外一方面可以通过设定不同大小和宽高比的anchor来适应检测目标的尺度变化性,以保证召回。虽然基于anchor的检测算法取得了很好的效果,但是anchor总显得有点多余。其实YOLOv1并没有使用anchor,没有anchor的YOLOv1是直接将目标框和特征图上的cell绑定在一起,目标框的中心点落在这个cell内,但YOLOv1的recall较低,后面版本都用了anchor。但我们是可以将特征图上cell和目标框直接关联在一起,而不用anchor,这样目标检测就和语