RetinaNet(anchor based)和FCOS(anchor free)区别:
- 1.RetinaNet在特征图上每个点铺设多个anchor,而FCOS在特征图上每个点只铺设一个中心点,这是数量上的差异。
- 2.RetinaNet基于anchor和GT之间的IoU和设定的阈值来确定正负样本,而FCOS通过GT中心点和铺设点之间的距离和尺寸来确定正负样本。这1点可以从下图的对比中看到,这张图像中蓝色框和点表示GT,红色框表示RetinaNet铺设的anchor,红色点表示FCOS铺设的点,左右两边类似表格上的数值表示最终确定的正负样本,0表示负样本,1表示正样本。
- 3.RetinaNet通过回归矩形框的2个角点偏置进行预测框位置和大小的预测,而FCOS是基于中心点预测四条边和中心点的距离进行预测框位置和大小的预测。
-
作者提出了一种自适应的选取正样本的方法,具体方法如下:
1.对于每个输出的检测层,先计算每个anchor的中心点和目标的中心点的L2距离,选取K(mmdetection的topK是9)个anchor中心点离目标中心点最近的anchor为候选正样本(candidate positive samples)
2.计算每个候选正样本和GT之间的IOU,计算这组IOU的均值和方差
根据方差和均值,设置选取正样本的阈值:t=m+g ;m为均值,g为方差
3.根据每一层的t通过计算候选框与gt的左,右,上,下,距离,找出中心的在内部的框加入训练的正样本