论文笔记-Deep Ordinal Regression Network for Monocular Depth Estimation

  • 论文信息

    • 标题: Deep Ordinal Regression Network for Monocular Depth Estimation
    • 作者:Huan Fu, Mingming Gong, Chaohui Wang, Kayhan Batmanghelich, Dacheng Tao
    • 机构:The University of Sydney; University of Pittsburgh; Carnegie Mellon University
  • 代码链接

    • https://github.com/hufu6371/DORN
  • 论文主要贡献

    • 将深度估计从原本的连续值回归问题转为看作序数回归问题
    • 修改网络结构,避免非必要降采样,使用扩张卷积实现多尺度信息提取
    • 引入全图像编码器,用于高效提取全图像特征
    • 序数回归损失用于端到端的网络训练
  • 论文要点翻译

    • 摘要
      • 单目深度估计是理解三维场景几何信息的关键技术,同时也是一个病态的问题。当前的研究通过图像级的信息和 DCNN 层次化的特征提取,将深度估计问题看作一个回归问题处理,并通过最小化均方误差进行回归网络的训练,训练过程通常收敛较慢,且在一些细节信息处理得不是十分令人满意
      • 现有的深度估计方法通常使用多次空间池化操作,使得特征图是低分辨率的,为了获得高分辨率的深度图,需要使用跨层链接、多层反卷积网络等,这带来比较大的计算开销
      • 为了减缓上述这些问题,本文提出 SID 策略(spacing-increasing discretization)将深度值离散化并将深度估计网络看作是序数回归的问题来处理
      • 通过使用序数回归 Loss 训练网络,方法得到更高的精确性,且能够收敛得更快,此外,利用的多尺度网络结构还能够避免多余的空间池化操作,能够并行地获取多尺度的信息
      • 提出的深度叙述回归网络在 KITTI、Make3D、NYU v2 等数据集上取得 SOTA 性能,比起之前的方法,性能得到大幅提升
    • 引言
      • 利用二维彩色图像估计深度信息是场景理解和场景重建任务种的关键步骤,本文主要探索利用一张图片的单目深度估计问题
      • 和双目立体匹配或者基于单目视频的深度估计方法比起来,单目深度估计的研究进展较为缓慢,主要是因为单目深度估计是一个病态问题,即一张二维的彩色图像有可能是由许多不同的三维场景拍摄的,为了克服这个固有的歧义性,典型的方法主要通过探索有统计意义的单目线索或者特征用于深度估计,这些信息包括视角、纹理信息、目标大小、目标位置和遮挡关系等
      • 最近的基于 DCNN 的方法已经使得单目深度估计的性能得到大幅提升,说明单目深度估计本身可以通过学习一个 DCNN 进行解决,这个问题是一个典型的回归问题,所以通常会使用均方差在对数空间或者其他变形作为目标函数进行网络训练
      • 虽然优化回归网络是一个可行的方案,但是网络收敛通常速度较慢,得到的结果也没有达到令人满意的水平。此外,现有的深度估计网络通常使用用于图像分类的深度网络提取图像特征,这些网络中的多次的空间池化操作使得图像特征的分辨率快速下降,最终预测的深度图却需要高分辨率的细节信息,虽然可以通过跨层链接、反卷积等操作提高特征图的分辨率,但是这个处理过程通常计算开销比较大
      • 和现有的深度估计网络不同,本文提出将连续的深度值离散化为一系列的区间值,借此将深度估计从回归问题转换为序数回归问题,本文提出的方法展示了基于序数回归通过 DCNN 进行致密的像素级预测任务
      • 具体来说,本文提出使用空间增长离散化 SID 策略对深度值进行离散化,这不同于常见的均匀分布离散化策略,主要考虑在于深度估计的不确定性随着深度值变大而变大,所以通过空间增长离散化可以更好测避免较大深度值带来的误差影响,本文训练网络时利用序数回归损失,充分考虑了离散深度值得顺序性
      • 为了减轻网络训练开销,本文引入得网络架构避免了非必要的降采样操作,通过更简单的方式捕捉多尺度特征信息,本文移除了最后几个池化层的降采样操作,用过扩张卷积得到更大的感受野,然后再最后一层利用多种不同扩张率的扩张卷积提取多尺度休尼希,最后,本文提出了全图像的编码器,有效捕捉图像级的编码信息
      • 完整网络通过端到端的训练方式,最终的模型在多个数据集上获得 SOTA 性能
    • 相关工作
      • 深度估计:早期利用双目图像的基于几何信息的算法寻找图像之间对应点的三角相似关系、基于监督学习的方法、基于 MRF 的改进、DCNN 方法的运用、特征融合的方式、粗粒度到细粒度的转换、无监督/自监督方法
      • 序数回归:学习预测序数级的标签信息,利用分类算法解决序数回归问题、基于 SVM 的序数回归、在线感知机算法、将序数回归分解为一系列的二分类问题(决策树)、计算机视觉领域还通过 DCNN 解决序数回归问题
    • 方法
      • 网络架构
        • 网络输入一张图像,预测得到多通道的致密的序数标签,主要由两个部分组成:致密特征提取、场景理解模块
        • 致密特征提取
          • 之前的方法大多使用基于分类网络的骨干网络用于特征提取,网络中多次的最大池化操作和步长卷积操作使得特征图的分辨率大幅下降,为了得到多尺度的信息并借此重建高分辨率的深度图,典型的方法通常进行分阶段的优化、跨层链接、多层的反卷积操作等,这不但需要极大的计算开销,而且使得网络结构复杂度提高
          • 和之前的场景划分网络类似,本文将 DCNN 种的最后几个下采样操作去除,加上扩张卷积操作,在扩大感受野的同时保持原有空间分辨率,且维持参数量不增加
        • 场景理解模块
          • 场景理解模块主要有三个组件:(1)ASPP 组件(atrous spatial pyramid pooling);(2)跨通道精简组件;(3)全图像编码器
          • ASPP 用于提取不同感受野的多尺度特征,主要通过扩张卷积实现,扩张率为 6,12,18
          • 纯 1x1 卷积的分支可以将跨通道的信息进行有效混合
          • 全图像编码器捕捉全局的上下文信息,可以有效解决深度估计中的局部混淆的问题,本文的全图像特征编码器比之前的全图像特征编码器参数少,为了获取全局特征 F \mathcal{F} F,编码器接受的输入为 C × h × w C \times h \times w C×h×w 维的特征 F F F,输出 C × h × w C \times h \times w C×h×w 维的全局特征 F \mathcal F F,这个过程通常使用全连接层实现,由于方法使用全连接层的话会带来大量的参数,本文进行改进,首先使用一个较小核大小和步长的平均池化层处理输入特征,降低其空间分辨率,然后利用全连接层处理降分辨率的图像特征,得到特征向量,再将改特征向量重新看作原来 C 维的特征图,这个特征图通过 1x1 卷积作为跨通道的参数池化结构,最终将获取的特征向量变换到原来特征图的空间分辨率,于原特征图每个位置结合,使得每个位置上都能够对整个图像共享相同的理解信息
      • 空间增长离散化
        • 为了将深度区间 [ α , β ] [\alpha,\beta] [α,β] 离散化得一系列的离散深度标签,每个标签代表该区间的深度值,典型的方法是使用均匀分布进行离散化,但是,随着深度值的增长,用于深度估计的信息变得匮乏,大深度的估计误差通常也会更大,因此,使用 UD 策略使得网络训练对于大深度值更加敏感,因此本文使用 SID 的策略进行深度值离散化
        • 将给定得深度值区间离散化到 log 空间,使得训练过程中大深度值对应的训练 Loss 的权重下降,深度估计网络就能更好地进行相对较小的和中间的深度值,并能合理处理较大的深度值
        • 假设深度区间需要离散到 K 个子区间,则两种方法的策略分别是:
          • t i U D = α + i ∗ β − α K t_i^{UD}=\alpha+i*\frac{\beta-\alpha}{K} tiUD=α+iKβα
          • t i S I D = e log ⁡ α + i ∗ log ⁡ β α K t_i^{SID}=e^{\log \alpha}+i*\frac{\log \frac{\beta}{\alpha}}{K} tiSID=elogα+iKlogαβ
          • 其中, t i ∈ { t 0 , t 1 , . . . , t k } t_i \in \{t_0,t_1,...,t_k\} ti{t0,t1,...,tk} 表示离散的深度阈值,本文加上一个偏移量 ξ \xi ξ 得到 α ∗ , β ∗ \alpha^*,\beta^* α,β 使得 α ∗ = α + ξ = 1.0 \alpha^*=\alpha + \xi=1.0 α=α+ξ=1.0 ,然后再在区间 [ α ∗ , β ∗ ] [\alpha^*,\beta^*] [α,β] 上进行 SID
      • 学习和推理
        • 获得离散深度值后,标准的回归问题就可以转为多分类问题,通过 softmax 回归损失可以学习深度估计网络参数
        • 但是典型的多分类网络的损失函数忽略了离散标签之间的顺序信息,而深度值本身是有较强的序数信息的,深度值本身是一个良序几何,因此,本文将深度估计问题看作是序数回归,利用序数损失进行网络训练和参数学习
        • X = φ ( I , ϕ ) \mathcal{X}=\varphi(I,\phi) X=φ(I,ϕ) 是图像 I 对应的 W × H × C W \times H \times C W×H×C 维特征图, ϕ \phi ϕ 是网络种密集特征提取和场景理解模块两部分的参数
        • Y = ψ ( X , Θ ) Y=\psi(\mathcal X,\Theta) Y=ψ(X,Θ) 是输出的每个空间位置的序数信息, W × H × 2 K W \times H \times 2K W×H×2K 维, Θ = ( θ 0 , θ 1 , . . . , θ 2 K − 1 ) \Theta=(\theta_0,\theta_1,...,\theta_{2K-1}) Θ=(θ0,θ1,...,θ2K1) 是权重向量, l ( w , h ) ∈ { 0 , 1 , . . . , K − 1 } l_{(w,h)}\in\{0,1,...,K-1\} l(w,h){0,1,...,K1} 是 SID 产生的每个位置对应的离散标签,则定义的序数损失是像素级序数损失在整个图像上的平均损失: L ( X , Θ ) = − 1 N ∑ w = 0 W − 1 ∑ h = 0 H − 1 Ψ ( w , h , X , Θ ) \mathcal L(\mathcal X,\Theta)=-\frac{1}{\mathcal N}\sum_{w=0}^{W-1}\sum_{h=0}^{H-1}\Psi(w,h,\mathcal{X},\Theta) L(X,Θ)=N1w=0W1h=0H1Ψ(w,h,X,Θ)
        • 其中的像素级序数损失 Ψ ( w , h , X , Θ ) = ∑ k = 0 l ( w , h ) − 1 log ⁡ P ( w , h ) k + ∑ k = l ( w , h ) K − 1 log ⁡ ( 1 − P ( w , h ) k ) \Psi(w,h,\mathcal{X},\Theta)=\sum_{k=0}^{l_{(w,h)}-1} \log \mathcal{P}_{(w,h)}^k+\sum_{k=l_{(w,h)}}^{K-1} \log (1-\mathcal{P}_{(w,h)}^k) Ψ(w,h,X,Θ)=k=0l(w,h)1logP(w,h)k+k=l(w,h)K1log(1P(w,h)k)
        • P ( w , h ) k = P ( l ^ ( w , h ) > k ∣ X , Θ ) \mathcal{P}_{(w,h)}^k=P(\hat l_{(w,h)}\gt k|\mathcal X,\Theta) P(w,h)k=P(l^(w,h)>kX,Θ) 利用 softmax 计算: P ( w , h ) k = e y ( w , h , 2 k + 1 ) e y ( w , h , 2 k + 1 ) + e y ( w , h , 2 k + 1 ) \mathcal{P}_{(w,h)}^k=\frac{e^{y(w,h,2k+1)}}{e^{y(w,h,2k+1)}+e^{y(w,h,2k+1)}} P(w,h)k=ey(w,h,2k+1)+ey(w,h,2k+1)ey(w,h,2k+1),其中, y ( w , h , i ) = θ i ⊤ x ( w , h ) ; x ( w , h ) ∈ X y(w,h,i)=\theta_i^\top x(w,h); x(w,h) \in \mathcal X y(w,h,i)=θix(w,h);x(w,h)X
        • 网络训练最小化 L ( X , Θ ) \mathcal L(\mathcal X,\Theta) L(X,Θ) 使得预测结果对于误差值较大的部分惩罚更多
        • 网络训练时候通过迭代优化的方式进行,考虑对 θ i \theta_i θi 的导数: ∂ L ( X , Θ ) ∂ θ i = − 1 N ∑ w = 0 W − 1 ∑ h = 0 H − 1 ∂ Ψ ( w , h , X , Θ ) ∂ θ i \frac{\partial \mathcal L(\mathcal X,\Theta)}{\partial \theta_i}=-\frac{1}{\mathcal N}\sum_{w=0}^{W-1}\sum_{h=0}^{H-1}\frac{\partial \Psi(w,h,\mathcal{X},\Theta)}{\partial \theta_i} θiL(X,Θ)=N1w=0W1h=0H1θiΨ(w,h,X,Θ)
        • ∂ Ψ ( w , h , X , Θ ) ∂ θ 2 k + 1 = ∂ Ψ ( w , h , X , Θ ) ∂ θ 2 k = x ( w , h ) η ( l ( w , h ) > k ) ( P ( w , h ) k − 1 ) + x ( w , h ) η ( l ( w , h ) ≤ k ) P ( w , h ) k \frac{\partial \Psi(w,h,\mathcal{X},\Theta)}{\partial \theta_{2k+1}}=\frac{\partial \Psi(w,h,\mathcal{X},\Theta)}{\partial \theta_{2k}}=x(w,h)\eta(l_{(w,h)}\gt k)(\mathcal P_{(w,h)}^{k}-1)+x(w,h)\eta(l_{(w,h)}\le k)\mathcal P_{(w,h)}^{k} θ2k+1Ψ(w,h,X,Θ)=θ2kΨ(w,h,X,Θ)=x(w,h)η(l(w,h)>k)(P(w,h)k1)+x(w,h)η(l(w,h)k)P(w,h)k,其中的 η ( ⋅ ) \eta(\cdot) η() 表示二值函数, η ( t r u e ) = 1 , η ( f a l s e ) = 0 \eta(true)=1,\eta(false)=0 η(true)=1,η(false)=0
        • 最终的推理过程在获取标签后进行深度值的预测: d ^ ( w , h ) = t l ^ ( w , h ) + t l ^ ( w , h ) + 1 2 − ξ \hat d_{(w,h)}=\frac{t_{\hat l (w,h)}+t_{\hat l(w,h)+1 }}{2}-\xi d^(w,h)=2tl^(w,h)+tl^(w,h)+1ξ,其中的 l ^ ( w , h ) = ∑ k = 0 K − 1 η ( P ( w , h ) k ) ≥ 0.5 \hat l_{(w,h)}=\sum_{k=0}^{K-1}\eta(\mathcal P_{(w,h)}^k)\ge 0.5 l^(w,h)=k=0K1η(P(w,h)k)0.5
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页