2. 河南大学 经济学院, 开封 475004
2. School of Economics, Henan University, Kaifeng 475004, China
图像分割是将一幅图像按照一定的标准分割成不同区域的过程, 作为计算机视觉领域的一个重要分支, 已经取得了一定的进展, 并在医疗、自动驾驶等领域得到了广泛应用. 语义分割算法主要分为传统的分割算法和基于深度学习的分割算法[1].
传统分割算法实现简单计算量小, 基于阈值的分割方法利用图像的不同灰度阈值将前景物体和背景分离出来, 但对于复杂图像, 阈值分割效果不佳. 基于区域的分割方法将具有相似特征的像素组合起来形成区域, 从而将图像分割成若干不同区域. 基于边缘检测的分割方法将边缘像素点连接起来形成边缘轮廓, 从而达到分割的目的. 基于聚类的分割方法是基于事物之间的相似性作为划分标准, 即将具有相似特征的像素点聚集在同一区域, 完成分割. 随着深度学习的不断发展, 传统的语义分割效果明显不如基于深度学习的语义分割效果.
深度学习的出现为语义分割带来了新的思路, FCN[2]将全连接层改为全卷积层, 全卷积层可以取任意大小的图像作为输入, 并使用上采样来解决卷积核池对图像大小的影响. U-Net[3]在FCN的基础上增加了跳跃链接, 在医学图像分割方面具有优势. SegNet[4]是一种基于编码和解码的图像分割网络, 解码部分对低分辨率特征图像进行上采样操作, 避免了FCN中上采样的消耗. DeepLab[5-8]模型提出了空洞卷积, 使得多尺度分割对象得到更好的分割效果, 其中DeepLabV3+[8]是在对之前的模型进行优化的基础上, 使用空洞卷积来平衡精度和运行时间, 但同时膨胀率较大的空洞卷积会忽略小尺度目标, 造成信息丢失. 基于上述分析, 本文对DeepLabV3+模型做出以下改进.
1)设计多维注意力机制捕捉骨干网络输出的深层特征从而避免信息丢失, 保留更多有效的细节信息.
2)经过DCNN结构得到的拼接特征图输入到双分支特征提取机制中, 进一步地提取到被忽略的小尺度目标, 使深层特征图更好地与浅层特征图融合.
3)分析交叉熵损失和类别不平衡函数的优缺点, 设计一种联合损失函数, 解决对不同尺度目标关注度不均的问题, 提升分割效果.
1 相关理论研究 1.1 DeepLabV3+DeepLab模型提出了空洞卷积的思想, 可以在不损失分辨率的情况下扩大感受野, 同时获得多尺度的上下文信息, 并在此基础上不断更新优化, 其中DeepLabV3+分割效果最好, 其网络结构如图1所示. 编码器包含带有空洞卷积(atrous spatial pyramid pooling, ASPP)的深度卷积网络(deep convolutional network, DCNN), 骨干网络对输入的原始图像进行初步处理, 提取图像特征, 图像依次变为原图的1/4、1/8、1/16大小, 之后将1/16大小的特征图先输入到DCNN结构中, 分别进行卷积、膨胀率为{6, 12, 18}的空洞卷积, 以及全局平均池化, 再拼接卷积压缩特征输入到解码器部分, 4倍上采样后得到1/4大小的深层特征图(deep feature map). 同时, 1/4大小的浅层特征图(low-level feature map)直接输入到解码器部分, 通过卷积调整通道数后与深层特征图叠加融合, 进行深度可分离卷积得到最终的预测图.
1.2 注意力机制
注意力机制用于对前期输入的图像信息进行加权, 聚焦到某些局部信息, 以此提升训练的准确性, 主要分为通道注意力、空间注意力以及混合注意力.
通道注意力结构如图2所示, 输入的特征图
空间注意力结构如图3所示, 输入特征
$ {M_c}(F) = \sigma (MLP(MaxPool(F)) + MLP(AvgPool(F))) $ | (1) |
$ {M_s}(F) = \sigma ({f^{7 \times 7}}([MaxPool({M_c}(F);AvgPool(F)])) $ | (2) |
2 基于DeepLabV3+的改进算法
为了解决图像信息丢失和细节分割不准确的问题, 本文提出一种基于DeepLabV3+的改进算法, 网络结构如图4所示. 采用ResNet101网络加载预训练模型提取浅层和深层特征; 对DCNN模块进行改进, 增加注意力机制减少空洞卷积带来的小尺度目标丢失, 同时聚焦更丰富的细节信息; 设计双分支特征提取机制扩大特征提取能力, 对空洞卷积和注意力机制的输出拼接特征图再次细化; 最后联合两种损失函数的优缺点互补同时作为改进算法的损失函数, 从而提升分割效果.
2.1 多维注意力机制为了关注到小尺度目标, 提高对图像中存在的高频有用信息的获得能力, 本文算法设计一种多维注意力机制, 结合通道和空间两个维度聚焦空洞卷积丢失的小尺度目标. 对于需要接收和处理大量数据的图像分割算法而言, 通常只需要关注少部分信息. 经过骨干网络初步提取出的特征先输入到通道注意力机制处理其通道分配关系, 按照重要程度分配权重; 再传入到空间注意力机制中进行学习, 使模型更加关注起决定作用的区域. 通道和空间注意力同时作用, 可以获取到更多需要关注的细节信息, 抑制其他无用信息, 降低模型对背景的关注, 突出图像中的前景物体, 提升图像分割效果.
另外, 原DCNN结构中输出的特征通道数都由2048调整为256, 因此在新增注意力机制之后也加入卷积调整通道数, 以便和其他5层特征图融合, 结构如图5所示.
改进后的DCNN结构分别进行标准卷积, 膨胀率为{6, 12, 18}的空洞卷积, 全局平均池化层和新增注意力机制层, 得到输出特征图. 假设改进后的DCNN结构输入图像为
$ O=\text{ }{f}^{1\times 1}({F}_{{\rm{in}}}\cdot{M}_{c}({F}_{{\rm{in}}})\cdot{M}_{s}({F}_{{\rm{in}}}\cdot{M}_{c}({F}_{{\rm{in}}}))) $ | (3) |
为了提取到更加丰富的特征信息, 提高目标区域分割精度, 本文算法设计了一种双分支特征提取方式, 依次提高模型对图像信息的提取能力, 使训练效果更佳, 双分支结构如图6所示,
相较于原算法的单一卷积, 双分支卷积扩大感受野, 增加了局部上下文信息, 进一步获取到前景物体的细节信息. 同时考虑到网络模型大小, 训练速度及时间等原因, 双分支与更多分支特征提取相比效果无较大差异, 但参数量和计算量更少. 因此本文采用双分支对输入特征进行同步特征提取, 扩大特征提取通道, 提取更加充分的信息, 从而达到更精准的分割效果.
第1层为输入层. 将DCNN模块中得到6层拼接特征图作为输入, 分别送到分支1和分支2进行特征提取, 此时通道数为256×6=1536.
第2层为特征提取层. 对第1层输出的特征图进行卷积操作以提取特征, 分支1使用3×3卷积将通道数直接从1536调整为256, 该过程如式(4)所示:
$ {F}_{1}({Y}_{1})=\rho ({W}_{3\times 3}^{1}\cdot{Y}_{1}+{b}_{1}) $ | (4) |
其中,
分支2的输入同样是第1层的输出, 其中②的3×3卷积将通道数1536调整为512, 再送入③中, 继续卷积调整为256, 分段卷积进行特征提取, 能够关注到被忽略的细节信息, 该过程如式(5)和式(6)所示.
$ {F}_{21}({Y}_{2})=\rho ({W}_{3\times 3}^{21}\cdot{Y}_{2}+{b}_{21}) $ | (5) |
$ {F}_{22}({F}_{21})=\rho ({W}_{3\times 3}^{22}\cdot{F}_{21}+{b}_{22}) $ | (6) |
其中,
第3层为组合降维层, 第2层两个分支得到的特征图作为输入, 使用Concat函数进行组合拼接, 此时通道数为256×2=512.
第4层为输出层. 第3层的输出作为输入, 经过1×1卷积降维得到通道数为256的输出特征图.
2.3 联合损失函数为解决DeepLabV3+使用CE-Loss (交叉熵损失)出现部分细节信息丢失的问题, 本文算法联合使用CE-Loss和Dice-Loss (类别不平衡函数)作为损失函数. Dice-Loss能减少过拟合情况的出现, 但会带来训练误差曲线混乱等问题, CE-Loss梯度形式更优. 但当分割前景数量远远小于背景像素数量时, 会导致模型偏向于背景. 而本文设计的联合损失函数, 保留CE-Loss梯度形式的同时引入Dice-Loss优化前景目标和背景不平衡的问题.
CE-Loss表示为真实标签和预测概率之间的差异, 数学表达式如式(7)所示, 其中
本文所提损失函数数学表达式如式(9)所示, 其中
$ CELoss = - \sum\limits_{c = 1}^M {{y_c}\log ({p_c})} $ | (7) |
$ DiceLoss = 1 - \frac{{2TP}}{{2TP + FN + FP}} $ | (8) |
$ Loss = \mu CELoss \circ \lambda DiceLoss $ | (9) |
在VOC数据集上的训练变化如图7所示, 带圆点实线代表本文算法训练分割精度的变化, 带圆点虚线代表本文算法损失函数变化, 实线代表DeepLabV3+训练分割精度的变化, 虚线代表DeepLabV3+损失函数变化. 由图7可知, DeepLabV3+和改进算法的损失函数值都随迭代次数的增加而逐渐稳定, 且算法精度也在逐步上升, 最终均收敛于50代左右.
2.4 算法描述
本文基于双分支融合注意力机制的改进DeepLabV3+图像分割算法的处理过程如算法1.
算法1. 双分支融合注意力机制的图像分割算法
1) 将固定大小的图片输入到改进算法中;
2) 特征提取器ResNet101网络对该图片进行初步提取, 得到图像有用信息生成feature map, 分别传输给DCNN结构和Decoder结构;
3) 进入DCNN的1/16特征图分别进行标准卷积、空洞卷积、多维注意力机制和全局平均池化提取特征. 得到的6层特征图拼接后输入双分支进一步提取特征, 再经过1×1卷积进行多尺度融合形成deep feature map;
4) 进入Decoder中的1/4特征图通过1×1卷积形成low-level feature map;
5) 采用双线性插值的方法对deep feature map进行上采样, 并与low-level feature map进行拼接. 然后通过深度可分离卷积得到信息更多的feature map;
6) 对融合后的特征图再上采样, 输出predicted, 完成图像分割.
3 实验分析为了验证本文算法在图像分割方向取得了更好的性能, 本文在两个不同的数据集上进行对比实验, 包括PASCAL VOC 2012数据集[9]和CityScapes数据集[10].
3.1 实验配置及评价指标实验使用Ubuntu 20.04操作系统, NVIDIA Tesla V100 GPU, 32 GB内存. 基于PyTorch框架分别在PASCAL VOC 2012和CityScapes数据集上训练、验证和测试. PASCAL VOC 2012数据集和CityScapes数据集作为图像处理的公开数据集, 主要用于图像分类、检测和分割.
本文使用图像分割中常见的3个评价指标, 平均交并比(MIoU)、频权交并比(FWIoU)和类均准确率(MPA)来对模型的分割效果进行量化评价, MIoU、FWIoU以及MPA值越高则代表模型分割效果越好. 假设数据集包含背景在内共有
$ MIoU = \frac{1}{{k + 1}}\sum\limits_{i = 0}^k {\frac{{{p_{ii}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}} + \displaystyle\sum\limits_{j = 0}^k {{p_{ji}} - {p_{ii}}} } }}} $ | (10) |
频权交并比FWIoU是在MIoU基础上, 根据类别出现的频率分配不同的权重, 数学表达式如式(11)所示:
$ FWIoU = \frac{1}{{\displaystyle\sum\limits_{i = 0}^k {\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} } }}\displaystyle\sum\limits_{i = 0}^k {\frac{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} {p_{ii}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}} + \displaystyle\sum\limits_{j = 0}^k {{p_{ji}} - {p_{ii}}} } }}} $ | (11) |
像素准确率PA是预测类别正确的像素数占总像素数的比例, 累加求平均后得到类均准确率MPA, 数学表达式如式(12)所示:
$ MPA = \frac{1}{{k + 1}}\sum\limits_{i = 0}^k {\frac{{{p_{ii}}}}{{\displaystyle\sum\limits_{j = 0}^k {{p_{ij}}} }}} $ | (12) |
PASCAL VOC 2012增强版数据集, 训练图像有10582张, 验证图像有1449张, 测试图像有1456张, 包括背景在内共有21个类别, 数据量满足训练要求, 如图8所示为VOC数据集典型图像. 使用VOC数据集训练过程设置批处理大小为8, 输入图片大小为512×512, 初始学习率设为0.0035, 并采用多项式衰减, 最终学习率降为0.0001, 动量设为0.9, 总共迭代50次.
为了更准确地衡量本文算法性能, 并验证其在分割算法中的有效性和优越性, 将经典算法、现有基于DeepLabV3+的改进算法与本文算法在PASCAL VOC 2012数据集上的表现进行量化对比, 其中Backbone表示选用哪种骨干网络进行预训练, 结果如表1所示. 相比其他分割算法, 本文算法具有更高的MIoU值和FWIoU值.
表2为FCN-8s、DeepLabV2、DeepLabV3+和本文算法在PASCAL VOC 2012数据集上测试各类别的IoU值的对比. 融入双分支特征提取和注意力机制的改进算法关注于前景细节信息, 提升了小尺度目标的分割效果. 由表中数据可以看出, 本文算法在多数类别上的分割表现最优.
同时, 本文也将DeepLabV3+与本文算法在PASCAL VOC 2012数据集的对比效果以图片形式展现, 更直观地表达了本文算法的优越性, 如图9所示. Original表示原图, 即输入的图片, Labeled为标签图, 评价指标是根据模型预测图与标签图之间的相似程度来计算. 第1幅图片中, 对牛进行分割, DeepLabV3+模型也将大致轮廓分割出来, 但本文算法对趴在地上的牛头轮廓分割得更细致. 第2幅图中本文算法与DeepLabV3+模型相比, 对于飞机侧翼轮廓的预测更加精细. 第3幅图中, DeepLabV3+模型对人的分割不够全面, 轮廓边缘分割得较粗糙, 本文算法预测图明显边缘更加平滑. 第4幅图中, DeepLabV3+模型将人腿预测为了马匹, 本文算法将人腿分割出来, 效果更加明显. 综上可得, 改进后的算法具有更好的分割效果, 能更精细地分割物体轮廓, 对于多物体图像, 效果也更优.
3.3 CityScapes数据集
CityScapes数据集为城市景观数据集, 训练图像有2975张, 验证图像500张, 测试图像1525张, 包括背景在内共有19个类别. 使用CityScapes数据集训练过程, 初始学习率设为0.001, 总共迭代200次, 其他设置与VOC数据集一致.
为充分表明本文算法的普遍适用性, 进行泛化实验, 将经典算法、现有基于DeepLabV3+改进算法与本文算法在CityScapes数据集上的表现进行量化对比, 结果如表3所示, 其中Backbone表示算法选用哪种骨干网络进行预训练.
本文也将DeepLabV3+与本文算法在CityScapes数据集的对比效果以图片形式展现, 如图10所示. 其中Original表示原图, Labeled为标签图. 根据图中标示可以看出, 本文算法比DeepLabV3+分割得更为细致, 再次证明了其可行性与有效性.
3.4 消融实验
为了验证是新增注意力机制和双分支特征提取同时在发挥作用, 本文也在VOC数据集和CityScapes数据集上做了消融实验, 如表4和表5所示, 其中Params为评估模型计算成本的量化度量指标, 即参数量, 模型中的参数量仅针对模型参数而言, 与使用数据集无关, 因此该指标在VOC数据集和CityScapes数据集上表现一致.
如表4所示, 在VOC数据集上只添加注意力机制, MIoU、FWIoU和MPA分别提升0.11%、0.09%和0.32%, 属于正常误差范围, 可以说注意力机制并未发挥作用. 只加入双分支特征提取, MIoU、FWIoU和MPA分别提升0.32%、0.18%和0.56%, 有小幅度提升, 由于双分支扩大了感受野, 能获取到更丰富的特征. 而同时加入注意力机制和双分支, MIoU、FWIoU和MPA分别提升1.14%、0.6%和0.73%. 这是因为加入注意力机制后模型的参数量增加, 网络结构也变得复杂, 而加入双分支后, 特征提取分支数增加, 卷积核对带有注意力权重的特征做池化操作以减少参数量, 使得注意力机制发挥最佳效果; 同时注意力机制中的1×1卷积能够对通道数降维, 减少双分支产生的参数量.
如表5所示, 在CityScapes数据集上只添加注意力机制, MIoU、FWIoU和MPA分别提高0.41%、0.13%和0.01%, 只加入双分支特征提取, MIoU、FWIoU和MPA分别提高0.43%、0.35%和0.27%. 而同时加入注意力机制和双分支特征提取, MIoU、FWIoU和MPA分别提高0.65%、0.54%和1.45%, 两个消融实验表明, 只有注意力机制和双分支同时起作用才能提升分割效果.
4 结论与展望DeepLabV3+中膨胀率较大的空洞卷积会引起图像信息丢失和细节分割不准确的问题, 本文引入注意力机制, 结合通道和空间注意力权重捕捉丢失的细节信息, 再输入到双分支特征提取机制利用分段卷积以扩大感受野获取更丰富的特征并降低注意力机制的参数量, 最后融合两种损失函数减少前景与背景关注不平衡的可能. 另外在实验过程中发现, ResNet101作为骨干网络的分割效果还是不够精准, 在未来工作中, 我们将进一步去优化或者替换骨干网络, 尽可能保证内存不上升的情况下, 达到更好的分割效果.
[1] |
黄鹏, 郑淇, 梁超. 图像分割方法综述. 武汉大学学报(理学版), 2020, 66(6): 519-531. DOI:10.14188/j.1671-8836.2019.0002 |
[2] |
Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-650. DOI:10.1109/TPAMI.2016.2572683 |
[3] |
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.
|
[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] |
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. |
[6] |
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 |
[7] |
Chen LC, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation. arXiv:1706.05587, 2017.
|
[8] |
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.
|
[9] |
Lee J, Yi JH, Shin C, et al. BBAM: Bounding box attribution map for weakly supervised semantic and instance segmentation. Proceedings of the 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Nashville: IEEE, 2021. 2643–2651.
|
[10] |
Fan MY, Lai SQ, Huang JS, et al. Rethinking BiSeNet for real-time semantic segmentation. Proceedings of the 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Nashville: IEEE, 2021. 9711–9720.
|
[11] |
杨贞, 彭小宝, 朱强强, 等. 基于DeepLabV3 Plus的自适应注意力机制图像分割算法. 计算机应用, 2022, 42(1): 230-238. |
[12] |
席一帆, 孙乐乐, 何立明, 等. 基于改进DeepLabV3+网络的语义分割. 计算机系统应用, 2020, 29(9): 178-183. DOI:10.15888/j.cnki.csa.007541 |
[13] |
Bai YQ, Zheng YF, Tian H. Semantic segmentation method of road scene based on DeepLabV3+ and attention mechanism. Journal of Measurement Science and Instrumentation, 2021, 12(4): 412-422. |