图像语义分割是为图像中的每一个像素点指定一个语义类别, 是一种像素级的空间密集型预测任务, 被广泛应用到无人驾驶技术、无人机领域和医疗图像检测与分析等[1]任务中. 深度卷积神经网络(Convolutional Neural Network, CNN)的出现, 尤其是全卷积神经网络的出现(Fully Convolutional Network, FCN)[2], 极大地推动了图像语义分割的发展, 目前大多数先进的图像语义分割方法都是在FCN的基础上进行调整, 通过使用更深的网络、空洞卷积[3]、空洞空间金字塔池化模块(Atrous Spatial Pyramid Pooling, ASPP)[4]等技术不断刷新分割精度.
虽然基于CNN的图像语义分割方法已经取得了惊人的性能, 但训练这些方法需要大量的有标签数据. 不同于图像分类、目标检测任务, 图像语义分割需要的是像素级的标注, 训练数据的获取费时又费力. 为缓和这一问题, 半监督/弱监督方法已应用到图像语义分割任务中. 在弱监督图像语义分割方法中, 分割网络并不使用具有像素级标注的数据进行训练, 而是用的更容易获取的各种弱监督信号, 例如图像类别[5]、物体边界框等[6]. 文献[5]提出, 基于卷积神经网络将多实例学习框架从检测任务扩展到图像语义分割任务, 此时图像语义分割可以被定义为给定一张图像和其对象类别标签, 推断图像中的每一个像素是否属于对象类, 并约束模型为分类正确的像素分配更高的权重. BoxSup[6]则是使用物体边界框作为弱监督信号, 其基本思想是, 首先使用区域建议方法生成候选分割掩模, 分割网络在这些候选掩模的监督下进行训练, 更新的网络反过来改进了用于训练的候选分割掩模, 整个过程是迭代的. 虽然分割掩模在刚开始的时候是粗糙的, 但它们随着训练的进行逐渐得到改进, 然后为训练分割网络提供有用的信息. 基于半监督学习的图像语义分割方法大多综合使用少量的像素级标注的训练图像和大量的弱标注图像. 例如文献[7]构建了一个由分类网络和分割网络组成的框架, 其中分类网络作为整个框架的特征提取器, 首先用大量的具有图像类别信息的数据进行训练, 然后在分类网络固定的情况下, 使用少量具有像素级标注的图像优化分割网络. 然而, 以上这些方法并没有取得很好的性能, 因为它们无法从弱监督信号或少量像素级标注图像中恢复详细的目标边界.
生成对抗网络(Generative Adversarial Networks, GAN)[8]自被提出以来就受到了各界的广泛关注, 并被尝试应用到很多领域, 例如图像到图像生成[9]、图像语义分割等[10–12], 并取得了很好的性能提升. 典型的GAN模型包括生成器、鉴别器两部分, 这两部分通过对抗的方式进行训练. 在训练过程中, 生成器的目标是将采样自某固定分布的样本变换成近似服从目标数据分布的样本, 而鉴别器的目标是准确判别出样本来自生成数据还是目标数据. 通过反向传播算法, 生成器、鉴别器的性能都得以提升, 最终达到鉴别器无法准确区分数据来源的状态, 此时可以认为生成器生成的数据已近似服从目标数据分布. 文献[10]是第一个将生成对抗网络应用于图像语义分割的工作, 该方法为后来的方法奠定了基本框架, 即将主流语义分割网络作为生成对抗网络的生成器. 通过对抗训练, 该方法可以在不需要增加复杂的后期处理的情况下, 鼓励分割网络生成更加接近目标数据的样本. 然而, 它并不是适用于所有数据集的通用方法, 相比于基准方法也没有明显的性能提升. 文献[12]从另一角度思考问题, 提出一种半监督图像语义分割方法, 并创造性的提出了全卷积鉴别器. 该算法将鉴别器视为分割网络, 并用生成器生成的样本扩展数据集. 然而, 该方法并没有取得很好的效果, 因为生成的样本不足够接近真实样本, 不能帮助训练分割网络. 文献[11]是目前性能最优的半监督语义分割方法, 该方法沿用了文献[10]中提出的基本框架, 即分割网络作为生成器, 同时采用了全卷积方式的鉴别器, 该鉴别器不仅能够为输入数据提供像素级的鉴别(鉴别每一个像素点采样自生成图像还是真实标签), 还能进一步为无标签数据生成置信图, 并将置信图作为额外的监督信号, 来实现半监督学习. 同时, 文献[11]也存在着一些问题, 其中最为显著的就是分割网络过于简单, 直接通过一次上采样操作将特征图放大到输入图像大小, 在分割过程没有充分利用浅层网络中包含的丰富的图像细节信息, 但是, 将不同尺的度特征信息相融合有助于进一步提升网络分割性能[4].
基于以上介绍和分析, 本文在文献[11]的基础上, 提出一种基于生成对抗网络的半监督图像语义分割方法, 其中编码器-解码器作为生成对抗网络生成器, 鉴别器依然采用全卷积的方式. 不同于文献[11]使用的直接上采样, 本文提出的解码器模块在逐步上采样逐渐增大特征分辨率的同时, 通过整合来自浅层精细的外观信息恢复目标分割细节. 此外, 全卷积鉴别器通过发现无标签数据分割结果中的可信区域, 并将可信区域作为额外的监督信号来实现半监督学习. 实验结果显示, 相较于其他半监督图像语义分割方法, 本文提出的算法有明显的分割性能提升.
2 网络结构与训练过程本文提出的网络结构包括分割网络(生成器)、鉴别网络两部分, 如图1所示. 分割网络将大小为
2.1 多尺度分类器ASPP
ASPP是DeepLab-v2提出的用于捕获目标不同尺度上下文信息的重要模块, 如图2所示. ASPP中存在4个并行的空洞卷积操作, 其卷积核大小都为
${W_{\rm{out}}} = \frac{{{W_{in}} + 2p - \left[ {k + \left( {k - 1} \right) \times \left( {d - 1} \right)} \right]}}{s} + 1$ | (1) |
这种参数设置的空洞卷积具有相同大小的输出, 且与输入特征的分辨率也相同, 所以经ASPP处理并不会改变特征分辨率. 在本文中, 我们对原始ASPP做了如下简化工作, 去除了不同采样率的空洞卷积之后的
编码器-解码器模块由2部分组成: 编码器和解码器. 其中编码器逐渐减小特征图大小并捕获更高层次的语义信息; 解码器逐渐恢复对象细节信息和空间维度. 整个结构利用来自编码器模块的多尺度特征, 并从解码器模块恢复空间分辨率.
基于生成对抗网络的语义分割方法中分割网络可以是任意主流图像语义分割模型, 例如FCN、DeepLab-v2等, 本文采用的是基于ResNet-101[13]的DeepLab-v2模型, 并将其改造成编码-解码结构, 如图3所示. 编码器模块经ResNet-101中一个卷积、一个最大池化和4个残差块处理后, 逐渐降低特征分辨率为输入图像的1/8大小, 同时, 不同深度的卷积层编码了不同尺度的特征信息. 解码器模块首先将第四个残差块输出的特征图经多尺度分类器ASPP处理, 然后进行2倍的双线性上采样变为输入图像的1/4, 同时将编码器中输入图像1/4大小的特征图, 也即为第一个残差块的输出, 同样经过分类器ASPP处理, 将两者相加进行第二次2倍的双线性上采样, 此时输出的特征图为输入图像的1/2. 同样地, 将编码器中输入图像1/2大小的特征图, 也即为ResNet-101中第一个卷积层的输出, 经过分类器ASPP处理, 并于之前求得的输入图像1/2大小的特征图相加, 最后再经过一次2倍的双线性上采样即可恢复至输入图像大小. 在整个解码过程中, 始终保持特征图的通道数为图像语义类别数(例如对于数据集PASCAL VOC 2012, 解码过程中通道数为21), 这将有效减少压缩特征数的成本. 解码器模块经过两次加和、三次双线性上采样逐渐增大特征分辨率, 并在此过程中不断融合具有相同分辨率的浅层语义信息, 从而优化物体分割细节.
2.3 鉴别网络这里鉴别器沿用了文献[11]采用全卷积结构. 整个鉴别器由5个卷积核为
2.4 模型训练过程和损失函数
本文使用以下符号表示法: Xn表示大小为H×W×3的待分割RGB图像, Yn表示大小为H×W×C的图像真实标签, 其中C为类别数,
(1) 鉴别网络: 本文通过最小化二分类交叉熵损失函数
$ {L_D} \!= \! - \left( {\sum\nolimits_{i = 1}^{H \times W} {\log \left( {1 - D{{\left( {G\left( {{X_n}} \right)} \right)}^{\left( i \right)}}} \right) \!+\! \log \left( {D{{\left( {{Y_n}} \right)}^{\left( i \right)}}} \right)} } \right) $ | (2) |
其中, i为位置标号. 需要指出的是, 为了保持分割网络和鉴别网络的平衡这里只用有标签数据训练鉴别网络.
(2) 分割网络: 本文通过最小化多任务交叉熵损失函数Lseg来训练分割网络, 它是标准多分类交叉熵损失和对抗损失的加权和. 由式(3)算得:
${L_{\rm{seg}}} = {L_{\rm{mce}}} + {\lambda _{\rm{adv}}}{L_{\rm{adv}}} + {\lambda _{\rm{semi}}}{L_{\rm{semi}}}$ | (3) |
式(3)中的第一项Lmce为多分类交叉熵损失, 它是应用于图像语义分割任务的标准损失函数, Ladv是对抗损失, Lsemi为半监督学习损失. λadv和λsemi是为了最小化整个损失函数设置的两个超参数.
首先考虑用有标签数据训练分割网络的情况. 给定一张待分割图像Xn, 分割网络生成的分割图为
${L_{\rm{mce}}} = - \sum\nolimits_{i = 1}^{H \times W} {\sum\nolimits_{c = 1}^C {Y_n^{\left( {i,c} \right)}} } \log \left( {G{{\left( {{X_n}} \right)}^{\left( {i,c} \right)}}} \right)$ | (4) |
对抗损失函数由式(5)算得:
${L_{\rm{adv}}} = - \sum\nolimits_{i = 1}^{H \times W} {\log \left( {D{{\left( {G\left( {{X_n}} \right)} \right)}^{\left( i \right)}}} \right)} $ | (5) |
通过对抗损失, 整个网络模型将鼓励分割网络生成对于鉴别网络而言难以和图像真实标签区分开的分割图, 从而达到优化目标分割细节的目的.
当用无标签数据训练分割网络时, 我们考虑在半监督条件下的对抗训练. 对于无标签数据, 由式(4)和式(5)可知, 由于缺少图像真实标签Yn, 无法直接计算多分类交叉熵损失Lmce, 但对抗损失Ladv只涉及到分割网络、鉴别网络和输入图像Xn, 所以依然有效. 为实现半监督学习任务, 我们利用已经过少量有标签数据训练的鉴别网络和大量的无标签数据, 以一种自学习的方式来进一步训练分割网络. 主要思想是, 整个网络模型经少量有标签数据训练之后, 鉴别器已基本具备对生成的分割结果进行鉴别的能力, 由于分割网络的分割性能还没有达到足够好的状态, 为无标签数据生成的分割图中存在一定的被严重错误分割的图像区域, 如果这些区域一起参与到进一步训练分割网络中, 将会严重影响分割网络性能. 这里用全卷积鉴别器为无标签数据生成置信图, 用来推断生成的分割结果中哪些区域足够接近图像真实标签分布, 然后将置信图二值化, 以突出可信区域, 最后将分割结果中的可信区域作为无标签图像的伪标签, 实习半监督学习. 则半监督损失Lsemi可由式(6)算得:
${L_{\rm{semi}}} \!=\!\! -\! \sum\nolimits_{i = 1}^{H \times W}\!\! {\sum\nolimits_{c = 1}^C\! {I\!\left( {D{{\left( {G\left( {{X_n}} \right)} \right)}^{\left( i \right)}}\! \!>\!\! {T\!_{semi}}}\! \right)} } Y_n'\log \!\left( {G{{\left( {{X_n}} \right)}^{\left( i \right)}}} \right)$ | (6) |
其中,
为评估模型性能, 本文在图像语义分割数据集PASCAL VOC 2012[14]和Cityscapes[15]上进行了一系列实验. 整个模型实现在具有11G内存的单个GPU k40上, 为训练分割网络, 本文采用SGD优化器, 初始学习率为
PASCAL VOC 2012包含20种常见对象类和背景类. 本文使用的是由文献[16]提供额外标注的增强PASCAL VOC 2012数据集, 共有10 582张训练图像, 1449张验证图像. Cityscapes包含19种对象类和背景类, 共有2975张训练图像, 500张验证图像和1525张测试图像. 表1、表2分别给出了模型在数据集PASCAL VOC 2012和Cityscapes验证集上的评估结果, 并与其他半监督图像语义分割方法进行了比较, 其中基准方法指的是没有加入对抗训练的分割网络, 本文基准方法是指编码器-解码器结构的分割网络. 为营造半监督学习的环境, 本文从10 582张有标签训练集中随机采样1/8, 1/4, 1/2数据, 保留其标签作为有标签数据, 其余图像用作无标签数据. 实验表明, 本文提出的方法在两个数据集上都取得更优的分割性能, 其中在Cityscapes验证集上更是比文献[11]高出2.4%–4%. 同时对抗训练的加入, 使得模型平均分别在两个数据集取得了3.6%、3.2%的性能提升.
虽然本文提出的算法是用于解决半监督语义分割问题的, 但依然可以用全部有标签数据参与训练并验证模型有效性. 表3、表4分别展示的是在数据集PASCAL VOC 2012和Cityscapes上, 用全Z部有标签数据训练模型的评估结果, 并与主流的图像语义分割模型做了对比. 实验结果显示, 本文所提出的方法与目前主流图像语义分割方法相比具有一定优势. 需要指出的是, 基于ResNet-101的DeepLab-v2取得的性能略优于本文所提出方法. 这主要是因为, 为了减少内存占用量, 本文并没有使用DeepLab-v2用到的多尺度输入, 并对分类器ASPP做了一定的简化, 并且在DeepLab-v2中也提到, 将同一图像缩放成不同尺度输入到深度卷积神经, 并将得到的不同粒度的特征聚合, 可以取得更好的性能提升. 图4、图5分别给出了本文提出算法在数据集PASCAL VOC 2012和Cityscapes上用1/8有标签数据训练之后, 在验证集上的分割效果展示, 从左到右依次为输入图像、图像真实标签和本方法分割结果.
4 总结与展望
本文基于DeepLab-v2提出了一种简洁、高效的编码器-解码器分割网络, 并将其与生成对抗网络相结合, 应用到半监督图像语义分割任务中. 解码器模块逐步上采样逐渐增大特征分辨率的同时, 不断融合编码器浅层语义信息, 从而优化目标分割细节. 在PASCAL VOC 2012和Cityscapes数据集上的实验表明, 该方法性能明显优于其他半监督图像语义分割方法. 目前该方法在融合浅层特征时只是简单的将这些特征加和, 但深层特征更抽象, 表达能力也更强. 接下来将考虑不同层次特征融合时的权重, 以期望进一步改善半监督图像语义分割性能.
[1] |
郑菲, 孟朝晖, 郭闯世. 基于反卷积特征学习的图像语义分割算法. 计算机系统应用, 2019, 28(1): 147-155. DOI:10.15888/j.cnki.csa.006716 |
[2] |
Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. Proceedings of 2005 IEEE Conference on Computer Vision and Pattern Recognition. Boston, MA, USA. 2015. 3431–3440.
|
[3] |
Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions. arXiv: 1511.07122, 2016.
|
[4] |
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 |
[5] |
Pinheiro PO, Collobert R. Weakly supervised semantic segmentation with convolutional networks. arXiv: 1411.6228v1, 2015.
|
[6] |
Dai JF, He KM, Sun J. Boxsup: Exploiting bounding boxes to supervise convolutional networks for semantic segmentation. Proceedings of the 2015 IEEE International Conference on Computer Vision. Santiago, Chile. 2015. 1635–1643.
|
[7] |
Hong S, Noh H, Han B. Decoupled deep neural network for semi-supervised semantic segmentation. Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal, QC, Canada. 2015. 1495–1503.
|
[8] |
Goodfellow I, Pouget-Abadie J, Mirza M, et al. Generative adversarial nets. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal, QC, Canada. 2014. 2672–2680.
|
[9] |
Isola P, Zhu JY, Zhou TH, et al. Image-to-image translation with conditional adversarial networks. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 1125–1134.
|
[10] |
Luc P, Couprie C, Chintala S, et al. Semantic segmentation using adversarial networks. arXiv: 1611.08408, 2016.
|
[11] |
Hung WC, Tsai YH, Liou YT, et al. Adversarial learning for semi-supervised semantic segmentation. arXiv: 1802.07934, 2018.
|
[12] |
Souly N, Spampinato C, Shah M. Semi supervised semantic segmentation using generative adversarial network. 2007 IEEE International Conference on Computer Vision. Venice, Italy. 2017. 5688–5696.
|
[13] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 770–778.
|
[14] |
Everingham M, Van Gool L, Williams CKI, et al. The pascal visual object classes (VOC) challenge. International Journal of Computer Vision, 2010, 88(2): 303-338. DOI:10.1007/s11263-009-0275-4 |
[15] |
Cordts M, Omran M, Ramos S, et al. The cityscapes dataset for semantic urban scene understanding. Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 3213–3223.
|
[16] |
Hariharan B, Arbeláez P, Bourdev L, et al. Semantic contours from inverse detectors. IEEE 2011 International Conference on Computer Vision. Barcelona, Spain. 2011. 991–998.
|