语义分割综述整理(更新中)

语义分割

  1. 综述
    知乎:图像语义分割综述
    知乎:DeepLab 语义分割模型 v1、v2、v3、v3+ 概要(附 Pytorch 实现)
    干货 | 一文概览主要语义分割网络,FCN、UNet、SegNet、DeepLab 等等等等应有尽有
    4种语义分割数据集Cityscapes上SOTA方法总结 ——强推
    语义分割综述 ——强推
    史上最全语义分割综述(FCN,UNet,SegNet,Deeplab,ASPP…)
    最全综述 | 图像分割算法

  2. 心得
    把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。在这个过程中,图像中的每个像素都与一个对象类型相关联。图像分割主要有两种类型:语义分割和实例分割。语义分割不同的实现架构:
    (1). 编码器-解码器的构架(FCN、SegNet、U-Net)
    编码器一般采用图像分类预训练得到的网络,采用不断的max pooling和strided convolution有利于获得长范围的语境信息从而得到更好的分类结果。然而在此过程中特征分辨率不断降低,图像细节信息丢失,对于分割任务而言具有巨大的挑战。因此在编码器之后需要利用解码器进行图像分辨率的恢复;
    (2). 语境模块(Multi-scale context aggregation、DeepLab V1、V2和CRF-RNN等)
    语境模块一般是级联在模型后面,以获得长距离的语境信息。以DenseCRF级联在DeepLab之后理解,DenseCRF能够对于任意长距离内像素之间的关系进行建模,因此改善逐项素分类得到的分割结果;
    (3). 金字塔池化方法(PSPNet、DeepLab V2、V3、V3+等)
    金字塔池化的方法作用在卷积特征上,能够以任意的尺度得到对应的语境信息。一般采用平行的多尺度空洞卷积(ASPP)或者多区域池化(PSPNet)得到对应尺度语境信息的特征,最后再将其融合形成综合多个尺度语境的特征向量。
    原文链接
    用Conditional Random Field(CRF)postprocessing(CRF后处理)通常用来提升分割效果。CRF是一个图模型,它基于潜在的图像强度来进行光滑分割。他们的工作基于这样的观察:相似强度的像素往往被标记为相同的类,通常CRF可以提高1%~2%的性能
    原文链接
    进阶参考:知乎:语义分割该如何走下去?

  3. 损失函数
    语义分割之损失函数汇总
    实际上Dice Loss只是Tversky Loss的一种特殊形式而已。
    知乎:【损失函数合集】超详细的语义分割中的Loss大盘点

  4. deeplabv3+
    v3+ 最大的改进是将 DeepLab 的 DCNN 部分看做 Encoder,将 DCNN 输出的特征图上采样成原图大小的部分看做 Decoder ,构成 Encoder+Decoder 体系,双线性插值上采样便是一个简单的 Decoder,而强化 Decoder 便可使模型整体在图像语义分割边缘部分取得良好的结果。
    具体来说,DeepLabV3+ 在 stride = 16 的DeepLabv3 模型输出上采样 4x 后,将 DCNN 中 0.25x 的输出使用1x1的卷积降维后与之连接(concat)再使用3x3卷积处理后双线性插值上采样 4 倍后得到相对于 DeepLabv3 更精细的结果。

  5. HROCR
    【multi-scale系列】HRNet系列:HRNet、HRNetV2、HRNetV2p、HigherHRNet
    打通多个视觉任务的全能Backbone:HRNet
    HRNet 源代码结构详解 ——强推

  6. segformer
    (NeurIPS’21) SegFormer: 简单有效的语义分割新思路
    ViT的结构不太适合做语义分割,因为ViT是柱状结构,全程只能输出固定分辨率的feature map, 比如1/16, 这么低的分辨率对于语义分割不太友好,尤其是对轮廓等细节要求比较精细的场景。
    mmsegmentation我个人认为是目前最好的语义分割军火库(openmmlab, yyds),推荐大家多多使用。

  7. 其他网络
    Segmenter:基于纯Transformer的语义分割网络
    STDC语义分割网络:BiSeNet的轻量化加强版(CVPR2021语义分割)
    2020语义分割网络语义流:Semantic Flow for Fast and Accurate Scene Parsing
    Fast-SCNN:多分支结构共享低级特征的语义分割网络
    语义分割网络-BiSenet

  8. 其他
    SOTA模型,以为是个很牛逼的算法,找了半天原理SOTA是state of the art的缩写
    推广:SOTA,benchmark和baseline分别是什么意思?

代码指路

https://github.com/kazuto1011/deeplab-pytorch ——已测试
https://github.com/fregu856/deeplabv3
https://github.com/YudeWang/deeplabv3plus-pytorch

这是不知道什么时候看的densenet
https://github.com/gpleiss/efficient_densenet_pytorch/blob/master/models/densenet.py

猜你喜欢

转载自blog.csdn.net/qq_45510888/article/details/120482086