图像分割是计算机视觉领域的重要分支, 在无人驾驶, 医学图像, 3D重建等场景用广泛的应用. 传统的图像分割算法利用图像的颜色、纹理、形状等低级语义信息进行分割, 缺失像素的对比度, 方向度等中级语义[1-4]; 聚类是利用像素中级语义进行分割, 但缺少像素之间的实体类别之间的高级语义; 深度学习算法学习图像中的高级语义. 深度学习的语义分割是对图像像素进行逐个分类, 解析图像的深层次语义信息. Shelhamer等[5]提出FCN (全卷积网络)可以对任意大小的图片进行处理, 同时还引入跳级连接使低级语义信息和高级语义信息的融合, 反卷积上采样恢复图像分辨率, 但在细节上分割效果不好; Ronneberger等[6]提出一种基于编码解码器架构的U-net, 编码器对图像进行深层次的特征提取, 生成高级语义信息, 解码器利用跳级连接的思想, 对不同分辨率特征图进行通道融合产生较好的分割效果. Vigay Badrinaryanan等[7,8]提出SegNet, 该网络架构与U-net类似, 不同的是SegNet上采样利用编码器池化操作的下标去恢复图像分辨率, 加速网络的推理, 且占用更少的内存. Zhao等[9]提出PSPnet利用空间金子塔模块以不同的感受野提取全局特征, 融合上下文信息进行上采样得到预测结果. Lin等[10]提出Refinet, 充分利用下采样的特征图, 利用长范围残差链接的思想, 将粗糙的高层语义特征和细粒度的底层特征进行融合, 通过Renfinet block将特征图进行逐层融合生成分割图像. 谷歌提出一系列Deeplab模型[11-14], 其中Deeplab V3+的分割效果最优, 但该模型在处理速度和模型容量上并不占优势, 本文依据Deeplab V3+模型提出一种优化算法, 对骨干网残差单元重新设计, 对ASPP模块进行优化, 且在公开数据集进行对比实验, 改进后的模型在准确度和精度提高的情况下, 进一步提高网络的处理速度, 优化该模型的内存消耗.
2 方法与网络 2.1 Deeplab V3+网络概述Deeplab V3+网络模型主要基于编码解码器结构, 如图1所示. 该模型的编码器架构由骨干网ResNet101和ASPP模块组成, 骨干网提取图像特征生成高级语义特征图, ASPP模块利用骨干网得到的高级语义特征图进行多尺度采样, 生成多尺度的特征图, 在编码器尾部将多尺度的高级语义特征图在通道维度上进行组合, 通过1×1的卷积进行通道降维. 解码器部分将骨干网的低级语义特征通过1×1卷积进行通道降维, 保持与高级语义特征图串联在一起时的比重, 增强网络学习能力. 再用3×3的卷积提取特征, 编码器尾部进行上采样, 产生最终的语义分割图.
2.2 骨干网的改进
骨干网ResNet101利用基于瓶颈设计的残差块作为基本单元, 组成101层的残差网络. 如图2(b)骨干网由通道数为w0的残差块组成, w0的组合为(64,128,256,512), 这4类瓶颈残差单元的数目分别为(3,4,23,3), 加上网络前端的7×7的卷积和最后1×1卷积层共101层. 瓶颈单元拥有更少的参数, 可以训练更深层次的网络, 而非瓶颈单元(如图2(a))随着深度增加, 可以获得更高的准确率, 结合瓶颈单元和非瓶颈单元的优点, 重新设计残差单元. 文献[15,16]已证明二维卷积能被分解成一系列一维卷积的组合. 依据文献[17]在卷积层松弛秩为1约束的条件下, 卷积层fi可以重新写成:
${f^i} = \displaystyle \sum\nolimits_{k = 1}^K {\sigma _k^i} v_k^i{\left( {\bar h_k^i} \right)^{\rm T}}$ | (1) |
其中,
$a_i^l = \varphi \left( {b_i^h + \displaystyle \sum\nolimits_{l = 1}^L {\bar h_{il}^{\rm T}} *\left[ {\varphi \left( {b_l^v + \displaystyle \sum\nolimits_{c = 1}^C {{{\bar v}_{lc}}} *a_c^0} \right)} \right]} \right)$ | (2) |
式中, L为卷积层的数目,
ASPP模块主要是对骨干网的特征图进行多尺度语义信息提取. 由于ASPP模块中3×3卷积会学到一些冗余信息, 参数数量多, 因此会在训练中耗费很长时间. 常规卷积已被证明会计算许多重叠的冗余信息. 依据骨干网改进的方法, 将ASPP中3×3的空洞卷积进行2D分解(如图3所示), 将其分解成3×1和1×3的卷积, 保持其空洞率. 该改进的ASPP模块卷积参数量比常规卷积的参数量要少33%, 在速度上比3×3卷积快, 能够提取到重要的语义信息, 有效的减少该模块计算量.
3 实验与分析 3.1 实验环境
实验运行环境Win10操作系统, 工作站 GPU型号为: NVIDIA GeForce GTX 1070 (8 GB显存), 基于Tensorflow深度学习框架, 本文利用Deeplab V3+原文的tensorflow官方源码, 并对其进行改进, 进行对比实验.
3.2 实验训练与结果分析实验用的是PASCAL-VOC2012增强版数据集, 训练集10582张, 验证集1449张, 该数据集包括20个类别. 本实验将图片分辨率缩放至513×513像素, 由于真实标签和预测结果是灰度图, 为了显示分割效果采用RGB彩色图显示. 训练网络前, 将图像转化为Tfrecord文件, 便于高效读取数据.
本实验将基于的1D非瓶颈单元的骨干网在Imagenet数据集上进行预训练, 再将其预训练权重加载到改进的模型中. 利用上述数据集进行训练, 超参数设置如表1所示.
学习率采用多项式衰减, 当迭代次数超过 Max iteration次, 学习率为End learning rate. 采用动量梯度下降法去优化损失函数, 总共迭代71 epochs, 如图4所示, 总共迭代150307次, 每迭代一次大约耗时7 s. 总损失(总损失包括交叉熵损失、权重正则化损失)在大约12万次左右开始收敛, 选取总损失最低的模型作为测试模型. 改进模型在训练集上的MIoU为89.9%, 像素的平均准确率97.3%.
图5所示, 改进后的模型在拥有多个类别对象的图像上, 有良好的分割结果, 尤其是在第一幅图将车与人两个类别的边界处分割效果较好.
3.3 实验对比
语义分割有4种评价指标, 分别为像素精度(PA), 均像素精度(MPA), 均交并比(MIoU), 频权交并比(FWIoU). 假设有K+1个类, pij表示被属于第i类但预测为第j类的像素数目, 即pii为真正的像素数量(TP), pij为假负的像素数量(FN), pji为假正像素数量(FP).
PA: 为被分类正确的像素占总像素数目的比例:
$PA = \frac{{\displaystyle \sum\nolimits_{i = 0}^k {{p_{ii}}} }}{{\displaystyle\sum\nolimits_{i = 0}^k {\displaystyle \sum\nolimits_{j = 0}^k {{p_{ij}}} } }}$ | (3) |
MPA: 计算每个类被正确分类的像素比例, 再取平均:
$MPA = \frac{1}{{k + 1}}\sum\nolimits_{i = 0}^k {\frac{{{p_{ii}}}}{{\displaystyle \sum\nolimits_{j = 0}^k {{p_{ij}}} }}} $ | (4) |
MIoU: 真实标签与预测标签的交集比上它们的并集, 计算每个类的IoU, 再取平均:
$MIoU = \frac{1}{{k + 1}}\sum\nolimits_{i = 0}^k {\frac{{{p_{ii}}}}{{\displaystyle \sum\nolimits_{j = 0}^k {{p_{ij}}} + \displaystyle \sum\nolimits_{j = 0}^k {{p_{ji}} - {p_{ii}}} }}} $ | (5) |
FWIoU: 在IoU的基础上将每个类出现的频率作为权重:
$\begin{split} FWIoU = &{\dfrac{1}{{\displaystyle \sum\nolimits_{i = 0}^k {\displaystyle \sum\nolimits_{j = 0}^k {{p_{ij}}} } }}}\\ &{*\displaystyle \sum\nolimits_{i = 0}^k {\dfrac{{{p_{ii}}}}{{\displaystyle \sum\nolimits_{j = 0}^k {{p_{ij}}} + \displaystyle \sum\nolimits_{j = 0}^k {{p_{ji}}} - {p_{ii}}}}} } \end{split}$ | (6) |
为了便于对比, 实验将MPA, MIoU作为原模型与改进后的模型衡量标准.
表2说明, 改进后的模型在均像素精度上比原模型高0.78%, 且在MIoU上比原模型高0.63%, 因此改进模型拥有更准确和可靠的分割结果. 表3可以得出, 改进后的模型在设备上所占内存大小和单张图片处理速度上, 明显优于原模型, 其中在单张图片的运行时间上, 改进后的模型速度提高约9.44%, 且模型容量减少了19.6%. 主要由于对骨干网和ASPP模块的卷积层进行改进, 去掉冗余的权值, 参数量变少.
图6所示总损失函数, Deeplab V3+和Modified Deeplab V3+模型的损失函数收敛速度几乎一样, 原模型Total loss最终收敛到1.91, 而改进后模型Total loss收敛到1.73, 且改进模型的损失函数摆动幅度小更稳定, 训练时间比原模型短3.5小时.
图7中圆圈标记出的图像区域, Modified Deeplab V3+的分割结果更精细. 例如: 第一幅图Modified Deeplab V3+将椅子的空当分割出来, 而原模型未分割出, 且原模型将窗户误分类为显示屏; 第二幅图改进模型将飞机机翼准确分割出, 原模型未分割出机翼; 第三幅图改进模型能将车顶的人的跳跃姿态和车下的人准确分割, 原模型对车顶的人分割结果模糊, 且车下的人未被分割出; 第四幅图改进模型准确将椅子分割; 最后一幅图改进模型在马的腿部分割效果比原模型要完整. 明显可以看出改进模型分割效果更好, 且误分类少. 主要归因于Modified Deeplab V3+的1D非瓶颈单元提高了图像分类的准确度, 且ASPP模块卷积分解后, 引入非线性操作, 增强网络学习能力, 有助于减少误分类, 同时在分解的卷积上再引入空洞卷积, 进一步扩大感受野, 提高网络在图像边缘分割的精细度.
4 结论
本文提出了一种基于卷积分解优化Deeplab V3+网络的算法, 该算法主要利用2D卷积分解减少参数冗余, 提高处理速度, 同时引入非线性操作, 增强模型学习能力. 本文利用该算法重新设计Deeplab V3+模型骨干网的残差单元, 使其既拥有非瓶颈单元的准确度, 又有瓶颈单元参数少, 易训练深层网络的优点; 同时又对ASPP模块也进行优化, 加速网络的推理速度, 减少其训练和处理时间. 实验结果证明Modified Deeplab V3+与原模型相比在提高均像素精度的同时, 明显提升均交并比, 且网络处理速度提高9.44%, 优化网络模型的内存消耗. 测试集的结果表明, Modified Deeplab V3+在图像细节处分割结果更精确. 进一步的工作是探究如何控制感受野的大小, 提高模型对小目标分割的精确度.
[1] |
计梦予, 袭肖明, 于治楼. 基于深度学习的语义分割方法综述. 信息技术与信息化, 2017(10): 137-140. DOI:10.3969/j.issn.1672-9528.2017.10.037 |
[2] |
肖朝霞, 陈胜. 图像语义分割问题研究综述. 软件导刊, 2018, 17(8): 6-8, 12. |
[3] |
Arbeláez P, Hariharan B, Gu CH, et al. Semantic segmentation using regions and parts. Proceedings of 2012 IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI, USA. 2012. 3378–3385.
|
[4] |
Lu ZW, Fu ZY, Xiang T, et al. Learning from weak and noisy labels for semantic segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(3): 486-500. DOI:10.1109/TPAMI.2016.2552172 |
[5] |
Shelhamer E, Long J, 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 |
[6] |
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, Germany. 2015. 234–241.
|
[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] |
de Oliveira Junior LA, Medeiros HR, Macêdo D, et al. SegNetRes-CRF: A deep convolutional encoder-decoder architecture for semantic image segmentation. Proceedings of 2018 International Joint Conference on Neural Networks. Rio de Janeiro, Brazil. 2018. 1–6.
|
[9] |
Zhao HS, Shi JP, Qi XJ, et al. Pyramid scene parsing network. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 6230–6239.
|
[10] |
Lin GS, Milan A, Shen CH, et al. RefineNet: Multi-path refinement networks for high-resolution semantic segmentation. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 5168–5177.
|
[11] |
Chen LC, Papandreou G, Kokkinos I, et al. Semantic image segmentation with deep convolutional nets and fully connected CRFs. Proceedings of the 3rd International Conference on Learning Representations. San Diego, CA, USA. 2014. 357–361.
|
[12] |
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 |
[13] |
Chen LC, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation. arXiv: 1706.05587, 2017.
|
[14] |
Chen LC, Zhu YK, Papandreou G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation. In: Ferrari V, Hebert M, Sminchisescu C, et al, eds. Computer Vision (ECCV 2018). Cham: Springer, 2018. 833–851.
|
[15] |
Alvarez J, Petersson L. DecomposeMe: Simplifying ConvNets for end-to-end learning. arXiv: 1606.05426, 2016.
|
[16] |
Na T, Mukhopadhyay S. Speeding up convolutional neural network training with dynamic precision scaling and flexible multiplier-accumulator. Proceedings of 2016 International Symposium on Low Power Electronics and Design. San Francisco, CA, USA. 2016. 58–63.
|
[17] |
Sironi A, Tekin B, Rigamonti R, et al. Learning separable filters. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 37(1): 94-106. DOI:10.1109/TPAMI.2014.2343229 |