用于语义分割的FC-DenseNets
最新的语义图像分割方法是建立在卷积神经网络(CNNs)基础上的。典型的分割体系结构由(A)负责提取粗略语义特征的下采样路径,随后是(B)经训练以在模型的输出处恢复输入图像分辨率的上采样路径,以及可选地,( C)用于精炼模型预测的后处理模块(例如,条件随机场)。 最近,一种新的CNN结构-密集连接卷积网络(DenseNets)在图像分类任务中表现出了良好的效果。DenseNets的想法是基于这样的观察,如果每一层都以前馈的方式直接连接到其他每一层,那么网络将会更准确,更容易训练。 在本文中,我们对DenseNets进行了扩展,以处理语义分割问题。我们在城市场景基准数据集(如CamVid和GaTech)上实现了最先进的结果,无需任何进一步的后处理模块或预训练。此外,由于模型的智能构建,我们的方法具有比目前公布的这些数据集的最佳条目少得多的参数。重现这些实验的代码可在此处公开获得作者源代码及链接
卷积神经网络(CNNs)正在推动许多计算机视觉任务的重大进步,例如图像分类[29]、对象检测[25,24]和语义图像分割[20]。在过去的几年里,基于CNN的模型有了显著的改进。非常深入的架构[29、11、31]在标准基准测试(如ImageNet[6]或MSCOCO[19])上显示了令人印象深刻的结果。最先进的CNN通过连续的池化层大大降低了输入分辨率,
图1.语义分割的体系结构示意图。我们的结构是用密集块搭建的。该图由具有2个向下过渡(TD)的下采样路径和具有2个向上过渡(TU)的上采样路径组成。圆圈表示串联,箭头表示网络中的连接模式。灰色水平箭头表示跳过连接,来自下采样路径的特征映射与上采样路径中的相应特征映射连接。注意,上采样路径和下采样路径中的连接模式不同。在下采样路径中,密集块的输入与其输出连接在一起,导致特征映射数量的线性增长,而在上采样路径中则不是。因此,它们非常适合期望每个输入图像一次预测的应用(例如,图像分类任务)。
文献中引入了完全卷积网络(FCNs)[20,27]作为CNNs的自然扩展,以解决像语义图像分割这样的每像素预测问题。FCN向标准CNN添加上采样层,以恢复输出层输入的空间分辨率。因此,FCN可以处理任意大小的图像。为了补偿由层合并引起的分辨率损失,FCN在其下采样和上采样路径之间引入跳跃连接。跳过连接可帮助上采样路径从下采样图层恢复细粒度信息。 在为语义分割目的而扩展为FCN的CNN体系结构中,残差网络(ResNets)[11]提供了一个有趣的案例。ResNet的设计目的是通过引入残差块来简化非常深的网络(数百层)的训练,该残差块对两个信号进行求和:输入的非线性变换及其同一性映射。身份映射通过快捷连接实现。ResNet已经被扩展为FCN[4,8],在不同的分割基准中产生了非常好的结果。ResNet并入了到FCN的附加路径(快捷路径),因此增加了分段网络内的连接数量。这条附加的捷径已被证明不仅可以提高分割精度,还可以帮助网络优化过程,从而加快训练的收敛速度[8]。 最近,在[13]中引入了一种新的CNN架构,称为DenseNet。DenseNet是由密集块和池化操作构建的,其中每个密集块都是先前特征地图的迭代连接。该体系结构可以被视为ResNet[11]的扩展,其执行先前特征映射的迭代求和。然而,这一小的修改有一些有趣的含义:(1)参数效率,DenseNets在参数使用方面更有效;(2)隐式深度监督,DenseNets由于到体系结构中所有特征地图的路径较短(类似于深度监督网络[18])而执行深度监督;以及 (3)特征重用,所有层都可以很容易地访问它们之前的层,从而很容易重用来自先前计算的特征图的信息。DenseNet的特性使其非常适合语义分割,因为它们自然会导致跳过连接和多尺度监控。 在本文中,我们通过增加一条上采样路径来将DenseNets扩展为FCNs,以恢复全输入分辨率。天真地构建上采样路径将导致在Softmax层之前具有非常高分辨率的大量难以计算的特征地图。这是因为要将高分辨率特征地图与大量输入滤波器(来自下面的所有层)相乘,导致非常大量的计算量和参数数量。为了减轻这种影响,我们只对前一个密集块创建的特征地图进行上采样。这样做允许在上采样路径的每个分辨率上具有与合用层数无关的多个密集块。此外,在给定网络体系结构的情况下,上采样的密集块将包含在相同分辨率的其他密集块中的信息组合在一起。更高分辨率的信息通过下采样和上采样路径之间的标准跳过连接来传递。我们在两个具有挑战性的城市场景理解基准(Camvid[2]和GaTech[22])上对我们的模型进行了评估,并通过改进最新技术确认了DenseNets在语义分割方面的潜力。 因此,本文的贡献可以概括为以下几点:
我们仔细地将DenseNet架构[13]扩展到用于语义分割的完全卷积网络,同时缓解了特征图爆炸。我们强调所提出的从密集块构建的上采样路径比具有更多标准操作的上采样路径(如[27]中的上采样路径)性能更好。我们表明,这样的网络可以在不使用预先训练的参数或任何进一步的后处理的情况下,在城市场景理解的标准基准上取得比目前最先进的结果更好的结果。语义分割的最新进展致力于通过以下方式改进体系结构设计:(1)改进上采样路径并增加FCN内的连通性[27,1,21,8];(2)引入模块以考虑更广泛的上下文理解[36,5,37];和/或(3)赋予FCN体系结构提供结构化输出的能力[16,5,38]。 首先,在文献中已经提出了不同的方案来解决FCN的上采样路径中的分辨率恢复;从简单的双线性插值[10,20,1]到更复杂的算子,如解合[1,21]或转置卷积[20]。还采用了从下采样到上采样路径的跳过连接,以允许更精细的信息恢复[27]。最近,[8]对用于语义分割的身份映射[11]和长跳过连接[27]的组合进行了彻底的分析。 其次,将更大的上下文引入语义分割网络的方法包括[10,36,5,37]。在[10],计算非监督全局图像描述符,并将其添加到每个像素的特征映射中。在[36]中,递归神经网络(RNNs)被用来通过在水平和垂直两个方向上扫描图像来检索上下文信息。在[5]中,膨胀卷积被引入作为后期CNN汇聚图层的替代方案,以在不降低图像分辨率的情况下捕捉更大的背景。本着同样的精神,[37]建议为FCN提供一个上下文模块,该模块构建为一堆扩展的卷积层,以扩大网络的视野。 第三,条件随机场(CRF)长期以来一直是加强分割输出结构一致性的流行选择。最近,全连接的CRFs[16]已被用于包括FCN[5]的输出的结构特性。有趣的是,在[38]中,RNN已被引入近似CRF优化的平均场迭代,从而允许FCN和RNN的端到端训练。 最后,值得注意的是,当前用于语义分割的最先进的FCN架构通常依赖于预先训练的模型(例如,VGG[29]或ResNet101[11])来改进其分割结果[20,1,4]。
图2.一个由4层组成的致密块的示意图。将第一层应用于输入以创建连接到输入的k个特征地图。然后应用第二层来创建另外k个特征地图,这些特征地图再次连接到先前的特征地图。该操作重复4次。块的输出是4个图层的输出的串联,因此包含4∗k个要素地图如第1节所述,FCN是从下采样路径、上采样路径和跳过连接构建的。通过重复使用要素地图,跳过连接可帮助上采样路径从下采样路径恢复空间详细信息。我们的模型的目标是通过扩展更复杂的DenseNet体系结构来进一步开发特征重用,同时避免在网络的上采样路径上的特征爆炸。 在这一部分中,我们将详细介绍所提出的语义分割模型。首先,我们回顾了最近提出的DenseNet体系结构。其次,介绍了这种新型上采样路径的结构,并讨论了它的优点。天真的DenseNet扩展和更经典的架构。最后,我们将详细介绍第4节中使用的主要体系结构。
设 x l x_{l} xl是 l t h l^{th} lth的输出。在标准cnn中, x l x_{l} xl通过将非线性变换 H l H_{l} Hl应用于前一层 x l − 1 x_{l-1} xl−1的输出来计算
x l = H l ( x l − 1 ) . x_{l}= H_{l}(x_{l-1}). xl=Hl(xl−1). 其中,H通常定义为卷积,然后是整流器非线性(RELU),并且通常会丢失[30]。 为了简化非常深的网络的训练,ResNets[11]引入了残差块,该残差块将输入到层的输出的身份映射相加。由此产生的输出 x l x_{l} xl变成 x l = H l ( x l − 1 ) + x l − 1 . x_{l}= H_{l}(x_{l-1})+x_{l-1}. xl=Hl(xl−1)+xl−1. 允许重复使用特征并允许梯度直接流向更早的层。在这种情况下,H被定义为由批归一化(BN)[14]、随后是RELU和卷积组成的块的重复(2或3次)。
为了进一步推动这一想法,DenseNets[13]设计了一种更复杂的连接模式,它以前馈方式迭代地串联所有的特征输出。因此, l t h l^{th} lth的输出被定义为
其中[…]。表示串联操作。在这种情况下,H被定义为BN,后跟RELU,即卷积和丢弃。这种连通模式极大地鼓励了功能的重用,使体系结构中的所有层都能接收到直接的监控信号。每一层的输出维度具有k个特征图,其中k(以下称为生长速率参数)通常被设置为小值(例如k=12)。因此,DenseNet中的特征映射的数量随着深度线性增长(例如,在‘层’之后,输入[x l−1,x l−2,…,x0]将具有l×k个特征映射)。 为了降低特征地图的空间维数,引入了向下过渡。这种变换由1×1卷积(它保留了特征地图的数量)和随后的2×2合并操作组成。 在本文的其余部分中,我们将把密集块称为以给定分辨率创建的新功能地图的串联。图2显示了密集块构造的示例。从具有m个特征图的输入x0(向下过渡的输入图像或输出)开始,块的第一层通过应用H1(X0)来生成维度k的输出x1。然后,这些k个特征地图通过拼接([x1,x0])堆叠到前m个特征地图,并用作第二层的输入。同样的操作重复n次,产生具有n×k个特征图的新的密集块。
3.1节中描述的DenseNet体系结构构成了我们的FC-DenseNet(FC-DenseNet)的下采样路径。注意,在下采样路径中,特征数量的线性增长通过在汇集操作之后每个特征地图的空间分辨率的降低来补偿。下采样路径的最后一层称为瓶颈。 为了恢复输入空间分辨率,FCN引入了由卷积、上采样操作(转置卷积或解池操作)和跳过连接组成的上采样路径。在FC-DenseNets中,我们用稠密块和上采样操作来代替卷积操作,称为上过渡。向上过渡模块由对先前特征地图进行上采样的转置卷积组成。然后,将上采样的特征映射连接到来自跳过连接的特征映射,以形成新的密集块的输入。由于上采样路径增加了特征地图的空间分辨率,因此特征数目的线性增长将对存储器要求太高,特别是对于在Pre-Softmax层中的全分辨率特征。 为了克服这一限制,密集块的输入与其输出不级联。因此,转置卷积仅应用于由最后一个密集块获得的特征映射,而不应用于到目前为止串联的所有特征映射。最后一个密集块以相同的分辨率汇总所有先前的密集块中包含的信息。请注意,由于池化操作,早期密集数据块中的某些信息会在向下转换过程中丢失。然而,此信息在网络的下采样路径中可用,并且可以通过跳过连接传递。因此,在给定分辨率下使用所有可用的特征映射来计算上采样路径的密集块。图1详细说明了这个想法。 因此,我们的上采样路径方法允许我们构建非常深的FC-DenseNet,而不会导致要素地图爆炸。实现上采样路径的另一种方式是执行连续的转置卷积,并且以U-NET[27]或类似FCN[20]的方式用来自下采样路径的跳跃连接来补充它们。这一点将在第4节中进一步讨论。
在本小节中,我们将详细介绍第4节中使用的主要体系结构FCDenseNet103。 首先,在表1中,我们定义了密集块层、架构的向下过渡和向上过渡。致密块层由BN、RELU、3×3相同的卷积(无分辨率损失)和丢弃(概率p=0.2)组成。层的生长速率设置为k=16。向下过渡由BN、然后是RELU、1×1卷积、p=0.2的丢弃和大小为2×2的不重叠的最大合并组成。向上过渡由3×3的转置卷积和步长为2的转置卷积组成,以补偿合并操作。 其次,在表2中,我们总结了所有Dense103层。该架构由103个卷积层构成:第一个卷积层位于输入端,38个位于下采样路径,15个位于瓶颈,38个位于上采样路径。我们使用5个向下过渡(TD),每个都包含一个额外的卷积,以及5个向上过渡(TU),每个都包含一个转置的卷积。网络中的最后一层是1x1卷积,然后是Softmax非线性,以提供每个像素的每类分布。 值得注意的是,如第3.2节中所讨论的,建议的上采样路径适当地缓解了DenseNet特征地图爆炸,导致合理的Pre-Softmax特征地图数量为256。 最后,通过最小化像素化交叉熵损失对模型进行训练。
我们在两个城市场景理解数据集上对我们的方法进行了评估:CamVid[2]和GaTech[22]。我们从头开始训练我们的模型,没有使用任何额外的数据或后处理模块。我们使用并集交集(IOU)度量和全局精度(数据集上的像素精度)来报告结果。对于给定的c类、预测(Oi)和目标(Yi),IoU定义为
其中∧是逻辑与运算,而∨是逻辑或运算。我们通过对数据集的所有像素i求和来计算IOU。
我们使用HeUniform[12]初始化我们的模型,并用RMSprop[33]训练它们,初始学习率为1e−3,每个历元之后的指数衰减为0.995。所有模型都是根据随机裁剪和垂直翻转增强的数据进行训练的。对于所有的实验,我们用1e−4的全尺寸图像和学习率对我们的模型进行微调。我们使用验证集来提前停止训练和微调。我们监测平均借条或平均准确率,并使用100的耐心(50在微调期间)。 我们将我们的模型正规化,权重衰减为1e−4,辍学率为0.2%。对于批次标准化,我们在训练、验证和测试时使用当前批次统计数据。
表2.我们实验中使用的FC-DenseNet103模型的体系结构详细信息。该模型由103层卷积层构成。在该表中,我们使用以下符号:DB表示密集块,TD表示向下过渡,TU表示向上过渡,BN表示批量归一化,m对应于块末尾的特征地图总数。C代表班级数。CamVid1[2]是用于城市场景理解的全分割视频的数据集。我们使用了文献[1]中的分裂和图像分辨率,其中367帧用于训练,101帧用于验证,233帧用于测试。每个帧的大小为360×480,其像素被标记为11个语义类别。我们的模型用224×224作物和3批次大小进行训练,最后用全尺寸图像对模型进行精调。 在表3中,我们报告了三个网络的结果,分别为:(1)56层(FC-DenseNet56),每个密集块4层,增长率为12;(2)67层(FCDenseNet67),每个密集块5层,增长率为16;以及(3)103层(FC-DenseNet103),增长率k=16(有关详细信息,请参阅表2)。我们还在上采样路径中使用标准卷积而不是密集块来训练体系结构(经典上采样)。在后一种体系结构中,我们在每个分辨率级别使用3个卷积,分别使用512、256、128、128和64个滤波器,如[27]中所示。结果表明,提出的上采样路径w.r.t具有明显的优越性。经典的一种,持续显著提高所有班级的欠条。特别是,我们观察到无代表性的类别显著受益于FC-DenseNet架构,即标志、行人、栅栏、骑自行车的人体验到了关键的性能提升(从15%到25%不等)。 不出所料,当将FC-DenseNet56或FCDenseNet67与FC-DenseNet103进行比较时,我们看到该模型具有更多的深度和更多的参数。 与其他方法相比,我们证明了FCDenseNet架构达到了最先进的水平,使用了10倍以上的参数改进了模型。值得一提的是,我们的小型型号FC-DenseNet56的性能已经超过了流行架构的100倍以上。 值得注意的是,CamVid中的图像对应于视频帧,因此,数据集包含时间信息。一些最先进的方法,如[17],将长程时空正则化合并到FCN的输出以提高其性能。我们的模型能够超越这种最先进的模型,而不需要任何时间平滑。然而,任何后期处理的时间正则化都是对我们的方法的补充,并且可以带来额外的改进。 与目前大多数最先进的方法不同,FCDenseNets没有在像ImageNet这样的大型数据集上进行过预训练[6],很可能会从这种预训练中受益。最近的研究表明,深度网络在对自然图像以外的数据(如视频游戏[26,28]或剪贴画[3])进行预先训练时,也可以提高其性能,这是一个值得探索的有趣方向。 图3显示了CamVid数据集上的一些定性分割结果。定性的结果与定量的结果很好地一致,显示出尖锐的分段,这说明了许多细节。例如,树木、柱杆、人行道和行人看起来都画得很好。在常见错误中,我们发现,在树上发现的细微细节可能与柱杆混淆(见第五排),公共汽车和卡车可能与建筑物(第四排)混淆,商店标志可能与路牌(第二排)混淆。
Gatech2[23]是一个几何场景理解数据集,包含63个用于训练/验证的视频和38个用于测试的视频。每个视频有50到300帧(平均190帧)。为每一帧提供逐个像素的分割图。数据集中有8个类别:天空、地面、建筑、多孔(主要是树木)、人类、汽车、垂直混合和主要混合。该数据集最初是为了学习室外视频场景的3D几何结构而构建的,该数据集的标准度量是平均全局精度。 我们使用在CamVid上预先训练的FC-DenseNet103模型,去掉Softmax层,对它进行了10个历元的微调,作物为224×224,批次大小为5。考虑到GaTech帧的高冗余度,我们只使用10帧中的1帧来训练该模型,并在所有全分辨率测试集帧上对其进行了测试。 在表4中,我们报告了所获得的结果。我们将结果与文献[34]中最近提出的视频分割方法进行了比较,后者使用2D和3D卷积报告了其体系结构的结果。基于帧的2D卷积没有时间信息。如表4所示,与以前发表的2D卷积方法相比,我们的方法在全局精度上有了23.7%的显著提高。此外,我们的模型(只用2D卷积训练)也比基于时空3D卷积的最先进模型(改进3.4%)取得了显著的改进。
我们的完全卷积DenseNet隐含地继承了DenseNet的优势,即:(1)参数效率,因为我们的网络比为Camvid数据集公布的其他分段体系结构具有更少的参数;(2)隐式深度监督,我们尝试在没有明显性能变化的情况下包括对网络不同层的额外监督;以及(3)特征重用,因为所有层都可以很容易地访问它们之前的层,这不仅是因为在密集块中迭代连接特征地图,而且还因为跳过了强制下采样和上采样路径之间连接的连接。 最近的证据表明,ResNet的行为类似于相对较浅的网络的集合[35]:“残差网络通过引入可以在很深的网络范围内携带梯度的短路径来避免梯度消失的问题”。在FC-DenseNet的背景下重新审视这一发现将是很有趣的。由于密集块中的迭代特征图拼接,梯度被迫通过不同深度(具有不同数目的非线性)的网络。因此,得益于智能连接模式,FC-DenseNet可能代表了可变深度网络的集合。这种特定的集成行为对于语义分割模型非常有趣,在语义分割模型中,贯穿模型的不同路径的集成将捕捉城市场景中对象的多尺度外观。
为了解决语义图像分割问题,本文对DenseNets进行了扩展,并将其完全卷积。DenseNets背后的主要思想被捕获在密集的块中,这些块执行功能地图的迭代连接。我们设计了一条上采样路径,缓解了DenseNet的天真扩展中出现的特征地图的线性增长。 得到的网络非常深(从56层到103层),并且具有很少的参数,大约减少了10倍的w.r.t。最先进的模型。此外,它提高了在具有挑战性的城市场景理解数据集(CamVid和GaTech)上的最新性能,既不需要额外的后处理、预训练,也不包括时间信息。