前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >目标检测(object detection)系列(十四) FCOS:用图像分割处理目标检测

目标检测(object detection)系列(十四) FCOS:用图像分割处理目标检测

作者头像
chaibubble
发布2021-02-04 10:34:30
1.3K0
发布2021-02-04 10:34:30
举报

目标检测系列:

目标检测(object detection)系列(一) R-CNN:CNN目标检测的开山之作

目标检测(object detection)系列(二) SPP-Net:让卷积计算可以共享

目标检测(object detection)系列(三) Fast R-CNN:end-to-end的愉快训练

目标检测(object detection)系列(四) Faster R-CNN:有RPN的Fast R-CNN

目标检测(object detection)系列(五) YOLO:目标检测的另一种打开方式

目标检测(object detection)系列(六) SSD:兼顾效率和准确性

目标检测(object detection)系列(七) R-FCN:位置敏感的Faster R-CNN

目标检测(object detection)系列(八) YOLOv2:更好,更快,更强

目标检测(object detection)系列(九) YOLOv3:取百家所长成一家之言

目标检测(object detection)系列(十) FPN:用特征金字塔引入多尺度

目标检测(object detection)系列(十一) RetinaNet:one-stage检测器巅峰之作

目标检测(object detection)系列(十二) CornerNet:anchor free的开端

目标检测(object detection)系列(十三) CenterNet:no Anchor,no NMS

目标检测(object detection)系列(十四) FCOS:用图像分割处理目标检测

目标检测扩展系列:

目标检测(object detection)扩展系列(一) Selective Search:选择性搜索算法

目标检测(object detection)扩展系列(二) OHEM:在线难例挖掘

目标检测(object detection)扩展系列(三) Faster R-CNN,YOLO,SSD,YOLOv2,YOLOv3在损失函数上的区别

简介

FCOS的paper是《FCOS: Fully Convolutional One-Stage Object Detection》,来自阿德莱德大学沈春华老师团队,作者是田植,同时也是在实例分割方向表现非常惊艳的BoxInst

此外阿德莱德大学还有另外一个非常著名的工作就是AdelaiDet,是一个base在detectron2上的检测工具箱,AdelaiDet同样支持FCOS。

FCOS旨在利用全卷积的思路处理目标检测问题,它是一个anchor free的单阶段检测器,一个很有意思的地方是,FCOS和CenterNet都是在CornerNet之后,但是这它们几乎是同时挂到arxiv上,都在2019年的4月,且相差不到半个月。区别在于CornerNet是找目标的角点,而CenterNet是找目标的中心点,FCOS在找所有的点,CornerNet和CenterNet像是bottom-up的人体姿态估计任务,而FCOS像是一个实例分割任务。

我们在把FCOS作者的一系列工作串起来看,就不难发现这个问题,BoxInstCondInst都是实例分割方向非常优秀的工作,同时,BoxInst更是在只有bbox的情况下做实例分割,单纯的从输入来看,这和FCOS就是一致的。

FCOS原理

Motivation

与其他anchor-free检测器类似,FCOS也是例行的说明anchor-base检测器的缺点,常规操作如下:

  • 检测表现效果对于锚框的尺寸、长宽比、数目非常敏感,这些超参数依赖人工设计
  • 锚框的尺寸和长宽比是固定的,因此,检测器在处理形变较大的候选对象时比较困难,尤其是对于小目标。预先定义的锚框还限制了检测器的泛化能力,因为,它们需要针对不同对象大小或长宽比进行设计。
  • 为了提高召回率,需要在图像上放置密集的锚框。而这些锚框大多数属于负样本,这样造成了正负样本之间的不均衡。

Inference

  1. Classification: C × H × W C\times H\times W C×H×W,C为要分类的类别数,每一个通道上都是一个二分类;
  2. Center-ness: 1 × H × W 1\times H\times W 1×H×W, 对距离中心很远的点的抑制
  3. Box size: 4 × H × W 4\times H\times W 4×H×W,对每个点针对于所在的目标回归边界

这样一来,FCOS执行inference的过程中,Headmap上的每一个点都会被划分类别,及其预测的与bbox的关系,并且由center-ness分支的分数,抑制那些与中心偏离太远的点,也就是输出结果很不可靠的点,那么同一个GT,会有多个预测值,最后一定要通过NMS得到最终输出。

这就是为什么CenterNet理论上不需要NMS,而FCOS是需要的。

样本标定

根据上面的介绍,FCOS在训练时需要给每一个点分配类别标签,同时还要之后每个点对应边界的关系,或者比较好计算,那么前者应该怎么做?

如果位置某个点落入任何真实边框,就认为它是一个正样本,它的类别标记为这个真实边框的类别。

这样会带来一个问题,如果标注的真实边框重叠,某个点映射到原图中落到多个真实边框,这个位置被认为是模糊样本,FCOS中使用了多级预测的方式处理模糊样本的问题,改善这种界定不清晰的情况,但是如果还有的话,那就直接用多个真实目标中最小的那个作为这个点的标定。

其实这个设置也很好理解,就拿下面这个图来说:

右侧的网球拍和人,有一部分交叠,但是起码网球拍嗨哟偶属于自己这部分的点,但是如果左侧的棒球棒也是一个类别的话,那它都在人的bbox里面,没有是完全只属于自己的点的,所以这个时候只能按照小的来。

当然上述两个种情况,都会在多级预测机制中被消除。

损失函数

损失函数就是分类和回归损失。

多级预测

多级预测就是之前目标检测领域多被用到的多尺度预测,同来捕捉不同size的object,但是FCOS中的多级预测形式有所区别,并且有更多的作用。FCOS通过直接限定不同特征级别的边界框的回归范围来进行分配,这个值由需要回归的 l, t, r 和 b中的最大的那个决定,这样一来,之前提到的模糊样本问题就大概率的被分到的不同的层级中预测,也就缓解了这个类别界定问题。

Center-ness

通过上述方法,作者实验后还是发现FCOS与主流anchor-base方法之前的效果存在不小的差距,分析后得出,是因为很多偏离目标中心点的框产生的预测结果差导致的。既然如此,那就需要抑制这些点。

上图反应的是越是红的地方,离中心点越近,越是蓝色的地方,离中心点越远。那么首先需要一个度量方式反应某个点与中心点的距离,这个值越大,与中心点的距离应该更近,相反的应该更远:

由于l, r, t 和b本身就是要预测的值,centerness可以作为一个约束参与训练,centerness是一个0-1之间的值,作者使用了二值交叉熵loss,不过感觉回归loss也是可以的。

可能是因为本身就是辅助作用,影响不大。

之前也提到了,FCOS一定需要NMS,而因为centerness的存在,用于排序的分数不能只是confidence,而是在confidence的基础上乘以centerness分数。

下采样倍率

最后是FCOS的下采样倍率,这个和centernet,cornernet是不同的,FCOS的下采样和anchor-base方法一直,比如在论文中的示例中,由于使用了FPN的方法,FCOS下采样倍率是8,16,32,64,128。

FCOS性能评价

从paper给出的结果看,FCOS的表现要好与CenterNet,但是需要注意的是,CenterNet的结构设计太过简洁了,它的最后输出只有一层,只下采样4倍,整个Head的部分非常干净,并且CenterNet的实验结果是在固定的512*512输入下跑出来的,FCOS虽然也是single scale结果,但是随即缩放短边到640-800之间。

此外,CenterNet的paper更像要表达一种思路是,anchor free的center思想去处理2D检测,3D检测,姿态估计等等任务,而FCOS只做了检测,它们都是在CornerNet之后非常优秀的anchor free方法,但是各有侧重。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • FCOS原理
    • Motivation
      • Inference
        • 样本标定
          • 损失函数
            • 多级预测
              • Center-ness
                • 下采样倍率
                • FCOS性能评价
                相关产品与服务
                图像识别
                腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档