近年来, 我国对遥感技术的研究力度加大, 遥感技术飞速发展, 遥感图像的可用性和普及性得到了极大的提高[1]. 遥感图像通常包含道路、建筑、水体、植被等具有丰富细节信息的地物目标, 对各类地物目标信息的提取为城市规划、环境保护、城市动态监测、灾后救援、森林资源监测等领域提供了重要的支撑[2]. 遥感图像由于光谱分辨率和空间分辨率提升, 不仅所包含的信息量大大增加, 同时各种语义特征更加复杂, 可以说高分辨率遥感图像语义分割成为图像分割领域最具挑战的难题之一.
深度学习在视觉应用中表现优异, 利用深度学习的自动特征学习方法已经成为一种可行的遥感图像语义分割方法. Long等[3]首次提出了以端到端形式进行语义分割的全卷积神经网络(fully convolutional networks, FCN), 该模型通过卷积进行特征提取, 并使用反卷积对最后一个特征图进行上采样使其恢复到输入图像大小. 但是连续的下采样导致细节丢失并且没有考虑像素与像素之间的联系, 分割效果不理想. 虽然FCN不够完美, 但是其全新的思路开辟了一个新的语义分割方向, 对这个领域的影响是十分巨大的. 此后出现的许多经典网络都是受FCN的启发设计的, 例如SegNet[4]、U-Net[5]、PSPNet[6]、Deeplabv3+[7]等系列网络, 这些网络在地物分割领域也得到了广泛的应用. 苏健民等[8]提出了一种基于U-Net改进的高分辨率遥感图像语义分割方法, 增加卷积层的数量以实现更加精确的像素分类问题, 后端采用集成学习策略优化分割结果, 然而在操作上略显繁琐. 张哲晗等[9]对SegNet进行了改进, 去除了部分池化减少空间信息的损失, 通过加深过滤器深度增强语义分割的时效性, 实现了农村遥感图像中地物的精准提取, 但边缘不太平滑. 朱戎等[10]采用Canny算法提取物体边界并将其作为网络训练的监督约束, 使地物分割中的边缘分割更加精细. 上述方法都取得了不错的精度, 然而庞大的架构和众多的参数都导致网络很难真正部署在要求低延迟、高响应率的实际应用中, 许多研究者们也在研究分割的实时性. 经典的轻量语义分割算法ENet[11]使用非对称的编码-解码结构, 通过限制下采样幅度极大地减少了计算量, 然而感受野太小不足以观察到全局目标信息. DFANet[12]通过轻量级网络Xception[13]显著地降低了计算复杂度, 将高层特征重复利用, 增强了特征的表现能力. 上述轻量级网络推理速度快、参数量少, 但是精度依然和非轻量级网络有差距, 还有很大的提升空间.
针对以上问题, 本文在保证参数量小、模型轻便的前提下, 以提高模型分割效果为目标, 提出了一种为高分辨率无人机遥感影像设计的轻量级遥感地物分割网络LRSS-Net (lightweight remote sensing segmentation network).
1 LRSS-Net模型本文提出的LRSS-Net主要包括3个部分: 初步特征提取模块、特征聚合模块、特征解码器模块, 模型基础架构如图1所示.
为了降低常规分类网络带来的爆炸式增长的计算量, 本文使用轻量级网络MobileNetV2[14]进行初步特征提取, 去除最后的1×1卷积层、平均池化层和全连接层, 为了减少计算成本以及边缘形状等空间信息的丢失只进行4次下采样. 特征聚合模块采取密集连接将初步特征提取网络的不同深度的细节与语义信息层层结合, 产生阶段级的细化特征, 提高模型的学习能力的同时增大了感受野, 得到了丰富的上下文信息. 特征解码器模块, 使用双线性插值与反卷积交替进行上采样逐次还原图像的分辨率, 在这个过程中与特征聚合模块对应大小的特征通过特征融合优化策略进行通道级别的特征融合.
1.1 初步特征提取模块MobileNetV2在2018年被Google团队所提出[14], 它是专门为图像分类任务而设计, 可以用较少的运算量得到较高的精度, 因此本文将它用来进行初步特征的提取, 大幅度减少计算量.
如图1的初步特征提取模块, 由一个二维卷积和17个Bottleneck层组成. 其中的Bottleneck称之为倒残差卷积块, 包含3个操作, 首先将输入通过一个卷积核大小为1×1的卷积进行升维, 再经过3×3的深度可分离卷积(depthwise separable convolution, DWConv)提取特征, 最后使用1×1的卷积降维. 相比于普通卷积, 深度可分离卷积在减少了计算成本和参数量的同时, 还保持了较好的性能. 它的核心思想是把一个普通的卷积分成了逐深度卷积与逐点卷积. 逐深度卷积是对每个通道单独卷积, 输入输出通道数不变. 逐点卷积就是执行1×1卷积. 每个卷积后面紧跟着批归一化(batch normalization, BN)以及ReLU6激活函数, 使网络模型快速收敛.
根据256×256的输入, 得到4个不同语义级别的初步特征图
低级特征具有丰富的空间细节信息, 但是缺乏语义信息, 高级特征语义信息丰富却又缺少空间细节信息, 多次下采样不可避免地会损失部分空间细节信息, 导致无法判断大规模的各种物体和精确的结构边缘. 为了解决这个问题, 受文献[15]启发构建了空间信息嵌入分支(spatial information embedding branch, SIEB), 将低级特征空间信息细节嵌入高级特征, SIEB的详细设计如图2所示.
该单元有两个输入, 浅层特征图
$ {F_{2i}^{l + 1}} = F^l_{2i} \times MaxPool(Conv(F^l_i)) $ | (1) |
其中, i表示下采样的倍数, l表示细化后的第几层特征, MaxPool表示卷积核为2×2的最大池化, Conv表示3×3卷积.
特征聚合模块如图1所示, 首先将初步特征提取模块得到的4个特征映射
解码器是一个十分重要的环节, 某些网络的解码部分是将编码器的输出直接上采样到原图大小, 这样的做法导致噪声被放大留下了更多的细节, 但是也带来了更大的负面干扰, 影响最终的分割效果, 因此本文以2倍为跨度来恢复空间维度. 如图1中最右端虚线框所示, 特征解码模块由多个特征融合优化单元(feature fusion optimization unit, FFOU)和一个1×1的卷积层组成, 是融合和优化的多次反复, 直至恢复原图大小.
U-Net网络的特点之一是采用了跳跃连接方式, 将深层的语义信息上采样后与浅层的位置信息按深度连接在一起. 本文借鉴了这种方法, 然后提出了一种优化方法, 更深层次的细化了每一层级的融合特征, 并在此基础上减少了计算量. 特征融合优化单元的结构如图3所示.
假设尺寸大小为W/2×H/2×C1的特征图I1和W×H×C2的特征图I2是相邻层级所提取的特征, 首先对特征图I1采取上采样操作使其与特征图I2的分辨率一致, 其输出与特征图I2在通道维度上进行串联融合, 然后使用3×3的深度可分离卷积对串联后的特征进行操作, 减少计算量的同时解耦特征深度信息与空间信息.
1.4 损失函数假设一个合适的损失函数不仅能加快训练速度使网络快速收敛, 还能获得更好的精度. 通过多次试验(见第2.4.2节), 损失函数最终选择多类别交叉熵(cross entropy loss, CE loss)和Dice loss的组合. CE loss、Dice loss和最终的损失函数分别由式(2)–式(4)所示.
$ {L_{{\rm{CE}}}} = - \sum\limits_{c = 1}^M {{y_c}{\rm{log}}({p_c})} $ | (2) |
$ {L_{{\rm{Dice}}}} = 1 - \frac{{2\displaystyle\sum\limits_{i = 1}^N {{y_c}{p_c}} }}{{\displaystyle\sum\limits_{i = 1}^N {({y_c}^2 + {p_c}^2)} }} $ | (3) |
$ Loss = \frac{{\displaystyle\sum\limits_{i = 1}^N {{L_{{{\rm{CE}}_i}}}} }}{N} + \frac{{\displaystyle\sum\limits_{c = 1}^M {{L_{{{\rm{Dice}}_c}}}} }}{M} $ | (4) |
其中, 每个像素点对应的交叉熵损失定义为LCE, 每个类别的Dice loss定义为LDice, 最终的损失定义为Loss, yc为某个类别的预测值, pc为某个类别的标签值, N为一张图像的总像素点, M为类别总数.
2 实验 2.1 数据源与预处理为了验证算法的有效性, 在2015年中国南方某城市无人机遥感图像数据集上展开了研究, 数据来源于CCF (China computer federation) 卫星影像的 AI 分类与识别大赛, 由5张带标注的高分辨率遥感图像组成, 其中尺寸最大为7969×7939, 最小为4011×2470. 空间分辨率为亚米级, 光谱为可见光频段. 将数据分为5类: 背景、植被、建筑、水体和道路.
由于该数据集的分辨率太高无法直接送入网络进行训练, 所以利用滑动窗口的思想对数据进行切割, 将图像以及标注图像切割成256×256大小, 使用数据增强策略增加数据量学习更多的特征, 提高网络的泛化能力, 噪声数据的增加也提高了网络的鲁棒性. 本文使用的数据增强方法包括旋转、镜像、加噪、饱和度增强、亮度增强、模糊操作等. 经过数据增强之后, 最终得到15000张尺寸为256×256的高分辨率遥感数据集. 实验将数据集按照9:1的比例进行划分, 即13500张图像作为训练集, 1500张图像作为测试集.
2.2 实验平台及训练策略训练基于PyTorch深度学习框架, GPU是NVIDIA TESLA P100.
在训练数据上进行100次迭代, 经过多次试验, 最终设置初始学习率为0.0001, 批尺寸为8; 使用Adam优化器进行权重更新, 动量(momentum)设置为0.9, 权重衰减(weight decay)设置为0.0005; 学习率调整策略采取StepLR有序调整方法, 每4个epoch进行一次学习率衰减, 衰减率为0.94. 在每一轮的迭代中利用验证集的损失和精度来衡量模型是否过拟合, 当验证集精度收敛时训练结束, 并且保存精度最好的模型.
2.3 评价指标本文使用以下3个指标对模型进行评估.
交并比(IoU)表示对某一类别真实值和预测值的交集与并集的比值. 如式(5)所示:
$ IoU = \frac{{{p_{ii}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} + \displaystyle\sum\limits_{j = 0}^k {{p_{ji}}} - {p_{ii}}}} $ | (5) |
平均交并比(MIoU)表示每一类别的IoU先求和再取均值. 如式(6)所示:
$ MIoU = \frac{1}{k}\sum\limits_{i = 0}^k {Io{U_i}} $ | (6) |
像素准确率(PA)表示正确预测类别的像素数与总像素的比率. 如式(7)所示:
$ PA = \frac{{\displaystyle\sum\limits_{i = 0}^k {{p_{ii}}} }}{{\displaystyle\sum\limits_{i = 0}^k {\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} } }} $ | (7) |
其中, k表示待预测的种类数, pii表示将第i类预测成第i类的像素数量, pij表示将第i类预测成第j类的像素数量, pji表示将第j类预测成第i类的像素数量.
2.4 实验结果 2.4.1 特征融合方式的选择各种网络常用add和Concat来整合特征图信息, add是特征图直接相加, 维度不会发生变化, 只是每一特征下的信息量增加了. 而Concat是通道数合并, 特征图的特征数增加了, 每一特征下的信息没有增加. 为探究不同融合方式的影响做了以下实验, 结果如表1所示.
从表1可以看出, Concat的分割精度优于add, 而使用了add的模型比Concat更轻便, 各有各的优点. 相比于add, Concat保存了更多特征信息, 为特征重用提供了可能, 所以本文最终选择了分割精度更高的Concat融合方式.
2.4.2 损失函数的选择为了验证不同的损失函数对分割效果的影响, 做了以下实验, 不同损失函数对比结果如表2所示.
在表2中, 可以很明显地看到, 当损失函数为Dice loss和CE loss的组合时, MIoU和PA优于其他损失函数, 这是因为二者的结合能够兼顾像素级的分类精度和图像前景的分割效果, 使模型可以更加稳定的训练, 从而获得更加精确的预测结果.
2.4.3 结构优越性对比实验基于CNN的语义分割的优点之一便是骨干网络可以随意更换, 不同的骨干网络提取特征的效果不一样. 为了定量、定性的评估, 将本文方法与U-Net、PSPNet、Deeplabv3+进行对比, 所有模型使用同一骨干网络, 即ImageNet上预训练的MobileNetV2. 表3为各模型在相同的骨干网络下的性能对比实验. 在表3中, LRSS-Net的IoU、MIoU、PA均高于以MobileNetV2为骨干网络的其他网络, 这表明LRSS-Net结构的有效性, 在遥感图像地物分割中具有很好的应用能力.
2.4.4 与各种经典网络对比实验
为进一步探究LRSS-Net与各种原始经典网络性能对比, 做了以下实验, 使用IoU、MIoU、PA、GFLOPs、参数量进行评估, GFLOPs表示浮点运算次数, 用来衡量模型复杂度, 各模型评价指标结果如表4所示.
从表4中可以看到, LRSS-Net在GFLOPs和参数量仅为14.01和3.48M的情况下, 在测试集上取得了88.01%的MIoU和93.7%的PA, 相比其他几个网络它表现出了更好的效果. 这是因为MobileNetV2网络在参数量、计算量方面做出了巨大贡献, 特征聚合模块能够帮助网络获得更多的上下文信息, 在保证计算量和参数量的前提下改善MobileNetV2网络因结构简单带来的性能损失. 虽然本文算法在GFLOPs和参数量上和ENet比较分别低了13.48和3.14M, 但是在MIoU和PA方面比ENet高了14.53%和9.57%, 显然LRSS-Net在速度和精度之间做到了最大化平衡.
将实验结果进行可视化, 通过图4可以更直观地感受到不同网络的分割效果. LRSS-Net基本能够准确识别出图像中各类别并且准确进行分割, 由于采用了高效的空间信息嵌入分支, 减少了空间信息的损失, 因此各个类别的边缘轮廓清晰流畅, DFANet、SegNet、ENet出现严重错误分割, 轮廓边缘线条粗糙, 整体分割效果较差. PSPNet和Deeplabv3+对道路的预测出现部分断续情况. 所有网络对于道路的预测效果在所有类别中是最差的, 这是因为道路是细长的跨度很大, 而感受野是正方形的, 正方形的感受野无法很好地契合目标形状, 不可避免地会引入很多无用的特征, 因此很容易将道路错分割为其他目标.
3 结束语
遥感图像分割是遥感图像分析中的一个重要步骤, 为了提高分类的效率以及准确率, 本文提出了一种轻量级遥感影像地物分割网络. 利用MobileNetV2轻便的特点, 极大地减少了参数量, 又引入SIEB增强了高级语义特征中的空间信息, 不同尺度特征密集连接得到丰富的上下文信息, 解码端与编码部分输出的特征逐层连接增强特征信息的传递性和利用率, 采取双线性插值、反卷积交替的上采样方式, 显著地提升了分割效果. 从实验结果可以看出, 道路、建筑这类目标分割困难, 分割效果相比于其他类别还有很大的上升空间. 后续将会对道路、建筑物进行针对性的研究, 为地物分割提供更有效的手段.
[1] |
巫兆聪, 胡忠文, 张谦, 等. 结合光谱、纹理与形状结构信息的遥感影像分割方法. 测绘学报, 2013, 42(1): 44-50. |
[2] |
徐誉远, 胡爽, 王本洋. 无人机遥感在我国森林资源监测中的应用动态. 林业与环境科学, 2017, 33(1): 97-101. DOI:10.3969/j.issn.1006-4427.2017.01.018 |
[3] |
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-651. DOI:10.1109/tpami.2016.2572683 |
[4] |
Badrinarayanan V, Kendall A, Cipolla R. SegNet: A deep convolutional encoder-decoder architecture for image segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(12): 2481-2495. DOI:10.1109/tpami.2016.2644615 |
[5] |
Ronneberger O, Fischer P, Brox T. U-Net: Convolutional networks for biomedical image segmentation. Proceedings of the 18th International Conference on Medical Image Computing and Computer-assisted Intervention. Munich: Springer, 2015. 234–241.
|
[6] |
Zhao HS, Shi JP, Qi XJ, et al. Pyramid scene parsing network. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 2881–2890.
|
[7] |
Chen LC, Zhu YK, Papandreou G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 833–851.
|
[8] |
苏健民, 杨岚心, 景维鹏. 基于U-Net的高分辨率遥感图像语义分割方法. 计算机工程与应用, 2019, 55(7): 207-213. DOI:10.3778/j.issn.1002-8331.1806-0024 |
[9] |
张哲晗, 方薇, 杜丽丽, 等. 基于编码-解码卷积神经网络的遥感图像语义分割. 光学学报, 2020, 40(3): 0310001. |
[10] |
朱戎, 叶宽, 杨博, 等. 基于改进DeeplabV3+的地物分类方法研究. 计算机科学, 2021, 48(S2): 382-385. DOI:10.11896/jsjkx.201100184 |
[11] |
Paszke A, Chaurasia A, Kim S, et al. ENet: A deep neural network architecture for real-time semantic segmentation. arXiv:1606.02147, 2016.
|
[12] |
Li HC, Xiong PF, Fan HQ, et al. DFANet: Deep feature aggregation for real-time semantic segmentation. Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019. 9514–9523.
|
[13] |
Chollet F. Xception: Deep learning with depthwise separable convolutions. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 1800–1807.
|
[14] |
Sandler M, Howard A, Zhu ML, et al. MobileNetV2: Inverted residuals and linear bottlenecks. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4510–4520.
|
[15] |
Zhang ZL, Zhang XY, Peng C, et al. ExFuse: Enhancing feature fusion for semantic segmentation. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 273–288.
|