基于深度学习的图像分割技术
# 语义分割入门
# 什么是语义分割
图像分割是许多视觉理解系统中必不可少的组成部分,在医学影像分析、机器人感知、 视频监控、自动驾驶等领域都有着十分重要的地位。图像分割任务可以理解为基于语义信息和实例信息的像素级别的分类问题。
参考资料:语义分割-从入门到放弃 (opens new window)
# 语义分割的发展现状
FCN利用了全卷积网络产生特征,输入空间映射,实现了端到端的语义分割任务,成为深度学习技术应用于语义分割问题的基石。U-Net 通过上采样和 skip connection 融合高低层的特征信息,获得了更加精准的分割结果。SegNet 使用 Maxpooling indices 来增强位置信息,提高了 SegNet 的效率。
也有学者提出了 DeepLab 算法[3,20–22],经过不断演进后共有四个版本。DeepLabv1 模 型[3] 将深度卷积神经网络和概率图模型进行结合。作者指出:深度卷积神经网络下采样导 致细节信息丢失,并且其结构会限制空间定位精度,该算法则使用空洞卷积以及条件随机 场对模型进行了改进。空洞卷积,在保证较大感受野的同时不过分下采样丢失过多细节信 息。条件随机场用于接收卷积神经网络的最后一层的响应进行后处理,以较少的时间内完 成细粒度的定位。DeepLabv1 将卷积神经网络和条件随机场进行耦合,并且使用多尺度预 测方法提高了边界定位精度,能够较好的恢复对象边缘信息,在 GPU 上能够达到 8 FPS 的速度。DeepLabv2[20] 将下采样的层全部替换为空洞卷积,以更高的采样密度来计算特征 映射,其特征提取模块也从 VGG[9] 换到了 ResNet[11],加强了网络的特征提取能力。作者 还提出了基于空洞卷积的空间池化金字塔(ASPP)模块,以不同采样率的空洞卷积进行 采样,以多个比例学习图像的上下文信息,丰富了特征的维度。DeepLabv3[21] 取消了前两 个版本中的条件随机场的后处理,重点关注了四种利用上下文信息的网络模块,包括图像 金字塔、编码器-解码器、上下文模块、空间金字塔池化。该算法加深了网络深度,同时调 整了网络的下采样率,减少信息的丢失,级联模块进行特征提取后,将特征输入到结合图 像级别特征的空间金字塔池化模块,完成了整个网络结构的搭建。作者在这些模块的搭建 了进行了大量的实验验证,最终演化出最终的结构,在 PASCAL VOC 2012 数据集上的测 试性能的达到了当时的最优水平。DeepLabv3+[22] 使用空洞卷积的 Xception[15] 进行特征采 样,其网络结构见图 2.4。作者在 DeepLabv3 的基础上添加了 Decoder 模块,将 Xception 提取出的特征与 ASPP 模块采样后的特征进行特征融合后共同上采样恢复图像分辨率,使 整个模型成为编码器-解码器结构。解码器模块可以获得更好的边界分割效果,有助于模型 性能的提升。
RefineNet 精心设计了 Decoder 模块,并且增加了 residual connections,提升了网络的表达能力。讨论了空洞卷积的缺点。PSPNet 使用pyramid pooling整合context,使用auxiliary loss 提升网络的学习能力。DANet DANet是一种经典的应用self-Attention的网络,它引入了一种**自注意力机制来分别捕获空间维度和通道维度中的特征依赖关系。**提出了双重注意网络(DANet)来自适应地集成局部特征和全局依赖。在传统的扩张FCN之上附加两种类型的注意力模块,分别模拟空间和通道维度中的语义相互依赖性。
HRNet通过并行多个分辨率的分支,加上不断进行不同分支之间的信息交互,同时达到强语义信息和精准位置信息的目的。我觉得最大的创新点还是能够从头到尾保持高分辨率,而不同分支的信息交互是为了补充通道数减少带来的信息损耗。OCR 方法提出的物体上下文信息的目的在于显式地增强物体信息,通过计算一组物体的区域特征表达,根据物体区域特征表示与像素特征表示之间的相似度将这些物体区域特征表示传播给每一个像素。
PointRend 把语义分割以及实例分割问题(统称图像分割问题)当做一个渲染问题来解决。但本质上这篇论文其实是一个新型上采样方法,针对物体边缘的图像分割进行优化,使其在难以分割的物体边缘部分有更好的表现。
# 摘录了 Cityscapes 数据集上的语义分割数据集的精度
https://paperswithcode.com/sota/semantic-segmentation-on-cityscapes
1、2014 DeepLab 63.1%
Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs (opens new window)
2、2014 FCN 65.3%
Fully Convolutional Networks for Semantic Segmentation (opens new window)
3、2015 SegNet 57.0%
SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (opens new window)
5、2016 DeepLab-CRF (ResNet-101) 70.4%
6、2016 RefineNet (ResNet-101) 73.6%
7、2016 PSPNet (ResNet-101) 81.2%
Pyramid Scene Parsing Network (opens new window)
9、2017 DeepLabv3 (ResNet-101 coarse)
Rethinking Atrous Convolution for Semantic Image Segmentation (opens new window)
13、2018 DenseASPP (DenseNet-161) 80.6%
DenseASPP for Semantic Segmentation in Street Scenes (opens new window)
14、2018 PSANet (ResNet-101) 81.4%
PSANet: Point-wise Spatial Attention Network for Scene Parsing (opens new window)
15、2018 CCNet 81.4%
CCNet: Criss-Cross Attention for Semantic Segmentation (opens new window)
16、2018 DANet 81.5%
Dual Attention Network for Scene Segmentation (opens new window)
17、2018 OCNet 81.7%
OCNet: Object Context Network for Scene Parsing (opens new window)
18、2018 DeepLabv3+ (Xception-JFT) 82.1%
Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation (opens new window)
19、2018 DeepLabv3Plus + SDCNetAug 83.5%
Improving Semantic Segmentation via Video Propagation and Label Relaxation (opens new window)
20、2019 Asymmetric ALNN 81.3%
Asymmetric Non-local Neural Networks for Semantic Segmentation (opens new window)
21、2019 BFP 81.4%
Boundary-Aware Feature Propagation for Scene Segmentation (opens new window)
22、2019 HRNet (HRNetV2-W48) 81.6%
High-Resolution Representations for Labeling Pixels and Regions (opens new window)
23、2019 OCR (ResNet-101) 81.8%
Object-Contextual Representations for Semantic Segmentation (opens new window)
24、2019 Auto-DeepLab-L 82.1%
25、2019 OCR (ResNet-101 coarse) 82.4%
见第 23 条
26、2019 OCR (HRNetV2-W48 coarse) 83.0%
见第 23 条
27、2019 HRNetV2+OCR (w/ASP) 83.7%
见第 23 条
28、2019 Panoptic-DeepLab 84.2%
29、2019 HRNetV2 + OCR + extra data 84.5%
见第 23 条
30、2020 ESANet-R34-NBt1D 80.09%
Efficient RGB-D Semantic Segmentation for Indoor Scene Analysis (opens new window)
31、2020 CPN (ResNet-101) 81.3%
Context Prior for Scene Segmentation (opens new window)
32、2020 HANet 83.2%
33、2020 ResNest200 83.3%
ResNeSt: Split-Attention Networks (opens new window)
34、2020 EfficientPS 84.21%
EfficientPS: Efficient Panoptic Segmentation (opens new window)
35、2020 HRNet-OCR(Hierarchical Multi-Scale Attention) 85.1%
Hierarchical Multi-Scale Attention for Semantic Segmentation (opens new window)
36、2021 DDRNet-39 1.5x 82.4%
37、2021 CCA (ResNet-101) 82.6%
CAA : Channelized Axial Attention for Semantic Segmentation (opens new window)
38、2021 SETR
- paper: [CVPR 2021] Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers (opens new window)
- code: [Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers (opens new window)
参考资料:
# 实时语义分割
1、2016 ENet 58.3%
2、2017 ICNet 70.6%
3、2018 ESPNet 60.3%
- paper: ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation (opens new window)
- code: ESPNet: Efficient Spatial Pyramid of Dilated Convolutions for Semantic Segmentation (opens new window)
4、2018 ESPNetv2 66.2%
5、2018 BiSeNet (ResNet-101) 78.9%
6、2019 ESNet 70.7%
7、2019 DFANet A 71.3%
8、2019 FasterSeg 71.5%
9、2020 SFSegNet (ECCV 2020 Oral)
- paper: Semantic Flow for Fast and Accurate Scene Parsing (opens new window)
- code: Implementation of Our ECCV-2020-oral paper: Semantic Flow for Fast and Accurate Scene Parsing (opens new window)
10、DecoupleSegNets (ECCV 2020)
10、2021 DDRNet
参考资料:
实时语义分割 看这一篇就够了!涵盖24篇文章——上篇 (opens new window)
实时语义分割 看这一篇就够了!涵盖24篇文章——下篇 (opens new window)
# 实例分割
1、2021 BCNet(CVPR2021)
- paper:Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers (opens new window)
- code:Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers [CVPR 2021] (opens new window)
# 全景分割
1、2020 Axial-DeepLab (ECCV 2020 Spotlight)
paper: Axial-DeepLab: Stand-Alone Axial-Attention for Panoptic Segmentation (opens new window)
code: This is a PyTorch re-implementation of Axial-DeepLab (ECCV 2020 Spotlight) (opens new window)
2、2020 PanopticFCN(CVPR 2021 Oral)
- paper:Fully Convolutional Networks for Panoptic Segmentation (opens new window)
- code:Fully Convolutional Networks for Panoptic Segmentation (CVPR2021 Oral) (opens new window)
- intro:Panoptic FCN:真正End-to-End的全景分割 (opens new window)
# 语义分割的 Domain Adaptation
1、2018 ADVENT(CVPR 2019)
- paper: ADVENT: Adversarial Entropy Minimization for Domain Adaptation in Semantic Segmentation (opens new window)
- code: Adversarial Entropy Minimization for Domain Adaptation in Semantic Segmentation (opens new window)
# 半监督分割
1、2021 DTML(arxiv)
- paper:Dual-Task Mutual Learning for Semi-Supervised Medical Image Segmentation (opens new window)
- code:Dual-Task Mutual Learning for Semi-Supervised Medical Image Segmentation (opens new window)
# 分割的标注工具
1、Semantic Segmentation Editor
2、PixelAnnotationTool
# 分割的性能评估
1、Boundary IoU API
- 02
- README 美化05-20
- 03
- 常见 Tricks 代码片段05-12