The One Hundred Layers Tiramisu:Fully Convolutional DenseNets for Semantic Segmentation手动翻译

The One Hundred Layers Tiramisu:Fully Convolutional DenseNets for Semantic Segmentation
一百层的Tiramisu:用于语义分割的全卷积DenseNets
典型分割架构:
(a)负责提取粗糙语义特征的下行采样路径
(b) 一个上采样路径,用于在模型的输出处恢复输入图像的分辨率
©(可选)后处理模块(如条件随机域)细化模型预测
DenseNet:
每一层都以前馈的方式直接连接到每一层,网络更精确,更容易训练。
1)优点:
①参数效率,DenseNets用更少的参数实现更优的性能
②隐式深度监督,利用架构中所有feature map的短路径进行深度监督
③特征重用,所有层都可以方便地访问它们之前的层,使得重用以前计算的特征图中的信息变得容易。DenseNets的特点使其非常适合于语义分割,因为它能自然地产生跳跃连接和多尺度监督。

FCN:
1)优点:
①FCNs将上采样层添加到标准CNNs中,以恢复输出层输入的空间分辨率。
②FCNs可以处理任意大小的图像。
③FCNs在下采样和上采样路径之间引入了跳跃连接,有助于上采样路径从下采样层恢复细粒度信息。

FC-DenseNet:
1)定义:
将DenseNet架构扩展到全卷积网络进行语义分割
2)连接模式比较:
①普通网络:
在这里插入图片描述
②ResNets
在这里插入图片描述
H被定义为由批量归一化(BN)[14]、ReLU和卷积组成的块的重复(2次或3次)。
③FCNs引入了一个由卷积、上采样操作(转置卷积或反池操作)和跳跃连接组成的上采样路径
④DenseNets
在这里插入图片描述
H被定义为BN,接着是ReLU,一个卷积和dropout
⑤FC-DenseNets
在这里插入图片描述

3)架构:
用一个密集块和一个向上采样操作来代替卷积操作。向上转换模块由一个置换的卷积组成,它对之前的特征图进行向上采样。然后,将上采样的特征映射连接到来自跳跃连接的特征映射,形成一个新的密集块的输入。
在这里插入图片描述

4)实验:
①在城市场景基准数据集(如CamVid和Gatech)上实现了最优性能,且没有任何进一步的后处理模块或预训练。
②模型受益于具有更多的深度和更多的参数。

Abstract

目前最先进的语义图像分割方法是基于卷积神经网络的。典型分割架构包含:
(a)负责提取粗糙语义特征的下行采样路径
(b) 一个上采样路径,用于在模型的输出处恢复输入图像的分辨率
©(可选)后处理模块(如条件随机域)细化模型预测。
最近,一个新的CNN架构,密集连接的卷积网络(DenseNets),在图像分类任务上显示出了优异的结果。DenseNets的想法是基于这样的观察:如果每一层都以前馈的方式直接连接到每一层,那么网络将会更精确,更容易训练。
在本文中,我们扩展了DenseNets来处理语义分割问题。我们在城市场景基准数据集(如CamVid和Gatech)上实现了最优性能,没有任何进一步的后处理模块或预训练。此外,由于模型的巧妙构造,我们的方法比当前发布的这些数据集的最佳团队的参数要少得多。重现实验的代码可以在这里找到:https://github.com/SimJeg/FC-DenseNet

1. Introduction

卷积神经网络(Convolutional Neural Networks, CNNs)在图像分类[29]、目标检测[25,24]、语义图像分割[20]等许多计算机视觉任务中都取得了很大的进步。过去几年,基于cnn的模型有了显著的改进。非常深的体系结构[29,11,31]在标准基准测试(如ImageNet[6]或MSCOCO[19])上显示了令人印象深刻的结果。最先进的CNNs通过连续的池化层极大地降低了输入分辨率,因此非常适合于每个输入图像只需要一个预测的应用(例如,图像分类任务)。
文献中引入全卷积网络(FCNs)[20,27],将其作为CNNs的自然扩展来处理逐像素预测问题,如语义图像分割等。FCNs将上采样层添加到标准CNNs中,以恢复输出层输入的空间分辨率。因此,FCNs可以处理任意大小的图像。为了补偿池化层所造成的分辨率损失,FCNs在它们的下采样和上采样路径之间引入了跳跃连接。跳跃连接有助于上采样路径从下采样层恢复细粒度信息。
在扩展为FCNs的语义分割CNN架构中,残差网络(ResNets)[11]是一个有趣的例子。ResNets旨在通过引入一个对输入的非线性转换及其恒等映射求和的残差块来简化对非常深的网络(数百层)的训练。恒等映射是通过快捷连接实现的。ResNets已经扩展为FCNs[4, 8],在不同的分割基准中获得了很好的结果。ResNets合并了额外的FCN路径(快捷路径),从而增加了分割网络中的连接数量。这条额外的捷径不仅可以提高分割精度,还可以帮助网络优化过程,从而加快训练的收敛速度[8]
最近,[13]引入了一个新的CNN架构,称为DenseNet。DenseNets是由密集的块和池化操作构建的,其中每个密集的块是之前的特征映射的迭代连接。这个架构可以看作是ResNets[11]的扩展,它执行以前的特征映射的迭代求和。但是,这个小的修改有一些有趣的含义:
(1)参数效率,DenseNets在参数的使用上更有效率;
(2)隐式深度监督(implicit deep supervision), DenseNets利用架构中所有feature map的短路径进行深度监督(类似于深度监督网络[18]);
(3)特征重用,所有层都可以方便地访问它们之前的层,使得重用以前计算的特征图中的信息变得容易。DenseNets的特点使其非常适合于语义分割,因为它能自然地产生跳跃连接和多尺度监督。
在本文中,我们将DenseNets扩展为FCNs,通过增加一个上采样路径来恢复完整的输入分辨率。简单地建立一个向上采样路径将导致在softmax层之前具有非常高分辨率的特征图的数量大大增加。这是因为高分辨率的特征映射会与大量的输入过滤器(来自下面的所有层)相乘,导致非常大的计算量和参数数量。为了减轻这种影响,我们只对前面的密集块创建的特征图进行向上采样。这样做允许在上采样路径的每个分辨率上都有大量的密集块,而与池化层的数量无关。此外,在给定网络结构的情况下,上采样密集块结合了具有相同分辨率的其它密集块所包含的信息。较高分辨率的信息是通过向下采样和向上采样路径之间的标准跳跃连接传递的。所提出的体系结构的细节如图1所示。我们在Camvid[2]和Gatech[22]这两个具有挑战性的城市场景理解基准上对我们的模型进行了评估,并通过改进现有技术来确认DenseNets在语义分割方面的潜力。
在这里插入图片描述
图1:我们的语义分割架构图。我们的架构是用密集块建造的。该图由两个向下的过渡(TD)的下采样路径和两个向上的过渡(TU)的上采样路径组成。圆圈表示连接,箭头表示网络中的连通模式。灰色水平箭头表示跳跃连接,下采样路径中的特征映射与向上采样路径中相应的特征映射连接在一起。注意,上采样和下采样路径中的连接模式是不同的。在向下采样路径中,密集块的输入与输出连接,导致特征图的数量线性增长,而在上采样路径中则不是这样。

本文贡献如下:
我们仔细地将DenseNet架构[13]扩展到全卷积网络进行语义分割,同时减轻了feature map爆炸的影响。
我们强调,由密集块构建的上采样路径,在执行更多标准操作(如[27]中的操作)时,比上采样路径的性能更好。
我们证明,这种网络可以超越目前的城市场景理解标准基准的最新结果,既不使用预先训练的参数,也不进行任何进一步的后处理。

2. Related Work

近年来,语义分割的研究进展主要集中在以下几个方面:
(1)改进上采样路径,增强FCNs内部的连通性[27,1,21,8];
(2)引入模块来解释更广泛的上下文理解[36,5,37];和/或(3)赋予FCN架构提供结构化输出的能力[16,5,38]。
首先,文献中针对FCNs上采样路径的分辨率恢复提出了不同的解决方案,从简单的双线性插值[10,20,1]到更复杂的操作,如反池化[1,21]或转置卷积[20]。还采用了从下采样到上采样路径的跳跃连接,以实现更精细的信息恢复[27]。最近,[8]对恒等映射[11]与长跳连接[27]的结合进行了深入的语义分割分析
其次,将更大的上下文引入语义分割网络的方法包括[10,36,5,37]。在[10]中,计算了一个无监督全局图像描述器,添加到每个像素的特征映射中。在[36]中,使用递归神经网络(RNNs)从水平和垂直两个方向扫描图像来检索上下文信息。在[5]中,扩展卷积被引入作为晚期CNN池层的替代,以在不降低图像分辨率的情况下捕获更大的上下文。基于同样的想法,[37]提出为FCNs提供一个上下文模块,该模块构建为一个扩展的卷积层堆栈,以扩大网络的视野。
第三,条件随机字段(CRF)长期以来一直是一个流行的选择,以加强结构一致性的分割输出。最近,完全连接的CRFs[16]被用来涵盖FCNs[5]输出的结构特性。有趣的是,在[38]中,RNN被引入到CRF优化的近似平均场迭代中,允许对FCN和RNN进行端到端训练。
最后,值得注意的是,目前最先进的FCN语义分割架构往往依赖于预先训练的模型(如VGG[29]或ResNet101[11])来改善其分割结果[20,1,4]。

3. Fully Convolutional DenseNets

如第1节所述,FCNs是由下采样路径、上采样路径和跳跃连接构建的。通过重用特征映射,跳过连接可以帮助上采样路径从下采样路径中恢复详细的空间信息。我们的模型的目标是通过扩展更复杂的DenseNet体系结构来进一步利用特性重用,同时避免在网络的上采样路径上出现特性爆炸。
在本节中,我们将详细介绍所提出的语义分割模型。首先,我们回顾最近提出的DenseNet体系结构。其次,我们介绍了新的上采样路径的构造,并讨论了它相对于一个朴素的DenseNet扩展和更经典的架构的优势。最后,我们总结第4节中使用的主要体系结构的细节。

3.1 Review of DenseNets

设xl为第l层的输出。在标准的CNN中,xl是通过对前一层的输出xl-1进行非线性变换Hl来计算的
在这里插入图片描述
其中H通常被定义为一个卷积,然后是一个修正非线性(ReLU),经常出现dropout[30]。
为了简化对非常深的网络的训练,ResNets[11]引入了一个残差块,它将输入的恒等映射和一层的输出相加。结果输出xl变成
在这里插入图片描述
允许功能的重用,允许梯度直接流到较早的层。在这种情况下,H被定义为由批量归一化(BN)[14]、ReLU和卷积组成的块的重复(2次或3次)。
更进一步地,DenseNets[13]设计了一个更复杂的连接模式,它以前馈的方式迭代地连接所有的特性输出。因此,第l层的输出被定义为
在这里插入图片描述
其中[…]表示连接操作。在这种情况下,H被定义为BN,接着是ReLU,一个卷积和dropout。这种连接模式强烈地激励了特性的重用,并使体系结构中的所有层都接收到直接的监控信号。每一层l的输出维度都有k个特征映射,其中k(下文称为增长率参数)通常设置为一个小值(例如k = 12)。因此,DenseNets中的feature map的数量随着深度线性增长(例如,在l层后,输入[xl-1,xl-2,…,x0]将有l×k个feature map)。
为了降低特征图的空间维数,引入了向下过渡。这种转换由一个1×1个卷积(保留了特征图的数量)和一个2×2个池操作组成。
在本文的其余部分中,我们将把密集型块称为按给定分辨率创建的新特征映射的串联。图2显示了一个密集块结构的示例。从具有m个特征映射的输入x0(输入图像或向下转换的输出)开始,块的第一层通过应用H1(x0)生成k维的输出x1。然后将这些k个feature map通过拼接([x1,x0]作为第二层的输入。同样的操作重复n次,得到一个新的具有n×k个特征映射的密集块。
在这里插入图片描述
图2:一个由4层组成的密集块的示意图。第一层应用于输入以创建k个特征映射,这些特征映射连接到输入。然后,应用第二层创建另k个特征映射,这些特征映射再次连接到前面的特征映射。操作重复4次。块的输出是4层输出的串联,因此包含了4 k的feature map

3.2 From DenseNets to Fully Convolutional DenseNets

3.1小节中描述的DenseNet架构构成了我们的全卷积DenseNet (FC-DenseNet)的下采样路径。注意,在下采样路径中,通过池化操作后每个特征图的空间分辨率降低来补偿特征数量的线性增长。下行采样路径的最后一层称为瓶颈。
为了恢复输入的空间分辨率,FCNs引入了一个由卷积、上采样操作(转置卷积或反池操作)和跳跃连接组成的上采样路径。在FC-DenseNets中,我们用一个密集块和一个向上采样操作来代替卷积操作。向上转换模块由一个置换的卷积组成,它对之前的特征图进行向上采样。然后,将上采样的特征映射连接到来自跳跃连接的特征映射,形成一个新的密集块的输入。由于上采样路径增加了特征映射的空间分辨率,因此特征数量的线性增长对内存的要求较高,特别是对于pre-softmax层的全分辨率特征。
为了克服这一限制,密集块的输入不与其输出连接起来。因此,转置卷积只适用于最后一个密集块获得的特征图,而不适用于目前连接的所有特征图。最后一个密集块以相同的分辨率总结了前面所有密集块中包含的信息。请注意,由于池化操作的原因,在向下转换过程中丢失了来自早期密集块的一些信息。然而,这些信息在网络的下行采样路径中是可用的,可以通过跳跃连接传递。因此,在给定的分辨率下,使用所有可用的特征图计算上采样路径的密集块。图1详细说明了这一思想。
因此,我们的上采样路径方法允许我们构建非常深的FC-DenseNets,而不会导致特征图爆炸。实现上行采样路径的另一种方法是执行连续的转置卷积,并以U-Net[27]或类似fcn的[20]方式从下行采样路径的跳跃连接来补充它们。这将在第4节中进一步讨论

3.3 Semantic Segmentation Architecture

在本小节中,我们详细介绍了第4节中使用的主要架构FCDenseNet103。

首先,在表1中,我们定义了架构的密集块层、向下转换和向上转换。密集块层由BN、ReLU、3×3卷积(无分辨率损失)和dropout组成,概率p = 0.2。该层的增长率设为k = 16。向下的转换是由BN、ReLU、1×1卷积、p = 0.2的dropout和一个大小为2×2的不重叠的最大池化层组成。向上转换由一个3×3转置卷积(stride=2)组成,以补偿池化操作。

在这里插入图片描述
其次,在表2中,我们总结了所有的Dense103层。该架构由103个卷积层构成:第一个在输入端,38个在下采样路径,15个在瓶颈处,38个在上采样路径。我们使用5个向下的过渡(TD),每个过渡包含一个额外的卷积,5个向上的过渡(TU),每个过渡包含一个转置的卷积。网络的最后一层是1×1卷积,然后是一个softmax非线性函数,以提供每个像素处的每个类的分布。
在这里插入图片描述
表2:我们实验中使用的FC-DenseNet103模型的结构细节。该模型由103个卷积层构成。在表中,我们使用了以下符号:DB表示密集块,TD表示向下转换,TU表示向上转换,BN表示批处理标准化,m表示块结束时的特征映射总数。c代表类的数量

值得注意的是,正如在3.2小节中所讨论的,所提出的上采样路径适当地缓解了DenseNet特征图爆炸的影响,使得pre-softmax特征图数目合理,为256。
最后,通过最小化像素级的交叉熵损失对模型进行训练。

4. Experiments

我们在两个城市场景理解数据集上评估了我们的方法:CamVid[2]和Gatech[22]。我们从零开始训练我们的模型,没有使用任何额外的数据或后处理模块。我们使用交并比(IoU)度量和全局精度(数据集的像素级精度)来报告结果。对于给定的类别c、预测值oi和目标值yi,IOU定义如下
在这里插入图片描述
其中^是一个逻辑和运算,而_是一个逻辑或运算。我们通过对数据集的所有像素i求和来计算IoU。

4.1 Architecture and training details

我们使用HeUniform[12]初始化我们的模型,并用RMSprop[33]训练它们,初始学习率为1e^(-3),
每个epoch后指数衰减为0.995。所有的模型都使用随机crop和垂直翻转进行数据增强的数据上进行训练。对于所有的实验,我们用全尺寸图像和1e^(-4)的学习率来微调我们的模型。我们使用验证设置来提前停止训练和微调。我们监测平均IoU或平均准确性,使用100的patience(微调期间50)。
我们用1e^(-4)的权重衰减率和0.2的丢失率来正则化我们的模型。对于批处理规范化,我们在训练、验证和测试时使用当前批处理统计数据。

4.2 CamVid dataset

CamVid1[2]是一个完全分割的视频数据集,用于城市场景理解。我们使用了[1]的分割和图像分辨率,其中367帧用于训练,101帧用于验证,233帧用于测试。每一帧的大小为360×480,像素由11个语义类标记。我们的模型经过crop224×224和batch大小3的训练。最后,用全尺寸图像对模型进行微调。
在表3中,我们报告了三个网络的结果,分别为(1)56层(FC-DenseNet56),每个密集块4层,增长率为12;(2) 67层(FCDenseNet67),每个密集块层,增长率为16;(3) 103层(FC-DenseNet103),增长率为16(详见表2)。我们还在上采样路径中使用标准的卷积来训练架构,而不是使用密集的块(典型的上采样)。在后一种架构中,我们使用每个分辨率级别3个卷积,分别使用512、256、128、128和64个过滤器,就像在[27]中一样。结果表明,该方法明显优于经典的上采样路径,对所有类别的IOU都有显著的改善。特别地,我们观察到未代表的类明显受益于FC-DenseNet体系结构,即标识、行人、围栏、骑自行车手的性能得到了巨大的提升(从15%到25%不等)。
在这里插入图片描述
正如所料,在比较FC-DenseNet56或FCDenseNet67与FC-DenseNet103时,我们发现模型受益于具有更多的深度和更多的参数。
与其他方法相比,我们表明FC-DenseNet体系结构达到了最先进的水平,比上面模型少了10倍的参数。值得一提的是,我们的小模型FC-DenseNet56已经超过了流行的架构,至少减少了100倍以上的参数。
值得注意的是,在CamVid中的图像对应于视频帧,因此,数据集包含时间信息。一些最先进的方法,如[17],在FCN的输出中加入了长期的时空正则化,以提高其性能。我们的模型能够超越这种最先进的模型,而不需要任何时间平滑。然而,任何后处理时间正则化都能补充我们的方法,可以带来额外的改进。
与当前大多数最先进的方法不同,FCDenseNets没有在大型数据集(如ImageNet[6])上进行过预训练,并且很可能从这种预训练中受益。最近的研究表明,深度网络也可以提高它们的性能,如果预先训练的数据不是自然图像,比如视频游戏[26,28]或clipart[3],这是一个值得探索的有趣方向。
图3显示了一些在CamVid数据集上的定性分割结果。定性的结果与定量的结果一致,显示出明显的分割,说明了很多细节。例如,树木、立柱、人行道和行人都分割得很好。在常见的错误中,我们发现在树木中发现的细枝末节可能与柱子相混淆(见第5行),公共汽车和卡车可能与建筑物相混淆(见第4行),商店的标志可能与道路标志相混淆(见第2行)。

4.3 Gatech dataset

Gatec2[23]是一个几何场景理解数据集,包含63个用于训练/验证的视频和38个用于测试的视频。每个视频有50到300帧(平均190帧)。每个帧提供一个像素级的分割地图。数据集中有8个类:天空、地面、建筑物、多孔性(主要是树)、人、车、垂直混合和主混合。该数据集最初是为了学习户外视频场景的三维几何结构而建立的,该数据集的标准度量是平均全局精度。
我们使用FC-DenseNet103模型对CamVid进行预训练,去除softmax层,并对其进行了10个epochs的细化,crop为224×224,batch为5。考虑到Gatech帧的高冗余度,我们只使用了10帧中的1帧来训练模型,并在所有全分辨率的测试集帧上进行了测试。
在表4中,我们报告了得到的结果。我们将结果与最近提出的[34]视频分割方法进行了比较,该方法使用2D和3D卷积来报告其结构的结果。基于帧的二维卷积没有时间信息。从表4中可以看出,我们的方法相对于之前发表的使用2D卷积的最新技术,在全局精度上有23.7%的显著提高。此外,我们的模型(仅使用2D卷积进行训练)也比基于时空3D卷积的最先进模型有了显著的改进(提高了3.4%)。

5. Discussion

我们的全卷积DenseNet隐式继承了DenseNet的优点,即;(1)参数效率,因为我们的网络的参数大大少于为Camvid数据集发布的其他分割架构;(2)隐式深度监控,我们尝试在网络的不同层面增加额外的监督级别,但在性能上没有明显的变化;(3)特征重用,因为所有层都可以很容易地访问它们的前一层,这不仅受益于在一个密集块中重复连接的特征映射,还受益于跳跃连接——加强了向下采样和向上采样路径之间的连接。
最近的证据表明,ResNets表现得像一个相对较浅的网络[35]的集合:残差网络通过引入短路径来避免梯度消失的问题,这种短路径可以在非常深的网络范围内携带梯度。在全卷积DenseNets的背景下重新审视这一发现将是有趣的。由于密集块中的迭代特征映射串联,梯度必须通过不同深度的网络(具有不同数量的非线性)。因此,由于智能连接模式,FC-DenseNets可能代表一个可变深度网络的集合。这种特殊的集成模型对于语义分割模型来说是非常有趣的,在语义分割模型中,不同路径的集成将捕获城市场景中对象的多尺度外观。

6. Conclusion

在本文中,我们扩展了DenseNets并使其完全卷积化来解决语义图像分割的问题。DenseNets背后的主要思想是通过执行特征映射的迭代连接的密集块来捕获的。我们设计了一种上采样路径,以减少在DenseNets的初始扩展中出现的特征图的线性增长。
最终得到的网络非常深(从56层到103层),参数很少,大约是最先进模型的十分之一。此外,它在挑战性的城市场景理解数据集(CamVid和Gatech)上提高了最先进的表现,没有额外的后处理、预训练和时间信息。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值