前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习图语义分割的综述

深度学习图语义分割的综述

作者头像
算法进阶
发布2023-12-26 14:25:12
5470
发布2023-12-26 14:25:12
举报
文章被收录于专栏:算法进阶

1 介绍

图像分割是计算机视觉和机器学习领域发展最快的领域之一,包括分类、分类与定位、目标检测、语义分割、实例分割和Panoptic分割。

语义分割的目标是像素级分类,将属于同一对象类的图像像素聚类在一起。这项工作的重点是语义图像分割,其目标是像素级分类,属于同一对象类的图像像素被聚类在一起。像素级分类的一个例子可以在图1中看到。左侧的原始图像(图1a)可以与右侧的语义分割目标进行比较(图1b),其中所有感兴趣的对象都被分类。这方面工作的里程碑是号称可以【分割一切】的AI大模型 Segment Anything Model (SAM)。

图1 PASCAL VOC训练图片

语义分割在医学影像诊断、自动驾驶、卫星图像处理、环境分析、农业发展和图像搜索引擎等领域具有广泛应用。本综述总结了语义分割的最新进展,特别是实时系统,强调了高效技术的重要性。

2 语义分割的历史

语义分割的早期方法有阈值分割和聚类。阈值分割将图像分为目标和背景,通过使用单个或多个阈值进行分类。聚类方法将具有相似特征的像素分为同一簇,包括K-means、GMMs、mean-shift和模糊k-means等。边缘检测利用边缘代表边界的事实,流行的线边缘检测方法有Roberts、Sobel和Prewitt等。图像也可视为图进行分割,计算关联矩阵,解由矩阵的广义特征值给出。条件随机域(CRF)是一种概率框架,可用于标记和分割数据,包括一元成本和成对成本来模拟像素之间的相互作用,最终目标是找到一个总体成本最小的配置。

3 图像语义分割的深度学习方法

3.1 全卷积网络

卷积网络最初用于分类任务,通过多个卷积层处理输入图像,最后通过全连接层和softmax输出层学习类别概率分布。在FCN中,全连接层被卷积层替换,允许按像素对图像进行分类(图2),具有两个好处:适用于任何分辨率的图像,参数较少,训练和推理更快。这种方法在图像分割领域取得了最先进的结果,被认为是最具影响力的方法之一。

图2 全卷积网络架构

3.2 编码器-解码器体系结构

在DeconvNet中,作者提出了一种多层反卷积网络,如图3,用于解决[31]中由于缺乏真正的反卷积和特征图尺寸较小导致的信息丢失问题。训练后的网络应用于单个对象提议,以获得实例分割,这些分割被组合用于最终的语义分割。此外,作者还提出了一种基于解码器/编码器架构的医疗应用,该架构在训练数据较少的情况下表现良好。该架构在图像降采样和升采样过程中,通过增加和减少特征数量,实现更好的分类,如图4。此外,他们还提出了加权损失,以提高不同区域的分类准确性。

图3 DeconvNet架构

图4 UNet体系结构

SegNet [34]使用VGG [29]作为骨干编码器,去除了全连接层,并添加了对称解码器结构,通过重用最大池化索引改善边界划分,减少参数数量,并提高训练效率。在医疗应用中,一种基于解码器/编码器架构的方法在训练数据较少的情况下表现良好,通过增加和减少特征数量实现更好的分类,并提出了加权损失以提高不同区域的分类准确性。

3.3 神经网络的条件随机场

深度学习到来之前,条件随机域(CRF)是语义分割中最流行的方法之一,但由于训练和推理速度缓慢,以及难以学习其内部参数,CRF失去了一部分吸引力。CNN的设计预计在两个或多个类相交的边界区域表现不佳,或者可能通过多个处理阶段丢失高层信息。[35]的作者通过将最终神经网络层的响应与完全连接的条件随机域相结合,将这两种方法结合起来。这项工作演变为DeepLab [36],其中添加了一些改进(例如,孔径空间金字塔池化),并提出了一些变体。在之前的工作中,CRF没有与全卷积网络联合训练,这可能会导致次优的端到端性能。在[37]中,作者提出将CRF表示为RNN,以获得具有CNN和CRF理想特性的深度网络。

图5 DeepLab 体系结构

3.4 功能融合

语义分割在像素级对图像进行分类,但现有技术可能导致细节丢失。[38]提出通过添加全局上下文来增强全卷积网络的性能,[39]提出了增强语义分割网络(ESSN),对每个卷积层的残差特征图进行上采样和连接,以保持网络所有阶段的特征(如图6)。[40]在下采样阶段提取特征信息,然后在上采样部分恢复空间分辨率。在产生分割输出的最终预测阶段之前,对相应的池化和解池化层的特征进行上采样和连接。这些方法在三个主要的语义分割数据集上取得了令人鼓舞的结果。

图6 增强的语义分割网络架构

3.5 生成对抗性网络

生成对抗网络(GAN)最初用于无监督学习生成模型,生成与训练集具有相同统计特性的新数据,在图像、天文图像、3D对象重建和图像超分辨率等多个领域产生影响。GAN应用于语义分割,使用两个网络,一个分割网络,一个对抗网络,提高标注精度。基于GAN的半监督框架由一个生成器网络组成,为多类分类器提供额外的训练样本,如图7,添加大量虚假视觉数据迫使真实样本在特征空间中靠近,改善多类像素分类。GAN在医学图像中应用,对抗网络优化了一个多尺度损失函数,分割网络由四层卷积级组成,专为有限训练数据集而设计,网络性能明显优于其他方法。

图7 半监督卷积 GAN 架构(来自 [46])

3.6 循环神经网络(RNN)

RNN已被广泛用于顺序任务,如语义分割。ReSeg通过转换每个ReNet层来适应语义分割任务,每个ReNet层由四个RNN组成,如图8,它们在水平和垂直方向上扫描图像,编码补丁或激活,并提供相关的全局信息。ReNet层堆叠在预先训练的卷积层之上,受益于通用的局部特征。上采样层跟随ReNet层,在最终预测中恢复原始图像分辨率。图像分割的另一个有趣的应用是视频分割,其中连续的视频帧被分割。一种方法是独立分割每一帧,但由于视频帧的高度相关性,这似乎是一种低效的方法。作者建议通过添加LSTM来整合时间信息,LSTM是一种RNN,可以在网络的不同阶段有效地处理长时间依赖性,并且他们报告了比CNN同行显著的性能改进。

图8 ReSeg网络架构(来自[49])

3.7 全景分割

全景分割[59]是一项结合语义分割和实例分割的任务,为所有像素分配类标签,并对所有对象实例进行唯一分割,已在多个基准数据集上取得最先进的结果。

3.8 基于注意力的模型

深度学习中的注意力机制最初用于机器翻译,通过自动搜索源句中与目标词相关的部分,以有效捕获长距离依赖关系。在语义分割中,注意力机制通过整合多尺度特征到全卷积网络,学习在每个像素位置对多尺度特征进行软加权,如图9所示,以提高分割准确性。此外,特征金字塔注意力模块被引入以解决全卷积网络的空间分辨率损失问题,提高较小对象的分类性能。注意力辅助的语义分割网络已被广泛应用于各种应用中。

图9 尺度感知语义图像分割架构

4 用于语义图像分割的实时深度学习架构

深度学习的语义分割准确率显著提高,例如在Cityscapes数据集中实现了65%的mIoU,在PASCAL VOC 2012数据集中实现了67%的mIoU。最近的架构如HRNet和[65]的方法在Cityscapes数据集和PASCAL VOC 2012数据集中分别实现了>85%和>90%的mIoU。在自动驾驶汽车和移动设备分段等领域,计算效率至关重要,设计实时系统时需要考虑计算/内存成本和推理时间。

4.1 快速傅里叶变换(FFT)

卷积定理指出,两个信号的卷积的傅里叶变换是它们傅里叶变换的逐点积。[68]中的作者利用这一事实改进卷积网络的训练和推理时间。直接卷积复杂度为O(n 2 ∗k 2 ),但基于FFT的方法可将复杂度降低到O(n 2 log n)。[69]中基于FFT开发了训练和推理算法,降低了计算和存储的渐近复杂度,所需ASIC内核数量减少1000倍,推理速度提高10倍,精度略有降低。

4.2 修剪

神经网络可以通过修剪冗余权重来减少存储和内存需求,如三步法:训练网络识别重要连接,修剪不重要连接,重新训练网络微调剩余连接权重。连接数量可减少9-13倍,性能几乎不变。[71]中侧重于语义分割网络的通道修剪,通过基于分类和分割任务修剪卷积滤波器,将操作数量减少50%,仅损失1%的mIoU。网络修剪可提高卷积神经网络和语义分割性能,参见[72]和[73]。

4.3 量化

为提高网络效率,可减少表示权重所需的比特数,如从32位减少到5位,并通过共享权重限制有效权重数量。在Bi-Real Net中,作者研究了1位卷积神经网络的增强,通过在二进制激活之前采用批归一化层的实值输出并将其连接到下一块的实值激活来提高性能。因此,所提出的模型的表征能力远高于原始的1位CNN,且计算成本可以忽略不计。

4.4 深度可分离卷积

前两种方法通过修剪和压缩减小网络规模,Sifre提出了深度可分离卷积,提高了二维卷积的计算效率,被Xception和MobileNets采用,提高了相对架构的效率。常规卷积的计算复杂度取决于输入/输出特征图、输入通道数、输出通道数和内核空间维度。深度可分离卷积将滤波器的卷积分解为两部分,第一部分需要D2×K2×M,第二部分需要D2×M×N。计算改进的阶数为max(O(N),O(D2)),在滤波器大小或深度增加时尤为明显。

4.5 膨胀卷积

作者引入了膨胀卷积,通过在卷积核中插入零来扩展有效感受野。如图10所示,膨胀率越高,覆盖范围越大。在语义分割任务中,膨胀卷积可以指数地扩展感受野,而不会增加计算成本。通过堆叠具有不同膨胀率的多个卷积层,可以显著提高分割性能。

图10 3×3膨胀卷积核的示意图。左:膨胀率=1,中:膨胀率=2,右:膨胀率=4。

ESPNet在[80]中引入,结合膨胀卷积和深度可分离卷积,形成分解卷积的分解集,参数数量少,有效感受野大,引入新系统级指标分析CNN性能。

4.6 宽度和分辨率乘数

[78]中提出了两种降低网络复杂性的方法:宽度乘数和分辨率乘数。宽度乘数通过缩放输入和输出通道数量,以降低每一层的计算需求。分辨率乘数通过缩放输入图像尺寸,降低整体计算成本。两种方法可以结合使用,以提高网络性能。

4.7 早期采样

[81]中提出了一种基于实验结果和直觉的设计选择,包括早期降采样、低特征数量、滤波器感受野和稀疏上采样图,以提高分类和分割任务的性能。

4.8 更小的解码器尺寸

[81]中讨论了语义分割网络中编码器和解码器的非对称设计。编码器需要深度以捕获特征,而解码器仅需要上采样,因此可以使用较浅的架构以节省计算资源。

4.9 有效减小网格尺寸

[82]中发现池化操作可能导致表征瓶颈,通过增加通道数量补偿,但增加了计算成本。颠倒卷积/池化顺序无助于表征瓶颈。作者建议并行执行池化操作和步幅为2的卷积,将滤波器库连接,使初始块推理时间加快10倍。

4.10 删除偏差项

偏置项对语义分割网络的总体性能没有显著影响,通常会被丢弃。

4.11 使用小内核堆叠多层

计算成本随内核大小增加,[29]中认为多个小内核优于单个大内核,原因有二:(a)堆叠三个3x3卷积层对应7x7层,参数减少一半,(b)合并三个非线性整流层,使决策函数更具辨别力。

4.12 通道洗牌操作

[1]中,分组卷积首次用于多GPU模型,通过并行使用多个卷积提高分类任务准确性。然而,在小网络中效率较低,瓶颈是密集1×1卷积。通道洗牌操作(如图11)可克服此问题,通过重塑、转置和平坦化输出通道,减少操作数量至组的倍数。

图11 通道洗牌体系结构

4.13 两个分支网络

通过降采样原始图像,可以显著提高语义分割架构的推理速度,但会导致空间细节的损失。为解决此问题,两个分支网络分别使用全分辨率图像和降采样图像,共享层以提高计算效率。BiSeNet-V2在保持最佳mIoU性能的同时,实现了最高的推理速度。

4.14 其他设计选择

除了计算效率高的方法,还有批归一化、激活函数选择和正则化等设计选择,有助于保持良好性能。批归一化可加速训练过程;ReLU和PReLU是非线性函数,常用于该领域;正则化可防止过拟合。

5 语义分割数据集

表1总结了用于语义分割的多个数据集,包括用于分类任务和特定应用的图像集,涵盖了广泛的场景和对象类别,并进行了像素级注释。

表1 语义分割数据集汇总

5.1 上下文中的常见对象(COCO)

COCO[89]是一个大规模的对象检测、分割和字幕数据集,包含33万张图像,一半被标记。它包括80个对象类别,91个东西类,150万个对象实例,是图像分割任务中最具挑战性的数据集之一。COCO-Stuff [91]为COCO 2017数据集的所有图像增加了91个类别的像素级注释,完成了更复杂的任务,如语义分割。

5.2 PASCAL 视觉对象类 (VOC)

PASCAL VOC图像集广泛用于分类、检测、分割、动作分类和人员布局。训练集和验证集分别包含1464张和1449张图像,测试集用于评估。数据集包含20个类别的日常物体,包括飞机、自行车、鸟、船等。PASCAL Context和PASCAL Part是PASCAL VOC的扩展,分别对同一图像进行500多个类别的注释和对象分解为几个部分并对其进行注释。另外两个扩展是语义边界数据集(SBD)和PASCAL语义部分(PASParts)。

5.3 ADE20K

ADE20K[96]数据集由麻省理工学院计算机视觉实验室开发,包含25K张图像,具有密集的注释图像和近2700个类。图像被手动详细分割,涵盖了各种场景、对象和对象部分类别。注释细节如图12,每个图像平均有19.5个实例和10.5个对象类。

图12 ADE20K训练图像

他们的场景解析基准[97]选择了前150个类别,使用像素精度、平均精度、平均IoU和加权IoU作为指标。训练集使用了2万多张图像,验证集使用了2000张图像,其余用于测试。数据来自50个城市的立体视频序列和注释,涉及30个类别。

5.4 Cityscapes

Cityscapes数据集包含25K张图像,其中5K张具有高质量像素级注释,20K张具有粗略注释,分别如图13a和13b所示。

图13 Cityscapes训练图像

基准套件包含200多个条目,用于像素级语义标注任务,是最多样化和具挑战性的城市场景数据集,常用于性能评估。

5.5 SYNTHIA

SYNTHIA数据集是一个包含13K个城市图像的合成图像集合,用于自动驾驶应用。[100]中使用像素级注释生成逼真的合成图像,并在训练阶段与公开可用的现实城市图像一起使用,以提高语义分割任务的性能。SYNTHIA合成图像的一个例子见图14,以及图像生成所用的城市全景。

图14 来自 SYNTHIA 的合成图像示例及其语义标签和城市总体视图(来自 [100])

5.6 SIFT Flow

SIFT Flow[102] 是处理 LabelMe 图像子集的数据集,包含2688帧准确像素级注释,主要对象类别来自室外场景,图像尺寸较小(256×256像素),用于评估场景解析算法。

5.7 CamVid

CamVid [104]是一个城市场景数据集,包含四个高清视频序列,总时长约22分钟,约40K帧。其中701个对象被手动标记为32个类别。平均注释时间不到20分钟,需要230个人工小时。每个注释图像都经过二次检查和确认。

5.8 KITTI

KITTI[105]数据集在自动驾驶研究中广泛使用,包含相机图像、激光扫描、GPS测量和IMU加速度等传感器数据,收集于德国卡尔斯鲁厄及其周边地区。该数据集包含200多张完全注释的图像,语义分割基准包含14个条目,评估指标包括运行时间和环境信息。

6 指标

在本节中,我们将总结用于评估不同语义分割方法的基本指标。它们要么关注分割输出的准确性(即它与真实情况的接近程度),要么关注方法的效率(即推理时间和内存使用)。

6.1 混淆矩阵

在总共有 C 个类的分割任务中,混淆矩阵是一个 C × C 表,其中位置 (i, j) 中的元素表示应该属于类 i 但被分类为属于的像素数 j 类。一个好的模型会产生一个混淆矩阵,其对角线元素(即正确分类的像素)具有高计数。

6.2 归一化混淆矩阵

它源自混淆矩阵,但每个条目都通过将其除以预测类 j 的总数来标准化。这样所有条目都在 [0, 1] 范围内。

6.3 准确度

准确率或全局准确率是正确分类的像素占总像素的比率。它可以通过将对角线元素之和除以图像中的总像素来从混淆矩阵导出。准确性可能会产生误导,特别是当所考虑的类别不平衡时。例如,如果 95% 的像素属于一类(通常是背景),则始终预测此类的简单模型将获得 95% 的准确率,这绝对无法捕获分割任务的依赖性。

6.4 平均准确度

它被定义为每个类别中正确分类的像素与所有类别的平均总像素的比率。

6.5 并集的平均交集

并集平均交集 (mIoU) 是一个解决准确性指标的类不平衡弱点的指标。特别是,它将模型的逐像素分类输出与真实情况进行比较,并找到它们的交集和并集(即,有多少像素被正确分类为所有类别 i 的类别 i,以及有多少像素被分类为类别 i)。或者对于所有类 i) 都注释为类 i。交集与并集的比率(所有类的总和)是 mIoU 或 Jaccard 指数。它对类别不平衡具有鲁棒性,并且可以说是评估语义分割任务时最流行的指标。

6.6 并集上的加权交集

这是之前指标的一个小变化,用于说明每个类别的像素数量。它计算每个类的 IoU 的加权平均值,并按类中的像素数进行加权。

6.7 精度

第 i 类的精度定义为分类为 i 的像素中被正确分类的比例。可以为多个类别相应地定义平均精度度量。

6.8 召回

第 i 类的召回率定义为第 i 类的实际像素中被正确分类的比例。类似地,可以为多个类别相应地定义平均召回度量。

6.9 F1 分数

F1-score 通过计算调和平均值来聚合精确度/召回率指标。它结合了两者的功能并提供两种类型错误的信息。

6.10 每秒帧数

以前的所有指标都衡量模型输出的准确性,但没有捕获方法的效率。要捕获的一个重要指标是网络的推理速度,即以每秒帧数 (fps) 为单位测量的执行时间。它是在经过充分训练的网络上运行新图像推理的时间的倒数。在大多数实时应用中,需要 30 或更高的 fps,通常要优于典型的视频帧速率。

6.11 内存使用

内存使用量是网络大小的衡量标准。它可以通过参数数量(对于深度神经网络方法)、表示网络的内存大小或运行模型所需的浮点运算 (FLOP) 数量来衡量。

7 性能总结

本节汇总了Cityscapes数据集上语义分割性能最佳的十个模型,并简要总结了实现这些结果的方法。尽管匿名提交的内容在基准评估中占据了一些表现最好的位置,但并未包含在本部分中。从表2可以看出,大多数参赛作品都是在过去几个月内发布的,竞争非常激烈,进展也非常快。

表2 Cityscapes像素级语义标签任务表现最佳的模型

表3对实时语义分割工作进行了排名,其中性能指标是推理速度(即每秒帧数 (FPS))。前十名中有三个由一篇论文占据,证明了性能/效率的权衡。然而,实时语义分割已成为现实,多种架构的精度接近最先进的语义分割模型。

表3 Cityscapes像素级语义标签任务表现最佳的实时模型

参考资料:《 A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
GPU 云服务器
GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于生成式AI,自动驾驶,深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档