全景分割调研(3) 当前研究现状

文章目录

0. 前言

  • 全景分割调研系列文章分为4篇
    • 问题引入与性能指标
    • 常用数据集
    • 当前研究现状 - 现有模型分类以及当前常见研究方向(本文)
    • 相关开源项目简介

1. 研究现状

  • 从输入数据上分,全景分割可以分为
    • 基于RGB图像的全景分割,常见的数据集包括 COCO/Cityscapes/Mapillary/IDD/ADE20K 等
    • 基于点云数据的全景分割,常见的包括 SemanticKITTI 等
  • 基于RGB图像的全景分割算法可以分为
    • box-based(主要都是 top-down 方法),thing/stuff 使用不同的 branch 预测,thing 的预测基于 box,如 PanopticFPN
    • box-free(主要是 bottom-up 方法),thing/stuff 使用不同的 branch 预测,先预测 semantic再生成instance,没有用到 bbox,如 Panoptic-DeepLab
    • thing/stuff 完全使用相同的结构进行预测,只有一篇,即 PanopticFCN

2. 单篇论文笔记

  • 后面就分别介绍
    • PanopticFPN:top-down,box-based
    • Panoptic-Deeplab:bottom-up,box-free
    • PanopticFCN:unified framework

2.1 Panoptic Feature Pyramid Networks

  • 相关资料:
    • arxiv
    • github(非官方实现,使用GluonCV)
    • 论文解读
  • 论文基本信息
    • 领域:全景分割
    • 作者单位:FAIR
    • 发表时间:CVPR 2019
  • 一句话总结:在 Mask R-CNN(用于识别thing) 的基础上添加了一个 FCN 分支用于实现 stuff 识别。
  • 要解决什么问题
    • 像是对开山论文 Panoptic Segmentation 的补充。
    • 在原始论文中,使用的 baseline 方法就是两个模型的叠加,没有参数共享。
  • 用了什么方法
    • 全景分割可以看成是语义分隔+实例分割。那一种很朴素的想法就是,在实例分割模型(Mask R-CNN)的基础上实现语义分割(就是添加一个branch)。
    • 总体结构如下图,语义分割branch参考Figure3
    • 后处理类似NMS,包括
      • resolving overlaps between different instances based on their confidence scores,多个实例之间如果有重叠,就根据 confidence score 来进行选择
      • resolving overlaps between instance and semantic segmentation outputs in favor of instances,如果实例与stuff有重叠则选择实例
      • removing any stuff regions labeled ‘other’ or under a given area threshold. 删除类别为 other 的stuff,以及一些面积小于阈值的stuff。

全景分割调研(3) 当前研究现状

全景分割调研(3) 当前研究现状

  • 效果如何:本文算是全景分割领域的baseline吧,是基于 box 方法的代表作。结果也就看个热闹

全景分割调研(3) 当前研究现状

  • 还存在什么问题&可借鉴之处
    • 这篇论文没什么能多说的,感觉只是比较直观的想法,没有太多insights。

2.2 Panoptic-DeepLab: A Simple, Strong, and Fast Baseline for Bottom-Up Panoptic Segmentation

  • 相关资料:
  • 论文基本信息
    • 领域:全景分割
    • 作者单位:UIUC & Google
    • 发表时间:CVPR 2020
  • 一句话总结:提出一种基于 deeplab/bottom-up/box-free 的全景分割模型
  • 要解决什么问题
    • 之前全景分割主要都是 top-down 方法,例如 PanopticFCN,基本都是 two-stage 的,普遍速度比较慢。
  • 用了什么方法
    • 提出了 bottom-up 的方法,先语义分割,再根据分割结果获取实例。
    • 整体模型如下图所示
    • thing/stuff 通用了 encoder 部分
    • decoder部分前面的结构都非常类似,使用了ASPP和一系列decoder(注意,decoder有skip connection)
    • stuff 的最终预测就是普通的 deeplab 算法,dense prediction
    • thing 的预测使用了 instance center prediction 和 instance center regression
      • 这部分其实比较麻烦。
      • Instance center regression 的 channels 是2,也就是每个点到对应instance中心点的偏移量。
      • 那么,通过聚类我们就可以得到每个中心点对应的一组像素点,聚类结果就是该instance 的mask。
      • 还有一个问题,如何获取instance的类别?在前一步聚类的时候,就是通过 semantic 的预测结果,对每一类分别进行聚类的。
    • 这样得到的 instance 没有 confidence,基于 yolo 提出了一种 confidence 的计算方法。

全景分割调研(3) 当前研究现状

  • 效果如何:又是一个全景分割baseline,速度快

全景分割调研(3) 当前研究现状

  • 还存在什么问题&可借鉴之处
    • 这是提出了一种解决方案,其中的 deeplab 可以通过其他语义分割模型替换。

2.3 Fully Convolutional Networks for Panoptic Segmentation

  • 相关资料:
  • 论文基本信息
    • 领域:全景分割
    • 作者单位:港中文&牛津&港大&旷视&思谋
    • 发表时间:2021 CVPR
  • 一句话总结:Panoptic FCN,提出一种可同时处理 things 和 stuff 的方法,实现真正的 end-to-end 全景分割。
  • 要解决什么问题
    • 全景分割的一个主要问题在于,处理things区分个体而stuff不区分个体。
    • 两类任务所需的特征不太相同
      • things 需要 instance-aware features,stuff 需要 semantic-aware features。
      • 因此,如果公用特征图,会导致模型能下降;不公用特征图会导致模型太大,需要算力太多。
    • 为了解决这种不同,之前的全景分割模型一般都是份两路,一路实现实例分割,一路实现全景分割,结果通过后处理(类似NMS)进行筛选。
    • 由于有后处理的存在,所以不能完全当作是 end-to-end 的结构,且模型推理速度也因此存在瓶颈。
  • 用了什么方法
    • 提出了一种新的结构,如下图所示。
    • 其主要组件就是:FPN +Kernel Generator + Kernel Fusion + Feature Encoder
    • Kernel Generator 分为两部分
      • Position Head:生成与输入特征图同尺寸(长宽)的Object Centers(things相关,由于不同的实例中心点不同,所以可以通过物体中心点来表示,channels是things类别数量)和Stuff regions(stuff相关,用来表示stuff标签,channels是stuff类别数量)
      • 为了更好的计算 Position Head 的损失函数,有多种GT生成方法,比如CenterNet中的Gaussian Kernels。所有Predictions都是在0到1之间。
      • Kernel Head:CoordConv + 3*Conv。
    • Kernek Fusion:根据 Position Head 的结果,选择对应位置的 Kernel Head 的结果,多原始FPN中多个stage结果进行合并。设置Objects数量为M,stuff数量为N
    • 最终得到的 predictions 就是 Kernel Fusion 的结果与 Feature Encoder 结果的进行矩阵乘法。
    • 如何通过 Predictions 得到最终结果?
      • 先通过 Kenrel Generator,获取things的中心点以及stuff的位置
      • 感觉,Prediction 的每一层都是一个mask。
    • 损失函数分为两部分
      • Position Head 一部分 计算 pos loss,使用了 Focal Loss
      • Prediction 一部分,计算 seg loss,使用了 Dice Loss

全景分割调研(3) 当前研究现状

  • 效果如何:结果很多就不都贴了,放一个有代表性的,本文的方法,又快又好。

全景分割调研(3) 当前研究现状

  • 还存在什么问题&可借鉴之处
    • 这篇论文已经有 TensorRT 量化了。
    • 不知道换 backbone 效果如何。
上一篇:Activiti工作流引擎数据库表结构


下一篇:gitignore文件