实例分割最全综述(入坑一载半,退坑止于此) 您所在的位置:网站首页 层次模型的实例有哪些 实例分割最全综述(入坑一载半,退坑止于此)

实例分割最全综述(入坑一载半,退坑止于此)

2024-07-12 22:37| 来源: 网络整理| 查看: 265

自21年年初从语义分割的舒适圈跳入实例分割方向至今,已经一年又半载了。

看过一些文章,跑过一些实验,至今没有产出。

思想挣扎过许多次,要不要继续,最终决定遗憾退场。

写一点东西,记一记往昔,弥补遗憾于万一。

文章目录 1. 实例分割简介2. 二阶段实例分割2.1 Mask R-CNN * * * * *(1) RoI Align(2) Mask 分支(3) 总结 2.2 Cascade Mask R-CNN * * * *(1) Motivation(2) Box级联(3) Mask级联(4) 总结 2.3 HTC * * * *(1) mask 信息流(2) 语义监督(3) 总结 3. 一阶段实例分割3.1 局部mask与全局mask之争3.2 YOLACT * * * * *(1) RetinaNet(2) 实例Mask系数(3) Mask特征(4) 实例Mask预测(5) 总结 3.2 BlendMask * * *(1) BlendMask vs YOLACT(2) 总结 3.3 EmbedMask * * *(1) 卷积 vs 聚类(2) 可学习实例聚类阈值(3) 总结 3.4 CondInst * * * *(1) Motivation(2) 模型结构(3) 总结 3.5 SOLOv2 * * * *(1) 网格正负样本分配策略(2) classification分支和mask分支(3) SOLOv2 动态卷积(4) 总结 4. Boundary Refinement4.1 Pointrend * * * *(1) 测试阶段(2) 训练阶段(3) 总结 4.2 Refinemask \* \* \*(1) SFM(Semantic Fusion Module)(2) BAR(Boundary-Aware Refinement)(3) 总结 5. Contour-based实例分割5.1 PolarMask * * * *(1) Polar Centerness(2) Polar IoU Loss(3) 总结 6. Query-Based实例分割6.1 QueryInst * * * *(1) Box Head & Mask Head(2) 动态卷积(3) 总结 6.2 SOLQ * * *(1) Mask Resolution(2) Mask压缩算法(3) 总结 6.3 Mask2former * * * *(1) Pixel decoder(2) Transformer Decoder masked attention 调换self-attention和cross-attention的顺序 (3) 采样点损失函数(4) 总结 5. 这一载半6. 参考

1. 实例分割简介

实例分割是结合目标检测和语义分割的一个更高层级的任务。

目标检测:区分出不同实例,用box进行目标定位;语义分割:区分出不同类别,用mask进行标记;实例分割:区分出不同实例,用mask进行标记;

因此:

实例分割需要在目标检测的基础上用更精细的mask进行定位,而非bbox;实例分割需要在语义分割的基础上区分开同类别不同实例的mask;

纵观实例分割的算法发展也是遵循这两条路线:

一类是基于目标检测的自上而下的方案:首先通过目标检测定位出每个实例所在的box,进而对box内部进行语义分割得到每个实例的mask;另一类是基于语义分割的自下而上的方案:首先通过语义分割进行逐像素分类,进而通过聚类或其他度量学习手段区分开同类的不同实例;

考虑到基于语义分割的的自下而上的实例分割算法(如Semantic Instance Segmentation with a Discriminative Loss Function,Deep Watershed Transform for Instance Segmentation)通常后处理步骤繁琐,且效果较差,本文主要探讨的是基于目标检测的自上而下的实例分割算法。

本文按照所采用的目标检测网络将实例分割算法划分为二阶段实例分割,一阶段实例分割,Query-based 实例分割三大类进行介绍。除此之外,按照对实例分割mask的表征方式的不同,介绍 Contour-based 和 Boundary Refinement 实例分割。

除此之外,一些方法(如:FCIS,TensorMask,deepmask,AdaptIS,MEInst)也都是非常经典的工作,本文由于篇幅原因,并未涉及。

2. 二阶段实例分割 2.1 Mask R-CNN * * * * *

在这里插入图片描述 Mask R-CNN是典型的自上而下的实例分割算法,其扩展自目标检测网络Faster R-CNN,在其基础上新增了mask预测分支。

Faster RCNN包含两个阶段, 第一个阶段, 是RPN结构, 用于生成RoI集合。第二个阶段利用RoI pooling从RoI中提出固定尺寸的特征, 然后进行class分类任务和box offset回归任务。Mask RCNN使用了相同的two-stage结构, 第一阶段使用了相同的RPN网络。第二阶段, 利用RoI Align从RoI中提出固定尺寸的特征, 在执行class分类和box offset 回归任务的同时,MaskRCNN还会给每个RoI生成对应的二值mask;

因此,Mask R-CNN的主要工作集中在RoI Align和mask分支的设计,以下分别进行介绍:

(1) RoI Align

由于RPN阶段得到的proposals box的大小是不一样的,而为了进行后续的class分类,box回归和mask分割任务,必须有一种操作将不同尺寸的box特征图归化到相同的空间尺寸以方便进行batch运算,RoI Pooling和RoI Align的作用就是如此。

RoI Pooling存在两次量化过程:

将box量化为整数坐标值;将量化后的box区域分割成 k × k k\times k k×k个bins, 并对每一个bins的边界量化为整数;

RoI Pooling这种粗糙的量化方式对于Mask R-CNN新增的mask分支会产生很大的量化误差,因此,提出了RoI Align方法,取消RoI Pooling中涉及的两次量化操作, 使用双线性插值的方法获得坐标为浮点数的像素点上的图像数值,其具体流程如下:

遍历每一个候选区域, 保持浮点数边界不做量化;将候选区域分割成 k × k k\times k k×k个bins, 每个bins的边界也不做量化;在每个bins中sample四个point,使用双线性插值的方法计算出这四个位置的值, 然后取最大值; (2) Mask 分支

在这里插入图片描述 由于mask分支需要对目标进行精细的mask预测,因此,mask分支采用比分类和回归分支更高的特征分辨率。具体来讲,将经过RPN阶段筛选出来的RoI经过RoI Align层将其尺寸统一为 14 × 14 14 \times 14 14×14,然后使用4层全卷积层和一层反卷积层以及最终的分类层为每个RoI预测一个 28 × 28 28 \times 28 28×28的mask。

(3) 总结 Mask R-CNN提出一种极简的思路来进行实例分割,借助目标检测领域的成熟发展,可以通过简单的替换Mask R-CNN的Faster R-CNN为更优的检测器便可以稳定提升实例分割的指标。但是,RoI Align为了将不同尺寸的RoI统一到相同的 28 × 28 28 \times 28 28×28尺寸进行batch运算,会导致大目标的空间特征出现信息损失,特别是在边缘部分,导致大目标特别是轮廓复杂的大目标的边缘预测效果较差。

在这里插入图片描述

2.2 Cascade Mask R-CNN * * * *

Cascade Mask R-CNN 也是探讨如何在检测器Cascade R-CNN基础上设计mask分支。

(1) Motivation

Cascade R-CNN主要针对 Faster R-CNN 中 R-CNN 部分采用单一 IoU 阈值进行正负样本选取会产生训练和测试过程中的不匹配的问题。 具体来讲:

training阶段,RPN网络提出了2000左右的proposals,这些proposals在送入R-CNN结构前,需要首先计算每个Proposals和GT之间的IoU,并通过一个IoU阈值(如0.5)把这些Proposals分为正样本和负样本,并对这些正负样本按一定比例采样,进而送入R-CNN进行class分类和box回归。inference阶段,RPN网络提出了300左右的proposals,这些proposals被送直接入到R-CNN结构中,因为没有GT用于采样。

因此,此处所描述的不匹配问题就在于:

training阶段的输入proposals质量更高(被采样过,IoU>threshold)inference阶段的输入proposals质量相对较差(没有被采样过,可能包括很多IoU


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有