论文笔记-Look Deeper Depth Monocular Depth Estimation with Semantic Booster and Attention-Driven Loss

论文信息

  • 论文标题:Look Deeper into Depth: Monocular Depth Estimation with Semantic Booster and Attention-Driven Loss

  • 论文作者:Jianbo Jiao, Ying Cao, Yibing Song, Rynson Lau

  • 研究机构:University of Illinois at Urbana-Champaign, Urbana, USA; 腾讯

  • 论文出处:ECCV 2018

  • 引用信息:

    @inproceedings{DBLP:conf/eccv/JiaoCSL18,
      author    = {Jianbo Jiao and
                   Ying Cao and
                   Yibing Song and
                   Rynson W. H. Lau},
      editor    = {Vittorio Ferrari and
                   Martial Hebert and
                   Cristian Sminchisescu and
                   Yair Weiss},
      title     = {Look Deeper into Depth: Monocular Depth Estimation with Semantic Booster
                   and Attention-Driven Loss},
      booktitle = {Computer Vision - {ECCV} 2018 - 15th European Conference, Munich,
                   Germany, September 8-14, 2018, Proceedings, Part {XV}},
      series    = {Lecture Notes in Computer Science},
      volume    = {11219},
      pages     = {55--71},
      publisher = {Springer},
      year      = {2018},
      url       = {https://doi.org/10.1007/978-3-030-01267-0\_4},
      doi       = {10.1007/978-3-030-01267-0\_4},
      timestamp = {Tue, 14 May 2019 10:00:45 +0200},
      biburl    = {https://dblp.org/rec/conf/eccv/JiaoCSL18.bib},
      bibsource = {dblp computer science bibliography, https://dblp.org}
    
  • 代码链接:

论文主要贡献和参考价值

  • 主要贡献

    • 注意力驱动损失函数用于考察数据的长尾分布特性,更好地用于训练网络,帮助改善网络对于远距离区域的深度预测
    • 协同网络,用于更好地在深度估计中传播和利用语义信息,进行任务内和任务间有效的信息共享
  • 参考价值

    论文要点翻译

    • 摘要
      • 基于学习的技术已经极大改善了单目深度估计性能,本文对训练数据进行分析,观察到像素级的深度值的分布通常展现出长尾分布的特征,但是大多数之前的方法将训练数据中的整体公平对待,没有考虑到数据分布的不均衡,限制模型性能,尤其是在远距离区域,性能相对差很多
      • 本文研究了数据的长尾属性,针对远距离的区域(长尾部分)进行了深入的调研,提出了注意力驱动的损失函数用于网络监督训练
      • 为了更好利用单目深度估计中的语义信息,本文提出协同网络用于自动学习两个任务中的共享信息
      • 根据提出的注意力驱动的损失函数和协同网络,深度预测和语义标注任务可以相互促进
      • 实验结果表明模型可以达到深度估计和语义标注任务的 SOTA 性能
    • 引言
      • 深度获取是三维建模、场景理解、深度图次昂合成等应用中的重点研究救赎,但是传统的硬件软件方法要么受限于环境要求,要么受限于多视图的观察假设
      • 为了克服这些不足,许多研究从单张图像出发,研究单张图像的深度估计任务,单张图像深度估计任务是一个病态问题,有固有的歧义性,但是,在给定足够的样本(对近距离或者远距离物体的外观的描述),人们可以从一张图像中有效获取深度信息
      • 随着深度学习技术的进展和训练数据的可达性的提高,单目深度估计的性能已经得到显著提高,但是现有的方法衡量单目深度估计的性能的手段主要是朴素的损失函数(L1 或者 L2 损失),这就假设场景中所有区域对损失函数的贡献都是一致的,没有考虑深度数据的统计分布特性
      • 本文在实践中发现,不同场景中的深度值在不同区域的变化是明显的,展现出长尾分布的特殊性质,这也是其固有的性质,可能是深度获取过程中视角影响造成的,给定这样的不均衡数据,使用朴素损失均等对待所有区域的像素会造成小深度值的像素对损失函数的影响占据主导地位,这使得模型无法有效预测远距离物体的深度
      • 更进一步,作为学习到的视角信息之类的先验知识的补充,场景的语义理解(例如天空是远处的,墙是垂直的)可以有效改进深度估计,例如,指导一个物体时一致铅笔还是一根杆子就可以有效帮助预测深度值;相反,深度信息也是对区分语义标签有帮助的,特别是对相似外观的不用物体。因此,深度估计和语义分割两个任务是可以相互促进的
      • 本文提出将两个任务在同一个深度网络中处理,网络输入一张图像,同时预测深度图和语义标签图。本文提出新的注意力驱动的损失函数,能够有效感知深度目标,该损失函数用于有效指导网络训练,避免了数据分布的偏差,指导模型对场景更深的理解
      • 此外,本文提出的协同网络中用到信息传播策略,以动态路由的形式更好地将语义标签运用到深度估计中,策略主要是一个显式地共享单元和半密集的跨层链接,使得信息可以在内部不同层级的表示以及不同任务之间流动
      • 实验结果表明,提出的损失函数和知识共享策略可以有效改进深度估计性能,达到 SOTA 水平
    • 相关工作
      • 单图像深度估计:线性模型、超像素方法、深度学习方法、CRF 对方法的改进、无监督/自监督方法
      • 语义信息对深度的指导:深度作为指导改进语义分割、语义标签用于辅助深度预测
      • 联合表征共享:不同任务之间的表征共享
    • 方法
      • 深度敏感的目标
        • 现有的 SOTA 深度估计方法利用 CNN 进行深度预测,在这些框架中,深度估计被当作是一个回归问题处理,通常使用 l1 或者 l2 损失函数基于提供的训练数据最小化像素级的预测误差
        • 在深度估计过程中,本文发现,在室内数据集 NYU-D 和室外数据集 KITTI 上的深度数据都会展现长尾分布的特性,即当深度值达到特定阈值后,深度值对应的像素数量急剧下降,也就是说,图像中只有少部分范围的深度值占据了较多的像素比例,这个数据的不均衡在目标检测中也存在,但是本质上有所不同,因为图像处理过程中会有固有的视角影响,导致深度值的长尾分布
        • 深度值的长尾分布问题仅仅通过提高数据数量是无法解决的,因此,在这样的训练集上训练网络时,如果使用的损失函数完全相等地对待所有像素会使得深度预测的结果存在问题,简单的较小深度值的物体会在训练中占据主体影响地位,而较大的困难样本则贡献非常有限,导致模型倾向于预测较小的深度值
        • 基于上述观察,本文提出指导网络更多地关注远距离的深度区域,适应性地调整反向传播流,提出的深度敏感的目标函数可以形式化为 L D A = 1 N ∑ i = 1 N ( α D + λ D ) ⋅ l ( d i , d i G T ) L_{DA}=\frac 1 N \sum_{i=1}^{N}(\alpha_D+\lambda_D)\cdot \mathit l(d_i,d_i^{GT}) LDA=N1i=1N(αD+λD)l(di,diGT) 其中的 i i i 是像素的 index, N N N 是深度图中的像素数量, d i , d i G T d_i,d_i^{GT} di,diGT 分别表示预测深度值和真实深度值, l ( ⋅ ) \mathit l(\cdot) l() 是距离衡量函数,可以是 L1、L2 等距离函数, α D \alpha_D αD 是深度敏感的注意力项,指导网络训练更多地关注远距离的深度区域,减少数据分布的偏差,因此,反向传播时的梯度会更多地关注小范围的远距离区域,因此, α D \alpha_D αD 是和深度值正相关的,可以定义为真实深度上的线性函数
        • 为了避免训练开始时的梯度消失问题,同时避免临近区域的学习停止问题,正则化项 λ D \lambda_D λD 被引入 λ D = 1 − min ⁡ ( log ⁡ ( d i ) , log ⁡ ( d i G T ) ) max ⁡ ( log ⁡ ( d i ) , log ⁡ ( d i G T ) ) \lambda_D=1-\frac{\min(\log (d_i),\log(d_i^{GT}))}{\max (\log (d_i),\log(d_i^{GT}))} λD=1max(log(di),log(diGT))min(log(di),log(diGT)) 该项描述学习状态,如果当前状态网络预测的 i 像素的深度值和真实值较为接近,则正则化项趋于 0,若预测则没有精确趋于真实值,则正则化项趋于 1
        • 因此,对于较近的区域( α D → 0 \alpha_D \to 0 αD0),如果深度预测结果不够精确,则梯度仍然会被传播,此时的传播利用原始的 l 损失函数,通过这样的方式, λ D \lambda_D λD 确保网络训练的稳定性
        • 深度敏感的目标函数使得网络训练时能够适应性地关注不同区域,自动调整对每个样本的权重,因此保证学习过程中对于模型的优化时相对较为均衡的
        • 总而言之, L D A L_{DA} LDA 在保留原有的对近距离像素的注意的基础上,使网络在训练过程中更多地注意远距离区域
      • 网络架构
        • 本文提出的方法是一个多任务 DCNN 网络,由 4 个部分组成:(1)深度预测子网络,(2)语义标注子网络,(3)知识共享单元/链接;(4)注意力裙动损失函数
        • 输入的 RGB 图像经过骨干编码器网络,色彩空间数据转为高维的特征空间数据
        • 骨干网络后时两个子网络,分别重建深度图和语义标签图
        • 两个任务的知识共享主要通过 LSU 实现,自动学习训练过程中的传播流,并使得测试结果最优,知识共享在每个子网络内部也存在,主要通过 SUC 版密集向上跨层连接实现
        • 最终整个网络通过注意力驱动损失函数实现训练,注意力驱动函数主要是深度敏感的和其他基于注意力的损失项
        • 侧向共享单元 LSU(Lateral Sharing Unit)
          • 本文显式地探索不同底信息共享结构,本文的协同网络利用双向的 LSU 自动学习共享策略,主要运用了动态路由的方法
          • 信息共享在前向传递和反向传播中都有,没练个 up-conv 层之间加上一个 LSU 共享残差知识/特征表示,和手工调整的结构不同,本文的 LSU 可以获取额外的任务内和任务间特征层的知识共享,假定生成的特征图分别为 D1 和 S1,则特征表示中的共享表示为:
          • L S U D 2 = D 1 + ( φ D ⋅ D 1 + φ S ⋅ S 1 ) LSU_{D2}=D1+(\varphi_D \cdot D1+\varphi_S \cdot S1) LSUD2=D1+(φDD1+φSS1)
          • L S U S 2 = S 1 + ( γ D ⋅ D 1 + γ S ⋅ S 1 ) LSU_{S2}=S1+(\gamma_D \cdot D1+\gamma_S \cdot S1) LSUS2=S1+(γDD1+γSS1)
          • 其中的 φ D , γ D \varphi_D, \gamma_D φD,γD 是控制特征 D1 的权重参数, φ S , γ S \varphi_S,\gamma_S φS,γS 是控制特征 S1 的权重参数,共享的特征表示 L S U D 2 LSU_{D2} LSUD2 L S U S 2 LSU_{S2} LSUS2 将被传播到后续的 up-con 层
          • LSU 中所有参数在学习过程中都会被更新,这样可以实现两个 up-conv 层之间的动态共享路由
          • 虽然 LSU 共享相同的内部结构,但是每个 LSU 有各自的参数,使得共享的方式更为灵活
          • 本文提出在讲共享信息结合的基础上加上全等映射,避免传播中断或者特征污染的风险,这样的类似于残差的结构有利于梯度的反向传播
          • 此外,LSU 用于两个连续的 up-conv 层之间,使得训练的参数两减少,通过使用 LSU 可以提高深度预测的精度,全等映射可以避免语义传播的较差的效应
        • 半密集向上跨层连接
          • 为了实现任务内的知识共享,保留较长的记忆依赖,本文引入半密集向上跨层连接,用 f i n f_{in} fin f o u t f_{out} fout 表示解码器输入和输出的特征,每个 up-conv 层输出的特征表示为 f i f_i fi,除了处理单个 up-conv 层的短依赖记忆,本文加上跨层连接传播较长的记忆依赖
          • f o u t = h ( f i n ) + ∑ i = 1 n h ( f j ) f_{out}=\mathtt h(f_{in})+\sum_{i=1}^n \mathtt h(f_j) fout=h(fin)+i=1nh(fj),其中 n 是 up-conv 层的数量, h \mathtt h h 是 up-resize 操作,使得特征可以匹配目标网络层的大小
          • SUC 通过半密集的方式进行连接,减少内存开销的同时没有过大的性能损失,长范围的连接使得不同级别的特征以粗粒度到细粒度的方式混合多尺度信息,同时捕捉全局的和局部的信息
      • 注意力驱动损失
        • 深度敏感损失:训练过程中使用深度敏感损失监督深度预测任务,设置的 α D = d G T n \alpha_D=d^{GT_n} αD=dGTn 其中的 d G T n d^{GT_n} dGTn 表示正则化的真实值深度,距离衡量函数 ℓ \ell 设置为平滑的 L1-norm
        • 联合梯度损失:为了保留局部结构和表面区域的细节信息,本文提出设置梯度损失层,将 Sobel 检测子用于核在水平方向 ∇ h \nabla_h h 和垂直方向 ∇ v \nabla_v v 进行检测: L g ( d , d G T ) = 1 N ∑ i = 1 N ∣ ∇ h d i − ∇ h d i G T ∣ + ∣ ∇ v d i − ∇ v d i G T ∣ L_g(d,d^{GT})=\frac 1 N \sum_{i=1}^N|\nabla_h d_i-\nabla_h d_i^{GT}|+|\nabla_v d_i-\nabla_v d_i^{GT}| Lg(d,dGT)=N1i=1NhdihdiGT+vdivdiGT
        • 联合的梯度损失即 L J G = L g ( d , d G T ) + L g ( d , s ) L_{JG}=L_g(d,d^{GT})+L_g(d,s) LJG=Lg(d,dGT)+Lg(d,s)
        • 语义损失:目录分布也是长尾分布,及时映射到相对较少的目录中也仍然存在该问题,不均衡的分布不仅影响语义标注任务,也会影响深度预测中 LSU 模块,收到 Focal Loss 的启发,本文提出 L s e m F ( l , l G T ) = − 1 N ∑ i = 1 N ∑ k = 1 K l i , k G T α k ( 1 − l i , k ) γ log ⁡ ( l i , k ) L_{semF}(l,l^{GT})=-\frac 1 N \sum_{i=1}^N\sum_{k=1}^K l_{i,k}^{GT}\alpha_k(1-l_{i,k})^\gamma \log(l_{i,k}) LsemF(l,lGT)=N1i=1Nk=1Kli,kGTαk(1li,k)γlog(li,k)
      • L a t t e n t i o n = L D A + L J G + L s e m F L_{attention}=L_{DA}+L_{JG}+L_{semF} Lattention=LDA+LJG+LsemF
      • 注意力可视化
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值