Abstract
D-LinkNet语义分割神经网络它采用encoder-decoder的结构、空洞卷积(dilated convolution)和预训练编码器(pretrained encoder)来完成道路提取任务。该网络采用LinkNet结构,中心部分具有空洞卷积层(dilated convolution)。Linknet结构在计算和存储方面是高效的。空洞卷积是一种在不降低特征图分辨率的前提下,扩大特征点感受野(receptive field)的有效工具。
在CVPR DeepGlobe 2018道路提取挑战赛中,我们在验证集和测试集上的最佳IoU分数分别为0.6466和0.6342。
1.Introduction
近年来提出的卫星图像道路提取方法:
- 生成道路像素级标记(generating pixel-level labeling of roads)
- 检测道路骨架(detecting skeletons of roads)
以上两者的结合(a combination of both)
D-LinkNet解决的问题:
- 由于输入的图像是高分辨率的,网络应有大的接受域(receptive field)能够覆盖整个图像。
- 由于卫星图像中的道路细长、复杂、覆盖了图像中的一小部分,所以网络保留了详细的空间信息
- 考虑了道路具有的天然连通性(natural connectivity)和大跨度(long span)
D-LinkNet采用LinkNet【Linknet: Exploiting encoder representations for efficient semantic segmentation】作为骨干网络,并且在中间添加了空洞卷积,它结合了跳跃连接、残差块和encoder-decoder结构的优点,最初的LinkNet使用resnet18作为其编码器。
- 空洞卷积的作用:在不降低特征图的分辨率的前提下调整特征点的接收域(receptive field)的有效方法,最近被广泛使用。
- 空洞卷积有级联模式(cascade mode: Multi-scale context aggregation by dilated convolutions)和并行模式(parallel mode: Encoder-decoder with atrous separable convolution for semantic image segmentation)两种模式,他们都有很强的提高分割精度的能力,我们使用了这两种模式的优点,使用快捷连接(shortcut connection)来组合这两种模式
我们使用了ImageNet预训练权重来初始化网络
2.Method
D-LinkNet结构。每个蓝色矩形块表示多通道特征图。A部分是D-LinkNet的编码器。D-LinkNet使用ResNet34作为编码器。C部分是D-LinkNet的解码器,设置与LinkNet解码器相同。原来的LinkNet只有部分A和部分C。D-LinkNet有一个额外的部分B,可以扩大接收域(receptive field),并保留详细的空间信息。除了最后一个使用sigmoid激活的卷积层外,每个卷积层后面跟着一个ReLU激活。
2.1 Network Architecture
在DeepGlobe道路提取挑战中,image和mask的原始大小为1024×1024,并且大多数图像中的道路跨越整个图像。尽管如此,道路具有一些自然属性,如连通性、复杂性等。考虑到这些特性,设计D-LinkNet接收1024×1024幅图像作为输入,并保留详细的空间信息。
如图1所示,D-LinkNet可以分为A、B、C三部分,分别命名为encoder、center part和decoder。
D-LinkNet使用在ImageNet数据集上预先训练的ResNet34作为其编码器。ResNet34最初设计用于256×256分辨率图像的分类任务,但在这个挑战中,任务是从1024×1024的高分辨率卫星图像中分割道路。考虑到道路的狭窄(narrowness)、连通性(connectivity)、复杂性(complexity)和大跨度(long span),重要的是增加网络中心部分的特征点的接受域,并保持详细的信息。使用合用层可以成倍增加特征点的接收场,但可能会降低中心特征图的分辨率,降低空间信息。如一些最先进的深度学习模型所示,空洞卷积层(dilated convolution layer)可以是池化层的理想选择。D-LinkNet使用了几个空洞卷积层,中间有跳跃连接。
D-LinkNet的中心膨胀部分可以展开为这种结构。它在级联模式和并行模式下都包含了空洞卷积,并且每条路径的接收域是不同的,因此网络可以结合不同尺度的特征。从上到下,感受野分别为31、15、7、3、1。
空洞卷积可以级联方式叠加。如[Multi-scale context aggregation by dilated convolutions]图1所示,如果叠加的空洞卷积层的扩张率分别为1、2、4、8、16,则每层的感受野(receptive field)为3、7、15、31、63。编码器部分(RseNet34)具有5个下采样层,如果一个大小为1024×1024的图像通过编码器部分,则输出特征图的大小为32×32。在这种情况下,D-LinkNet在中心部分使用空洞卷积层,扩张率为1、2、4、8,因此最后一个中心层上的特征点在第一个中心特征图上看到31×31个点,覆盖第一个中心特征图的主要部分。尽管如此,D-LinkNet还是利用了多分辨率的特点,D-LinkNet的中心部分可以看作是图2所示的并行模式。
D-LinkNet的解码部分与原LinkNet[15]保持一致,计算效率高。解码部分采用空洞卷积[27]层进行上采样,将特征图的分辨率从32×32恢复到1024×1024
2.2 Pretrained Encoder
迁移学习(Transfer)是一种有效的计算机视觉方法,特别是在训练图像数量有限的情况下。利用ImageNet[23]的预训练模型作为网络的编码器是语义分割领域广泛应用的一种方法[16,24]。在DeepGlobe道路提取挑战中,我们发现迁移学习可以加速我们的网络收敛,并使其具有更好的表现并且几乎没有额外的代价。
3.Experiments
Pytorch
4 NVIDIA GTX1080 GPUs
3.1 Dataset
DeepGlobe Road Extraction
3.2. Implementation details
在训练阶段,我们没有使用交叉验证(我们花了大约40个小时来训练一个模型,如果我们训练5-fold coss的模型,我们将花费200个小时来尝试一个架构(对我们来说太长了),所以我们放弃了交叉验证。)
我们在所有6226个标签图像上训练了模型,并且只使用组织者提供的1243个验证图像进行验证。这可能会导致训练集的过度使用,因此我们进行数据扩充,包括水平翻转、垂直翻转、对角线翻转、的颜色抖动、图像移动、缩放。
对于我们的最佳模型,我们使用BCE(二进制交叉熵)+骰子系数(dice coefficient)损失作为损失函数,并选择Adam[29]作为优化器。学习率最初设定为2e-4,每 3次减少5倍,同时观察到训练损失缓慢下降。训练阶段的batch size固定为4,160 epoch。
在预测阶段进行测试时间增强,包括图像水平翻转、图像垂直翻转、图像对角线翻转(每幅图像预测2×2×2=8次),然后将输出还原为与原始图像匹配。
然后,我们平均每个预测的概率,使用0.5作为预测阈值来生成二进制输出。
3.3 Results
在DeepGlobe道路提取挑战中,我们训练了一个具有7个池化层的深度Unet,它可以覆盖1024×1024大小的图像作为我们的基准模型,并训练了一个具有预训练encoder但中心部分没有空洞卷积的LinkNet34。不同模型的性能见表1。我们发现预先训练过的LinkNet34比从零开始训练的Unet要好一点。我们评估了Unet预测的mask 的IoU和LinkNet34预测的mask的IoU,以及发现在验证集上,这两个模型的平均IoU为0.785,我们认为这是一个相当低的分数。
我们认为这两个模型在不同方面可能得到几乎相同的分数。我们的基准Unet有更大的感受野,但没有预训练的编码器,中心特征图的分辨率为8×8,太小,无法保存详细的空间信息。LinkNet34具有预训练的编码器,使得网络具有更好的表现力,但它只有5个下采样层,很难覆盖1024×1024幅图像。在回顾这两个模型的输出时,我们发现,尽管LinkNet34在判断一个对象是否为道路时比Unet好,但它存在道路连通性问题。一些例子如图3所示。通过在中间加入带捷径(shortcut)的空洞卷积,D-LinkNet可以获得比LinkNet更大的感受野(receptive field),同时保留详细信息,从而缓解了LinkNet34中出现的道路连通性问题。
3.4 Analysis
在DeepGlobe道路提取挑战赛中,我们使用了几种方法,并做了一些实验来找出每种方法的贡献。最有贡献的方法是测试时间增强(TTA:test time augmentation),它贡献了大约0.029个点。使用BCE+DC损失优于BCE+IoU损失约0.005分。预训练编码器贡献约0.01点。中心部分的空洞卷积贡献约0.011点。Ambitions的数据增强比正常的数据增强效果好,不存在颜色抖动(color jittering)和0.01点左右的形状变换。
4.Conclusion
D-LinkNet仍然存在识别错误和道路连通性问题,此外,虽然所提出的D-LinkNet架构最初是为道路分割任务而设计的,但我们预计它也可能在其他分割任务中有用,我们计划在未来的研究中对此进行研究。