文章目录
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
Comments | NOTHING