Retinanet

这个论文的核心就是解决了样本不平衡问题,是focal loss的变体
放上一个大佬的博客:CSDN
首先我们来说说为什么one stage的检测效果差于two stage。

  1. 首先two stage对于bbox有个筛选过程,这个筛选会筛除大部分的背景bbox,剩下的bbox会进行regression
  2. 对于这些筛出来的bbox会进行二次regression

由第一条就可以看出,two stage在一定程度上解决了样本不平衡的问题,而样本不平衡问题会导致检测精度很差。因为负样本太多了,所以分类器把所有bbox都归为负样本的话,accuracy也会很高。所以说分类很重要,分类分好了,检测才能做好。这里扯一句yolo系列对于样本不均衡做的比较好,因为只有object中心落在网格中心时,网格的prior box才会进行回归,相当于已经做了负样本的筛选了。

Focal loss

先上公式:
FL(pt)=(1pt)γlog(pt)=(1pt)γCE(y^)iFL(pt)=−(1−p_t)^γlog(p_t)=(1−p_t)^γCE(ŷ )_i
Retinanet
这里论文又加了一个参数:
FL(pt)=αt(1pt)γlog(pt)FL(p_t)=−α_t(1−p_t)^γlog(p_t)
Retinanet
在实验中,发现 γ=2,α=0.25 的取值组合效果最好
关于它的网络结构没啥创新的,这里也就不再赘述了