36_FCOS网络详解

1.1 简介

FCOS(Fully Convolutional One-Stage Object Detector)是一种用于目标检测的深度学习模型,它采用了一种全新的设计思路来解决物体检测问题。FCOS由Facebook AI Research (FAIR) 在2019年提出,并在一系列基准数据集上取得了非常有竞争力的结果。

FCOS的主要特点

  1. 全卷积网络:FCOS是一个端到端的全卷积网络架构,这意味着它可以处理任意大小的输入图像,并输出对应大小的特征图。

  2. 无锚框机制:不同于传统的基于锚框的方法(如YOLO、RetinaNet等),FCOS不使用预定义的锚框,而是直接在特征图的每个位置预测物体的位置和类别。

  3. 中心性加权损失函数:为了更好地处理不同尺度的目标,FCOS引入了一个中心性加权损失函数,该函数对靠近目标中心的预测给予更高的权重,从而确保模型更加关注目标的中心区域。

  4. 逐像素预测:模型在每个位置预测一个物体,而不是像基于锚框的方法那样预测多个可能的物体。这简化了预测过程,并有助于提高检测性能。

  5. 多尺度特征融合:通过使用特征金字塔网络(FPN)或其他类似的技术,FCOS可以利用多尺度的特征图来检测不同大小的目标。

FCOS的架构细节

输入层:输入可以是任意大小的图像。

背骨网络:通常使用ResNet或类似的卷积神经网络作为特征提取器。

特征金字塔网络 (FPN):从骨干网络的不同层级提取特征,并通过上采样和融合操作生成多尺度特征图。

预测头:对每个尺度的特征图进行预测,每个位置预测目标的类别概率和边界框回归。

损失函数:包括分类损失和回归损失,其中分类损失使用Focal Loss,回归损失使用IoU损失或者Smooth L1损失。

训练与推理:在训练阶段,每个像素被分配给最接近它的地面真值框。推理时,对于每个类别的预测结果,应用非极大值抑制(NMS)以去除冗余的检测框。

性能:FCOS在COCO数据集等标准基准上表现出色,其性能与基于锚框的检测器相当甚至更好,同时由于去除了锚框机制,使得模型更简单、更容易调整。

应用场景:由于其灵活性和高性能,FCOS适用于各种目标检测任务,包括实时视频流分析、自动驾驶、无人机视觉系统等。

结论:FCOS通过取消锚框机制并引入中心性加权损失函数等创新,为物体检测提供了一种新的解决方案。这种简洁而高效的设计使得FCOS成为目标检测领域的一个重要里程碑。

FCOS如何实现anchor-free的呢?就是针对我们的预测点去找点到预测框四条边的距离,如下图所示。

基于anchor-base的网络存在的问题

aspect ratio是指高宽比。

例如黄色框是正样本,红色是负样本,负样本明显要比正样本数量要多很多。

1.2 FCOS网络结构

在19年版的论文当中,检测头最右侧的center-ness是和分类放在一起的,而在20年版本的论文中与回归放在了一起。

检测头head是共享的,五个预测特征层共用一个head。

分类的80是指coco数据集上的80个类别。

        下图是回归分支。l,t,r,b分别代表:距离目标左侧的距离,上侧的距离,右侧的距离以及下侧的距离,这里的距离都是针对在特征图上的,我们要映射回原图的距离就要乘上s,s就是特征图相对于原图的步距。

cx和cy对应的就是当前这个预测点将它映射回原图它所对应的坐标。

center-ness

Center-ness 主要是用来解决两个问题:

  1. 边界框回归的不稳定性:在实例分割任务中,边界框回归可能会受到物体形状的复杂性和遮挡的影响而变得不稳定。通过关注目标中心区域,可以减少这些影响,使得模型更加稳定地预测边界框的位置。

  2. 区分重叠实例:在多个实例重叠的情况下,仅依赖于边界框的分数可能无法很好地区分出哪些像素属于哪个实例。通过计算每个预测框的中心性分数,可以辅助模型更准确地区分这些重叠的实例。

Center-ness 的实现方式

在FOCS网络中,center-ness 是通过一个额外的分支来预测的。这个分支会输出一个介于0到1之间的值,表示预测框内某个位置是否接近目标的中心区域。具体来说:

  • 0 表示该位置远离目标中心。
  • 1 表示该位置非常接近目标中心。

通过这种方式,模型可以学习到哪些像素更有可能位于目标的中心,并且在最终的预测中给予这些像素更高的权重。

Center-ness 的应用

在训练过程中,center-ness 分支的输出可以被用来加权损失函数中的像素贡献,使得靠近中心的像素对损失的贡献更大。这样,模型在训练过程中就会更加关注目标中心区域的信息,从而有助于提高边界框的精确度以及实例分割的质量。

总结

  • 目的:提高模型对目标中心区域的敏感度,增强模型的鲁棒性和准确性。
  • 机制:通过一个额外的分支预测每个预测框内的中心性分数。
  • 效果:使得模型能够更好地处理复杂的物体形状和重叠的实例。

星号代表的真实标签,没有星号的代表网络预测值,计算的范围在(0,1)之间。当点在边界上时centerness值为0,当点在图像中心时值为1.

1.3 正负样本的匹配

在anchor-base网络中,是拿GT和某一个anchor box去计算IOU,如果大于某个阈值,我们就将这个GT分配给对应这个的 anchor box,也就是被分为正样本。

而FCOS是一个anchor free的网络,没有anchor的概念。下图中√是指GT覆盖的区域,在2019版的论文当中(下图左),只要预测点落入GT当中就归为正样本,而在2020版论文中,只有落入GT中心区域的预测点才会归为正样本。

下图给出了2020版论文的关于sub box的计算公式。

Ambiguity

那如果预测点落入了多个GT的重叠区域该怎么办呢?

如果遇到这种情况,默认分配给面积area最小的GTbox。如下图所示,预测点落在了人和球拍重叠部分,那么就默认分配给area最小的即球拍。

1.4 损失计算

Npos代表匹配的正样本的数量,pxy代表xy点预测的类别信息,cxy是真实类别信息,txy代表网络预测的目标边界框信息,txy星号代表真实的目标边界框

1.5 模型性能

center-Net也是一个anchor free的网络。

1.6 其他

Ambiguity问题

center sampling即之前提到的“预测点是否落入目标中心”来划分正样本。

Assigning objects to FPN

结合FPN以后,如果 max(l*,b*,t*,r*)≤mi-1或max(l*,b*,t*,r*)≥mi的话,就被视为一个负样本,否则为正样本。

m2-m7的值依次为0,64,128,256,512,∞。

pi即网络最右侧的输出特征图。用pi的max(l*,b*,t*,r*)来划分正负样本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值