• 【语义分割】语义分割概念及算法介绍


    一、基本概念

    语义分割是计算机视觉中很重要的一个方向。不同于目标检测和识别,语义分割实现了图像像素级的分类。它能够将一张图片或者视频(视频以帧来提取的话其实就是图片),按照类别的异同,将图像分为多个块。
    如下图所示:

    在这里插入图片描述

    二、研究现状

    2.1 传统算法

    • 灰度分割
      最简单的语义分段形式涉及分配区域必须满足的硬编码规则或属性,以便为其分配特定标签。规则可以根据像素的属性(例如灰度级强度)来构建。使用此技术的一种方法是拆分(Split)和合并(Merge)算法。该算法递归地将图像分割成子区域,直到可以分配标签,然后通过合并它们将相邻的子区域与相同的标签组合。
      这种方法的问题是规则必须硬编码。此外,仅用灰色级别的信息来表示复杂的类(如人)是极其困难的。因此,需要特征提取和优化技术来正确地学习这些复杂类所需的表示。

    • 条件随机场
      考虑通过训练模型为每个像素分配类来分割图像。如果我们的模型不完美,我们可能会得到自然界不可能得到的噪声分割结果(如图中所示,狗像素与猫像素混合)。
      可以通过考虑像素之间的先验关系来避免这些问题,例如,对象是连续的,因此附近的像素往往具有相同的标签。为了模拟这些关系,我们使用条件随机场(CRF)。
      CRF是一种用于结构化预测的统计建模方法。与离散分类器不同,CRF可以在进行预测之前考虑“相邻上下文”,比如像素之间的关系。这使得它成为语义分割的理想候选。
      图像中的每个像素都与一组有限的可能状态相关联。在我们的示例中,目标标签是可能的状态集。将一个状态(或标签,u)分配给单个像素(x)的成本称为它的一元成本(unary cost)。为了对像素之间的关系建模,我们还考虑了将一对标签(u,v)分配给一对像素(x,y)的成本,即成对成本(pairwise cost)。我们可以考虑它的近邻像素对(Grid CRF)或者我们可以考虑图像中的所有像素对(Dense CRF)
      在这里插入图片描述

    2.2 深度学习方法

    与此同时随着深度学习技术的不断发展,深度学习在语义分割任务中大放异彩,取得了骄人的成绩。从第一篇真正意义上的深度学习方法语义分割模型FCN说起,语义分割发展了不足六年的时间,经典的SegNet,Deeplab系列,DenseASPP等等,再到近些年来研究热点的NAS方法。不断的刷新各个分割数据集的Leaberboard。

    三、数据集及评价指标

    3.1 常用数据集

    语义分割有一些常用的数据集,这些数据集在各种论文中常作为算法优劣性的一个验证(其中SUNRGBD是四维的,它还有利用深度学习相机得到了一个Deep维度,Depth类似于灰度图像,只是它的每个像素值是传感器距离物体的实际距离):
    在这里插入图片描述

    3.2 常用指标

    • 像素准确率(PA):正确分类的像素数量与所有像素数量的比值。
    • 像素准确率平均值(MPA):PA的变体,每个类内正确分类的像素数量和该类的所有像素点数 (Ground truth)的比值,之后求所有类的平均。
    • 平均交并比(MIoU):检验语义分割效果最重要的指标。计算两个集合的交并比,两个集合分别是真实值(Ground truth)和预测值(predicted segmentation),是一个交集与并集的比值。平均交并比为对各类的交并比进行平均。
      在这里插入图片描述

    四、经典模型

    • FCN网络(CVPR 2015):图像分割领域的开山之作
      将端到端的卷积网络推广到语义分割中;
      重新将预训练好的Imagenet网络用于分割问题中;
      使用反卷积层进行上采样;
      提出了跳跃连接来改善上采样的粗糙程度。
      论文讲解博客:

    • UNet网络

    • SegNet网络

    • 空洞卷积(Dilated Convolution)

    • Deeplab(V1 V2)

    • RefineNet

    • PSPNet

    • 大内核(Large Kernel Matters)

    • Deeplab v3

    • EncNet

    • DenseASPP

    • ResNet_DUC

    • Deeplab v3+

    • DFANet

    • DANet

    • Auto_Deeplab

    • APCNet

    • CANet
      ……

    • BiSeNet(ECCV 2018)

    • STDC(CVPR 2021):BiSeNet的轻量化。
      一些轻量化语义分割算法,如DFANet、BiSeNetV1,采用了轻量化backbone来减少计算量,但它们都是直接使用为分类任务设计的backbone,无法充分发挥在语义分割领域中的性能。
      BiSeNet使用了multi-path结构,融合低层次特征和高层次特征,但增加分支会增加网络的运行时间。
      STDC对BiSeNet中的multi-path结构进行了改进,可以在提取底层细节特征的同时减少网络计算量。

    参考资料

  • 相关阅读:
    【微软漏洞分析】MS15-010 CNG 安全功能绕过漏洞 - CVE-2015-0010
    【QML】QML控件组件
    Docker学习2——Docker高级
    Spark Standalone HA基本原理及部署
    网站优化要搞什么工作?网站关键词优化的技巧
    死磕面试系列,Java到底是值传递还是引用传递?
    C会区块链论文速读-TrustCom 2023(5/6)大语言模型和区块链如何结合?
    如何理解springboot的自动注入
    【技能树笔记】网络篇——练习题解析(二)
    c++ using用法之一
  • 原文地址:https://blog.csdn.net/u012856866/article/details/134039777