[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME

文章地址:https://arxiv.org/pdf/2009.12942.pdf

文章目录

  • 一、文章简介
  • 二、正文翻译
    • 摘要:
    • 1. Introduction
    • 2. 语义分割的历史
    • 3. 图像语义分割的深度学习方法
      • 3.1 全卷积网络(FCN)
      • 3.2 Encoder-Decoder架构
      • 3.3 神经网络与条件随机场结合
      • 3.4 特征融合
      • 3.5 对抗生成网络
      • 3.6 RNN
      • 3.7 全景分割
      • 3.8 基于注意力的model
    • 4.用于语义图像分割的实时深度学习架构
      • 4.1 快速傅里叶变换(FFT)
      • 4.2 剪枝
      • 4.3 量化
      • 4.4 深度可分离卷积
      • 4.5 扩张卷积
      • 4.6 深度和宽度倍增器
      • 4.7 提前降采样
      • 4.8 更小的解码器尺寸
      • 4.9 有效减小网格尺寸
      • 4.10 放弃bias项
      • 4.11 用小的卷积核堆叠多层
      • 4.12 通道混洗操作
      • 4.13 双分支网络
      • 4.14 其他方法
    • 5.语义分割数据集
      • 5.1 COCO数据集
      • 5.2 PASCAL视觉对象类(VOC)
      • 5.3 ADE20K
      • 5.4 Cityscapes
      • 5.5 SYNTHIA
      • 5.6 SIFT Flow
      • 5.7 CamVid
      • 5.8 KITTI数据集
    • 6. 度量标准
      • 6.1 混淆矩阵
      • 6.2 规范化的混淆矩阵
      • 6.3 精度
      • 6.4 平均精度
      • 6.5 mIoU
      • 6.6 加权IoU
      • 6.7 精度
      • 6.8 召回率
      • 6.9 F1-score
      • 6.10 FPS
      • 6.11 内存占用
    • 7.性能总结
    • 8.总结

一、文章简介

这是一篇关于实时语义分割的综述,文章从语义分割的历史、语义分割的深度学习方法、实时语义分割的加速方法、语义分割数据集以及语义分割的评价标准进行概述,并在最后给出了不同方法的性能对比。结构如下图:
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第1张图片

二、正文翻译

摘要:

语义图像分割是计算机视觉中发展最快的领域之一,具有广泛的应用前景。在许多领域,如机器人和自动驾驶汽车,语义图像分割是至关重要的,因为它提供了在像素级别上基于场景理解而采取行动的必要内容。此外,医疗诊断和治疗的成功依赖于对正在考虑的数据的极其准确的理解,在许多情况下,语义图像分割是重要的工具之一。深度学习的最新发展提供了一系列工具来有效地解决这一问题,并提高了准确性。本研究提供了图像分割中最先进的深度学习架构的全面分析,更重要的是,提供了一个广泛的技术列表,以实现快速推理和计算效率。本文讨论了这些技术的起源以及它们的优势和利弊,并深入分析了它们在该领域的影响。本文总结了性能最佳的架构,并列出了用于实现这些最先进结果的方法列表。
关键词: 语义图像分割;实时分割;深度学习;卷积网络;

1. Introduction

语义分割是计算机视觉和机器学习中发展最快的领域之一。相机和其他设备的可用性极大地增加了人们对更好地理解他们捕捉的场景背景的兴趣,图像分割是这一过程最重要的组成部分。当分析一个图像时,需要寻求以下层次的理解:
(1)分类:该图像最突出的物体是属于哪一类;
(2)分类和定位:使用一个框把最突出的物体框出来并分类;
(3)对象检测:对不同类型的多个对象进行分类和定位;
(4)语义分割:即对图像中的每个像素进行分类;(不是所有像素,区分感兴趣目标和背景)
(5)实例分割:对语义分割的扩展,将同一类型的不同对象视为不同的实例;(不是所有像素)
(6)全景分割:它结合了语义和实例分割,图像的所有像素都被分配一个类标签,所有对象实例都被唯一分割。

这项工作的重点是语义图像分割,其中一个像素级分类的目标,并将属于同一对象类的图像像素聚类在一起。这种像素级分类的一个例子可以在图1a和图1b中看到(见[3])。左边的原始图像(图1a)可以与右边的语义分割目标图像(图1b)进行比较,其中所有感兴趣的对象都已进行了分类。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第2张图片
语义分割在不同的应用中扮演着重要的角色,例如:
(1)医学影像诊断[4]、[5];
(2)自动驾驶[6],[7];
(3)卫星图像处理[8];
(4)环境分析[9];
(5)农业开发[10];
(6)图像搜索引擎[11]。

在这篇论文中,我们提供了在实时系统上语义分割领域最新发展的一个全面总结。有效的语义分割技术,其中内存需求和推理时间是主要要考虑的。语义分割已成为不同领域越来越流动的工具。
本文的组织如下:第2节总结了传统图像分割方法的发展历程,第三节对深度学习方法进行了全面的总结。第4节总结了实时系统方面最具开创性的工作,同时从计算成本和内存负载方面分析了最有效的技术。下一节列举了用于对不同架构进行基准测试的不同数据集,然后是评估中使用的度量标准。论文最后总结了不同实时体系结构的性能。

2. 语义分割的历史

早期的语义分割方法之一是阈值[12],[13]。它试图将图像划分为两个区域,目标和背景。它可以很好地工作在灰度图像,可以通过使用单一阈值以一种直接的方式分类。该技术通过同时采用局部和全局阈值来更好地捕捉图像特征。
第二种技术是对具有相似特征的像素或区域进行聚类,将图像分成K组或聚类。所有像素都被分配一个基于相似度量的集群,可以涉及像素特征(例如,颜色,梯度)以及相对距离[14]。一些流行的分割技术已经成功应用,如K-means [15], GMMs [16], mean-shift[17],和模糊K-means[18]。
边缘检测方法[19],可以帮助分割图像,边缘通常代表边界。不同的边缘类型已经被使用(例如台阶边缘,斜坡边缘,线边缘和屋顶边缘)。目前最流行的线边缘检测方法有Roberts边缘检测[20]、Sobel边缘检测[21]、Prewitt边缘检测[22],它们利用了不同的二维掩模,与图像卷积时会突出边缘。
第四种方法观察像图形一样的图像,其中每个像素都是与所有其他像素相连的顶点,用每条边的权重度量像素之间的相似性。相似性度量可以使用诸如距离、强度、颜色和纹理等特征来计算边缘权重。然后,图像分割被视为一个图划分问题,图段根据组[23]-[25]的相似度进行3个划分。计算了一个亲和矩阵,并利用该矩阵的广义特征值给出了图割问题的解。
条件随机场(CRF)是一种用于标记和分割数据的概率框架,已广泛应用于图像分割。 在这个框架中,每个像素(可以属于任何目标类)都被分配一个一元代价,即将像素分配给一个类的价格。此外,增加了一对成本,可以对像素之间的交互进行建模。例如,当两个相邻的像素属于同一个类时,可以分配零代价,但当像素属于不同的类时,可以分配非零代价。一元代价捕获忽略类注释的代价,而后者惩罚非光滑区域。CRF的目标是找到一个使总成本最小化的配置。对CRFs的一个很好的解释是[26],而语义分割的应用可以在[27],[28]中找到。

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

3.1 全卷积网络(FCN)

卷积网络最初用于分类任务(AlexNet [1], VGG [29], google[30])。这些网络首先用多个卷积层处理输入图像,并增加滤波器数量和降低分辨率,最后对卷积层进行矢量化处理。矢量化特征之后是完全连接的层,这些层使用softmax输出层学习类的概率分布。在FCN[31]中,由于全连接层导致损失的空间信息所以被一些流行的架构所移除([1]、[29]和[30]),取而代之的是一层,使图像在每个像素上进行分类(见图2)。更换全层卷积的有两个明显的优点:(a)它允许同样的网络架构应用于任何分辨率的图像,(b)卷积层的参数更少,允许更快的训练和推理。这种新方法产生了几个图像分割里程碑的最先进的结果,并被认为是该领域最具影响力的之一。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第3张图片

3.2 Encoder-Decoder架构

在DeconvNet[32]中,作者指出,由于没有真正的反卷积和特征图的小尺寸,[31]中的方法会导致信息的丢失。然后,他们提出了图3中的架构,其中有一个多层反卷积网络。训练后的网络应用于单个对象的建议,使用全连接的CRF获得实例的分割,并将其组合为最终的语义分割。编码器架构基于[29]。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第4张图片
与[32]并行,解码器/编码器架构也用于医疗应用[33]。作者提出了一种架构,在训练数据很少(30张图片)的情况下工作良好,通过适当的数据增强可以达到最先进的性能。在图4中,左边的解码器部分(根据作者的收缩路径)在增加特征数量的同时对图像进行下采样。在上采样路径上,遵循相反的步骤(即,增加图像分辨率,同时减少特征的数量),同时连接相应的编码器层。为了实现更精确的分类,他们还提出了基于不同区域的加权损失。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第5张图片
在SegNet[34]中提出了一种与[33]类似的架构,作者使用VGG[29]作为骨干编码器,去掉全连接层,并添加一个对称译码结构。主要的区别是每个解码器层使用来自对应编码器层的最大池索引,而不是连接它。在解码过程中重用max-pooling索引有几个实际的优点:(i)改善边界划定,(ii)减少了支持端到端训练的参数数量,并且(iii)这种上采样形式可以整合到任何编码器-解码器架构中。尽管它最初于2015年出版,但直到2017年才开始受到关注,并自此成为语义分割中被引用最多的著作之一。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第6张图片

3.3 神经网络与条件随机场结合

条件随机场(CRFs)是深度学习到来之前最流行的语义分割方法之一。然而,CRFs由于其缓慢的训练和推理速度,以及难以学习其内部参数,失去了部分吸引力。另一方面,cnn在两个或两个以上类相交的边界区域,或者在多个处理阶段中丢失高级信息的情况下,其设计并不能很好地发挥作用。
[35]的作者通过将最后神经网络层的响应与完全连接的条件随机场相结合,将这两种方法结合起来。通过这种方式,模型捕捉细节的能力通过合并相邻像素和边缘之间的局部交互得到增强。这项工作发展成为DeepLab[36],其中添加了一些改进(例如,atrous空间金字塔池),并提出了一些变体。图5可以很好地解释基本思想:使用全卷积网络获得不同类的粗分数图。然后将图像更新为全分辨率,然后部署CRF以更好地捕捉对象边界。DeepLab在多个分割数据集上实现了最先进的性能,推理时间为125ms或8帧每秒(FPS)。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第7张图片
在之前的工作中,CRFs并没有与全卷积网络联合训练。这可能导致端到端性能不佳。在[37]中,作者建议将CRF制定为RNN,以获得既具有CNNs又具有CRFs的理想属性的深度网络。然后,将这两个网络充分整合,共同训练,在PASCAL VOC 2012分割基准[3]上取得顶级结果。

3.4 特征融合

语义分割涉及到在像素级别上对图像进行分类的任务。在这一领域,很多技术都专注于获得正确的图像细节,而在不同阶段的上下文却丢失了。[38]的作者建议通过添加全局上下文来提高全卷积网络的性能,以帮助澄清局部混乱。特别地,他们建议使用每一层的平均特征来增强每个位置的特征,从而使用组合的特征图来执行分割。全局上下文的影响可能是显著的;使用传统的全卷积网络可以在全局上下文澄清局部混淆时恢复大量的误分类像素,从而产生更平滑的分割输出。
[39]的作者提出了增强语义分割网络(ESSN) upsamples和连接每个卷积的残留特征图谱层为了保持功能从网络的各个阶段(如图6所示)。在[40],下采样阶段,提取特征信息,后面连接恢复空间分辨率的上采样部分。相应的池化层和非池化层的特征被上采样和连接,在最终的预测阶段产生分割输出。在三个主要的语义分割数据集上进行了评价,取得了很好的效果。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第8张图片

3.5 对抗生成网络

生成对抗网络(GANs)最初引入[41]作为无监督学习的生成模型,模型学习产生新的数据作为训练集。它的第一次出现实在图像领域,人工生成的图像与训练集看起来很类似。从那时起,GANs有一个相当的影响在不同的领域,比如天文图像[42],3 d对象重建[43],和图像超分辨率[44]。
将GANs应用于语义分割的想法最早是在[45]中引入的,在[45]中作者使用了两种不同的网络。第一,将图像作为输入并生成逐像素预测的分割网络,非常类似于本工作前面描述的传统CNN方法;第二,一个对抗网络,可区分来自真值还是分割网络。对抗网络将图像、分割的ground truth作为输入,分割网络输出并输出一个类标签(ground truth为1,synthetic为0)。在交叉熵损失函数中添加一个对抗性的项。对抗术语鼓励分割模型产生无法与ground-truth地图区分的标签地图,并导致在Stanford Background和PASCAL VOC 2012数据集中提高标记精度。
在[46]中,作者提出了半监督框架——基于生成对抗网络(GANs)——由一台发电机网络提供额外的多分类器训练的例子,作为鉴别器在GAN框架中,分配每个样本的标签K类或可能标志着这是一个假样本(额外的类),如图7所示。潜在的想法是,增加大量的虚假视觉数据迫使真实的样本在特征空间中接近,这反过来改进了多类像素分类。
它由一个生成器网络组成,向一个多类分类器提供额外的训练样本,在GAN框架中充当鉴别器,从K个可能的类中为每个样本分配一个标签,或将其标记为假样本(额外类),如图7所示。潜在的想法是,增加大量的虚假视觉数据迫使真实的样本在特征空间中接近,这反过来改进了多类像素分类。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第9张图片
[47]作者将GANs算法应用于医学图像的语义分割。与[45]类似,对抗网络将原始图像作为输入,输出分割图像,和真值,使用平均绝对误差距离在最小-最大的方式优化多尺度损失函数。与[33]一样,分割网络由四层卷积阶段组成,专门用于有限的训练数据集,网络的性能显著优于[33]。

3.6 RNN

RNNs[48]被广泛应用于顺序任务。在[49]中,作者提出了ReSeg,它是基于最近引入的用于图像分类[50]的ReNet模型。后者通过转换每个ReNet层来适应语义分割任务。特别是,每个网状网络层由四个RNN (GRUs,见[48])组成,它们在水平和垂直两个方向扫描图像,对补丁或激活进行编码,并提供相关的全局信息。此外,ReNet层叠加在预先训练的卷积层之上,受益于通用的局部特征。上采样层跟随网状层在最终的预测中恢复原始图像分辨率。通过查看图8可以更好地理解网络架构。前两个rnn(蓝色和绿色)应用在图像的小块上,它们的特征映射被连接起来,并作为输入馈送给下两个rnn(红色和黄色),后者发出第一个网状网络层的输出。两个相似的网状网层被堆叠起来,然后是一个上采样层和一个softmax非线性。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第10张图片
图像分割的另一个有趣的应用是[51]。在那里,作者研究了视频分割的问题,其中连续的视频帧被分割。一种方法是独立分割每一帧,但由于视频帧的高度相关性,这看起来是一种低效的方法。作者建议通过添加LSTM[48]来整合时间信息,这是一种可以有效处理长的时间依赖性方法,在网络的不同阶段,他们证实与CNN相比具有显著性能改进。

3.7 全景分割

全景分割[59]是一种尝试结合语义和实例分割的任务,即所有像素都被分配一个类标签,所有对象实例都被唯一分割,[60]显示了非常有前途的结果[61]。提供融合语义和实例分割的连贯场景分割的任务,似乎会在几个基准数据集上导致最先进的语义分割结果,我们将在本报告后面看到。

3.8 基于注意力的model

深度学习的注意力首先被引入到机器翻译[52]领域。注意机制通过允许模型自动搜索源句子中与预测目标词相关的部分,有效地捕获了长期依赖关系。
在语义分割中引入注意力的一种有趣方式是在全卷积网络中整合多尺度特征。[53]的作者提出了一种注意机制,学习在每个像素位置软加权多尺度特征,而不是传统的将多个调整大小的图像发送到共享的深度网络的方法。卷积神经网络与如图9所示的注意模型共同训练。因此,该模型学习以适当的方式缩放不同大小的图像,从而实现更准确的分割。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第11张图片
以类似的方式,[54]试图通过引入特征金字塔注意力模块来解决全卷积网络的空间分辨率损失问题。后者结合了不同尺度的上下文特征,以提高较小目标的分类性能。注意辅助语义分割网络已被广泛应用于[55]-[58]的各种应用中。

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

基于深度学习的语义分割精度较早期方法有了显著提高。例如,[31]在城市景观数据集[62]中实现了65%的mean intersection over union (mIoU),在PASCAL VOC 2012数据集[63]中实现了67%的mIoU。最近的架构已经大大超过了这些最初的结果。HRNet的作者[64]已经建立了一个层次方案,使用不同尺度的图像和适当的注意机制,就像我们在上一节的结尾看到的那样。这种方法在城市数据集达到mIoU > 85%。另一方面,作者[65],使用数据扩充和自我训练[66]——它使用有噪声的标签,这些标签是在一个小得多的标签数据集上训练的模型生成的, 在2012年帕斯卡VOC mIoU数据集得到>90% mIoU的成绩。
然而,计算效率在一些领域也至关重要,比如自动驾驶汽车和移动设备细分,这些领域的推理需求相当有限。在设计实时系统时,必须考虑计算/存储成本和推理时间。在本节中,我们将详细介绍构建这样一个系统所需的技术,并解释文献中如何实现这些改进。

4.1 快速傅里叶变换(FFT)

众所周知的卷积定理[67]指出,在适当的条件下,两个信号的卷积的傅里叶变换是它们的傅里叶变换的点积。作者在11[68]中利用了这一事实来提高卷积网络的训练和推理时间。大小为n×n的图像与大小为k×k的核的卷积将使用直接卷积进行O(n2∗k2)运算,但是通过使用基于fft的方法,复杂度可以降低到O(n2logn)。在傅里叶域中存储特征映射需要一些额外的内存,但这与深度神经网络的总体内存需求相比微不足道。
在[69]中,基于FFT开发了训练和推理算法,降低了计算和存储的渐近复杂度。作者声称,ASIC核的数量减少了1000倍,推理速度加快了10倍,但准确性却有小幅下降。

4.2 剪枝

神经网络的存储需求也可以通过修剪冗余权值来减少。在[70]中,提出了一种三步走的方法:首先训练网络,了解哪些连接是重要的,然后删除不重要的连接,最后,再训练网络,以调整剩余连接的权值。连接减少了9倍至13倍,但是性能几乎没有下降。
文献[71]的研究重点是针对语义分割网络的通道剪枝。使用以下策略,他们减少了50%的操作数,而在mIoU中只损失了1%:基于分类和分割任务的修剪卷积滤波器。这在网络骨干网从最初为分类任务构建的架构转移过来的情况下特别有用,正如我们在本报告前面看到的那样。每个卷积滤波器的比例因子都是基于两个任务计算的,剪枝网络用于推理。
网络修剪是一个非常活跃的领域,来提高卷积神经网络和语义分割的性能,在[72]和[73]可以看到,通道修剪方法可以大量的压缩网络并加速不同类型的任务(分类、检测和分割),通过减少通道数,或者在将骨干网转移到分割网络之前对其进行修剪。

4.3 量化

另一种提高网络效率的方法是减少表示每个权值所需的比特数。通常,需要32位来表示权重。32位操作速度慢,内存需求大。在[74]中,作者建议将权值表示减少到5位,同时通过多个连接共享相同的权值来限制有效权值的数量,然后对这些共享权值进行微调,从而减少存储需求。
在Bi-Real Net[75]中,作者研究了1位卷积神经网络的增强,其中权值和激活都是二进制的。通过在二进制激活前获取批处理归一化层的实值输出并将其连接到下一个块的实值激活,这些1位cnn的性能得到了改善。因此,所提出的模型的表示能力比原来的1位cnn高得多,而计算成本可以忽略不计。

4.4 深度可分离卷积

前两种方法的目的是通过修剪不必要的组件或压缩权重信息来减少网络规模。Sifre在他的博士论文[76]中介绍了一种使二维卷积的计算效率更高的新方法,称为深度可分卷积。Xception[77]和MobileNets[78]采用了这种想法,它们对原始想法进行了轻微的修改,从而极大地提高了它们相关架构的效率。在一个常规卷积层,计算复杂性取决于(a)输入/输出特性图的大小D×D,(b)输入通道数M, ©的输出通道数N,和(d)的空间维度内核k .整体计算需要D2×K2×M×N次乘法。
在深度可分卷积中,与大小为K × K × M × N的滤波器的卷积分为两部分。首先,每个通道的单个滤波器的深度卷积,即大小为K×K的所有M个输入通道,以及(b)一个点卷积,使用1 × 1卷积滤波器来生成适当的输出通道维数。第一个操作需要D2×K2×M,而第二个D2× M × N,计算改进的顺序是max (O(N),O(D2)),这可以是相当显著的,特别是当滤波器的大小或深度增加。

4.5 扩张卷积

在他们的开创性工作[79]中,作者引入了扩张卷积,通过在卷积核的每个像素之间插入零来扩展核的有效接受域。如图10左侧所示,一个3 × 3的内核将覆盖9个像素。然而,如果引入2的膨胀率,那么通过跳过一个像素,8个外部像素将扩展到25个像素(参见图10的中间部分)。如果膨胀率进一步翻倍,覆盖范围将是81像素,如图10的右边所示。总之,K×K大小的内核与N的膨胀率将覆盖(N−1)∗K×(N−1)∗K像素的扩张(N−1)×(N−1)。在语义分割任务,环境对网络精度至关重要,可以扩大通过卷积扩张接受域指数不增加计算成本。通过以不同膨胀率叠加多个卷积层,[79]成功地捕获了感受域增加的图像上下文,并能够显著提高以往最先进的作品的分割性能。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第12张图片
在[80]中引入了一种新的卷积模块,即高效空间金字塔(efficient spatial pyramid, ESP)。ESPNet将扩张卷积与前一小节的深度可分离卷积结合起来。换句话说,作者们形成了一组分解卷积,将标准卷积分解为点向卷积和膨胀卷积的空间金字塔。在同类作品中,ESPNet的参数最少,有效感受野最大。这项工作特别有趣,因为它引入了几个新的系统级指标,帮助分析cnn的性能。

4.6 深度和宽度倍增器

在[78]中,作者探索了几种进一步降低网络复杂性的方法。他们引入了两个超参数:(a)宽度倍增器,可以使模型变薄;(b)分辨率倍增器,可以降低输入分辨率。在前一种情况下,作者通过将输入和输出通道的数量按α因子的比例缩小了每一层的计算要求。从深度可分卷积的分析可以看出,对于α和α2之间的某个整体约简,D2× K2× M + D2× M × N的原始计算复杂度变成了D2× K2× M × α + D2× M × N × α2。基本思想是找到一个合适的比例因子来定义一个新的更小的模型,该模型具有合理的精度、延迟和大小权衡。
另一方面,分辨率乘法器ρ可以将输入图像的尺寸缩放为ρ2的一个因子,导致总体计算成本为D2× K2× M × ρ2+ D2× M × N × ρ2。同样地,应该在考虑精度、延迟和大小的情况下优化这个缩减过程。这两种方法可以结合起来进一步改进。

4.7 提前降采样

[81]也提出了类似的想法,根据作者的实验结果和直觉讨论了一些设计选择。特别是,非常大的输入帧在计算上是非常昂贵的,在网络的早期阶段降低这些帧的样本,同时保持相对较低的特征数量是一个好主意。这种下采样对整体性能没有严重影响,因为视觉信息通常是高度冗余的,可以压缩为更有效的表示。此外,需要注意的是,前几层并不真正有助于分类任务,而是为随后的层提供了有用的表示。另一方面,在下采样图像上操作的滤波器具有更大的接受域,可以为分割任务提供更多的上下文。
下采样会导致损失空间信息的精确边缘形状,ENet在SegNet[34]后遵循这个规则,元素的指标选择在马克斯池层存储和用于生产稀疏upsampled地图在译码器,因此,部分恢复空间信息,与小内存需求。存储和使用在最大池层中选择的元素的索引在解码器中生成稀疏的更新采样映射,因此,部分恢复空间信息,对内存需求小。

4.8 更小的解码器尺寸

[81]讨论的另一个设计选择是,在语义分割网络的典型编码器/解码器结构中,两个子组件不必对称。编码器需要深入,以便以类似于分类对等物的方式捕捉特征。然而,解码器有一个主要任务:提高压缩特征空间的样本,以提供像素级分类。后者可以用更少的深度架构实现,从而大大节省了计算量。

4.9 有效减小网格尺寸

[82]的作者注意到,由于池操作会导致表征瓶颈,所以通常会通过增加池操作之前使用的通道数量来补偿。 不幸的是,这意味着加倍的滤波器控制着计算成本。反卷积/池化操作的顺序肯定会提高计算速度,但不会帮助解决表示瓶颈。作者的建议是并行执行池化操作与stride=2的卷积,并连接产生的滤波器组。这种技术允许[81]的作者将初始块的推断时间加快到原来的10倍。

4.10 放弃bias项

偏见术语对语义分割网络的整体性能没有显著影响,通常会被删除。

4.11 用小的卷积核堆叠多层

总计算成本随着核大小的平方而增加。在[29],认为有多个卷积层小内核大小优于与更大的内核有一层,有两个原因:(a)通过叠加三层3×3卷积对应于同样有效的接受域的7×7层,同时减少参数的数量近一半,(b)通过引入三个非线性校正层而不是单一的校正层,使决策函数具有更强的判别性。

4.12 通道混洗操作

分组卷积最初是在[1]中引入的,目的是将模型分布到多个gpu上。为了得到每一层的多通道输出,它并行地使用多个卷积。[83]表明,使用分组卷积可以提高分类任务的准确性。然而,当应用于小得多的网络时,这种体系结构的效率就会降低,在小得多的网络中,性能瓶颈是大量密集的1 × 1卷积。文献[84]中的作者提出了一种新的信道洗牌操作来克服这一困难。特别地,在图11的左侧可以看到一个典型的组卷积,它包含两个堆叠的卷积层和相同数量的组。如果允许一组卷积从不同的组获得数据,那么输入和输出通道是完全相关的(见图11的中间部分)。然而,上面的操作可以通过遵循图11右侧的流程有效地实现。通过添加通道洗牌操作,输出通道维度在被输入到后续层之前被重塑、换位和扁平。通道洗牌将操作次数减少到g的倍数,g是组的数量。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第13张图片

4.13 双分支网络

对原始图像进行下采样可以显著提高语义分割体系结构的推理时间,但也会导致空间细节的显著丢失。两个分支网络试图调和这种通过引入两个分支:(a)一个相对较浅的分支,使用全分辨率图像捕捉空间细节,和(b)一个更深的分支下采样图像,将能够有效地学习特征。两个分支可以共享层以进一步提高计算复杂度(见[85]),或者在聚合之前可以有不同的骨干架构[86]。

4.14 其他方法

到目前为止,除了本节介绍的计算效率高的方法外,还有一些其他好的设计选择,它们有助于在使用轻量级架构的情况下保持良好的性能。例如,许多论文的一个共同主题是批处理规范化[87],允许更快和更准确的训练过程。激活函数的选择也很重要。ReLU是该领域大多数工作使用的非线性激活函数,但一些研究人员提出了带参数ReLU (PReLU)改进的结果。最后,正则化[88]有助于避免过拟合,因为在许多应用中,与分割深度神经网络中的参数数量相比,输入图像的维数较小。

5.语义分割数据集

为了促进语义分割关键领域的快速增长以及建立性能基准,已经生成了几个数据集。表1总结了几个在像素级别上进行了注释的图像集。它包含了不同的数据集,这些数据集最初是为分类任务而开发的,以及更专门的图像集,这些图像集适用于特定的应用(例如,自动驾驶和基于运动的分割),覆盖了广泛的场景和对象类别,并带有像素级注释。这些数据集的附加信息将在本节的其余部分提供。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第14张图片

5.1 COCO数据集

Common Objects in Context (COCO)[89]是一种大规模的对象检测、分割和字幕数据集。这是最广泛的数据集之一,有330K的图像,其中一半是标记的。语义类可以是事物(具有明确形状的对象,如汽车、人)或东西(无定形背景区域,如草地、天空)。有80个对象类别,91个东西类,150万个对象实例,由于数据集的大小,它被认为是图像分割任务中最具挑战性的一个。结果,用于语义分割的COCO leader board[90]只有5个条目,其中一些最具影响力的作品占据了该领域的榜首位置。
cocoa - stuff[91]用91个stuff类的像素级注释增强了COCO 2017数据集的所有图像。原始COCO数据集已经为80个thing类提供了大纲级的注释,但是COCO-stuff完成了更复杂任务(如语义分割)的注释。

5.2 PASCAL视觉对象类(VOC)

最流行的图像集之一是PASCAL Visual Object Classes (VOC)[3],它可以用于分类、检测、分割、动作分类和人物布局。这些数据可以在[63]中获得,已经被注释,并定期更新。对于图像分割挑战,数据包括20类日常对象(飞机、自行车、鸟、船等)。训练集由1464张图像组成,验证集由1449张图像组成。该测试集用于PASCAL VOC挑战赛(PASCAL VOC Challenge)的评估,该竞赛始于2005年,最新数据集出现在2012年。它是一个通用的数据集,包括各种场景/对象,因此,它经常被用来评估新的图像分割方法。图1a和图1b分别是一幅图像及其语义分割的例子。
对以前的图像集进行了一些扩展,最著名的是PASCAL Context[92]和PASCAL Part[93]。前者用超过500个类来注释同一个图像,而后者将原始对象分解为几个部分并对它们进行注释。另外两个PASCAL扩展是:(a)语义边界数据集(SBD)[94]和(b) PASCAL语义部分(PASParts)[95]。

5.3 ADE20K

ADE20K[96]是由麻省理工学院计算机视觉实验室开发的。作者发现,当时可用的数据集在对象的数量和类型以及场景的种类上都非常有限。因此,他们收集了一个25K图像的数据集,该数据集有密集的注释图像(每个像素都有一个语义标签),具有近2700个类的大而不受限制的开放词汇表。该数据集中的图像被手工分割得非常详细,涵盖了一组不同的场景、对象和对象部件类别。一个专家注释器,提供非常详细和详尽的图像注释,而不会出现使用多个注释器时常见的注释不一致。注释的细节见图12a和图12b。平均每个图像有19.5个实例和10.5个对象类。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第15张图片
在他们的场景解析基准[97]中,他们选择了按总像素比例排名的前150个类别,并使用以下指标:(a)像素精度,(b)平均精度,©mIoU,(d)wIoU。略多于20K的图像用于训练集,2K图像用于验证,其余保留用于测试。在50个不同城市的街道上录制的立体声视频序列和注释涉及30个不同的类别。

5.4 Cityscapes

城市景观数据集[98]侧重于对复杂城市街道景观的视觉理解。有25K幅图像,其中有5K幅图像有高质量的像素级标注,另外有20K幅图像有粗标注(即弱标注数据),如图13a和13b所示。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第16张图片
他们的基准测试套件(见[99])包括一个像素级的语义标记任务,有超过200个条目。它被认为是最具多样性和挑战性的城市场景数据集,因此,它是非常流行的性能评估工具。

5.5 SYNTHIA

SYNTHIA数据集[100]是另一个侧重于自动驾驶应用的城市场景图像集合。作者们生成了带有像素级注释的真实合成图像,并试图解决这样的数据对语义分割有多大用处的问题。从13个类别(如天空、建筑、道路)中自动生成的像素级注释创建了13K幅城市图像。结果表明,当在训练阶段使用SYNTHIA与公开可用的真实世界城市图像一起使用时,语义分割任务的性能显著提高。图14中可以看到SYNTHIA合成图像的示例,以及用于生成图像的城市的总体视图。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第17张图片

5.6 SIFT Flow

SIFT Flow[102]是对LabelMe图像的子集[103]进行处理,以提供2688帧的精确像素级注释的数据集。前33个对象类别(标记像素最多)大多是从户外场景中选择的。图像尺寸相对较小(256 × 256像素),生成这些图像是为了评价作者的场景解析算法。

5.7 CamVid

CamVid[104]是另一个城市场景数据集,包含四个高清视频序列,以960 × 720像素,每秒30帧的速度捕捉。视频的总时长为22分钟多一点,大约40K帧。在后者中,701被手工标记为32个对象类。有趣的是,注释工作花费了大约230个工时,而平均注释时间不到20分钟。每一张标注过的图像都由另一个人检查并确认其准确性。

5.8 KITTI数据集

最后一集,我们将看到的是KITTI[105],在无人驾驶的研究相当受欢迎,不仅因为它包含摄像机图像,而且还有激光扫描,高精度GPS测量和IMU系统。大多数数据是从自动驾驶车辆收集的。这些数据是在开车进入德国卡尔斯鲁厄及其周边地区时收集的,其中包含来自13个不同类别的200多张完整注释的图像[106]。他们的语义分割基准包含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

并上的平均交点(mIoU)是一个解决精度度量类不平衡弱点的度量。首先看一下IoU(交并比)。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第18张图片
mIoU就是计算所有类的平均交并比。

6.6 加权IoU

这是前一个度量的一个小变化,用于说明每个类的像素数量。它根据类中的像素数计算每个类的IoU的加权平均值。

6.7 精度

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

6.8 召回率

第i类召回定义为第i类实际像素被正确分类的比例。同样,可以为多个类定义一个平均回忆度指标。

6.9 F1-score

F1-score通过计算它们的调和平均值来汇总精度/召回指标。它结合了这两种错误的特性,并为这两种类型的错误提供信息。

6.10 FPS

所有以前的度量标准都度量模型输出的准确性,但并没有捕获方法的效率。需要捕捉的一个重要指标是网络的推断速度,即以每秒帧数(fps)衡量的执行时间。这与在一个完全训练好的网络上运行一个新图像的推理时间相反。在大多数实时应用程序中,通常需要30帧以上的帧率,以超过典型的视频帧率。

6.11 内存占用

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

7.性能总结

在本节中,我们将提供在语义分割中表现最好的模型的汇总表。大多数论文都是根据本报告前面提供的数据集的子集进行评估的,而且,对于大多数作品来说,计算效率并不是设计的关键因素。因此,我们决定总结在城市景观数据集上表现最好的模型[98],这在大多数实时架构中都很流行,作为评价基准。表2总结了与mIoU相关的10个表现最好的模型,并简要总结了用于实现这些结果的方法。匿名提交的内容不包括在这个部分中,尽管在基准评估中占据了一些表现最好的位置。从表2中可以看出,大多数参赛作品都是在过去几个月发布的,这表明竞争非常激烈,进步非常快。
表3对实时语义分割工作进行了排名,其中的性能指标是推理速度(即每秒帧数(FPS))。前十名中的三个位置被一篇论文占据[85],这篇论文清楚地展示了性能/效率的权衡。然而,表中可以看出实时语义分割是一个现实,一些架构实现了接近最先进的语义分割模型的准确性。
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第19张图片
[论文翻译]A SURVEY ON DEEP LEARNING METHODS FOR SEMANTIC IMAGE SEGMENTATION IN REAL-TIME_第20张图片

8.总结

这项工作提供了一个广泛的总结,以实时应用为重点的深度学习方法的语义图像分割的最新进展。它首先解释了分割任务和它与类似任务的区别,接着介绍了早期分割方法的历史,并提供了过去十年不同深度学习方法的详细描述。然后提供了一个广泛的技术列表,通过优化网络的不同方面来提高深度学习网络的效率,并解释了这些设计选择中的权衡。随后描述了最广泛使用的基准数据集,然后是用于评估所提议模型的准确性和效率的一系列指标。最后,提供了性能表来总结在语义分割领域的最先进的方法,既从准确性的角度,也从效率的角度。
深度学习方法的最新进展,以及图像捕捉能力的快速提高,使图像分割成为众多应用中的关键工具,从医学成像到自动驾驶等关键时间应用。本调查总结了改变图像分割领域的最新突破,并对导致这种转变的设计选择提供了全面的见解。

你可能感兴趣的:(论文翻译,深度学习)