Anchor Free系列模型04

2021SC@SDUSC
基于中心的Anchor Free检测算法
FCOS
基于中心的经典算法之一。它就是在特征图上直接去预测特征点的类别,以及这个像素点到四边的距离,这个算法又通过spn的结构去分层,不同层去预测不同尺度的物体,这样就避免了同一个特征图上,多个物体框重叠的情况。

FCOS – 核心思想
FCOS就使用全卷积网络直接对特征图的每个位置到原图四边的距离进行一个回归,换言之,FCOS直接把每一个点也就每一个位置都作为训练样本,这一点就跟FCN用于语义分割的原理是相同的,而且也取得了跟anchorbased目标检测方法相近的效果。

FCOS – 网络结构
在这里插入图片描述

首先它采用了一个FPN的结构,为什么这么做呢?物体的重叠有可能在训练的过程中产生一些歧义,就比如,有一只大象,下面是一个老鼠,这样的话就很有可能有一个点,这个点即属于大象,又属于老鼠,这样的话。网络就不好把两个目标区分开了,这个模糊性就会使基于FCN的检测效果下降。在FCOS中使用FCN多层预测多尺度的物体,可以有效解决这个模糊性的问题。换言之,大象和老鼠就可以不用一张图去预测了,就可以把大象放在一个深的特征图上,老鼠放在一个浅的特征图上去预测了。
然后看一下输出部分,输出又引出3个部分:分类,中心点,回归。这里与anchor based相类似的地方是都有一个分类分支和回归分支。我们先看一下分类和回归分支。

FCOS – 分类+回归分支
1)分类分支:以像素点为训练样本,每个像素被标注上类别或者背景标签进行分类分支的训练。在anchor based算法上,它是将anchor与真实框的IOU的阈值大于一定值,作为正样本,将这个IOU最大的真实框的类别作为这个anchor的类别。但在FCOS当中呢,如果某一个位置落到了任何一个真实框的话,那它就是一个正样本,类别就标记为这个真实框的类别。当然,这个时候还是有可能一个点落在了两个重叠的真实框内,我们就会把这个点分配给那个面积比较小的真实框了。这里在计算loss时,我们就使用一个focal loss。
2)回归分支:因为没有anchor了,我们就不能再用RCNN和yolo中的偏移量作为回归目标了,在FCOS当中呢,以真实框中每个像素点到真实框四条边的距离作为回归目标值(监督值)进行边框回归分支的训练。根据上面的计算公式,我们就能知道中心点到四边的距离,我们计算loss的使用IOU Loss。
这个时候又有一个问题,因为多尺度结构的存在,就需要确定这个真实框box分配给哪个层级呢?传统的FPN做法是会根据这个box的面积进行分配,而FCOS,就会根据Box中点到四边的最大距离来分配,也就是上面公式的四个分量,怎么分配呢?我们会给每一个层级分配阈值范围,然后看四个分类的最大值落在哪个区间就分配给哪个层级。

FCOS内,我们会把目标框内所有的点平等的作为正样本,这样就会导致产生一个离目标框中心距离远的低质量的目标框。于是,在FCOS中就提出了中心度的概念,也就是center-ness分支,来抑制这些低质量的目标框。

FCOS – 中心度center-ness分支
在这里插入图片描述
像素点越远离目标中心center-ness值越小

center-ness作用于网络中,和分类分支是并行的,是用来预测每个点的中心度。训练的时候,使用二值交叉熵loss,测试的时候,就会把中心度的得分和分类分支的得分做一个相乘,作为某一个点的最终得分。这样每一个位置就有了权重得分了。真正远离中心点的点就会被削弱。后面就可以用NMS的方法将这些点过滤掉了。

FCOS – 进化版
在这里插入图片描述
FCOS – 实验结果
在这里插入图片描述

FCOS – 算法小结

核心思想:检测点和点到真实框四边的距离。
分类+回归分支
真实框内的点均为正样本
通过点到四边距离的最大值决定层级
中心度分支
去除离中心点较远的低质量的预测框
像素点离中心点越远,中心度越小
FCOS进化版
FCOS没有很明确确定中心点,它是依赖于标注信息的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值