参考链接:
北邮夺冠CVPR 2018 DeepGlobe比赛,他们是这样做卫星图像识别的
论文链接:D-LinkNet: LinkNet with Pretrained Encoder and Dilated Convolution for High Resolution Satellite Imagery Road Extraction
Github地址 Python2.7 pytorch0.2.0
D-LinkNet: LinkNet with Pretrained Encoder and Dilated Convolution for High Resolution Satellite Imagery Road Extraction
摘要: 语义分割神经网络,LinkNet 架构,空洞卷积(膨胀卷积)
1.Introduction:
大多数的图像道路提取方法可以分为三类:1.生成道路的像素级别的标记。2.检测道路的骨架。3. 前两种方法的结合。
我们把道路提取任务作为一个二值语义分割任务,去产生道路的像素级的标签。
a binary semantic segmentation task to generate pixel-level labeling of roads
遥感图像的分割具有挑战性:1.高分辨率,就要求神经网络需要有很大的感受野,能包含整张图片。2.卫星图像中的道路通常细长,复杂,覆盖整个图像的一小部分。3. 道路自然连通,跨度大。
D_link_net 简介
D-LinkNet使用带有预编码器的Linknet 作为其骨干网络,并在中心部分具有附加的扩展卷积层(Dilated convolution)。 Linknet是一种有效的语义分段神经网络,它具有跳跃连接,残差块和编码器-解码器体系结构的优势。高分辨率并且运行很快。
在不降低特征图分辨率的前提下,扩展卷积是调整特征点感受野( receptive fields)的有效方法。
Transfer learning 迁移学习是在数据量有限的情况下提高网络表现的有效方式。 D_linknet的encoder是用Imagenet预训练过的ResNet34结构。
2. Method
2.1. Network Architecture
比赛中,提供的图像和mask的大小为 1024×1024, D-LinkNet 被设计为接收 1024×1024大小的图片作为输入,并且保存了详细的空间信息。 D-LinkNet分为三部分 A, B, C三部分, 分别是 encoder, center part 和 decoder 。
Linknet只有A,C的机构,D_linknet额外增加了B(也就是中心部分),用于扩大接受范围,保存详细的空间信息。
考虑到之前讨论的道路的遥感图像分割的挑战,增加网络Center part中心部分的特征点的感受野,并保留详细信息是非常重要的。使用池化层可以成倍增加特征点的感受野,但可能会降低特征图的分辨率,并丢失空间信息。因此空洞卷积层是池化层的理想的代替选择。
Dilated convolution layer can be desirable alternative of pooling layer.
D-LinkNet uses several dilated convolution layers with skip connections in the center part.
Center part的结构展开图:
网络的中心部分可以展开如上图,图中所示的并联结构可以有效的融合多尺度特征。Dilated-convolution可以有效扩张感受野,从上到下对应的感受野分别是31、15、7、3、1,最后将每条支路的结果相加,便得到融合的特征。 Dilated convolution有两种类型:级联模式和并行模式(cascade mode and parallel mode)。center part包含了级联模式和并行模式下的空洞卷积,并且每个路径的感受野不同,因此网络可以结合不同尺度的特征。
其中,1,2,4,8代表了dilated rate。接下来简单的介绍空洞卷积,如何扩展感受野。
Dilated convolution: 空洞卷积(膨胀),在标准的 convolution map 里注入空洞,以此来增加 感受野。dilation rate 指的是kernel的间隔数量(e.g. 正常的 convolution 是 dilatation rate 1)。
pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先减小再增大尺寸的过程中,肯定有一些信息损失掉了。dilated conv,不通过pooling也能有较大的感受野看到更多的信息。
dilated的好处是不做pooling损失信息的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。
Dilated convolution参考链接
D_Linknet的解码器部分采用转置卷积层进行上采样,将feature map的分辨率从32×32恢复到1024×1024。
3.实验部分
在DeepGlobe Road Extraction Challenge中,使用PyTorch作为深度学习框架。所有模型都在4台NVIDIA GTX1080 gpu上训练。
3.1 dataset
DeepGlobe Road Extraction dataset包括6226张训练图像、1243张验证图像和1101张测试图像,分辨率为1024x1024。将数据集表示为二值分割问题,其中道路标记为前景,其他对象标记为背景。
3.2. Implementation details
数据增强: data augmentation in an ambitious way, including horizontal flip, vertical flip, diagonal flip, ambitious color jittering, image shifting, scaling.
训练模型,Loss用二值交叉熵和Dice coefficient loss。
we used BCE (binary cross entropy) + dice coefficient loss as loss function and chose Adam as our optimizer.
3.3 结果
用Deep U-net作为baseline model ,还测试了预训练过的LinkNet34,再加上我们自己的D-Linknet 。
U-net有把背景识别为道路的错误,LinkNet34在道路连续性上存在不足。D-LinkNet避免了这两种错误。
4.结论
D-LinkNet在一定程度上可以处理道路的窄性、连通性、复杂性和大跨度等特性。
D-LinkNet can handle roads’ properties such as narrowness, connectivity, complexity and long span to some extent.