美文网首页实例分割
SOLO: Segmenting Objects by Loca

SOLO: Segmenting Objects by Loca

作者: FantDing | 来源:发表于2020-01-02 13:58 被阅读0次

Abstract

instance segmentation主流方法

  • top-down: detect-then-segment: Mask R-CNN
  • bottom-up: predict embedding vectors first then use clustering techniques to group pixels into individual instances[1]

本文工作

提出instance categories

  • 给同一个instance里面的像素,分配一个类别
    • according to the instance’s location and size[2]

Introduction

看不太懂,先放着

Our Method: SOLO

Problem Formulation

image

Semantic Category

  • Category Branch:给每一个grid预测一个类别

Instance Mask

  • Mask Branch: 预测Instance Mask
    • 最多: S^2个mask, 每一个(i,j)grid,对应一个mask
    • 为什么一定要加上position信息?[3]

Network Architecture

  • Grid number may varies at different pyramids[4]

3.3 SOLO Learning

Label Assignment

  • 对于category branch:如何判定grid是positive or negtive?
    • 对于each ground truth mask,他的center region定义为区域:(c_x,c_y,\epsilon{w},\epsilon{h})。如果grid fall into the center region。则grid定义为positive,否则定义为negtive。
    • 文中\epsilon=0.2
    • 平均每个ground truth mask对应3个positive grid。
  • 对于Mask Branch分支:每个positive grid对应一个target binary mask
    • k=i*S+j。如果按照row-major order[5]: 第(i,j)grid为 positive的话,那么maks branch的(:,:,k)feature map应该对应一个target binary mask
    • 由于平均每个ground truth mask对应3个positive grid,也就有3个mask。最后NMS会去掉重叠的

Loss Function

  • L=L_{cate}+\lambda*L_{mask}
    • L_{cate}为focal loss
    • L_{mask}对所有positive grid对应的mask计算为Dice Loss: 解决前景比例太小的问题
      Dice Loss定义
      Dice Loss可视化

Inference

  • 为什么会有500个mask?一个grid不是只对应一个mask吗?S取值是是多少?[6]

4. Experiments

How SOLO Works

4.3 消融性实验

Grid number

  • 为何36会下降?[7]
  • pyramid指什么?——按照目标的尺寸,对应到相应的C_i feature map上。而不是直接将C3,C4,C5 merge,使用单一的merge的feature map。Mask RCNN也使用了同样的方法[8]
    grid number

Multi-level prediction

  • 不同大小的instance,会被分配到不同的P_i。每个P_i的grid数目不同
    Multi-level prediction
  • FPN结构如下:
    [站外图片上传中...(image-6c44f8-1578363442486)]

CoordConv

  • Spatially variant convolution: CoordConv
    • 标准的卷积也有spatial variant property[9]

SOLO-512

shorter image size of 512 instead of 800

5. Decoupled SOLO

减少了参数量

  • 之前(a)Mask predict分支输出是H*W*S^2, 如果(i,j)grid为positive,则select到H*W*k作为预测的mask,其中k=i*S+j
  • 现在decoupled的(b)Mask predict分支,输出是两个子分支。如果(i,j)grid为positive,则select到X分支的H*W*i和Y分支的H*W*j,再进行element-wise multiplication操作
  • less GPU memory & same performance


    Decoupled SOLO

6. Error Analysis


  1. 先语义分割,再聚类。emhedding vector指的是softmax的输出的概率分布向量。代表性模型有 SSAP

  2. 如何做到的?每个instance一个类别,这样的话,类别数目不就不确定了吗?

  3. 为什么要加上i,j编码的空间信息?

  4. 什么操作?

  5. 自己随便定义一个映射关系可行吗?

  6. 为何会有500个mask?

  7. 为何grid number不是越多越好

  8. pyramid指什么——solved

  9. 卷积的空间敏感性?《Rosanne Liu, Joel Lehman, Piero Molino, Felipe Petroski Such,
    Eric Frank, Alex Sergeev, and Jason Yosinski. An intriguing fail-
    ing of convolutional neural networks and the coordconv solution.
    In Proc. Advances in Neural Inf. Process. Syst., 2018》?

相关文章

网友评论

    本文标题:SOLO: Segmenting Objects by Loca

    本文链接:https://www.haomeiwen.com/subject/jlunoctx.html