0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

图像语义分割的概念与原理以及常用的方法

新机器视觉 来源:新机器视觉 2023-04-20 10:01 次阅读

1、图像语义分割的概念

1.1图像语义分割的概念与原理

图像语义分割可以说是图像理解的基石性技术,在自动驾驶系统(具体为街景识别与理解)、无人机应用(着陆点判断)以及穿戴式设备应用中举足轻重。我们都知道,图像是由许多像素(Pixel)组成,而「语义分割」顾名思义就是将像素按照图像中表达语义含义的不同进行分组(Grouping)/分割(Segmentation)。

8ef92f62-df12-11ed-bfe3-dac502259ad0.jpg

8f112ec8-df12-11ed-bfe3-dac502259ad0.jpg

图像语义分割的意思就是机器自动分割并识别出图像中的内容,比如给出一个人骑摩托车的照片,机器判断后应当能够生成右侧图,红色标注为人,绿色是车(黑色表示back ground)。

2、目前常用的算法

2.1 前 DL 时代的语义分割

从最简单的像素级别“阈值法”(Thresholding methods)、基于像素聚类的分割方法(Clustering-based segmentation methods)到“图划分”的分割方法(Graph partitioning segmentation methods),在深度学习(Deep learning, DL)“一统江湖”之前,图像语义分割方面的工作可谓“百花齐放”。在此,我们仅以“Normalized cut” [1]和“Grab cut” [2]这两个基于图划分的经典分割方法为例,介绍一下前DL时代语义分割方面的研究。

2.1.1 Normalized Cut图像分割

在Deeplearning技术快速发展之前,就已经有了很多做图像分割的技术,其中比较著名的是一种叫做“Normalized cut”的图划分方法,简称“ N-cut ”。

Normalized cut (N-cut)方法是基于图划分(Graph partitioning)的语义分割方法中最著名的方法之一,于 2000 年 Jianbo Shi 和 Jitendra Malik 发表于相关领域顶级期刊 TPAMI。通常,传统基于图划分的语义分割方法都是将图像抽象为图(Graph)的形式 G=(V,E) (V 为图节点,E 为图的边),然后借助图理论(Graph theory)中的理论和算法进行图像的语义分割。常用的方法为经典的最小割算法(Min-cut algorithm)。不过,在边的权重计算时,经典 min-cut 算法只考虑了局部信息。如下图所示,以二分图为例(将 G 分为不相交的 , 两部分),若只考虑局部信息,那么分离出一个点显然是一个 min-cut,因此图划分的结果便是类似 或 这样离群点,而从全局来看,实际想分成的组却是左右两大部分。

8f27fcd4-df12-11ed-bfe3-dac502259ad0.jpg

针对这一情形,N-cut 则提出了一种考虑全局信息的方法来进行图划分(Graph partitioning),即,将两个分割部分 A,B , 与全图节点的连接权重(assoc(A,V) 和 assoc(B,V))考虑进去:

如此一来,在离群点划分中,中的某一项会接近 1,而这样的图划分显然不能使得是一个较小的值,故达到考虑全局信息而摒弃划分离群点的目的。这样的操作类似于机器学习中特征的规范化(Normalization)操作,故称为Normalized cut。N-cut不仅可以处理二类语义分割,而且将二分图扩展为 K 路( -way)图划分即可完成多语义的图像语义分割,如下图例。

8f428496-df12-11ed-bfe3-dac502259ad0.jpg

2.1.2 Grab cut

Grab cut 是微软剑桥研究院于 2004 年提出的著名交互式图像语义分割方法。与 N-cut 一样,grab cut 同样也是基于图划分,不过 grab cut 是其改进版本,可以看作迭代式的语义分割算法。Grab cut 利用了图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作即可得到比较好的前后背景分割结果。

在 Grab cut 中,RGB 图像的前景和背景分别用一个高斯混合模型(Gaussian mixture model, GMM)来建模。两个 GMM 分别用以刻画某像素属于前景或背景的概率,每个 GMM 高斯部件(Gaussian component)个数一般设为 。接下来,利用吉布斯能量方程(Gibbs energy function)对整张图像进行全局刻画,而后迭代求取使得能量方程达到最优值的参数作为两个 GMM 的最优参数。GMM 确定后,某像素属于前景或背景的概率就随之确定下来。

在与用户交互的过程中,Grab cut 提供两种交互方式:一种以包围框(Bounding box)为辅助信息;另一种以涂写的线条(Scribbled line)作为辅助信息。以下图为例,用户在开始时提供一个包围框,grab cut 默认的认为框中像素中包含主要物体/前景,此后经过迭代图划分求解,即可返回扣出的前景结果,可以发现即使是对于背景稍微复杂一些的图像,grab cut 仍有不俗表现。

8f561d4e-df12-11ed-bfe3-dac502259ad0.jpg

不过,在处理下图时,grab cut 的分割效果则不能令人满意。此时,需要额外人为的提供更强的辅助信息:用红色线条/点标明背景区域,同时用白色线条标明前景区域。在此基础上,再次运行 grab cut 算法求取最优解即可得到较为满意的语义分割结果。Grab cut 虽效果优良,但缺点也非常明显,一是仅能处理二类语义分割问题,二是需要人为干预而不能做到完全自动化。

8f7194fc-df12-11ed-bfe3-dac502259ad0.jpg

其实大家不难看出,前 DL 时代的语义分割工作多是根据图像像素自身的低阶视觉信息(Low-level visual cues)来进行图像分割。由于这样的方法没有算法训练阶段,因此往往计算复杂度不高,但是在较困难的分割任务上(如果不提供人为的辅助信息),其分割效果并不能令人满意。

2.2 DL 时代的语义分割

前 DL 时代的语义分割工作多是根据图像像素自身的低阶视觉信息(Low-level visual cues)来进行图像分割。由于这样的方法没有算法训练阶段,因此往往计算复杂度不高,但是在较困难的分割任务上(如果不提供人为的辅助信息),其分割效果并不能令人满意。

计算机视觉步入深度学习时代之后,语义分割同样也进入了全新的发展阶段,以全卷积神经网络(Fully convolutional networks,FCN)为代表的一系列基于卷积神经网络「训练」的语义分割方法相继提出,屡屡刷新图像语义分割精度。下面就介绍三种在 DL时代语义分割领域的代表性做法。

2.2.1全卷积神经网络[3]

全卷积神经网络 FCN 可以说是深度学习在图像语义分割任务上的开创性工作,出自 UC Berkeley 的 Trevor Darrell 组,发表于计算机视觉领域顶级会议 CVPR 2015,并荣获best paper honorable mention。

FCN 的思想很直观,即直接进行像素级别端到端(end-to-end)的语义分割,它可以基于主流的深度卷积神经网络模型(CNN)来实现。正所谓‘全卷积神经网络‘,在FCN中,传统的全连接层 fc6 和 fc7 均是由卷积层实现,而最后的 fc8 层则被替代为一个 21 通道(channel)的 1x1 卷积层,作为网络的最终输出。之所以有 21 个通道是因为 PASCAL VOC 的数据中包含 21 个类别(20个object类别和一个「background」类别)。下图为 FCN 的网络结构,若原图为 H×W×3,在经过若干堆叠的卷积和池化层操作后可以得到原图对应的响应张量(Activation tensor)8f8bacf2-df12-11ed-bfe3-dac502259ad0.png ,其中,8f9dcdce-df12-11ed-bfe3-dac502259ad0.png为 i 第 层的通道数。可以发现,由于池化层的下采样作用,使得响应张量的长和宽远小于原图的长和宽,这便给像素级别的直接训练带来问题。

为了解决下采样带来的问题,FCN 利用双线性插值将响应张亮的长宽上采样到原图大小,另外为了更好的预测图像中的细节部分,FCN 还将网络中浅层的响应也考虑进来。具体来说,就是将 Pool4 和 Pool3 的响应也拿来,分别作为模型 FCN-16s 和 FCN-8s 的输出,与原来 FCN-32s 的输出结合在一起做最终的语义分割预测(如下图所示)。

8fb07744-df12-11ed-bfe3-dac502259ad0.jpg

8fc3ce34-df12-11ed-bfe3-dac502259ad0.jpg

下图是不同层作为输出的语义分割结果,可以明显看出,由于池化层的下采样倍数的不同导致不同的语义分割精细程度。如 FCN-32s,由于是 FCN 的最后一层卷积和池化的输出,该模型的下采样倍数最高,其对应的语义分割结果最为粗略;而 FCN-8s 则因下采样倍数较小可以取得较为精细的分割结果。

8fd563c4-df12-11ed-bfe3-dac502259ad0.jpg

2.2.2 Dilated Convolutions [4]

FCN 的一个不足之处在于,由于池化层的存在,响应张量的大小(长和宽)越来越小,但是FCN的设计初衷则需要和输入大小一致的输出,因此 FCN 做了上采样。但是上采样并不能将丢失的信息全部无损地找回来。

对此,dilated convolution 是一种很好的解决方案——既然池化的下采样操作会带来信息损失,那么就把池化层去掉。但是池化层去掉随之带来的是网络各层的感受野(Receptive field)变小,这样会降低整个模型的预测精度。Dilated convolution 的主要贡献就是,如何在去掉池化下采样操作的同时,而不降低网络的感受野。

以 3×3 的卷积核为例,传统卷积核在做卷积操作时,是将卷积核与输入张量中「连续」的 3×3 的 patch 逐点相乘再求和(如下图a,红色圆点为卷积核对应的输入「像素」,绿色为其在原输入中的感知野)。而 dilated convolution 中的卷积核则是将输入张量的 3×3 patch 隔一定的像素进行卷积运算。如下图 b 所示,在去掉一层池化层后,需要在去掉的池化层后将传统卷积层换做一个「dilation=2」的 dilated convolution 层,此时卷积核将输入张量每隔一个「像素」的位置作为输入 patch 进行卷积计算,可以发现这时对应到原输入的感知野已经扩大(dilate)为 ;同理,如果再去掉一个池化层,就要将其之后的卷积层换成「dilation=4」的 dilated convolution 层,如图 c 所示。这样一来,即使去掉池化层也能保证网络的感受野,从而确保图像语义分割的精度。

8fe3f998-df12-11ed-bfe3-dac502259ad0.jpg

从下面的几个图像语义分割效果图可以看出,在使用了 dilated convolution 这一技术后可以大幅提高语义类别的辨识度以及分割细节的精细度。

8ffdbb8a-df12-11ed-bfe3-dac502259ad0.jpg

2.2.3 以条件随机场为代表的后处理操作[5]

当下许多以深度学习为框架的图像语义分割工作都是用了条件随机场(Conditional random field,CRF)作为最后的后处理操作来对语义预测结果进行优化。

一般来讲,CRF 将图像中每个像素点所属的类别都看作一个变量9016817e-df12-11ed-bfe3-dac502259ad0.png,然后考虑任意两个变量之间的关系,建立一个完全图(如下图所示)。

9024dbde-df12-11ed-bfe3-dac502259ad0.jpg

在全链接的 CRF 模型中,对应的能量函数为:

9039218e-df12-11ed-bfe3-dac502259ad0.png

其中904ab750-df12-11ed-bfe3-dac502259ad0.png是一元项,表示Xi像素对应的语义类别, 其类别可以由 FCN 或者其他语义分割模型的预测结果得到;而第二项为二元项,二元项可将像素之间的语义联系/关系考虑进去。例如,「天空」和「鸟」这样的像素在物理空间是相邻的概率,应该要比「天空」和「鱼」这样像素的相邻概率大。最后通过对 CRF 能量函数的优化求解,得到对 FCN 的图像语义预测结果进行优化,得到最终的语义分割结果。值得一提的是,已经有工作[5]将原本与深度模型训练割裂开的 CRF 过程嵌入到神经网络内部,即,将 FCN+CRF 的过程整合到一个端到端的系统中,这样做的好处是 CRF 最后预测结果的能量函数可以直接用来指导 FCN 模型参数的训练,而取得更好的图像语义分割结果。

90632344-df12-11ed-bfe3-dac502259ad0.jpg

3、展望

基于深度学习的图像语义分割技术虽然可以取得相比传统方法突飞猛进的分割效果,但是其对数据标注的要求过高:不仅需要海量图像数据,同时这些图像还需提供精确到像素级别的标记信息(Semantic labels)。因此,越来越多的研究者开始将注意力转移到弱监督(Weakly-supervised)条件下的图像语义分割问题上。在这类问题中,图像仅需提供图像级别标注(如,有「人」,有「车」,无「电视」)而不需要昂贵的像素级别信息即可取得与现有方法可比的语义分割精度。

另外,示例级别(Instance level)的图像语义分割问题也同样热门。该类问题不仅需要对不同语义物体进行图像分割,同时还要求对同一语义的不同个体进行分割(例如需要对图中出现的九把椅子的像素用不同颜色分别标示出来)

9088b6ae-df12-11ed-bfe3-dac502259ad0.jpg

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4455

    浏览量

    90756
  • 图像
    +关注

    关注

    2

    文章

    1063

    浏览量

    40041
  • 自动驾驶
    +关注

    关注

    773

    文章

    13032

    浏览量

    163217

原文标题:图像语义分割的概念与原理以及常用的方法

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    目标检测和图像语义分割领域性能评价指标

    目标检测和图像语义分割领域的性能评价指标
    发表于 05-13 09:57

    图像分割的基本方法解析

    本文详细介绍了图像分割的基本方法有:基于边缘的图像分割方法、阈值
    发表于 12-20 11:06 10.8w次阅读
    <b class='flag-5'>图像</b><b class='flag-5'>分割</b>的基本<b class='flag-5'>方法</b>解析

    基于内容的图像分割方法综述

    方法、基于像素聚类的方法语义分割方法这3种类型并分别加以介绍对每类方法所包含的典型算法,尤其
    发表于 01-02 16:52 2次下载
    基于内容的<b class='flag-5'>图像</b><b class='flag-5'>分割</b><b class='flag-5'>方法</b>综述

    聚焦语义分割任务,如何用卷积神经网络处理语义图像分割

    CNN架构图像语义分割 图像分割是根据图像内容对指定区域进行标记的计算机视觉任务,简言之就是「这
    发表于 09-17 15:21 444次阅读

    语义分割算法系统介绍

    图像语义分割图像处理和是机器视觉技术中关于图像理解的重要任务。语义
    的头像 发表于 11-05 10:34 4764次阅读

    分析总结基于深度神经网络的图像语义分割方法

    语义分割和弱监督学习图像语义分割,对每种方法中代表性算法的效果
    发表于 03-19 14:14 21次下载
    分析总结基于深度神经网络的<b class='flag-5'>图像</b><b class='flag-5'>语义</b><b class='flag-5'>分割</b><b class='flag-5'>方法</b>

    结合双目图像的深度信息跨层次特征的语义分割模型

    为改善单目图像语义分割网络对图像深度变化区域的分割效果,提出一种结合双目图像的深度信息和跨层次特
    发表于 03-19 14:35 20次下载
    结合双目<b class='flag-5'>图像</b>的深度信息跨层次特征的<b class='flag-5'>语义</b><b class='flag-5'>分割</b>模型

    基于深度学习的三维点云语义分割研究分析

    近年来,深度传感器和三维激光扫描仪的普及推动了三维点云处理方法的快速发展。点云语义分割作为理解三维场景的关键步骤,受到了研究者的广泛关注。随着深度学习的迅速发展并广泛应用到三维语义
    发表于 04-01 14:48 16次下载
    基于深度学习的三维点云<b class='flag-5'>语义</b><b class='flag-5'>分割</b>研究分析

    基于深度神经网络的图像语义分割方法

    对应用于图像语义分割的几种深度神经网络模型进行简单介绍,接着详细阐述了现有主流的基于深度神经网络的图像语义
    发表于 04-02 13:59 11次下载
    基于深度神经网络的<b class='flag-5'>图像</b><b class='flag-5'>语义</b><b class='flag-5'>分割</b><b class='flag-5'>方法</b>

    基于SEGNET模型的图像语义分割方法

    使用原始 SEGNET模型对图像进行语义分割时,未对图像中相邻像素点间的关系进行考虑,导致同一目标中像素点类别预测结果不一致。通过在 SEGNET结构中加入一条自上而下的通道,使得 S
    发表于 05-27 14:54 15次下载

    图像关系型KD方法语义分割任务-CIRKD

    语义分割任务作为计算机视觉中的基础任务之一,其目的是对图像中的每一个像素进行分类。该任务也被广泛应用于实践,例如自动驾驶和医学图像分割
    的头像 发表于 05-10 11:30 2042次阅读
    跨<b class='flag-5'>图像</b>关系型KD<b class='flag-5'>方法语义</b><b class='flag-5'>分割</b>任务-CIRKD

    语义分割标注:从认知到实践

    随着人工智能技术的不断发展,语义分割标注已经成为计算机视觉领域的一个热门话题。语义分割是指将图像中的每个像素分配给一个预定义的
    的头像 发表于 04-30 21:20 768次阅读

    PyTorch教程-14.9. 语义分割和数据集

    在 SageMaker Studio Lab 中打开笔记本 在 第 14.3 节-第 14.8 节讨论对象检测任务时,矩形边界框用于标记和预测图像中的对象。本节将讨论语义分割问题,重点关注如何将
    的头像 发表于 06-05 15:44 414次阅读
    PyTorch教程-14.9. <b class='flag-5'>语义</b><b class='flag-5'>分割</b>和数据集

    深度学习图像语义分割指标介绍

    深度学习在图像语义分割上已经取得了重大进展与明显的效果,产生了很多专注于图像语义分割的模型与基准
    发表于 10-09 15:26 165次阅读
    深度学习<b class='flag-5'>图像</b><b class='flag-5'>语义</b><b class='flag-5'>分割</b>指标介绍

    机器视觉图像分割方法有哪些?

    现有的图像分割方法主要分以下几类:基于阈值(threshold)的分割方法、基于区域的分割
    发表于 11-02 10:26 376次阅读
    机器视觉<b class='flag-5'>图像</b><b class='flag-5'>分割</b>的<b class='flag-5'>方法</b>有哪些?