1. Day1--基本概念

1.1 图像分割的类型

  • 图像分割:前景背景
  • 语义分割:具体分类,给每一个pixel分类
  • 实例分割:给每个框object分mask
  • 全景分割:背景pixel+框里mask
  • 视频目标分割VOS:给定目标MASK,求特定目标的mask
  • 视频实例分割VIS:根据目标检测的框,求目标的mask

1.2 图像分割的应用场景

  • 人像分割(头发、人脸、背景)
  • 自动驾驶(行人、车辆、车道线)
  • 医学图像(病理、CT、MRI)
  • 工业质检、分拣机器人

1.3 语义分割的基本概念

根本目的:像素级分类(Prediction/Ground Truth)

1.3.1 语义分割算法基本流程

  • 输入:图像RGB
  • 算法:深度学习模型
  • 输出:分类结果(和输入大小一致的单通道图)
  • 训练过程:输入image+label
    • 前向:out=model(image)
    • 计算损失loss=loss_func(out,label)
    • 反向:loss.backward()
    • 更新权重optimize.minimize(loss)

分割网络的评价指标:mIoU(交并比)和mAcc(Pre与GT比)

1.3.2 整体流程

  • 数据集,图像数据,语义分割数据集,分割任务
  • 深度学习网络,深度学学习,CNN,分割算法
  • 框架,模型训练,训练方式,GPU,Paddle

2. Day2--全卷积网络FCN vs 图像分类网络

2.1 如何处理FC层?

  • FC层:1*1卷积
  • 1*1卷积:只改变channel大小
  • N*H*W*C([batch, in_height, in_width, in_channels])

2.2 Feature map尺寸变大

卷积:越卷越小

2.3 Upsample:越变越大

up-sampling:bilinear interpolation(双线性插值),简单快

  • 按x方向插值
  • 按y方向插值

un-pooling

  • pooling的方向操作
  • un-pooling forward 需要index(可随机生成)

transpose conv

  • Conv:input feature——>>conv kenel——>>outputfeature(大——>>小)
  • TConv:kernel clockwise 180+conv with padding(小——>>大)

2.4 FCN网络结构

Encoder——Decoder

Build Blocks:

  • conv
  • down-sample
  • up-sample

3. Day3--U-Net网络(From FCN to U-Net)

  • 采用编码器和解码器的U型结构
  • 输入输出大小不变
  • Skip结合方式:Concatenation

3.1 构建U-Net网络

  • U-Net的主要操作
  • conv3*3,(with bn relu)
  • pool 2d
  • transpose conv 2*2
  • crop,concat
  • conv 1*1
  • softmax,argmax,squeeze

3.2 PSP分割网络

  • 分割不够精细
  • 没有考虑上下文信息
    • 利用全局信息(global information)
    • 全局信息in CNN ~= feature/pyramid
  • 如何获取上下文信息:增大感受野(Receptive Field)
    • 用于产生特征的输入图像的区域大小
    • 只针对局部操作:例如conv,pooling
  • 利用PSP增大感受野
    • PSP模块的结构
    • Feature如何变化(输入1*C*64*64,输出1*2C*64*64)

4. Day4--DeepLab 系列网络

4.1 DeepLab Series:

  • V1:Semantic image segmentation with deep convolutional nets and fully connected CRFs(ICLR2015)
  • V2:DeepLab:Semantic Image Segmentation with Deep Convolutional Nets,Atrous Convolution,and Fully Connected CRFs(TPAML2018)
  • V3:Rethinking Atrous Convolution for Semantic lmage Segmentation
  • V3+:Encoder-Decoder with Atrous Separable Convolution for Semantic lmage Segmentation(ECCV 2018)

4.2 DeepLab Series关键结构对比:

|Network        |Backbone      |Atrous Conv       |MultiScale |Fully-connect CRF
|DeepLab V1   |VGG-16        |Atrous Block       |Training |Yes
|DeepLab V2  |ResNet         |ASPP |Training   |Yes
|DeepLab V3  |MG ResNet |Upgraded ASPP  |Inference |No
|DeepLab V3+|Xception     |ASPP+decoder    |Inference |No

4.2.1 Architecture of DeepLab V1

  • DeepLab Series:
  • VGG Layers 5: Atrous Conv
  • FC6: Atrous Conv
  • FC7: Conv1x1
  • Classification X:
    • Conv(stride)+ReLU+Drop
    • Conv1x1+ReLU+Drop
    • Conv1x1(n_classes)
  • dilation(conv,kernel): 增加感受野feature map

4.2.2 Architecture of DeepLab V2

  • Backbone:ResNet
  • Dilated Conv:ASPP Module
  • Atrous Spatial Pyramid Pooling

特征尺寸不同,改变stride,卷积后相加ele_add

加padding保持原尺寸不变

concat:拼接,高层信息融合

5. Day5--上下文基本概念

5.1 上下文是什么?

  • 物体空间依赖(人脸与人体)
  • 语义类别依赖(共现/互斥等关系)
  • 场景先验(橱窗,卧室,办公室,足球场,草原等)

5.2 如何建模?

  • 全局特征统计(BoW,VLAD,Fisher Vector)
  • 条件随机场、非局部神经网络
  • 基于区域的图推理

5.3 Beyond Grids:Learning Graph Representations for Visual Recognition

研究动机

当前堆叠许多卷积和池化操作的深度模型面临着:

  • 有效感受野非常有效
  • 不能很好的进行上下文建模

解决思路

为输入的二维图像或者特征图学习一个图表征,并学习在该图所有节点进行消息传递,使能模型能利用全局信息,最后将学习到的图表征投影回二维空间。

具体方法

提出Graph Convolutional Unit(GCU)学习图表示,其由Graph Projection,Graph Convolution和Graph Re-projection组成

  • Graph Projection $G_{porj}$:投影2维的特征图x成图S,分配相似的特征到相同的节点,并且被聚合成节点表征$Z\in \mathrm{R}^{d\times |v|}$
  • Graph Convolution $G_{conv}$:在图S上执行图卷积(沿着图上的边进行特征传播,建模全局上下文),得到新的图表
  • Graph Re-projection $G_{reproj}$:将新的图表征反投影到2维空间,使得整个GCU能够即插即用

图投影(Graph Projection)

  • 计算软分配矩阵$Q\in \mathrm{R}^{HW\times |v|}$:每个pixel和每个node的权重
  • 计算图表征
  • 计算邻接矩阵

图卷积(Garph Convolution)

图反投影(Graph Reprojection)

5.4 Graph-Based Global Reasoning Networks

研究动机

当前卷积神经网络不能够有效建模相距较远的区域之间的全局关系

解决思路

  • 提出一种新的全局推理方法,将坐标空间(Coordinate Space)的像素级特征聚合投影到交互空间(Interaction Space),然后进行有效的关系推理,最后将具有关系属性的特征反投影会原始的坐标空间
  • 提出Global Reasoning(GloRe)unit,其通过加权全局池化来实现coordinate-interaction space的映射,并通过图卷积在交互空间进行关系推理
    从坐标空间到交互空间:映射输入特征图$X\in  R^{L\times C}$为交互空间的表征$V=f(X) \in \mathrm{R}^{N\times C}$, $v_i=b_iX = \sum_{\forall j}b_ijX_J \in r^{1\times C}, B = [b_1,\cdots,b_N] \ in R^{N\times L}$是可学习的投影矩阵
  • 图卷积进行推理:建模任意区域之间的关系转换为学习交互空间中节点的交互
    $$Z = (1-A_g)VW_g$$
  • 从交互空间到坐标空间:将新的图表征反投影到坐标空间,使得整个GloRe能够即插即用$$Y=B^{\top}Z+X$$

5.5 GINet:Graph Interaction Network for Scene Parsing

具体方法

  • Graph Interaction Unit由图构建,语义到视觉推理,视觉到语义推理,单元输出构成
  • 图构建:映射视觉特征$X\in R^{l\times C}$和每个类别语义特征$L_i \in R^{k}(i=0,1,\cdots,M-1)$i为视觉图PERVxD和语义图SERMXD
    • 视觉图:$P=ZXW$,$X\in R^{l\times C}$是投影矩阵,$W\in R^{C\times D}$是特征维度变换矩阵
    • 语义图:$S_i=MLP(L_i)$
  • 语义到视觉推理:给每个视觉图的节点表征提取对应的语义表示$P_o$
  • 视觉到语义推理:给每个输入样本生成基于样本的语义图表征$S_o$
  • 单元输出:将新的视觉图表征P。投影回二维的像素级特征$X_o = X+ZTP_oW_o$

6. Day6--实例与全景分割

6.1 实例分割

  • Proposal-based/Top-down:Mask RCNN[ICCV 2017]
  • Proposal-free/Bottom-up:SOLO[ECCV 2020]

6.2 全景分割:

  • Proposal-based/Top-down:UPSNet[CVPR 2019]
  • Proposal-free/Bottom-up:Panoptic-DeepLab[CVPR 2020]

6.3 基本概念

  • 语义分割:每个像素所属类别(包括stuff和object类)
  • 实例分割:每个object类别和和mask(只有object类)
  • 全景分割:每个像素所属类别和object类别的实例ID

Mask R-CNN[1]

  • detecting objects in an image while simultaneously generating a high-quality segmentation mask for each instance
  • First stage(RPN[2]):proposing candidate object bounding boxes
  • Second stage:predicting the class,box og et,and binary mask for each RoI

References

  1. 课程链接