论文笔记-Learning Semantic Segmentation from Synthetic Data Geometrically Guided Input-Output Adaptation

  • 论文信息

    • 标题: Learning Semantic Segmentation from Synthetic Data: A Geometrically Guided Input-Output Adaptation Approach
    • 作者:Yuhua Chen, Wen Li, Xiaoran Chen, Luc Van Gool
    • 机构:Computer Vision Laboratory, ETH Zurich; VISICS, ESAT/PSI, KU Leuven
  • 代码链接

    • http://github.com/yuhuayc/gio-ada
  • 论文主要贡献

    • 提出几何指导的输入输出域适应网络,GIO-Ada,利用深度信息用于两个级别的域适应任务:(1)输入层,使用增强的图像翻译网络,将合成图像和对应的语义标签及深度图作为输入,训练网络,使其能够生成对应的真实场景图像,并与原图保持一致的几何信息和语义信息;(2)输出层,训练的任务网络以监督学习的方式联合估计深度和语义标签,引入对抗训练的方式使得训练的网络在语义和深度之间保持与无关的互相关性;结合两个模块,语义信息不经能够改进语义分割,而且能够一定程度解决合成数据与真实数据之间的 domain gap
  • 论文要点翻译

    • 摘要

      • 合成场景的数据已经作为手工像素标注数据在语义分割模型中得到日益广泛的使用,合成的图像和语义标签很容易通过虚拟的三维环境生成
      • 本文提出新的方法借助几何信息进行跨域的语义分割任务,语义信息在两个不同层次得以利用,以减少 domain shift 的问题:一个层次是输入层,通过几何信息增强将合成图像转换成真实风格图像的图像翻译网络;另一个层次是输出层,建立同时能够完成单目深度估计和语义分割的任务网络
      • 同时,本文使用对抗训练的方式在输出空间保持语义和深度的相关性
      • 实验结果表明,在 vKitti 和 KITTI、SYNTHIA 和 Cityscape 数据集中,比起基准线性能来说,本文方法有明显的性能提升,说明了几何信息在跨域的语义分割任务中的有效性
    • 引言

      • 语义分割任务是将图像中每个像素分类到对应的语义标签的过程,任务通过提供像素级的语义理解,使得机器人、自动驾驶等任务得以进行
      • 正如其他许多任务一样,语义分割任务常常使用深度神经网络进行,但是建立用于网络训练的大规模数据集并不容易,收集数据和标注数据的过程都是耗时耗力的
      • 为了解决这个问题,合成场景数据成为替换监督语义分割数据的有效手段,最近的计算机图形学取得的进展使得计算机可以自动生成合成图像,而且这些合成图像能够从虚拟的三维世界环境中获取对应的像素级的标签
      • 在合成数据上训练较少了标注数据的代价,然而,合成场景和真实场景之前存在 domain shift,在合成场景训练的模型难以直接运用到真实场景中
      • 为解决场景之间的 domain shift 问题,许多方法使用不同的域适应技巧,另一方面,图像翻译技术已经被广泛用于将合成场景图像翻译为真实等个的图像,这使得可以在像素级将不同域的图像进行对其。但是,这些方法通常只是利用合成场景的图像和对应的语义标签,然而,合成场景数据的一大优势被忽略了,即虚拟环境可以提供诸如深度、光流、surface norm 等重要的信息
      • 本文的主要工作目标在于如何从合成场景中获取和利用更多有用的几何信息,用于跨域的语义分割任务,最终将模型迁移到真实数据场景中。受到语义分割信息和几何信息是天然耦合的启发,几何线索可以推导语义信息,反之亦然,另外,语义信息和深度信息之间也可以相互促进,不想合成场景数据与真实场景数据之间存在巨大的差异,深度图和语义分割图之间的互相关性是域无关的,而语义标签和几何信息之间的互相关性也是与无关的,可以用于解决domain gap 的问题
      • 本文提出几何指导的输入输出域适应网络,GIO-Ada,利用深度信息用于两个级别的域适应任务:(1)输入层,使用增强的图像翻译网络,将合成图像和对应的语义标签及深度图作为输入,训练网络,使其能够生成对应的真实场景图像,并与原图保持一致的几何信息和语义信息;(2)输出层,训练的任务网络以监督学习的方式联合估计深度和语义标签,引入对抗训练的方式使得训练的网络在语义和深度之间保持与无关的互相关性;结合两个模块,语义信息不经能够改进语义分割,而且能够一定程度解决合成数据与真实数据之间的 domain gap
      • 方法在两个场景数据上进行了测试,获得较好的新能,利用几何信息使得模型的跨域语义分割任务的性能得到显著提升
    • 相关工作

      • 语义分割:全卷积网络、数据集的介绍、合成场景数据的利用
      • 域适应:传统方法、基于 CNN 的方法、跨域的语义分割任务等
      • 结合深度信息的语义分割任务:深度图与语义分割图的相互促进
    • 方法

      • 合成场景数据是源 S,真实场景数据是目标 domain T,合成场景的图像 x s ∈ S x_s\in S xsS 有对应的语义标签 y s y_s ys 和深度图 d s d_s ds,目标域只有图像 x t ∈ T x_t\in T xtT

      • 方法概览

        • 为了解决 domain gap 的问题,使用两个级别的联合:输入层和输出层,并在两个层都使用深度信息(几何信息)作为域适应的帮助信息
        • 输入级的域适应:减少原始像素之间的视觉差异,输入适应的输出被用于任务网络的输入。该部分使用图像翻译网络 G i m g G_{img} Gimg,接受合成图像 x s x_s xs 和对应的语义标签 y s y_s ys 和深度图 d s d_s ds 作为输入,目标在于生成翻译的图像 x ^ s \hat x_s x^s,该图像与真实的图像有相似的外观视觉特征,并保留了能够较好用于语义分割和深度估计的信息;大部分像素级的适应网络没有考虑源域的深度信息,使得几何信息在生成过程中没有被充分利用,因此本文方法使得图像翻译能够借助深度信息更好的保留相关的几何信息
        • 输出级的域适应:该部分主要需要对其两个域的任务网络的输出,并获得和利用两个任务之间的互相关性。输出级的适应包括一个任务网络 G t a s k G_{task} Gtask 和一个输出级的判别器 D o u t p u t D_{output} Doutput,G 使用真实图像 x t x_t xt 或者翻译的合成图像 x ^ s \hat x_s x^s 作为输入,然后同时预测图像对应的语义分割图 y ^ \hat y y^ 和深度图 d ^ \hat d d^,判别器 D 主要判断输出的语义标签图和深度图是基于真实图像得到的还是基于转换的图像得到的。在输出级运用几何信息带来几个好处:(1)深度估计任务的帮助,使得任务网络更加鲁棒,能应对 domain shift 问题;(2)语义和深度之间的互相关性可以用作域对齐的重要线索,由于没有真实标签,因此在输出级对域进行对齐是极其有用的监督信号
      • 输入级域适应

        • x ^ s = G i m g ( x s , y s , d s ) \hat x_s=G_{img}(x_s,y_s,d_s) x^s=Gimg(xs,ys,ds)
        • 使用判别器 D i m g D_{img} Dimg 判断生成图像的真实性
        • L i n p u t = E x t ∼ X T [ log ⁡ D i m g ( x t ) ] + E x s ∼ X S [ log ⁡ ( 1 − D i m g ( x t ) ) ] \mathcal{L}_{input}=\mathbb{E}_{x_t\sim X_T}[\log D_{img}(x_t)]+\mathbb{E}_{x_s\sim X_S}[\log(1- D_{img}(x_t))] Linput=ExtXT[logDimg(xt)]+ExsXS[log(1Dimg(xt))]
      • 输出级域适应

        • 用标准的交叉熵损失学习语义分割任务: L s e g = E x s ∼ X S [ C E ( y s , y ^ s ) ] \mathcal{L}_{seg}=\mathbb{E}_{x_s\sim X_S}[CE(y_s,\hat y_s)] Lseg=ExsXS[CE(ys,y^s)] y s y_s ys 表示语义标签的 GT 图像,而 y ^ s \hat y_s y^s 表示预测的值,借助语义分割网络,将深度作为辅助任务
        • 使用 L1 Loss 作为深度任务的损失: L d e p t h = E x s ∼ X S [ ∥ d s − d ^ s ∥ 1 ] \mathcal L_{depth} = \mathbb{E}_{x_s\sim X_S}[\|d_s-\hat d_s\|_1] Ldepth=ExsXS[dsd^s1]
        • 使用判别器 D t a s k D_{task} Dtask 在输出及保证生成预测结果的域无关性,即:在输出层,将输出的语义分割图 y ^ s \hat y_s y^s 和深度预测图 d ^ s \hat d_s d^s 拼接后作为 C+1 通道的输入用于训练 D,结合原本的 y ^ t \hat y_t y^t d ^ t \hat d_t d^t 进行对抗训练,D 使用 PatchGAN 的形式
        • L o u t p u t = E x t ∼ X T [ log ⁡ D o u t p u t ( d ^ t , y ^ t ) ] + E x s ∼ X S [ log ⁡ ( 1 − D o u t p u t ( d ^ s , y ^ s ) ) ] \mathcal{L}_{output}=\mathbb{E}_{x_t\sim X_T}[\log D_{output}(\hat d_t,\hat y_t)]+\mathbb{E}_{x_s\sim X_S}[\log(1- D_{output}(\hat d_s,\hat y_s))] Loutput=ExtXT[logDoutput(d^t,y^t)]+ExsXS[log(1Doutput(d^s,y^s))]
      • 最终的训练目标:

        m i n G m a x D { L s e g + λ d e p t h L d e p t h + λ i n p u t L i n p u t + λ o u t p u t L o u t p u t } min_{G}max_{D}\{\mathcal L_{seg}+\lambda_{depth}\mathcal L_{depth}+\lambda_{input}\mathcal L_{input}+\lambda_{output}\mathcal L_{output}\} minGmaxD{Lseg+λdepthLdepth+λinputLinput+λoutputLoutput}

        训练中改装 CycleGAN 用于最终的网络,基于 DeepLab-v2 的 VGG 骨干模型,设置权重参数 λ d e p t h = 0.1 , λ i n p u t = 0.1 , λ o u t p u t = 0.001 \lambda_{depth} = 0.1,\lambda_{input} = 0.1,\lambda_{output}= 0.001 λdepth=0.1,λinput=0.1,λoutput=0.001

你可能感兴趣的:(计算机视觉,论文笔记,深度学习,计算机视觉,神经网络,机器学习,人工智能)