街道场景图像语义分割[1]的准确性和处理速度对于自动驾驶[2]具有重要意义. 传统图像分割技术如边缘检测分割法[3]、区域分割法[4]、阈值分割法[5]等只能从图像中获取低级的语义信息, 存在无法划分多语义类别且分割精度低等缺陷.
近年来, 深度学习方法在图像语义分割任务中的应用使得图像分割的准确性得到较大提升. 2015年, Long等[6]提出全卷积网络(fully convolutional network, FCN), 该网络采用卷积层代替全连接层, 实现了端到端的预测, 在语义分割领域产生了重要影响. 为了解决FCN在分割结果精细度和边界连续性等方面存在的问题, Badrinarayanan等[7]在FCN的基础上提出SegNet, 该网络采用编解码结构, 其中编码网络部分用于提取图像的特征, 解码网络部分用于提取图像特征并恢复图像维度, 该网络可以在尽可能减少信息损失的前提下完成同尺度的输入输出. U-Net网络也是一种经典的编解码结构, 该网络是由Ronneberger 等[8]提出. 传统的编解码网络结构在下采样操作时容易失去图像的细节信息, 从而导致分割结果的边界模糊和细节丢失. 为了克服这个问题, U-Net网络采用了对称的“U型”结构, 并借助跳跃连接将不同层级的特征进行融合. U-Net网络最初被广泛用于医学图像分割任务, 之后在U-Net网络基础上进行了一系列改进措施. 例如U-Net++[9]引入了密集跳跃连接结构, 实现了更好的上下文感知能力, 但是没有关注关键特征信息, 并且对于街道场景语义分割来说模型的计算量过大. Attention U-Net[10]引入了注意力机制, 关注图像中关键区域的目标, 提高了分割结果的质量, 但是对浅层特征信息的提取较少.
ASPP模块和scSE模块在聚合图像多尺度特征方面和关注图像关键区域特征信息方面具有很好的效果. 注重捕捉图像的上下文信息有助于获得高质量的分割结果, 许多方法采用了扩大感受野或融合不同层次的上下文信息来提升网络的准确性. Zhao等[11]引入了PSPNet, 该网络利用金字塔池化模块(pyramid pooling module, PPM)来提取目标图像的全局信息. Chen等[12–15]通过引入空洞卷积[16], 提出DeepLab结构的几种变体, 通过使用ASPP模块, 可以对输入的特征图进行并行采样, 以获取不同尺度的图像上下文信息. 在卷积神经网络中引入注意力机制可以使网络学习到图像中需要关注的区域, 从而增强了卷积特征表达, 获取更多的全局上下文信息. Woo等[17]提出了CBAM注意力模块, 该模块由通道和空间两个注意力子模块串行组合构成, 能够增强网络对有用特征的关注. SENet是由Hu等[18]提出, 该网络利用通道注意力机制来学习每个通道的权重, 并将这些权重应用于对特征图的调整. Roy等[19]提出了基于SE模块的3种变体: sSE模块、cSE模块以及将两者并行加和构成的scSE模块, 其中scSE模块通过构建空间注意力和通道注意力两个子模块, 综合信息以获得更全面可靠的注意力信息, 通过实验验证该模块能够对图像语义分割准确率带来较大提升. 并且与CBAM注意力机制相比, scSE注意力机制的计算量较少, 能够加快网络的推理速度, 更适用于街道场景图像语义分割的应用环境.
传统U-Net网络适用于目标单一和目标尺寸较小的图像, 而对于目标种类较多且目标尺度变化较大的街道场景图像, 它不能提供足够的特征来支持精确的图像语义分割, 因此本文提出一种基于改进U-Net网络的AS-UNet网络模型. 针对街道场景图像目标种类较多而导致目标分割率低的问题, 通过将scSE注意力机制模块融入编解码器的卷积层, 模型可以同时利用通道注意力机制和空间注意力机制, 以增强对关键目标特征信息的获取能力; 针对街道场景图像目标尺度变化较大而导致上下文特征信息关联性较差的问题, 模型采用ASPP多尺度特征融合模块将不同尺度目标的信息进行融合从而增强语义信息; 针对街道场景图像目标类别不平衡的问题, 在训练阶段, 引入了交叉熵损失和Dice损失两者结合的组合损失函数, 进一步提升分割的效果.
1 网络结构 1.1 传统U-Net网络U-Net网络模型结构图如图1所示.
U-Net网络主要包含2个部分: 左侧下采样的过程, 可称为编码器结构, 是模型深化的过程; 右侧上采样的过程可以称为解码器结构, 它是图像分辨率恢复的过程. 编码器中的每个下采样模块通过两次
针对传统U-Net网络在处理街道场景图像分割任务时分割的准确率较低和图像上下文的关联性较差等问题, 本文在U-Net网络的基础上提出了AS-UNet网络模型. AS-UNet网络模型相对于传统U-Net网络融入了scSE注意力机制模块和ASPP多尺度特征融合模块, 从而提升网络分割精度. scSE注意力机制模块注重上下文特征的联系, 可捕获更多的特定信息, 增加分割精度; ASPP多尺度特征融合模块注重扩大感受野, 通过不同程度的池化级别来解决分割目标大小不均的问题.
AS-UNet网络模型结构如图2所示, 该网络模型采用了5层“U型”的编解码结构. 与传统的U-Net网络不同, 首先, 该网络在编码器和解码器的每个下采样模块和上采样模块的
1.3 AS-UNet中的scSE模块
AS-UNet中的scSE模块用于解决传统U-Net网络在提取特征的过程中不能关注图像关键区域的特征信息的问题. 为了适用于街道场景图像目标种类较多的应用环境, 本文使用scSE注意力机制模块对编解码器中经过卷积层输出的特征图进行特征的重标定, 以建立带有注意力机制的特征关联, 从而获取更丰富的全局上下文信息. scSE注意力机制模块具备同时作用于空间和通道的双重特性, 由sSE模块和cSE模块以并行加和的形式组成, 其执行过程如图3所示.
在输入特征图
$ {\hat U_{\rm scSE}} = {\hat U_{\rm cSE}} + {\hat U_{\rm sSE}} $ | (1) |
在此基础上, 对有着重要通道和空间特征的子特征图赋予了较高的激活值, 从而使得网络能够学习到重要的特征信息.
sSE模块通过对特征图的通道特征进行压缩, 实现对各个尺度上的重要空间特征的学习, 并获得一组空间权重参数. 这些参数在空间位置上与输入特征相乘, 从而在空间层面上对特征信息进行重标定. sSE模块的操作过程如图4所示, 输入特征图假定为
$ q = {V_{\rm sq}} * U $ | (2) |
其中, *表示卷积运算,
然后, 用Sigmoid归一化处理特征图
cSE模块的操作过程如图5所示. 首先, 对特征图
$ {{\textit{z}}_k} = \frac{1}{{H \times W}}\sum\nolimits_{i = 1}^H {} \sum\nolimits_{j = 1}^W {{u_k}(i, j)} $ | (3) |
其中,
接下来, 将得到的特征z经过第1个全连接层
$ \hat {\textit{z}} = {Q_2}(\delta ({Q_1}({\textit{z}})) $ | (4) |
其中,
最后, 对初始输入的特征图重新分配通道权重, 通过将向量空间
为了适用于街道场景图像目标尺度变化较大的应用环境, AS-UNet中的ASPP模块用于解决传统U-Net网络对图像上下文特征关联性较差的问题, 因此本文在编码器末端嵌入ASPP多尺度特征融合模块, 特征图通过ASPP多尺度特征融合模块后生成多个含有不同尺度感受野的特征图, 从而实现对多尺度特征的捕获. ASPP多尺度特征融合模块是在空洞卷积的理论基础上, 通过并行使用多个不同扩张率的空洞卷积, 对网络中单尺度提取的特征图信息进行重采样, 这些重采样后的特征图被融合在一起, 生成了最终的结果. 这种方式能够增加网络对不同尺度特征的感知能力, 提高特征提取的多样性.
空洞空间金字塔池化模块示意图如图6所示, 该模块是由1个
第1个分支对从主干网络提取的特征图进行
损失函数是训练过程中最重要的环节之一, 损失函数的好坏可以影响网络模型的整体性能. 语义分割常采用交叉熵损失函数, 但当目标类别不平衡时, 会导致网络模型的分割性能较差. 为了适用于街道场景图像目标类别不平衡的应用环境, 本文采用了交叉熵损失函数和Dice损失函数两者结合的组合损失函数.
交叉熵损失函数用来评价模型的预测结果与真实标签之间的差异, 计算公式如下:
$ {L_{\rm CE}} = - \sum\limits_i {{y_i}} \log {\hat y_i} $ | (5) |
其中,
Dice 损失函数用来计算模型的预测值和真实值的相似度, 计算公式如下:
$ {L_{{\text{Dice}}}} = 1 - \frac{{2|X \cap Y|}}{{|X| + |Y|}} $ | (6) |
其中,
将交叉熵损失函数和Dice损失函数两者结合的损失函数作为本文新的损失函数, 计算公式如下:
$ {L_{\rm Total}}=L_{\rm CE} + L_{\rm Dice} $ | (7) |
在本文实验中, 使用Cityscapes数据集和CamVid数据集对网络模型进行结果分析和比较.
Cityscapes数据集是一个大型城市街道场景数据集, 其中包括5000张精细标注的图像, 图像分辨率为
CamVid数据集是一个以驾驶汽车角度来看的街道场景数据集, 其中包括701张图像, 图像分辨率为
本文实验在Ubuntu 18.04的操作系统下使用当前主流的深度学习框架PyTorch 1.7.0, 利用Python 3.8编程语言构建网络框架模型. CPU选用的型号为Intel(R) Xeon(R) Platinum 8350C CPU @ 2.60 GHz, 硬件配置GPU显卡版本为Nvidia RTX 3090和显存为24 GB的设备上进行, 同时使用了计算框架CUDA 11.0和GPU加速库cuDNN进行高性能的并行计算.
2.2 训练过程及分析 2.2.1 数据集预处理由于Cityscapes数据集和CamVid数据集存在数据量有限和类别不平衡等问题, 为了提高训练数据的多样性以及网络模型的鲁棒性, 在训练过程中对其进行了预处理. 这些预处理方法包括了随机裁剪、随机缩放以及镜像翻转等数据增强技术的使用. 首先, 对原始尺寸为
当使用Cityscapes数据集和CamVid数据集进行实验时, 训练过程首先使用warmup预热策略, 然后再使用Poly策略来对学习率大小进行动态化调整. warmup预热策略在前10个epoch训练时, 模型学习率会由初始值逐渐变大, 训练10个epoch后, 学习率达到预先设置的值之后, 再使用Poly策略使学习率随着epoch不断迭代而逐渐衰减. Poly策略公式为:
$ lr = base\_lr \times {\left(1 - \frac{{iter}}{{max \_iter}}\right)^{power}} $ | (8) |
其中,
通过采用warmup预热策略, 可以使模型在训练初期使用较小的学习率, 经过一定数量的迭代次数后, 模型逐渐达到稳定状态, 然后会切换至预定的学习率进行进一步的训练. 这种方法有效地实现了预热学习率的效果, 避免了模型震荡, 同时也让网络的收敛速度更快, 从而提升了网络模型的性能.
2.2.3 训练过程参数设置及分析当使用CamVid数据集进行实验时, 采用Adam优化器调整网络参数, 损失函数采用交叉熵损失与Dice损失两者结合的组合损失函数.
当使用Cityscapes数据集进行实验时, 采用SGD优化器调整网络参数, 损失函数采用交叉熵损失与Dice损失两者结合的组合损失函数. 实验其他部分的参数设置如表1所示.
2.3 实验评价指标
本文采用的评价指标为交并比(intersection over union, IoU)、平均交并比(mean intersection over union, MIoU)、每秒处理帧数(frames per second, FPS)以及网络模型总参数量(parameters).
IoU和MIoU用于评估模型分割性能, 两者的值越大代表分割的结果越好. IoU表示标签真实值和模型预测值交集和并集的比值; MIoU表示所有类别标签真实值和模型预测值交集和并集的比值的平均值. IoU和MIoU的计算公式如下:
$ {\mathit{IoU}}{{ = }}\frac{{{p_{ij}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} + \displaystyle\sum\limits_{j = 0}^k {({p_{ji}} - {p_{ii}})} }} $ | (9) |
$ {\mathit{MIoU}}{{ = }}\frac{{{1}}}{{k{{ + 1}}}}\sum\limits_{i = 0}^k {\frac{{{p_{ij}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} + \displaystyle\sum\limits_{j = 0}^k {({p_{ji}} - {p_{ii}})} }}} $ | (10) |
其中,
FPS用于评价模型分割速度, 计算公式如下:
$ {\mathit{FPS}} = \frac{N}{{\displaystyle\sum\limits_{i = 1}^N {{T_j}} }} $ | (11) |
其中,
Parameters是计算模型总的可训练参数量, 主要用来评估模型的空间复杂度.
2.4 实验结果与分析 2.4.1 不同损失函数对比为了验证交叉熵损失和Dice损失两者结合的组合损失函数对AS-UNet改进网络模型性能的贡献, 在Cityscapes和CamVid数据集上对比了常用的交叉熵损失(CE)与本文组合损失函数(CE+Dice loss), 实验结果如表2所示. 可以看出, 采用组合损失函数后AS-UNet网络模型的平均交并比在Cityscapes和CamVid数据集上分别提升了0.3%和0.2%, 进而证明了组合损失函数对本文AS-UNet改进网络模型的有效性.
2.4.2 不同模型对比
为了验证AS-UNet网络模型对于街道场景图像分割的有效性, 将本文方法在Cityscapes数据集和CamVid数据集上进行测试, 并与近年流行的语义分割模型进行对比, 实验结果如表3和表4所示.
表3是在Cityscapes验证集上将本文模型AS-UNet与U-Net、FCN、SegNet、ESPNet[20]、ENet[21]模型在平均交并比、模型参数量和分割速率方面进行对比. 实验结果表明, 本文提出的AS-UNet相较于传统U-Net平均交并比提升了3.9%, 分割速率依然能满足实时性要求. 相较于FCN和SegNet这两种经典模型, 改进模型在平均交并比方面相较于FCN模型提升了1.4%, 且相较于SegNet模型提升了7.5%, 另外改进模型分割速率更高并且参数量更少. 相较于ESPNet和ENet这两种轻量级模型, 模型的分割速率虽然有一定下降并且参数量增加, 但是改进模型在平均交并比方面相较于ESPNet模型提升了4.2%, 且相较于ENet模型提升了6.2%.
表4是在CamVid测试集上同样的将改进模型AS-UNet与U-Net、FCN、SegNet、ESPNet、ENet模型在平均交并比、模型参数量和分割速率方面进行对比. 实验结果表明, 本文提出的AS-UNet相较于传统U-Net平均交并比提升了3.0%, 分割速率依然能够满足实时性要求. 相较于FCN和SegNet这两种经典模型, 改进模型不仅在平均交并比方面分别提升了2.8%和4.2%, 而且模型的分割速率更高且参数量更少. 相较于ESPNet和ENet这两种轻量级模型, 模型的分割速率虽然有一定下降且参数量增加, 但是平均交并比分别提升了4.2%和8.5%.
综合以上分析, 本文改进的模型在平衡分割精度和分割速度方面表现较好, 实现了高效而准确的分割结果, 验证了本文改进的模型更能够适用于目标种类较多和目标尺度变化较大条件下的街道场景图像语义分割.
2.4.3 消融实验本文还进行了消融实验, 证明scSE注意力机制模块和ASPP多尺度特征融合模块对街道场景图像分割的有效性, 实验结果如表5所示.
当在传统U-Net中仅加入scSE注意力机制模块来同时增强通道和空间特征之间的表达时, 在Cityscapes和CamVid数据集上模型的MIoU较原始U-Net模型分别提升了1.5%和1.3%; 当仅加入ASPP多尺度特征融合模块来获取图像的全局上下文信息时, 在Cityscapes和CamVid数据集上模型的MIoU较原始U-Net模型分别提升了2.8%和2.5%; 当同时加入scSE注意力机制模块和ASPP多尺度特征融合模块时, 在Cityscapes和CamVid数据集上模型的MIoU分别提升到64.5%和59.8%. 进而证明了在传统U-Net网络中加入scSE注意力机制模块和ASPP多尺度特征融合模块能够关注图像关键区域特征信息和聚合图像多尺度特征.
2.4.4 单类别实验结果及分析
为了进一步证明AS-UNet网络模型的有效性, 本文还在Cityscapes数据集和CamVid数据集上进行各类别分割结果比较实验, 如表6和表7所示. 从表6和表7中数据可以发现, AS-UNet网络模型分别有13个类别和5个类别目标的分割结果超过其他对比模型, 尤其是像电线杆、信号标、行人等这种在图片中所占像素比较低的小目标. 而与传统U-Net模型相比, AS-UNet网络模型所有类别的分割结果均超过原始U-Net网络. 根据表6和表7中数据, 证明本文改进模型对于街道场景图像中远景的小目标具有良好的分割效果.
2.4.5 定性结果分析
为了验证AS-UNet网络模型的分割性能, 在Cityscapes数据集和CamVid数据集中选取3幅图像与原始U-Net网络进行定性结果分析, 结果如图7和图8所示. 从图7和图8的定性对比结果可以看出, 原始U-Net网络和改进的AS-UNet网络模型对于尺寸较大的物体基本能够正确分割, 但是对于Cityscapes数据集来说原始模型对于因遮挡或尺寸较小的交通标、行人、摩托车和自行车等目标没能获得准确分割, 而本文模型提高了分割的准确率; 对于CamVid数据集来说原始U-Net模型对于电线杆、信号标、行人和道路等目标未能很好地分割, 而通过使用改进的AS-UNet网络模型可以将这些目标完整地分割出来. 综合上述分析, AS-UNet网络模型较原始U-Net网络的分割结果有显著提升, 进一步证明通过引入注意力机制模块和多尺度特征融合模块能够增强街道场景图像分割效果.
3 结论
针对原始U-Net网络在处理目标种类较多且尺度变化较大的街道场景图像时存在分割精度不高、分割效果不好的问题, 本文提出AS-UNet网络模型来改进原始U-Net网络. 通过采用ASPP多尺度特征融合模块, 实现将街道场景图像不同尺度目标的语义信息进行有效融合, 提高特征图信息丰富度; 引入scSE注意力机制模块, 引导网络关注街道场景图像的目标区域, 提高分割的准确性; 采用组合损失函数解决街道场景图像目标类别不平衡的问题, 进一步提升分割性能. 在Cityscapes数据集和CamVid数据集上的实验表明, 与原始U-Net网络相比, AS-UNet网络模型能够实现高效且准确的街道场景图像分割. 并且AS-UNet网络模型的参数量较低, 推理速度较快, 在分割精度、参数量以及分割速度之间取得了较优的平衡, 适合部署在嵌入式设备上. 下一步研究将专注于进一步提升网络的分割精度和分割速度, 使网络的性能更加高效.
[1] |
王龙飞, 严春满. 道路场景语义分割综述. 激光与光电子学进展, 2021, 58(12): 1200002. |
[2] |
Grigorescu S, Trasnea B, Cocias T, et al. A survey of deep learning techniques for autonomous driving. Journal of Field Robotics, 2020, 37(3): 362-386. DOI:10.1002/rob.21918 |
[3] |
钮圣虓, 王盛, 杨晶晶, 等. 完全基于边缘信息的快速图像分割算法. 计算机辅助设计与图形学学报, 2012, 24(11): 1410-1419. DOI:10.3969/j.issn.1003-9775.2012.11.005 |
[4] |
郑美珠, 赵景秀. 基于区域一致性测度的彩色图像边缘检测. 计算机应用, 2011, 31(9): 2485-2488, 2492. |
[5] |
付云凤. 基于阈值的图像分割研究 [硕士学位论文]. 重庆: 重庆大学, 2013.
|
[6] |
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015. 3431–3440.
|
[7] |
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 |
[8] |
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.
|
[9] |
Zhou ZW, Siddiquee MMR, Tajbakhsh N, et al. U-Net++: A nested U-Net architecture for medical image segmentation. Proceedings of the 4th International Workshop on Deep Learning in Medical Image Analysis. Granada: Springer, 2018. 3–11.
|
[10] |
Oktay O, Schlemper J, Le Folgoc L, et al. Attention U-Net: Learning where to look for the pancreas. arXiv:1804.03999, 2018.
|
[11] |
Zhao HS, Shi JP, Qi XJ, et al. Pyramid scene parsing network. Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 6230–6239.
|
[12] |
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.
|
[13] |
Chen LC, Papandreou G, Kokkinos I, et al. DeepLab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(4): 834-848. DOI:10.1109/TPAMI.2017.2699184 |
[14] |
Chen LC, Papandreou G, Kokkinos I, et al. Semantic image segmentation with deep convolutional nets and fully connected CRFS. Computer Science, 2014, (4): 357–361.
|
[15] |
Chen LC, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation. arXiv:1706.05587, 2017.
|
[16] |
Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions. Proceedings of the 4th International Conference on Learning Representations. San Juan: OpenReview.net, 2016.
|
[17] |
Woo S, Park J, Lee JY, et al. CBAM: Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 3–19.
|
[18] |
Hu J, Shen L, Sun G. Squeeze-and-excitation networks. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 7132–7141.
|
[19] |
Roy AG, Navab N, Wachinger C. Concurrent spatial and channel ‘squeeze & excitation’ in fully convolutional networks. Proceedings of the 21st International Conference on Medical Image Computing and Computer-assisted Intervention. Granada: Springer, 2018. 421–429.
|
[20] |
Mehta S, Rastegari M, Caspi A, et al. ESPNet: Efficient spatial pyramid of dilated convolutions for semantic segmentation. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 561–580. [doi: 10.1007/978-3-030-01249-6_34]
|
[21] |
Paszke A, Chaurasia A, Kim S, et al. ENet: A deep neural network architecture for real-time semantic segmentation. arXiv:1606.02147, 2016.
|