FCOS算法解读

论文:Fully Convolutional One-Stage Object Detection
论文链接:https://arxiv.org/abs/1904.01355

代码链接:https://github.com/tianzhi0549/FCOS/

 

FCOS网络结构如下图所示:

FCOS算法解读_第1张图片

FCOS使用FPN,每个head输出为三个分支分别为:类别分支、center-ness、回归分支。

损失函数如下所示:

FCOS算法解读_第2张图片

类别损失函数使用focal loss,回归损失函数使用UnitBox论文中的IOU loss。

(x0, y0);(x1, y1)分别表示真值框左上角和右下角坐标。(x,y)为每个像素点坐标,回归目标为l*,t*,r*,b*。因此不需要提前设定anchor。

FCOS算法解读_第3张图片

 FCOS算法解读_第4张图片

 当两个真值框存在交叠时,则会存在歧义样本,针对此情况,可通过FPN解决。计算(l*, t*, r*, b*),mi为每个特征层最大距离,如果max(l*, t*, r*, b*) > mi or max(l*, t*, r*, b*) < mi−1,则此位置为负样本,不进行计算。P3层采集范围[0, 64];P4层采集范围为[64,128],以此类推。

对于大小相近又存在交叠的真值框,FPN无法区分,只能通过选择面积最小的真值框为回归目标

为了抑制低质量检测框,即减少误检,引入center-ness,计算公式如下:

FCOS算法解读_第5张图片

 引入centerness,范围为0~1,离中心点越近,权重越大。因此在一定程度上可以降低离目标中心较远的预测框的得分。拉出一条分支学习centerness,即权重。以此降低误检率。

网络效果:

FCOS算法解读_第6张图片

你可能感兴趣的:(深度学习,论文详解,目标检测)